package de.jatitv.commandguiv2.Spigot.Listener; import de.jatitv.commandguiv2.Spigot.Main; import de.jatitv.commandguiv2.Spigot.system.Give_UseItem; import de.jatitv.commandguiv2.Spigot.config.config.SelectConfig; import de.jatitv.commandguiv2.Spigot.system.database.Select_Database; import net.t2code.lib.Spigot.Lib.items.ItemVersion; import net.t2code.lib.Spigot.Lib.messages.send; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import org.bukkit.scheduler.BukkitRunnable; public class ItemChange { public static void itemChange(Player player, Boolean setCursor) { Integer slot; if (SelectConfig.UseItem_InventorySlotEnforce) { slot = SelectConfig.UseItem_InventorySlot; } else { if (Select_Database.selectSlot(player) == null) { slot = SelectConfig.UseItem_InventorySlot; } else { slot = Select_Database.selectSlot(player); } } if (!SelectConfig.UseItem_Enable) { return; } if (SelectConfig.UseItemGameModeProtection) { if (SelectConfig.UseItemGameModeMode.equalsIgnoreCase("blacklist") && SelectConfig.UseItemGameModeList.contains(player.getGameMode().toString())) { if (SelectConfig.UseItemGameModeRemoveItemWhenItIsDisabled) removeItem(player); send.debug(Main.plugin,"GameMode disabled: " +player.getName() +" " +player.getGameMode().toString()); return; } if (SelectConfig.UseItemGameModeMode.equalsIgnoreCase("whitelist") && !SelectConfig.UseItemGameModeList.contains(player.getGameMode().toString())) { if (SelectConfig.UseItemGameModeRemoveItemWhenItIsDisabled) removeItem(player); send.debug(Main.plugin,"GameMode disabled: " +player.getName() +" " +player.getGameMode().toString()); return; } } if (SelectConfig.UseItemWorldProtection) { if (SelectConfig.UseItemWorldMode.equalsIgnoreCase("blacklist") && SelectConfig.UseItemWorldList.contains(player.getWorld().getName())) { if (SelectConfig.UseItemWorldRemoveItemWhenItIsDisabled)removeItem(player); send.debug(Main.plugin,"World disabled: " +player.getName() +" " +player.getWorld().toString()); return; } if (SelectConfig.UseItemWorldMode.equalsIgnoreCase("whitelist") && !SelectConfig.UseItemWorldList.contains(player.getWorld().getName())) { if (SelectConfig.UseItemWorldRemoveItemWhenItIsDisabled)removeItem(player); send.debug(Main.plugin,"World disabled: " +player.getName() +" " +player.getWorld().toString()); return; } } if (SelectConfig.UseItem_GiveOnlyOnFirstJoin) { if (!SelectConfig.UseItem_AllowToggle || Select_Database.selectItemStatus(player)) { if (!player.hasPlayedBefore()) { new BukkitRunnable() { @Override public void run() { Give_UseItem.onGive(player); if (setCursor) { setCursor(player, slot); } } }.runTaskLater(Main.plugin, 1L * 1); if (SelectConfig.Cursor_ToGUIItem_OnlyOnFirstLogin || SelectConfig.Cursor_ToGUIItem_OnLogin) { player.getInventory().setHeldItemSlot(slot - 1); } } } send.debug(Main.plugin,"GiveOnlyOnFirstJoin: " +player.getName()); return; } if (!SelectConfig.UseItem_GiveOnEveryJoin) { send.debug(Main.plugin,"!GiveOnEveryJoin: " +player.getName()); return; } new BukkitRunnable() { @Override public void run() { removeItem(player); if (!SelectConfig.UseItem_AllowToggle || Select_Database.selectItemStatus(player)) { if (SelectConfig.UseItem_InventorySlotEnforce || player.getInventory().getItem(slot - 1) == null) { send.debug(Main.plugin,"Give: " +player.getName()); Give_UseItem.onGive(player); if (setCursor) { setCursor(player, slot); } } else if (SelectConfig.UseItem_InventorySlot_FreeSlot) { boolean empty = false; for (int i = 0; i < 9; i++) { if (player.getInventory().getItem(i) == null) { empty = true; break; } } if (empty) { Give_UseItem.onGiveADD(player); } } } } }.runTaskLater(Main.plugin, 1L * 1); } private static void setCursor(Player player, int slot) { send.debug(Main.plugin,"setCursor 1 Player: "+player.getName()); if (!SelectConfig.Cursor_ToGUIItem_OnLogin) { return; } send.debug(Main.plugin,"setCursor 2 Player: "+player.getName()); if (SelectConfig.Cursor_ToGUIItem_OnlyOnFirstLogin) { if (!player.hasPlayedBefore()) { player.getInventory().setHeldItemSlot(slot - 1); send.debug(Main.plugin,"setCursor 3 Player: "+player.getName()); } return; } send.debug(Main.plugin,"setCursor 4 Player: "+player.getName()); if (!SelectConfig.Bungee) { player.getInventory().setHeldItemSlot(slot - 1); send.debug(Main.plugin,"setCursor 5 Player: "+player.getName()); return; } send.debug(Main.plugin,"setCursor 6 Player: "+player.getName()); if (SelectConfig.UseItem_ServerChange) { player.getInventory().setHeldItemSlot(slot - 1); send.debug(Main.plugin,"setCursor 7 Player: "+player.getName()); return; } send.debug(Main.plugin,"setCursor 8 Player: "+player.getName()); send.debug(Main.plugin,"setCursor bungeejoinplayers: " +Main.bungeejoinplayers); send.debug(Main.plugin,"setCursor Player: " +player.getName()); if (Main.bungeejoinplayers.contains(player.getName())) { player.getInventory().setHeldItemSlot(slot - 1); send.debug(Main.plugin,"setCursor 9 Player: "+player.getName()); Main.bungeejoinplayers.remove(player.getName()); } } private static void removeItem(Player player) { for (int iam = 0; iam < player.getInventory().getSize() - 5; iam++) { ItemStack itm = player.getInventory().getItem(iam); if (itm != null) { if (itm.getType() == Material.valueOf(SelectConfig.UseItem_Material) || itm.getType() == ItemVersion.getHead()) { if (itm.getItemMeta().getDisplayName().equals(SelectConfig.UseItem_Name)) { player.getInventory().remove(itm); player.updateInventory(); break; } } } } } }