From 48e4843457783b0adf39b6345c4cbb36bd129dc3 Mon Sep 17 00:00:00 2001 From: "J.T. McQuigg" Date: Thu, 18 Aug 2022 12:35:15 -0400 Subject: [PATCH] Use NMS and Don't call event when player is afk to save resources (#584) --- .../listeners/ItemDropPickListener.java | 14 +++++----- .../listeners/PlayerDropPick_1_11Minus.java | 26 ++++++++----------- 2 files changed, 19 insertions(+), 21 deletions(-) diff --git a/versionsupport_common/src/main/java/com/andrei1058/bedwars/listeners/ItemDropPickListener.java b/versionsupport_common/src/main/java/com/andrei1058/bedwars/listeners/ItemDropPickListener.java index ca9f5ffa4..4520976a0 100644 --- a/versionsupport_common/src/main/java/com/andrei1058/bedwars/listeners/ItemDropPickListener.java +++ b/versionsupport_common/src/main/java/com/andrei1058/bedwars/listeners/ItemDropPickListener.java @@ -136,12 +136,14 @@ private static boolean managePickup(Item item, LivingEntity player) { ItemMeta itemMeta = new ItemStack(material).getItemMeta(); //Call ore pick up event - PlayerGeneratorCollectEvent event = new PlayerGeneratorCollectEvent((Player) player, item, a); - Bukkit.getPluginManager().callEvent(event); - if (event.isCancelled()) { - return true; - } else { - item.getItemStack().setItemMeta(itemMeta); + if (!api.getAFKUtil().isPlayerAFK(((Player) player).getPlayer())){ + PlayerGeneratorCollectEvent event = new PlayerGeneratorCollectEvent((Player) player, item, a); + Bukkit.getPluginManager().callEvent(event); + if (event.isCancelled()) { + return true; + } else { + item.getItemStack().setItemMeta(itemMeta); + } } } } diff --git a/versionsupport_common/src/main/java/com/andrei1058/bedwars/listeners/PlayerDropPick_1_11Minus.java b/versionsupport_common/src/main/java/com/andrei1058/bedwars/listeners/PlayerDropPick_1_11Minus.java index 555304b33..99afa1b17 100644 --- a/versionsupport_common/src/main/java/com/andrei1058/bedwars/listeners/PlayerDropPick_1_11Minus.java +++ b/versionsupport_common/src/main/java/com/andrei1058/bedwars/listeners/PlayerDropPick_1_11Minus.java @@ -25,6 +25,7 @@ import com.andrei1058.bedwars.api.arena.IArena; import com.andrei1058.bedwars.api.events.player.PlayerGeneratorCollectEvent; import com.andrei1058.bedwars.api.server.ServerType; +import com.andrei1058.bedwars.support.version.common.VersionCommon; import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.event.EventHandler; @@ -79,7 +80,7 @@ public void onPickup(PlayerPickupItemEvent e) { return; } - if (e.getItem().getItemStack().getType().toString().equals("BED")) { + if (VersionCommon.api.getVersionSupport().isBed(e.getItem().getItemStack().getType())) { e.setCancelled(true); e.getItem().remove(); } else if (e.getItem().getItemStack().hasItemMeta()) { @@ -90,12 +91,15 @@ public void onPickup(PlayerPickupItemEvent e) { ItemMeta itemMeta = new ItemStack(material).getItemMeta(); //Call ore pick up event - PlayerGeneratorCollectEvent event = new PlayerGeneratorCollectEvent(e.getPlayer(), e.getItem(), a); - Bukkit.getPluginManager().callEvent(event); - if (event.isCancelled()){ - e.setCancelled(true); - } else { - e.getItem().getItemStack().setItemMeta(itemMeta); + + if (!api.getAFKUtil().isPlayerAFK(e.getPlayer())){ + PlayerGeneratorCollectEvent event = new PlayerGeneratorCollectEvent(e.getPlayer(), e.getItem(), a); + Bukkit.getPluginManager().callEvent(event); + if (event.isCancelled()){ + e.setCancelled(true); + } else { + e.getItem().getItemStack().setItemMeta(itemMeta); + } } } } @@ -133,12 +137,4 @@ public void onDrop(PlayerDropItemEvent e) { e.setCancelled(true); } } - - @EventHandler - //Prevent AFK players from picking items - public void onCollect(PlayerGeneratorCollectEvent e){ - if (api.getAFKUtil().isPlayerAFK(e.getPlayer())){ - e.setCancelled(true); - } - } }