package tv.mineinthebox.essentials.events.backpack; import org.bukkit.ChatColor; import org.bukkit.Sound; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.block.Action; import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.inventory.InventoryCloseEvent; import org.bukkit.event.player.PlayerInteractEvent; import tv.mineinthebox.essentials.xEssentials; import tv.mineinthebox.essentials.instances.Backpack; import tv.mineinthebox.essentials.interfaces.EventTemplate; public class OpenBackPackEvent extends EventTemplate implements Listener { private final xEssentials pl; public OpenBackPackEvent(xEssentials pl) { super(pl, "Backpack"); this.pl = pl; } @EventHandler public void interact(PlayerInteractEvent e) { if(e.getAction() == Action.LEFT_CLICK_BLOCK || e.getAction() == Action.LEFT_CLICK_AIR || e.getAction() == Action.RIGHT_CLICK_BLOCK || e.getAction() == Action.RIGHT_CLICK_AIR) { if(e.getItem() != null) { if(pl.getManagers().getBackPackManager().isBackpack(e.getItem())) { Backpack pack = pl.getManagers().getBackPackManager().getBackpackByItem(e.getItem()); sendMessage(e.getPlayer(), ChatColor.GREEN + "opening backpack"); e.getPlayer().playSound(e.getPlayer().getLocation(), Sound.BLOCK_CHEST_OPEN, 1F, 1F); e.getPlayer().openInventory(pack.getInventory()); e.setCancelled(true); } } } } @EventHandler public void onMove(InventoryClickEvent e) { if(e.getCurrentItem() != null) { if(pl.getManagers().getBackPackManager().getBackpackById(e.getInventory().getTitle()) != null) { if(pl.getManagers().getBackPackManager().isBackpack(e.getCurrentItem())) { sendMessage((Player)e.getWhoClicked(), ChatColor.RED + "you cannot move backpacks"); e.setCancelled(true); } } } } @EventHandler public void onClose(InventoryCloseEvent e) { Backpack pack = pl.getManagers().getBackPackManager().getBackpackById(e.getInventory().getTitle()); if(pack instanceof Backpack) { pack.setContents(e.getInventory().getContents()); e.getPlayer().setItemInHand(pack.getBackPackItem()); ((Player)e.getPlayer()).playSound(e.getPlayer().getLocation(), Sound.BLOCK_CHEST_CLOSE, 1F, 1F); sendMessage((Player)e.getPlayer(), ChatColor.GREEN + "closing backpack."); } } }