forbid using chests in pixelblocks
This commit is contained in:
		| @@ -35,6 +35,7 @@ public final class PixelBlocks extends JavaPlugin { | ||||
|         getServer().getPluginManager().registerEvents(new EntityExplodeListener(), this); | ||||
|         getServer().getPluginManager().registerEvents(new BlockExplodeListener(), this); | ||||
|         getServer().getPluginManager().registerEvents(new PlayerPortalListener(), this); | ||||
|         getServer().getPluginManager().registerEvents(new InventoryListener(), this); | ||||
|         getServer().getPluginManager().registerEvents(new PlayerChangeWorldListener(), this); | ||||
|  | ||||
|         Objects.requireNonNull(getCommand("createpixelblock")).setExecutor(new CreatePixelBlockCommand()); | ||||
|   | ||||
| @@ -0,0 +1,74 @@ | ||||
| package eu.mhsl.minecraft.pixelblocks.listeners; | ||||
|  | ||||
| import org.bukkit.Bukkit; | ||||
| import org.bukkit.World; | ||||
| import org.bukkit.event.EventHandler; | ||||
| import org.bukkit.event.Listener; | ||||
| import org.bukkit.event.inventory.*; | ||||
| import org.bukkit.inventory.CraftingInventory; | ||||
| import org.bukkit.inventory.PlayerInventory; | ||||
|  | ||||
| import java.util.Arrays; | ||||
| import java.util.Objects; | ||||
|  | ||||
| public class InventoryListener implements Listener { | ||||
|     @EventHandler | ||||
|     static void onInventoryOpen(InventoryOpenEvent event) { | ||||
|         World playerWorld = event.getPlayer().getWorld(); | ||||
|         World[] standardWorlds = {Bukkit.getWorlds().get(0), Bukkit.getWorlds().get(1), Bukkit.getWorlds().get(2)}; | ||||
|  | ||||
|         if(!Arrays.stream(standardWorlds).toList().contains(playerWorld)) { | ||||
|             if(!(event.getInventory() instanceof PlayerInventory) && !(event.getInventory() instanceof CraftingInventory)) { | ||||
|                 event.setCancelled(true); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     @EventHandler | ||||
|     static void onInventoryDrag(InventoryDragEvent event) { | ||||
|         World playerWorld = event.getWhoClicked().getWorld(); | ||||
|         World[] standardWorlds = {Bukkit.getWorlds().get(0), Bukkit.getWorlds().get(1), Bukkit.getWorlds().get(2)}; | ||||
|  | ||||
|         if(!Arrays.stream(standardWorlds).toList().contains(playerWorld)) { | ||||
|             if(!(event.getInventory() instanceof PlayerInventory) && !(event.getInventory() instanceof CraftingInventory)) { | ||||
|                 event.setCancelled(true); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     @EventHandler | ||||
|     static void onInventoryClick(InventoryClickEvent event) { | ||||
|         World playerWorld = event.getWhoClicked().getWorld(); | ||||
|         World[] standardWorlds = {Bukkit.getWorlds().get(0), Bukkit.getWorlds().get(1), Bukkit.getWorlds().get(2)}; | ||||
|  | ||||
|         if(!Arrays.stream(standardWorlds).toList().contains(playerWorld)) { | ||||
|             if(!(event.getInventory() instanceof PlayerInventory) && !(event.getInventory() instanceof CraftingInventory)) { | ||||
|                 event.setCancelled(true); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     @EventHandler | ||||
|     static void onInventoryInteract(InventoryInteractEvent event) { | ||||
|         World playerWorld = event.getWhoClicked().getWorld(); | ||||
|         World[] standardWorlds = {Bukkit.getWorlds().get(0), Bukkit.getWorlds().get(1), Bukkit.getWorlds().get(2)}; | ||||
|  | ||||
|         if(!Arrays.stream(standardWorlds).toList().contains(playerWorld)) { | ||||
|             if(!(event.getInventory() instanceof PlayerInventory) && !(event.getInventory() instanceof CraftingInventory)) { | ||||
|                 event.setCancelled(true); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     @EventHandler | ||||
|     static void onInventoryMoveItem(InventoryMoveItemEvent event) { | ||||
|         World playerWorld = Objects.requireNonNull(event.getDestination().getLocation()).getWorld(); | ||||
|         World[] standardWorlds = {Bukkit.getWorlds().get(0), Bukkit.getWorlds().get(1), Bukkit.getWorlds().get(2)}; | ||||
|  | ||||
|         if(!Arrays.stream(standardWorlds).toList().contains(playerWorld)) { | ||||
|             if(!(event.getDestination() instanceof PlayerInventory) && !(event.getDestination() instanceof CraftingInventory)) { | ||||
|                 event.setCancelled(true); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| } | ||||
| @@ -169,6 +169,8 @@ public class PixelBlock { | ||||
|                 } | ||||
|         ); | ||||
|  | ||||
|          | ||||
|  | ||||
|         this.remove(); | ||||
|         this.pixelBlockLocation.getWorld().playSound(this.pixelBlockLocation, Sound.BLOCK_COPPER_BULB_BREAK, 1.0F, 30); | ||||
|         this.pixelBlockLocation.getWorld().dropItem(this.pixelBlockLocation, this.getAsItem()); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user