4
4
import io .github .invvk .wgef .WGEFPlugin ;
5
5
import io .github .invvk .wgef .abstraction .WGEFUtils ;
6
6
import io .github .invvk .wgef .abstraction .flags .WGEFlags ;
7
+ import org .bukkit .Bukkit ;
7
8
import org .bukkit .entity .Player ;
8
9
import org .bukkit .event .EventHandler ;
10
+ import org .bukkit .event .EventPriority ;
9
11
import org .bukkit .event .Listener ;
10
12
import org .bukkit .event .entity .PlayerDeathEvent ;
11
13
@@ -17,7 +19,7 @@ public DeathListener(WGEFPlugin plugin) {
17
19
this .plugin = plugin ;
18
20
}
19
21
20
- @ EventHandler
22
+ @ EventHandler ( priority = EventPriority . LOW )
21
23
public void onPlayerDeathEvent (PlayerDeathEvent event ) {
22
24
Player player = event .getEntity ();
23
25
@@ -31,12 +33,20 @@ public void onPlayerDeathEvent(PlayerDeathEvent event) {
31
33
event .getDrops ().clear ();
32
34
}
33
35
}
36
+ }
34
37
38
+ @ EventHandler (priority = EventPriority .LOWEST )
39
+ public void onDeath (PlayerDeathEvent event ) {
40
+ final Player player = event .getEntity ();
41
+ ApplicableRegionSet regions = this .plugin .getFork ().getRegionContainer ().createQuery ().getApplicableRegions (player .getLocation ());
35
42
Boolean keepExp = WGEFUtils .queryValue (player , player .getWorld (), regions .getRegions (), WGEFlags .KEEP_EXP );
36
43
if (keepExp != null ) {
37
44
event .setKeepLevel (keepExp );
38
-
39
45
if (keepExp ) {
46
+ if (Bukkit .getPluginManager ().getPlugin ("PerWorldInventory" ) != null ) {
47
+ event .setNewExp (event .getDroppedExp ());
48
+ event .setNewLevel (player .getLevel ());
49
+ }
40
50
event .setDroppedExp (0 );
41
51
}
42
52
}
0 commit comments