Completely prevent moving items in inventory (click,drag,offhand swapping) during gameplay to stop a few exploits
This commit is contained in:
parent
b1f2dbf71e
commit
1d44c941a5
@ -110,6 +110,7 @@ public class BlockHunt extends JavaPlugin implements Listener {
|
|||||||
getServer().getPluginManager().registerEvents(new OnFoodLevelChangeEvent(), this);
|
getServer().getPluginManager().registerEvents(new OnFoodLevelChangeEvent(), this);
|
||||||
getServer().getPluginManager().registerEvents(new OnInventoryClickEvent(), this);
|
getServer().getPluginManager().registerEvents(new OnInventoryClickEvent(), this);
|
||||||
getServer().getPluginManager().registerEvents(new OnInventoryCloseEvent(), this);
|
getServer().getPluginManager().registerEvents(new OnInventoryCloseEvent(), this);
|
||||||
|
getServer().getPluginManager().registerEvents(new OnPlayerSwapHandItemsEvent(), this);
|
||||||
|
|
||||||
// Removed - This is handled by WorldGuard now.
|
// Removed - This is handled by WorldGuard now.
|
||||||
// getServer().getPluginManager().registerEvents(
|
// getServer().getPluginManager().registerEvents(
|
||||||
|
@ -25,12 +25,10 @@ public class OnInventoryClickEvent implements Listener {
|
|||||||
Player player = (Player) event.getWhoClicked();
|
Player player = (Player) event.getWhoClicked();
|
||||||
|
|
||||||
for (Arena arena : MemoryStorage.arenaList) {
|
for (Arena arena : MemoryStorage.arenaList) {
|
||||||
if (arena.playersInArena.contains(player) && !arena.seekers.contains(player)) {
|
if (arena.playersInArena.contains(player)) {
|
||||||
if (event.getSlot() == 8 || event.getSlot() == 39) {
|
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
Inventory inv = event.getInventory();
|
Inventory inv = event.getInventory();
|
||||||
InventoryView invView = event.getView();
|
InventoryView invView = event.getView();
|
||||||
|
@ -0,0 +1,25 @@
|
|||||||
|
package nl.Steffion.BlockHunt.Listeners;
|
||||||
|
|
||||||
|
import nl.Steffion.BlockHunt.Arena;
|
||||||
|
import nl.Steffion.BlockHunt.ArenaHandler;
|
||||||
|
import nl.Steffion.BlockHunt.MemoryStorage;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.event.EventHandler;
|
||||||
|
import org.bukkit.event.EventPriority;
|
||||||
|
import org.bukkit.event.Listener;
|
||||||
|
import org.bukkit.event.player.PlayerSwapHandItemsEvent;
|
||||||
|
|
||||||
|
public class OnPlayerSwapHandItemsEvent implements Listener {
|
||||||
|
@EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true)
|
||||||
|
public void onPlayerSwapHandItemsEvent(PlayerSwapHandItemsEvent event) {
|
||||||
|
// Early exit if no one is in any arena
|
||||||
|
if (ArenaHandler.noPlayersInArenas()) return;
|
||||||
|
|
||||||
|
Player player = event.getPlayer();
|
||||||
|
for (Arena arena : MemoryStorage.arenaList) {
|
||||||
|
if (arena.playersInArena.contains(player)) {
|
||||||
|
event.setCancelled(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user