This commit is contained in:
Ajneb97 2025-07-20 17:40:04 -04:00
parent 4a6eae6a8e
commit c2be0ef391
15 changed files with 158 additions and 198 deletions

15
pom.xml
View file

@ -6,7 +6,7 @@
<groupId>pk.ajneb97</groupId>
<artifactId>PlayerKits2</artifactId>
<version>1.0-SNAPSHOT</version>
<version>1.18.3</version>
<properties>
<maven.compiler.source>21</maven.compiler.source>
@ -37,7 +37,7 @@
<dependency>
<groupId>org.spigotmc</groupId>
<artifactId>spigot-api</artifactId>
<version>1.21.7-R0.1-SNAPSHOT</version>
<version>1.21.8-R0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
@ -67,14 +67,23 @@
</dependencies>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<plugins>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.3.1</version>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<release>8</release>
</configuration>
</plugin>
<plugin>

View file

@ -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:

View file

@ -61,7 +61,7 @@ public class ConfigsManager {
if(!inventoryConfigManager.reloadConfig()){
return false;
}
kitsConfigManager.reloadConfigs();
kitsConfigManager.loadConfigs();
if(plugin.getMySQLConnection() == null){
plugin.reloadPlayerDataSaveTask();
}

View file

@ -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<CommonConfig> getConfigs(){
ArrayList<CommonConfig> 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();
}

View file

@ -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();

View file

@ -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<CustomConfig> 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<configFiles.size();i++) {
configFiles.get(i).saveConfig();
}
}
public void registerConfigFiles(){
String path = plugin.getDataFolder() + File.separator + folderName;
File folder = new File(path);
File[] listOfFiles = folder.listFiles();
for (int i=0;i<listOfFiles.length;i++) {
if(listOfFiles[i].isFile()) {
String pathName = listOfFiles[i].getName();
CustomConfig config = new CustomConfig(pathName, plugin, folderName, true);
config.registerConfig();
configFiles.add(config);
}
}
}
public ArrayList<CustomConfig> getConfigs(){
return this.configFiles;
}
public boolean fileAlreadyRegistered(String pathName) {
for(int i=0;i<configFiles.size();i++) {
if(configFiles.get(i).getPath().equals(pathName)) {
return true;
}
}
return false;
}
public CustomConfig getConfigFile(String pathName) {
for(int i=0;i<configFiles.size();i++) {
if(configFiles.get(i).getPath().equals(pathName)) {
return configFiles.get(i);
}
}
return null;
}
public boolean registerConfigFile(String pathName) {
if(!fileAlreadyRegistered(pathName)) {
CustomConfig config = new CustomConfig(pathName, plugin, folderName, true);
config.registerConfig();
configFiles.add(config);
return true;
}else {
return false;
}
}
public void removeConfigKit(String path) {
for(int i=0;i<configFiles.size();i++) {
if(configFiles.get(i).getPath().equals(path)) {
configFiles.remove(i);
}
}
@Override
public void createFiles() {
new CommonConfig("diamond.yml",plugin,folderName,false).registerConfig();
new CommonConfig("iron.yml",plugin,folderName,false).registerConfig();
new CommonConfig("food.yml",plugin,folderName,false).registerConfig();
}
@Override
public void loadConfigs(){
ArrayList<Kit> kits = new ArrayList<Kit>();
for(CustomConfig configFile : configFiles){
ArrayList<Kit> kits = new ArrayList<>();
ArrayList<CommonConfig> 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

View file

@ -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();
}

View file

@ -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();
}

View file

@ -2,61 +2,33 @@ 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<UUID, PlayerData> 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();
FileConfiguration config = configFile.getConfig();
String uuidString = configFile.getPath().replace(".yml", "");
ArrayList<CommonConfig> configs = getConfigs();
for(CommonConfig commonConfig : configs){
FileConfiguration config = commonConfig.getConfig();
String uuidString = commonConfig.getPath().replace(".yml", "");
String name = config.getString("name");
ArrayList<PlayerDataKit> playerDataKits = new ArrayList<>();
@ -81,14 +53,13 @@ public class PlayersConfigManager {
players.put(uuid, playerData);
}
}
plugin.getPlayerDataManager().setPlayers(players);
}
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<UUID, PlayerData> players = plugin.getPlayerDataManager().getPlayers();
boolean isMySQL = plugin.getConfigsManager().getMainConfigManager().isMySQL();

View file

@ -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;

View file

@ -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{

View file

@ -111,7 +111,7 @@ public class MigrationManager {
return;
}
kitsConfigManager.reloadConfigs();
kitsConfigManager.loadConfigs();
plugin.getVerifyManager().verify();
}

View file

@ -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;
}

View file

@ -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();

View file

@ -1,5 +1,5 @@
main: pk.ajneb97.PlayerKits2
version: 1.18.2
version: ${project.version}
name: PlayerKits2
api-version: 1.13
softdepend: [Vault,PlaceholderAPI]