Support EntityPickupItemEvent.

This commit is contained in:
Ali Moghnieh 2017-07-28 20:13:59 +01:00
parent 9963476218
commit 210494d0d1
No known key found for this signature in database
GPG key ID: F09D3A1BAF2E6D70
2 changed files with 36 additions and 10 deletions

View file

@ -276,7 +276,7 @@ public class Essentials extends JavaPlugin implements net.ess3.api.IEssentials {
confList.add(pluginListener);
final EssentialsPlayerListener playerListener = new EssentialsPlayerListener(this);
pm.registerEvents(playerListener, this);
playerListener.registerEvents();
final EssentialsBlockListener blockListener = new EssentialsBlockListener(this);
pm.registerEvents(blockListener, this);

View file

@ -7,6 +7,8 @@ import com.earth2me.essentials.textreader.TextPager;
import com.earth2me.essentials.utils.DateUtil;
import com.earth2me.essentials.utils.LocationUtil;
import net.ess3.api.IEssentials;
import net.ess3.nms.refl.ReflUtil;
import org.bukkit.GameMode;
import org.bukkit.Location;
import org.bukkit.Material;
@ -49,6 +51,15 @@ public class EssentialsPlayerListener implements Listener {
this.ess = parent;
}
public void registerEvents() {
ess.getServer().getPluginManager().registerEvents(this, ess);
if (ReflUtil.getNmsVersionObject().isLowerThan(ReflUtil.V1_12_R1)) {
ess.getServer().getPluginManager().registerEvents(new PlayerListenerPre1_12(), ess);
} else {
ess.getServer().getPluginManager().registerEvents(new PlayerListener1_12(), ess);
}
}
@EventHandler(priority = EventPriority.NORMAL)
public void onPlayerRespawn(final PlayerRespawnEvent event) {
final User user = ess.getUser(event.getPlayer());
@ -617,15 +628,6 @@ public class EssentialsPlayerListener implements Listener {
return used;
}
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
public void onPlayerPickupItem(final PlayerPickupItemEvent event) {
if (ess.getSettings().getDisableItemPickupWhileAfk()) {
if (ess.getUser(event.getPlayer()).isAfk()) {
event.setCancelled(true);
}
}
}
@EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true)
public void onInventoryClickEvent(final InventoryClickEvent event) {
Player refreshPlayer = null;
@ -719,4 +721,28 @@ public class EssentialsPlayerListener implements Listener {
final User user = ess.getUser(event.getPlayer());
user.updateActivity(true);
}
private final class PlayerListenerPre1_12 implements Listener {
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
public void onPlayerPickupItem(final org.bukkit.event.player.PlayerPickupItemEvent event) {
if (ess.getSettings().getDisableItemPickupWhileAfk()) {
if (ess.getUser(event.getPlayer()).isAfk()) {
event.setCancelled(true);
}
}
}
}
private final class PlayerListener1_12 implements Listener {
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
public void onPlayerPickupItem(final org.bukkit.event.entity.EntityPickupItemEvent event) {
if (ess.getSettings().getDisableItemPickupWhileAfk() && event.getEntity() instanceof Player) {
if (ess.getUser((Player) event.getEntity()).isAfk()) {
event.setCancelled(true);
}
}
}
}
}