package de.jatitv.commandguiv2.Spigot.useItem; import de.jatitv.commandguiv2.Spigot.Main; import de.jatitv.commandguiv2.Spigot.config.config.SelectConfig; import net.t2code.lib.Spigot.Lib.messages.send; import org.bukkit.entity.Player; import org.bukkit.scheduler.BukkitRunnable; public class ItemChange { public static void itemChange(Player player, Boolean setCursor) { Integer slot; if (SelectConfig.getUseItem_InventorySlotEnforce()) { slot = SelectConfig.getUseItem_InventorySlot(); } else { slot = Events.useItemSlotHashMap.get(player.getName()); } if (!SelectConfig.getUseItem_Enable()) { return; } UseItem.removeItem(player); if (UseItem.protection(player, false)) return; if (SelectConfig.getUseItem_GiveOnlyOnFirstJoin()) { if (!SelectConfig.getUseItem_AllowToggle() || Events.useItemHashMap.get(player.getName())) { if (!player.hasPlayedBefore()) { new BukkitRunnable() { @Override public void run() { UseItem.giveUseItem(player); if (setCursor) { setCursor(player, slot); } } }.runTaskLater(Main.plugin, 1L * 1); if (SelectConfig.getCursor_ToGUIItem_OnlyOnFirstLogin() || SelectConfig.getCursor_ToGUIItem_OnLogin()) { player.getInventory().setHeldItemSlot(slot - 1); } } } send.debug(Main.plugin, "GiveOnlyOnFirstJoin: " + player.getName()); return; } if (!SelectConfig.getUseItem_GiveOnEveryJoin()) { send.debug(Main.plugin, "!GiveOnEveryJoin: " + player.getName()); return; } new BukkitRunnable() { @Override public void run() { Boolean pln = Events.useItemHashMap.get(player.getName()); if (pln == null) return; if (!SelectConfig.getUseItem_AllowToggle() || pln) { if (SelectConfig.getUseItem_InventorySlotEnforce() || player.getInventory().getItem(slot - 1) == null) { send.debug(Main.plugin, "Give: " + player.getName()); UseItem.giveUseItem(player); if (setCursor) { setCursor(player, slot); } } else if (SelectConfig.getUseItem_InventorySlot_FreeSlot()) { boolean empty = false; for (int i = 0; i < 9; i++) { if (player.getInventory().getItem(i) == null) { empty = true; break; } } if (empty) { UseItem.addUseItem(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.getCursor_ToGUIItem_OnLogin()) { return; } send.debug(Main.plugin, "setCursor 2 Player: " + player.getName()); if (SelectConfig.getCursor_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.getBungee()) { 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.getUseItem_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()); } } }