T2C-CommandGUI/CommandGUI V2/src/main/java/net/t2code/commandguiv2/Spigot/config/config/Config.java

205 lines
10 KiB
Java

package net.t2code.commandguiv2.Spigot.config.config;
import net.t2code.commandguiv2.Spigot.Main;
import net.t2code.commandguiv2.Spigot.config.languages.SelectMessages;
import net.t2code.commandguiv2.Spigot.enums.StorageEnum;
import net.t2code.commandguiv2.Util;
import net.t2code.t2codelib.SPIGOT.api.items.T2CitemVersion;
import net.t2code.t2codelib.SPIGOT.api.messages.T2Csend;
import net.t2code.t2codelib.SPIGOT.api.minecraftVersion.T2CmcVersion;
import org.bukkit.Material;
import org.bukkit.Sound;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
public enum Config {
configVersion("ConfigVersion", 6, true),
debug("Plugins.Debug", false, false),
updateCheckOnJoin("Plugin.updateCheck.onJoin", true, false),
updateCheckSeePreReleaseUpdates("Plugin.updateCheck.seePreReleaseUpdates", true, false),
updateCheckTimeInterval("Plugin.updateCheck.timeInterval", 60, false),
helpAlias("Plugin.HelpAlias", true, false),
adminSubCommand("Plugin.AdminSubCommand", "admin", false),
language("Plugin.language", "english", false),
currency("Plugin.Currency", "$", false),
defaultGUI("Plugin.DefaultGUI", "default", false),
storage("Storage.Type", StorageEnum.SQLITE.name(), false),
mysqlIp("Storage.MySQL.IP", "localhost", false),
mysqlPort("Storage.MySQL.Port", 3306, false),
mysqlDatabase("Storage.MySQL.Database", "database", false),
mysqlUser("Storage.MySQL.User", "root", false),
mysqlPassword("Storage.MySQL.Password", "password", false),
mysqlSSL("Storage.MySQL.SSL", false, false),
useItemEnable("UseItem.Enable", true, false),
useItemAllowToggle("UseItem.AllowToggle", true, false),
useItemAllowSetSlot("UseItem.AllowSetSlot", true, false),
useItemBlockMoveAndDrop("UseItem.BlockMoveAndDrop", true, false),
useItemOpenGUI("UseItem.OpenGUI", "default", false),
useItemPermission("UseItem.Permission.NeededToUse", true, false),
useItemKeepAtCommandClear("UseItem.KeepAtCommandClear", true, false),
useItemInventorySlotFreeSlot("UseItem.InventorySlot.FreeSlot", 1, false),
useItemInventorySlot("UseItem.InventorySlot.Slot", false, false),
useItemInventorySlotEnforce("UseItem.InventorySlot.SlotEnforce", false, false),
useItemMaterial("UseItem.Item.Material", "paper", false),
useItemPlayerHeadEnable("UseItem.Item.PlayerHead.Enable", false, false),
useItemBase64Enable("UseItem.Item.PlayerHead.Base64.Enable", false, false),
useItemBase64value("UseItem.Item.PlayerHead.Base64.Base64Value", "", false),
useItemPlayerWhoHasOpenedTheGUI("UseItem.Item.PlayerHead.PlayerWhoHasOpenedTheGUI", false, false),
useItemPlayerName("UseItem.Item.PlayerHead.PlayerName", "", false),
useItemName("UseItem.Item.Name", "&bDefault &6GUI", false),
useItemLore("UseItem.Item.Lore", Collections.singletonList("&eThis is an example GUI"), false),
useItemGiveOnEveryJoin("UseItem.Join.GiveOnEveryJoin", true, false),
useItemGiveOnlyOnFirstJoin("UseItem.Join.GiveOnlyOnFirstJoin", false, false),
cursorToGUIItemOnLogin("UseItem.Join.Cursor.ToGUIItem.OnLogin.Enable", true, false),
cursorToGUIItemOnlyOnFirstLogin("UseItem.Join.Cursor.ToGUIItem.Spigot.OnlyOnFirstLogin", true, false),
useItemServerChange("UseItem.Join.Cursor.ToGUIItem.Bungee.OnServerChange", false, false),
toggleItemOnOrYesBase64("Toggle.Items.OnOrYes.Item.Base64.Enable", false, false),
toggleItemOnOrYesBase64Value("Toggle.Items.OnOrYes.Item.Base64.Base64Value", "", false),
toggleItemOnOrYesMaterial("Toggle.Items.OnOrYes.Item.Material", Main.legacy ? "WOOL,5" : T2CitemVersion.getGreenWool().getType().toString(), false),
toggleItemOffOrNoBase64("Toggle.Items.OffOrNo.Item.Base64.Enable", false, false),
toggleItemOffOrNoBase64Value("Toggle.Items.OffOrNo.Item.Base64.Base64Value", T2CitemVersion.getGreenWool().getType().toString(), false),
toggleItemOffOrNoMaterial("Toggle.Items.OffOrNo.Item.Material", Main.legacy ? "WOOL,14" : T2CitemVersion.getRedWool().getType().toString(), false),
togglePermTrue("Toggle.Permission.Commands.True", "luckperms user [player] permission set [perm] true", false),
togglePermFalse("Toggle.Permission.Commands.False", "luckperms user [player] permission set [perm] false", false),
placeholderTrue("Placeholder.True", "&2true", false),
placeholderFalse("Placeholder.False", "&4false", false),
soundEnable("Sound.Enable", true, false),
soundOpenInventoryEnable("Sound.OpenInventory.Enable", true, false),
soundOpenInventoryInput("Sound.OpenInventory.Sound", getOpenInventory().toString(), false),
soundClickEnable("Sound.Click.Enable", true, false),
soundClickInput("Sound.Click.Sound", getClick().toString(), false),
soundNoMoneyEnable("Sound.NoMoney.Enable", true, false),
soundNoMoneyInput("Sound.NoMoney.Sound", getNoMoney().toString(), false),
soundNoInventorySpaceEnable("Sound.NoInventorySpace.Enable", true, false),
soundNoInventorySpaceInput("Sound.NoInventorySpace.Sound", getNoInventorySpace().toString(), false),
soundGiveEnable("Sound.Give.Enable", true, false),
soundGiveInput("Sound.Give.Sound", getGive().toString(), false),
soundPlayerNotFoundEnable("Sound.PlayerNotFound.Enable", true, false),
soundPlayerNotFoundInput("Sound.PlayerNotFound.Sound", getPlayerNotFound().toString(), false),
useItemGameModeChangeEnable("Advanced.UseItem.GameMode.Change.Enable", true, false),
useItemGameModeChangeDelayInTicks("Advanced.UseItem.GameMode.Change.DelayInTicks", 1, false),
useItemGameModeProtection("Advanced.UseItem.GameMode.Protection.Enable", false, false),
useItemGameModeRemoveItemWhenItIsDisabled("Advanced.UseItem.GameMode.Protection.RemoveItemWhenItIsDisabled", false, false),
useItemGameModeMode("Advanced.UseItem.GameMode.Protection.Mode", "blacklist", false),
useItemGameModeList("Advanced.UseItem.GameMode.Protection.List", Arrays.asList("CREATIVE", "Spectator"), false),
useItemWorldChangeEnable("Advanced.UseItem.World.Change.Enable", true, false),
useItemWorldChangeDelayInTicks("Advanced.UseItem.World.Change.DelayInTicks", 1, false),
useItemWorldProtection("Advanced.UseItem.World.Protection.Enable", false, false),
useItemWorldRemoveItemWhenItIsDisabled("Advanced.UseItem.World.Protection.RemoveItemWhenItIsDisabled", false, false),
useItemWorldMode("Advanced.UseItem.World.Protection.Mode", "blacklist", false),
useItemWorldList("Advanced.UseItem.World.Protection.List", Arrays.asList("World1", "World2"), false),
disableInfoBySneak("Advanced.UseItem.DisableInfoBySneak", false, false),
useItemItemBlockBlacklist("Advanced.UseItem.ItemBlockBlacklist", getItemBlockBlacklist(), false);
public final String path;
public Object value;
public final boolean forceSet;
Config(String path, Object defaultValue, boolean forceSet) {
this.path = path;
this.value = defaultValue;
this.forceSet = forceSet;
}
public static void sound() {
check(soundOpenInventoryInput,getOpenInventory());
check(soundNoMoneyInput,getNoMoney());
check(soundNoInventorySpaceInput,getNoInventorySpace());
check(soundGiveInput,getGive());
check(soundPlayerNotFoundInput,getPlayerNotFound());
}
private static void check(Config object, Sound defaultSound){
try {
Sound sound = Sound.valueOf(String.valueOf(object.value));
if (sound != null) {
object.value = defaultSound;
}
} catch (Exception e) {
T2Csend.console("§4\n§4\n§4\n" + SelectMessages.SoundNotFound.replace("[prefix]", Util.getPrefix())
.replace("[sound]", "§8OpenInventory: §6" + object.value) + "§4\n§4\n§4\n");
object.value = defaultSound;
}
}
private static Sound getOpenInventory() {
if (T2CmcVersion.isMc1_8()) {
return Sound.valueOf("CHEST_OPEN");
} else return Sound.valueOf("BLOCK_CHEST_OPEN");
}
private static Sound getClick() {
if (T2CmcVersion.isMc1_8()) {
return Sound.valueOf("NOTE_STICKS");
} else if (T2CmcVersion.isMc1_9() || T2CmcVersion.isMc1_10() || T2CmcVersion.isMc1_11() || T2CmcVersion.isMc1_12()) {
return Sound.valueOf("BLOCK_NOTE_HAT");
} else return Sound.valueOf("BLOCK_NOTE_BLOCK_HAT");
}
private static Sound getNoMoney() {
if (T2CmcVersion.isMc1_8()) {
return Sound.valueOf("NOTE_PIANO");
} else if (T2CmcVersion.isMc1_9() || T2CmcVersion.isMc1_10() || T2CmcVersion.isMc1_11() || T2CmcVersion.isMc1_12()) {
return Sound.valueOf("BLOCK_NOTE_HARP");
} else return Sound.valueOf("BLOCK_NOTE_BLOCK_HARP");
}
private static Sound getNoInventorySpace() {
if (T2CmcVersion.isMc1_8()) {
return Sound.valueOf("NOTE_PIANO");
} else if (T2CmcVersion.isMc1_9() || T2CmcVersion.isMc1_10() || T2CmcVersion.isMc1_11() || T2CmcVersion.isMc1_12()) {
return Sound.valueOf("BLOCK_NOTE_HARP");
} else return Sound.valueOf("BLOCK_NOTE_BLOCK_HARP");
}
private static Sound getGive() {
if (T2CmcVersion.isMc1_8()) {
return Sound.valueOf("LEVEL_UP");
} else return Sound.valueOf("ENTITY_PLAYER_LEVELUP");
}
private static Sound getPlayerNotFound() {
if (T2CmcVersion.isMc1_8()) {
return Sound.valueOf("NOTE_PIANO");
} else if (T2CmcVersion.isMc1_9() || T2CmcVersion.isMc1_10() || T2CmcVersion.isMc1_11() || T2CmcVersion.isMc1_12()) {
return Sound.valueOf("BLOCK_NOTE_HARP");
} else return Sound.valueOf("BLOCK_NOTE_BLOCK_HARP");
}
private static List<String> getItemBlockBlacklist() {
List<String> materialList = Arrays.asList("BUTTON", "DOOR", "FENCE", "CHEST", "FURNACE", "NOTE_BLOCK", "CRAFTING_TABLE", "WORKBENCH",
"ANVIL", "LOOM", "COMPOSTER", "BARREL", "SMOKER", "BLAST_FURNACE", "CARTOGRAPHY_TABLE", "FLETCHING_TABLE", "GRINDSTONE",
"SMITHING_TABLE", "STONECUTTER", "HOPPER", "DISPENSER", "DROPPER", "REPEATER", "COMPARATOR", "LEVER", "DAYLIGHT_DETECTOR", "BREWING_STAND", "TRAPDOOR", "BEACON"
);
List<String> materialBlacklist = new ArrayList<>();
for (Material material : Material.values()) {
if (materialList.contains(material.toString())) materialBlacklist.add(material.toString());
}
return materialBlacklist;
}
}