From c2be0ef391ad391caf7b154b230ef74c317c0f0d Mon Sep 17 00:00:00 2001 From: Ajneb97 Date: Sun, 20 Jul 2025 17:40:04 -0400 Subject: [PATCH] 1.18.3 --- pom.xml | 15 ++- src/main/java/pk/ajneb97/PlayerKits2.java | 1 + .../pk/ajneb97/configs/ConfigsManager.java | 2 +- .../configs/DataFolderConfigManager.java | 66 +++++++++ .../configs/InventoryConfigManager.java | 5 +- .../pk/ajneb97/configs/KitsConfigManager.java | 127 +++--------------- .../pk/ajneb97/configs/MainConfigManager.java | 5 +- .../configs/MessagesConfigManager.java | 5 +- .../ajneb97/configs/PlayersConfigManager.java | 90 +++++-------- .../CommonConfig.java} | 10 +- .../InventoryRequirementsManager.java | 10 +- .../pk/ajneb97/managers/MigrationManager.java | 2 +- .../edit/InventoryEditKitItemsManager.java | 8 +- .../java/pk/ajneb97/utils/PlayerUtils.java | 8 +- src/main/resources/plugin.yml | 2 +- 15 files changed, 158 insertions(+), 198 deletions(-) create mode 100644 src/main/java/pk/ajneb97/configs/DataFolderConfigManager.java rename src/main/java/pk/ajneb97/configs/{CustomConfig.java => model/CommonConfig.java} (94%) diff --git a/pom.xml b/pom.xml index 55b7d3f..67c4df7 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ pk.ajneb97 PlayerKits2 - 1.0-SNAPSHOT + 1.18.3 21 @@ -37,7 +37,7 @@ org.spigotmc spigot-api - 1.21.7-R0.1-SNAPSHOT + 1.21.8-R0.1-SNAPSHOT provided @@ -67,14 +67,23 @@ + + + src/main/resources + true + + + + maven-resources-plugin + 3.3.1 + maven-compiler-plugin 3.8.1 1.8 1.8 - 8 diff --git a/src/main/java/pk/ajneb97/PlayerKits2.java b/src/main/java/pk/ajneb97/PlayerKits2.java index a539d88..033ba4c 100644 --- a/src/main/java/pk/ajneb97/PlayerKits2.java +++ b/src/main/java/pk/ajneb97/PlayerKits2.java @@ -140,6 +140,7 @@ public class PlayerKits2 extends JavaPlugin { break; case "1.21.6": case "1.21.7": + case "1.21.8": serverVersion = ServerVersion.v1_21_R5; break; default: diff --git a/src/main/java/pk/ajneb97/configs/ConfigsManager.java b/src/main/java/pk/ajneb97/configs/ConfigsManager.java index c32e438..7a6ae5f 100644 --- a/src/main/java/pk/ajneb97/configs/ConfigsManager.java +++ b/src/main/java/pk/ajneb97/configs/ConfigsManager.java @@ -61,7 +61,7 @@ public class ConfigsManager { if(!inventoryConfigManager.reloadConfig()){ return false; } - kitsConfigManager.reloadConfigs(); + kitsConfigManager.loadConfigs(); if(plugin.getMySQLConnection() == null){ plugin.reloadPlayerDataSaveTask(); } diff --git a/src/main/java/pk/ajneb97/configs/DataFolderConfigManager.java b/src/main/java/pk/ajneb97/configs/DataFolderConfigManager.java new file mode 100644 index 0000000..77557cd --- /dev/null +++ b/src/main/java/pk/ajneb97/configs/DataFolderConfigManager.java @@ -0,0 +1,66 @@ +package pk.ajneb97.configs; + + +import pk.ajneb97.PlayerKits2; +import pk.ajneb97.configs.model.CommonConfig; + +import java.io.File; +import java.util.ArrayList; + +public abstract class DataFolderConfigManager { + protected String folderName; + protected PlayerKits2 plugin; + + public DataFolderConfigManager(PlayerKits2 plugin, String folderName){ + this.plugin = plugin; + this.folderName = folderName; + } + + public void configure() { + createFolder(); + loadConfigs(); + } + + public void createFolder(){ + File folder; + try { + folder = new File(plugin.getDataFolder() + File.separator + folderName); + if(!folder.exists()){ + folder.mkdirs(); + createFiles(); + } + } catch(SecurityException e) { + folder = null; + } + } + + public CommonConfig getConfigFile(String pathName) { + CommonConfig commonConfig = new CommonConfig(pathName, plugin, folderName, true); + commonConfig.registerConfig(); + return commonConfig; + } + + public ArrayList getConfigs(){ + ArrayList configs = new ArrayList<>(); + + String pathFile = plugin.getDataFolder() + File.separator + folderName; + File folder = new File(pathFile); + File[] listOfFiles = folder.listFiles(); + for (File file : listOfFiles) { + if (file.isFile()) { + String pathName = file.getName(); + CommonConfig commonConfig = new CommonConfig(pathName, plugin, folderName, true); + commonConfig.registerConfig(); + configs.add(commonConfig); + } + } + + return configs; + } + + public abstract void createFiles(); + + public abstract void loadConfigs(); + + public abstract void saveConfigs(); +} diff --git a/src/main/java/pk/ajneb97/configs/InventoryConfigManager.java b/src/main/java/pk/ajneb97/configs/InventoryConfigManager.java index 5aaee29..92bfb79 100644 --- a/src/main/java/pk/ajneb97/configs/InventoryConfigManager.java +++ b/src/main/java/pk/ajneb97/configs/InventoryConfigManager.java @@ -2,6 +2,7 @@ package pk.ajneb97.configs; import org.bukkit.configuration.file.FileConfiguration; import pk.ajneb97.PlayerKits2; +import pk.ajneb97.configs.model.CommonConfig; import pk.ajneb97.managers.KitItemManager; import pk.ajneb97.model.inventory.ItemKitInventory; import pk.ajneb97.model.inventory.KitInventory; @@ -13,12 +14,12 @@ import java.util.List; public class InventoryConfigManager { private PlayerKits2 plugin; - private CustomConfig configFile; + private CommonConfig configFile; public InventoryConfigManager(PlayerKits2 plugin){ this.plugin = plugin; - this.configFile = new CustomConfig("inventory.yml",plugin,null, false); + this.configFile = new CommonConfig("inventory.yml",plugin,null, false); this.configFile.registerConfig(); if(this.configFile.isFirstTime() && OtherUtils.isLegacy()){ checkAndFix(); diff --git a/src/main/java/pk/ajneb97/configs/KitsConfigManager.java b/src/main/java/pk/ajneb97/configs/KitsConfigManager.java index 38a794b..1d1c0ad 100644 --- a/src/main/java/pk/ajneb97/configs/KitsConfigManager.java +++ b/src/main/java/pk/ajneb97/configs/KitsConfigManager.java @@ -2,6 +2,7 @@ package pk.ajneb97.configs; import org.bukkit.configuration.file.FileConfiguration; import pk.ajneb97.PlayerKits2; +import pk.ajneb97.configs.model.CommonConfig; import pk.ajneb97.managers.KitItemManager; import pk.ajneb97.model.Kit; import pk.ajneb97.model.KitAction; @@ -11,111 +12,25 @@ import java.io.File; import java.util.ArrayList; import java.util.List; -public class KitsConfigManager { - private ArrayList configFiles; - private String folderName; - private PlayerKits2 plugin; +public class KitsConfigManager extends DataFolderConfigManager{ public KitsConfigManager(PlayerKits2 plugin, String folderName){ - this.plugin = plugin; - this.folderName = folderName; - this.configFiles = new ArrayList<>(); + super(plugin, folderName); } - public void configure() { - createFolder(); - reloadConfigs(); - } - - public void reloadConfigs(){ - this.configFiles = new ArrayList<>(); - registerConfigFiles(); - loadConfigs(); - } - - public void createFolder(){ - File folder; - try { - folder = new File(plugin.getDataFolder() + File.separator + folderName); - if(!folder.exists()){ - folder.mkdirs(); - createDefaultConfigs(); - } - } catch(SecurityException e) { - folder = null; - } - } - - public void createDefaultConfigs(){ - new CustomConfig("diamond.yml",plugin,folderName,false).registerConfig(); - new CustomConfig("iron.yml",plugin,folderName,false).registerConfig(); - new CustomConfig("food.yml",plugin,folderName,false).registerConfig(); - } - - public void saveConfigFiles() { - for(int i=0;i getConfigs(){ - return this.configFiles; - } - - public boolean fileAlreadyRegistered(String pathName) { - for(int i=0;i kits = new ArrayList(); - for(CustomConfig configFile : configFiles){ + ArrayList kits = new ArrayList<>(); + + ArrayList configFiles = getConfigs(); + for(CommonConfig configFile : configFiles){ FileConfiguration config = configFile.getConfig(); String name = configFile.getPath().replace(".yml",""); @@ -126,17 +41,14 @@ public class KitsConfigManager { plugin.getKitsManager().setKits(kits); } + @Override public void saveConfigs(){ } public void saveConfig(Kit kit){ String kitName = kit.getName(); - CustomConfig kitConfig = getConfigFile(kitName+".yml"); - if(kitConfig == null) { - registerConfigFile(kitName+".yml"); - kitConfig = getConfigFile(kitName+".yml"); - } + CommonConfig kitConfig = getConfigFile(kitName+".yml"); FileConfiguration config = kitConfig.getConfig(); @@ -217,15 +129,8 @@ public class KitsConfigManager { } public void removeKitFile(String kitName){ - CustomConfig kitConfig = getConfigFile(kitName+".yml"); - if(kitConfig == null){ - return; - } - - File file = new File(plugin.getDataFolder()+File.separator+folderName,kitConfig.getPath()); + File file = new File(plugin.getDataFolder()+File.separator+folderName,kitName+".yml"); file.delete(); - - removeConfigKit(kitConfig.getPath()); } // mainPath must include a "." at the end diff --git a/src/main/java/pk/ajneb97/configs/MainConfigManager.java b/src/main/java/pk/ajneb97/configs/MainConfigManager.java index afbb772..947372d 100644 --- a/src/main/java/pk/ajneb97/configs/MainConfigManager.java +++ b/src/main/java/pk/ajneb97/configs/MainConfigManager.java @@ -2,6 +2,7 @@ package pk.ajneb97.configs; import org.bukkit.configuration.file.FileConfiguration; import pk.ajneb97.PlayerKits2; +import pk.ajneb97.configs.model.CommonConfig; import pk.ajneb97.model.Kit; import java.io.IOException; @@ -12,7 +13,7 @@ import java.nio.file.Paths; public class MainConfigManager { private PlayerKits2 plugin; - private CustomConfig configFile; + private CommonConfig configFile; //Options private Kit newKitDefault; @@ -28,7 +29,7 @@ public class MainConfigManager { public MainConfigManager(PlayerKits2 plugin){ this.plugin = plugin; - this.configFile = new CustomConfig("config.yml",plugin,null, false); + this.configFile = new CommonConfig("config.yml",plugin,null, false); this.configFile.registerConfig(); checkUpdate(); } diff --git a/src/main/java/pk/ajneb97/configs/MessagesConfigManager.java b/src/main/java/pk/ajneb97/configs/MessagesConfigManager.java index bd66dba..ea24ee1 100644 --- a/src/main/java/pk/ajneb97/configs/MessagesConfigManager.java +++ b/src/main/java/pk/ajneb97/configs/MessagesConfigManager.java @@ -2,6 +2,7 @@ package pk.ajneb97.configs; import org.bukkit.configuration.file.FileConfiguration; import pk.ajneb97.PlayerKits2; +import pk.ajneb97.configs.model.CommonConfig; import pk.ajneb97.managers.MessagesManager; import java.io.IOException; @@ -12,11 +13,11 @@ import java.nio.file.Paths; public class MessagesConfigManager { private PlayerKits2 plugin; - private CustomConfig configFile; + private CommonConfig configFile; public MessagesConfigManager(PlayerKits2 plugin){ this.plugin = plugin; - this.configFile = new CustomConfig("messages.yml",plugin,null, false); + this.configFile = new CommonConfig("messages.yml",plugin,null, false); this.configFile.registerConfig(); checkUpdate(); } diff --git a/src/main/java/pk/ajneb97/configs/PlayersConfigManager.java b/src/main/java/pk/ajneb97/configs/PlayersConfigManager.java index aa25c90..5e5e0ac 100644 --- a/src/main/java/pk/ajneb97/configs/PlayersConfigManager.java +++ b/src/main/java/pk/ajneb97/configs/PlayersConfigManager.java @@ -2,85 +2,56 @@ package pk.ajneb97.configs; import org.bukkit.configuration.file.FileConfiguration; import pk.ajneb97.PlayerKits2; +import pk.ajneb97.configs.model.CommonConfig; import pk.ajneb97.model.PlayerData; import pk.ajneb97.model.PlayerDataKit; - -import java.io.File; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; import java.util.UUID; -public class PlayersConfigManager { - private String folderName; - private PlayerKits2 plugin; +public class PlayersConfigManager extends DataFolderConfigManager{ public PlayersConfigManager(PlayerKits2 plugin, String folderName){ - this.plugin = plugin; - this.folderName = folderName; + super(plugin, folderName); } - public void configure() { - createFolder(); - loadConfigs(); - } - - public void createFolder(){ - File folder; - try { - folder = new File(plugin.getDataFolder() + File.separator + folderName); - if(!folder.exists()){ - folder.mkdirs(); - } - } catch(SecurityException e) { - folder = null; - } - } - - public CustomConfig getConfigFile(String pathName) { - CustomConfig config = new CustomConfig(pathName, plugin, folderName, true); - config.registerConfig(); - return config; + @Override + public void createFiles() { + } + @Override public void loadConfigs(){ Map players = new HashMap<>(); - String path = plugin.getDataFolder() + File.separator + folderName; - File folder = new File(path); - File[] listOfFiles = folder.listFiles(); - for (File file : listOfFiles) { - if (file.isFile()) { - String pathName = file.getName(); - CustomConfig configFile = new CustomConfig(pathName, plugin, folderName, true); - configFile.registerConfig(); + ArrayList configs = getConfigs(); + for(CommonConfig commonConfig : configs){ + FileConfiguration config = commonConfig.getConfig(); + String uuidString = commonConfig.getPath().replace(".yml", ""); + String name = config.getString("name"); + ArrayList playerDataKits = new ArrayList<>(); - FileConfiguration config = configFile.getConfig(); - String uuidString = configFile.getPath().replace(".yml", ""); - String name = config.getString("name"); - ArrayList playerDataKits = new ArrayList<>(); + if (config.contains("kits")) { + for (String key : config.getConfigurationSection("kits").getKeys(false)) { + long cooldown = config.getLong("kits." + key + ".cooldown"); + boolean oneTime = config.getBoolean("kits." + key + ".one_time"); + boolean bought = config.getBoolean("kits." + key + ".bought"); - if (config.contains("kits")) { - for (String key : config.getConfigurationSection("kits").getKeys(false)) { - long cooldown = config.getLong("kits." + key + ".cooldown"); - boolean oneTime = config.getBoolean("kits." + key + ".one_time"); - boolean bought = config.getBoolean("kits." + key + ".bought"); + PlayerDataKit playerDataKit = new PlayerDataKit(key); + playerDataKit.setCooldown(cooldown); + playerDataKit.setOneTime(oneTime); + playerDataKit.setBought(bought); - PlayerDataKit playerDataKit = new PlayerDataKit(key); - playerDataKit.setCooldown(cooldown); - playerDataKit.setOneTime(oneTime); - playerDataKit.setBought(bought); - - playerDataKits.add(playerDataKit); - } + playerDataKits.add(playerDataKit); } - - UUID uuid = UUID.fromString(uuidString); - PlayerData playerData = new PlayerData(uuid, name); - playerData.setKits(playerDataKits); - - players.put(uuid, playerData); } + + UUID uuid = UUID.fromString(uuidString); + PlayerData playerData = new PlayerData(uuid, name); + playerData.setKits(playerDataKits); + + players.put(uuid, playerData); } plugin.getPlayerDataManager().setPlayers(players); @@ -88,7 +59,7 @@ public class PlayersConfigManager { public void saveConfig(PlayerData playerData){ String playerName = playerData.getName(); - CustomConfig playerConfig = getConfigFile(playerData.getUuid()+".yml"); + CommonConfig playerConfig = getConfigFile(playerData.getUuid()+".yml"); FileConfiguration config = playerConfig.getConfig(); config.set("name", playerName); @@ -104,6 +75,7 @@ public class PlayersConfigManager { playerConfig.saveConfig(); } + @Override public void saveConfigs(){ Map players = plugin.getPlayerDataManager().getPlayers(); boolean isMySQL = plugin.getConfigsManager().getMainConfigManager().isMySQL(); diff --git a/src/main/java/pk/ajneb97/configs/CustomConfig.java b/src/main/java/pk/ajneb97/configs/model/CommonConfig.java similarity index 94% rename from src/main/java/pk/ajneb97/configs/CustomConfig.java rename to src/main/java/pk/ajneb97/configs/model/CommonConfig.java index e8aa1f3..dbfb080 100644 --- a/src/main/java/pk/ajneb97/configs/CustomConfig.java +++ b/src/main/java/pk/ajneb97/configs/model/CommonConfig.java @@ -1,12 +1,14 @@ -package pk.ajneb97.configs; +package pk.ajneb97.configs.model; import org.bukkit.configuration.InvalidConfigurationException; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.YamlConfiguration; import pk.ajneb97.PlayerKits2; -import java.io.*; -public class CustomConfig { +import java.io.File; +import java.io.IOException; + +public class CommonConfig { private String fileName; private FileConfiguration fileConfiguration = null; @@ -17,7 +19,7 @@ public class CustomConfig { private boolean newFile; private boolean isFirstTime; - public CustomConfig(String fileName, PlayerKits2 plugin, String folderName, boolean newFile){ + public CommonConfig(String fileName, PlayerKits2 plugin, String folderName, boolean newFile){ this.fileName = fileName; this.plugin = plugin; this.newFile = newFile; diff --git a/src/main/java/pk/ajneb97/managers/InventoryRequirementsManager.java b/src/main/java/pk/ajneb97/managers/InventoryRequirementsManager.java index 6735fe1..cbd2e15 100644 --- a/src/main/java/pk/ajneb97/managers/InventoryRequirementsManager.java +++ b/src/main/java/pk/ajneb97/managers/InventoryRequirementsManager.java @@ -1,7 +1,6 @@ package pk.ajneb97.managers; import me.clip.placeholderapi.PlaceholderAPI; -import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; @@ -98,11 +97,7 @@ public class InventoryRequirementsManager { public void requirementsInventoryBuy(InventoryPlayer inventoryPlayer){ Kit kit = plugin.getKitsManager().getKitByName(inventoryPlayer.getKitName()); - KitRequirements requirements = kit.getRequirements(); - DependencyManager dependencyManager = plugin.getDependencyManager(); - boolean isPlaceholderAPI = dependencyManager.isPlaceholderAPI(); Player player = inventoryPlayer.getPlayer(); - FileConfiguration messages = plugin.getConfigsManager().getMessagesConfigManager().getConfig(); MessagesManager msgManager = plugin.getMessagesManager(); //Buy - Unlock @@ -110,6 +105,11 @@ public class InventoryRequirementsManager { PlayerKitsMessageResult result = kitsManager.giveKit(player,inventoryPlayer.getKitName(), new GiveKitInstructions(false,true,false,false)); if(!result.isError()){ + if(plugin.getConfigsManager().getMainConfigManager().isCloseInventoryOnClaim()){ + player.closeInventory(); + return; + } + //Everything is good, open previous inventory. requirementsInventoryCancel(inventoryPlayer); }else{ diff --git a/src/main/java/pk/ajneb97/managers/MigrationManager.java b/src/main/java/pk/ajneb97/managers/MigrationManager.java index 9672300..5c75479 100644 --- a/src/main/java/pk/ajneb97/managers/MigrationManager.java +++ b/src/main/java/pk/ajneb97/managers/MigrationManager.java @@ -111,7 +111,7 @@ public class MigrationManager { return; } - kitsConfigManager.reloadConfigs(); + kitsConfigManager.loadConfigs(); plugin.getVerifyManager().verify(); } diff --git a/src/main/java/pk/ajneb97/managers/edit/InventoryEditKitItemsManager.java b/src/main/java/pk/ajneb97/managers/edit/InventoryEditKitItemsManager.java index c3e6654..50dfbcb 100644 --- a/src/main/java/pk/ajneb97/managers/edit/InventoryEditKitItemsManager.java +++ b/src/main/java/pk/ajneb97/managers/edit/InventoryEditKitItemsManager.java @@ -13,10 +13,7 @@ import pk.ajneb97.managers.MessagesManager; import pk.ajneb97.model.Kit; import pk.ajneb97.model.inventory.InventoryPlayer; import pk.ajneb97.model.item.KitItem; -import pk.ajneb97.utils.InventoryItem; -import pk.ajneb97.utils.InventoryUtils; -import pk.ajneb97.utils.ItemUtils; -import pk.ajneb97.utils.OtherUtils; +import pk.ajneb97.utils.*; import java.util.ArrayList; import java.util.List; @@ -87,7 +84,8 @@ public class InventoryEditKitItemsManager { } public void clickOffHand(InventoryPlayer inventoryPlayer, Inventory inv, ItemStack clickedItem, int clickedSlot){ - if(Bukkit.getVersion().contains("1.8")){ + ServerVersion serverVersion = PlayerKits2.serverVersion; + if(!serverVersion.serverVersionGreaterEqualThan(serverVersion,ServerVersion.v1_9_R1)) { inventoryPlayer.getPlayer().sendMessage(MessagesManager.getColoredMessage(PlayerKits2.prefix+"&cOffhand only works on 1.9+.")); return; } diff --git a/src/main/java/pk/ajneb97/utils/PlayerUtils.java b/src/main/java/pk/ajneb97/utils/PlayerUtils.java index 549fb78..5685e67 100644 --- a/src/main/java/pk/ajneb97/utils/PlayerUtils.java +++ b/src/main/java/pk/ajneb97/utils/PlayerUtils.java @@ -6,6 +6,7 @@ import org.bukkit.Material; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; +import pk.ajneb97.PlayerKits2; import java.util.ArrayList; import java.util.Arrays; @@ -13,7 +14,8 @@ import java.util.Arrays; public class PlayerUtils { public static ItemStack[] getAllInventoryContents(Player player){ - if(Bukkit.getVersion().contains("1.8")) { + ServerVersion serverVersion = PlayerKits2.serverVersion; + if(!serverVersion.serverVersionGreaterEqualThan(serverVersion,ServerVersion.v1_9_R1)) { ItemStack[] contents = new ItemStack[40]; int slot = 0; @@ -36,7 +38,9 @@ public class PlayerUtils { public static int getUsedSlots(Player player){ //ItemStack[] contents = getAllInventoryContents(player); ItemStack[] contents = null; - if(Bukkit.getVersion().contains("1.8")) { + ServerVersion serverVersion = PlayerKits2.serverVersion; + if(!serverVersion.serverVersionGreaterEqualThan(serverVersion,ServerVersion.v1_9_R1)) { + // 1.8 contents = player.getInventory().getContents(); }else{ contents = player.getInventory().getStorageContents(); diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 5833b9c..2c0f8c8 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -1,5 +1,5 @@ main: pk.ajneb97.PlayerKits2 -version: 1.18.2 +version: ${project.version} name: PlayerKits2 api-version: 1.13 softdepend: [Vault,PlaceholderAPI]