117 lines
5.6 KiB
Java
117 lines
5.6 KiB
Java
package net.t2code.commandguiv2.Spigot.function.useItem;
|
|
|
|
import net.t2code.commandguiv2.Spigot.Main;
|
|
import net.t2code.commandguiv2.Spigot.config.config.ConfigValues;
|
|
import net.t2code.t2codelib.SPIGOT.api.messages.T2Csend;
|
|
import net.t2code.t2codelib.SPIGOT.api.yaml.T2CLibConfig;
|
|
import org.bukkit.Bukkit;
|
|
import org.bukkit.entity.Player;
|
|
|
|
public class ItemChange {
|
|
public static void itemChange(Player player, Boolean setCursor) {
|
|
T2Csend.debug(Main.getPlugin(), "Join: " + player.getName());
|
|
Integer slot;
|
|
if ((Boolean) ConfigValues.useItemInventorySlotEnforce.value) {
|
|
slot = (Integer) ConfigValues.useItemInventorySlot.value;
|
|
} else {
|
|
slot = Events.useItemSlotHashMap.get(player.getName());
|
|
}
|
|
T2Csend.debug(Main.getPlugin(), "Slot " + slot + " for player: " + player.getName());
|
|
|
|
if (!(Boolean) ConfigValues.useItemEnable.value) {
|
|
return;
|
|
}
|
|
UseItem.removeItem(player);
|
|
if (UseItem.protection(player, false)) return;
|
|
if ((Boolean) ConfigValues.useItemGiveOnlyOnFirstJoin.value) {
|
|
T2Csend.debug(Main.getPlugin(), "OnlyOnFirstJoin: " + player.getName());
|
|
if (!(Boolean) ConfigValues.useItemAllowToggle.value || Events.useItemHashMap.get(player.getName())) {
|
|
if (!player.hasPlayedBefore()) {
|
|
Bukkit.getScheduler().runTaskLaterAsynchronously(Main.getPlugin(), new Runnable() { //todo testen
|
|
@Override
|
|
public void run() {
|
|
UseItem.giveUseItem(player);
|
|
if (setCursor) {
|
|
setCursor(player, slot);
|
|
}
|
|
}
|
|
},1L);
|
|
if ((Boolean) ConfigValues.cursorToGUIItemOnlyOnFirstLogin.value || (Boolean) ConfigValues.cursorToGUIItemOnLogin.value) {
|
|
player.getInventory().setHeldItemSlot(slot - 1);
|
|
}
|
|
}
|
|
}
|
|
T2Csend.debug(Main.getPlugin(), "GiveOnlyOnFirstJoin: " + player.getName());
|
|
return;
|
|
}
|
|
if (!(Boolean) ConfigValues.useItemGiveOnEveryJoin.value) {
|
|
T2Csend.debug(Main.getPlugin(), "!GiveOnEveryJoin: " + player.getName());
|
|
return;
|
|
}
|
|
|
|
Bukkit.getScheduler().runTaskLaterAsynchronously(Main.getPlugin(), new Runnable() { //todo testen
|
|
@Override
|
|
public void run() {
|
|
Boolean pln = Events.useItemHashMap.get(player.getName());
|
|
if (pln == null) return;
|
|
if (!(Boolean) ConfigValues.useItemAllowToggle.value || pln) {
|
|
if ((Boolean) ConfigValues.useItemInventorySlotEnforce.value || player.getInventory().getItem(slot - 1) == null) {
|
|
T2Csend.debug(Main.getPlugin(), "Give: " + player.getName());
|
|
UseItem.giveUseItem(player);
|
|
if (setCursor) {
|
|
setCursor(player, slot);
|
|
}
|
|
} else if ((Boolean) ConfigValues.useItemInventorySlotFreeSlot.value) {
|
|
boolean empty = false;
|
|
for (int i = 0; i < 9; i++) {
|
|
if (player.getInventory().getItem(i) == null) {
|
|
empty = true;
|
|
break;
|
|
}
|
|
}
|
|
if (empty) {
|
|
UseItem.addUseItem(player);
|
|
}
|
|
} else T2Csend.debug(Main.getPlugin(), "give skip [1]: " + player.getName());
|
|
} else T2Csend.debug(Main.getPlugin(), "give skip [2]: " + player.getName());
|
|
}
|
|
}, 1L);
|
|
}
|
|
|
|
private static void setCursor(Player player, int slot) {
|
|
T2Csend.debug(Main.getPlugin(), "setCursor 1 Player: " + player.getName());
|
|
|
|
if (!(Boolean) ConfigValues.cursorToGUIItemOnLogin.value) {
|
|
return;
|
|
}
|
|
T2Csend.debug(Main.getPlugin(), "setCursor 2 Player: " + player.getName());
|
|
if ((Boolean) ConfigValues.cursorToGUIItemOnlyOnFirstLogin.value) {
|
|
if (!player.hasPlayedBefore()) {
|
|
player.getInventory().setHeldItemSlot(slot - 1);
|
|
T2Csend.debug(Main.getPlugin(), "setCursor 3 Player: " + player.getName());
|
|
}
|
|
return;
|
|
}
|
|
T2Csend.debug(Main.getPlugin(), "setCursor 4 Player: " + player.getName());
|
|
if (!T2CLibConfig.getBungee()) {
|
|
player.getInventory().setHeldItemSlot(slot - 1);
|
|
T2Csend.debug(Main.getPlugin(), "setCursor 5 Player: " + player.getName());
|
|
return;
|
|
}
|
|
T2Csend.debug(Main.getPlugin(), "setCursor 6 Player: " + player.getName());
|
|
if ((Boolean) ConfigValues.useItemServerChange.value) {
|
|
player.getInventory().setHeldItemSlot(slot - 1);
|
|
T2Csend.debug(Main.getPlugin(), "setCursor 7 Player: " + player.getName());
|
|
return;
|
|
}
|
|
T2Csend.debug(Main.getPlugin(), "setCursor 8 Player: " + player.getName());
|
|
T2Csend.debug(Main.getPlugin(), "setCursor bungeejoinplayers: " + Main.bungeejoinplayers);
|
|
T2Csend.debug(Main.getPlugin(), "setCursor Player: " + player.getName());
|
|
if (Main.bungeejoinplayers.contains(player.getName())) {
|
|
player.getInventory().setHeldItemSlot(slot - 1);
|
|
T2Csend.debug(Main.getPlugin(), "setCursor 9 Player: " + player.getName());
|
|
Main.bungeejoinplayers.remove(player.getName());
|
|
}
|
|
}
|
|
}
|