package tv.mineinthebox.essentials.events.players; import org.bukkit.Bukkit; import org.bukkit.GameMode; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerGameModeChangeEvent; import org.bukkit.inventory.ItemStack; import tv.mineinthebox.essentials.xEssentials; import tv.mineinthebox.essentials.events.customevents.GameModeInventoryChangeEvent; import tv.mineinthebox.essentials.interfaces.XPlayer; public class GameModeInvChangeEvent implements Listener { private final xEssentials pl; public GameModeInvChangeEvent(xEssentials pl) { this.pl = pl; } @EventHandler public void onChangeInventory(PlayerGameModeChangeEvent e) { XPlayer p = pl.getManagers().getPlayerManager().getPlayer(e.getPlayer().getName()); if(e.getNewGameMode() == GameMode.SURVIVAL) { p.saveCreativeInventory(); if(p.hasSurvivalInventory()) { ItemStack[] contents = p.getSurvivalInventory(); ItemStack[] armor = p.getSurvivalArmorInventory(); e.getPlayer().getInventory().setContents(contents); e.getPlayer().getInventory().setArmorContents(armor); } else { e.getPlayer().getInventory().clear(); } } else if(e.getNewGameMode() == GameMode.CREATIVE) { p.saveSurvivalInventory(); if(p.hasCreativeInventory()) { ItemStack[] contents = p.getCreativeInventory(); ItemStack[] armor = p.getCreativeArmorInventory(); e.getPlayer().getInventory().setContents(contents); e.getPlayer().getInventory().setArmorContents(armor); } else { e.getPlayer().getInventory().clear(); } } if(p.hasSurvivalInventory() && p.hasCreativeInventory()) { Bukkit.getPluginManager().callEvent(new GameModeInventoryChangeEvent(e.getPlayer(), p.getCreativeInventory(), e.getPlayer().getInventory().getContents(), e.getPlayer().getGameMode(), e.getNewGameMode())); } } }