From fb4080d5742197750f8bce502c42a2987ba74d9e Mon Sep 17 00:00:00 2001 From: Ajneb97 Date: Wed, 6 Aug 2025 10:05:11 -0400 Subject: [PATCH] 1.18.4 --- pom.xml | 2 +- src/main/java/pk/ajneb97/MainCommand.java | 47 +++++++++++---- .../configs/MessagesConfigManager.java | 5 ++ .../java/pk/ajneb97/managers/KitsManager.java | 58 ++++++++++--------- src/main/resources/messages.yml | 4 +- 5 files changed, 78 insertions(+), 38 deletions(-) diff --git a/pom.xml b/pom.xml index 67c4df7..a100e52 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ pk.ajneb97 PlayerKits2 - 1.18.3 + 1.18.4 21 diff --git a/src/main/java/pk/ajneb97/MainCommand.java b/src/main/java/pk/ajneb97/MainCommand.java index ac3af16..95d7d6d 100644 --- a/src/main/java/pk/ajneb97/MainCommand.java +++ b/src/main/java/pk/ajneb97/MainCommand.java @@ -44,6 +44,8 @@ public class MainCommand implements CommandExecutor, TabCompleter { migrate(sender,args,messagesConfig,msgManager); }else if(args[0].equalsIgnoreCase("open")){ open(sender,args,messagesConfig,msgManager); + }else if(args[0].equalsIgnoreCase("preview")){ + preview(sender,args,messagesConfig,msgManager); }else{ help(sender,msgManager,messagesConfig); } @@ -115,7 +117,7 @@ public class MainCommand implements CommandExecutor, TabCompleter { sender.sendMessage(MessagesManager.getColoredMessage("&6/kit give &8Gives a kit to a player.")); sender.sendMessage(MessagesManager.getColoredMessage("&6/kit delete &8Deletes a kit.")); sender.sendMessage(MessagesManager.getColoredMessage("&6/kit reset /* &8Resets kit data for a player.")); - sender.sendMessage(MessagesManager.getColoredMessage("&6/kit preview &8Previews a kit.")); + sender.sendMessage(MessagesManager.getColoredMessage("&6/kit preview (optional) &8Previews a kit.")); sender.sendMessage(MessagesManager.getColoredMessage("&6/kit open &8Opens a specific inventory for a player.")); sender.sendMessage(MessagesManager.getColoredMessage("&6/kit reload &8Reloads the config.")); sender.sendMessage(MessagesManager.getColoredMessage("&6/kit verify &8Checks the plugin for errors.")); @@ -254,31 +256,57 @@ public class MainCommand implements CommandExecutor, TabCompleter { claimKitShortCommand(player,messagesConfig,msgManager,kitName); } - public void preview(Player player,String[] args,FileConfiguration messagesConfig,MessagesManager msgManager){ - // /kit preview + public void preview(CommandSender sender,String[] args,FileConfiguration messagesConfig,MessagesManager msgManager){ + // /kit preview (optional) MainConfigManager mainConfigManager = plugin.getConfigsManager().getMainConfigManager(); if(!mainConfigManager.isKitPreview()){ - msgManager.sendMessage(player,messagesConfig.getString("kitPreviewDisabled"),true); + msgManager.sendMessage(sender,messagesConfig.getString("kitPreviewDisabled"),true); return; } if(args.length < 2){ - msgManager.sendMessage(player,messagesConfig.getString("commandPreviewError"),true); + msgManager.sendMessage(sender,messagesConfig.getString("commandPreviewError"),true); return; } Kit kit = plugin.getKitsManager().getKitByName(args[1]); if(kit == null){ - msgManager.sendMessage(player,messagesConfig.getString("kitDoesNotExists") + msgManager.sendMessage(sender,messagesConfig.getString("kitDoesNotExists") .replace("%kit%",args[1]),true); return; } - if(kit.isPermissionRequired()){ - if(mainConfigManager.isKitPreviewRequiresKitPermission() && !kit.playerHasPermission(player)){ - msgManager.sendMessage(player,messagesConfig.getString("cantPreviewError"),true); + Player player; + if(args.length > 2){ + // Kit preview for someone else + if(!PlayerUtils.isPlayerKitsAdmin(sender)){ + msgManager.sendMessage(sender,messagesConfig.getString("noPermissions"),true); return; } + + player = Bukkit.getPlayer(args[2]); + if(player == null){ + msgManager.sendMessage(sender,messagesConfig.getString("playerNotOnline") + .replace("%player%",args[2]),true); + return; + } + + msgManager.sendMessage(sender,messagesConfig.getString("commandPreviewOtherCorrect") + .replace("%kit%",args[1]).replace("%player%",args[2]),true); + }else{ + if(kit.isPermissionRequired()){ + if(mainConfigManager.isKitPreviewRequiresKitPermission() && !kit.playerHasPermission(sender)){ + msgManager.sendMessage(sender,messagesConfig.getString("cantPreviewError"),true); + return; + } + } + + if(!(sender instanceof Player)){ + msgManager.sendMessage(sender,messagesConfig.getString("onlyPlayerCommand"),true); + return; + } + + player = (Player)sender; } InventoryPlayer inventoryPlayer = new InventoryPlayer(player,"preview_inventory"); @@ -477,7 +505,6 @@ public class MainCommand implements CommandExecutor, TabCompleter { ArrayList inventories = plugin.getInventoryManager().getInventories(); for(KitInventory inv : inventories) { - Bukkit.getConsoleSender().sendMessage(inv.getName()); if((argInv.isEmpty() || inv.getName().toLowerCase().startsWith(argInv.toLowerCase())) && !inv.getName().equals("preview_inventory") && !inv.getName().equals("buy_requirements_inventory")) { completions.add(inv.getName()); diff --git a/src/main/java/pk/ajneb97/configs/MessagesConfigManager.java b/src/main/java/pk/ajneb97/configs/MessagesConfigManager.java index ea24ee1..77ea39e 100644 --- a/src/main/java/pk/ajneb97/configs/MessagesConfigManager.java +++ b/src/main/java/pk/ajneb97/configs/MessagesConfigManager.java @@ -59,6 +59,11 @@ public class MessagesConfigManager { Path pathConfig = Paths.get(configFile.getRoute()); try{ String text = new String(Files.readAllBytes(pathConfig)); + if(!text.contains("commandPreviewOtherCorrect:")){ + getConfig().set("onlyPlayerCommand", "&cOnly a player can use this command."); + getConfig().set("commandPreviewOtherCorrect", "&aPreviewing kit &7%kit% &ato &e%player%&a."); + saveConfig(); + } if(!text.contains("kitResetCorrectAll:")){ getConfig().set("kitResetCorrectAll", "&aKit &7%kit% &areset for &7all players&a!"); saveConfig(); diff --git a/src/main/java/pk/ajneb97/managers/KitsManager.java b/src/main/java/pk/ajneb97/managers/KitsManager.java index 2ed552e..736ee41 100644 --- a/src/main/java/pk/ajneb97/managers/KitsManager.java +++ b/src/main/java/pk/ajneb97/managers/KitsManager.java @@ -236,6 +236,8 @@ public class KitsManager { KitItem itemBoots = null; KitItem itemOffhand = null; + boolean clearInventory = kit.isClearInventory(); + PlayerInventory playerInventory = player.getInventory(); for(KitItem item : items){ if(kit.isAutoArmor()){ @@ -245,34 +247,39 @@ public class KitsManager { } //Check if the item must be put in the player equipment - if((id.contains("_HELMET") || id.contains("PLAYER_HEAD") || id.contains("SKULL_ITEM")) && itemHelmet == null && (playerInventory.getHelmet() == null - || playerInventory.getHelmet().getType().equals(Material.AIR))){ - itemHelmet = item; - freeSlots++; - continue; - }else if((id.contains("_CHESTPLATE") || id.contains("ELYTRA")) && itemChestplate == null && (playerInventory.getChestplate() == null - || playerInventory.getChestplate().getType().equals(Material.AIR))){ - itemChestplate = item; - freeSlots++; - continue; - }else if(id.contains("_LEGGINGS") && itemLeggings == null && (playerInventory.getLeggings() == null - || playerInventory.getLeggings().getType().equals(Material.AIR))){ - itemLeggings = item; - freeSlots++; - continue; - }else if(id.contains("_BOOTS") && itemBoots == null && (playerInventory.getBoots() == null - || playerInventory.getBoots().getType().equals(Material.AIR))){ - itemBoots = item; - freeSlots++; - continue; + if((id.contains("_HELMET") || id.contains("PLAYER_HEAD") || id.contains("SKULL_ITEM")) && itemHelmet == null){ + if(playerInventory.getHelmet() == null || playerInventory.getHelmet().getType().equals(Material.AIR) || clearInventory){ + itemHelmet = item; + freeSlots++; + continue; + } + }else if((id.contains("_CHESTPLATE") || id.contains("ELYTRA")) && itemChestplate == null){ + if(playerInventory.getChestplate() == null || playerInventory.getChestplate().getType().equals(Material.AIR) || clearInventory){ + itemChestplate = item; + freeSlots++; + continue; + } + }else if(id.contains("_LEGGINGS") && itemLeggings == null){ + if(playerInventory.getLeggings() == null || playerInventory.getLeggings().getType().equals(Material.AIR) || clearInventory){ + itemLeggings = item; + freeSlots++; + continue; + } + }else if(id.contains("_BOOTS") && itemBoots == null){ + if(playerInventory.getBoots() == null || playerInventory.getBoots().getType().equals(Material.AIR) || clearInventory){ + itemBoots = item; + freeSlots++; + continue; + } } } - if(item.isOffhand() && itemOffhand == null && (playerInventory.getItemInOffHand() == null - || playerInventory.getItemInOffHand().getType().equals(Material.AIR))){ - itemOffhand = item; - freeSlots++; - continue; + if(item.isOffhand() && itemOffhand == null){ + if(playerInventory.getItemInOffHand() == null || playerInventory.getItemInOffHand().getType().equals(Material.AIR) || clearInventory){ + itemOffhand = item; + freeSlots++; + continue; + } } inventoryKitItems++; @@ -286,7 +293,6 @@ public class KitsManager { boolean enoughSpace = freeSlots < inventoryKitItems; boolean dropItemsIfFullInventory = configFile.getBoolean("drop_items_if_full_inventory"); - boolean clearInventory = kit.isClearInventory(); if(enoughSpace && !dropItemsIfFullInventory && !clearInventory){ sendKitActions(kit.getErrorActions(),player,false); diff --git a/src/main/resources/messages.yml b/src/main/resources/messages.yml index 35e3231..5205581 100644 --- a/src/main/resources/messages.yml +++ b/src/main/resources/messages.yml @@ -11,7 +11,7 @@ commandCreateError: "&cYou need to use: &7/kit create (optional)original/ commandDeleteError: "&cYou need to use: &7/kit delete " commandResetError: "&cYou need to use: &7/kit reset " commandEditError: "&cYou need to use: &7/kit edit " -commandPreviewError: "&cYou need to use: &7/kit preview " +commandPreviewError: "&cYou need to use: &7/kit preview (optional)" commandOpenError: "&cYou need to use: &7/kit open " commandDoesNotExists: "&cThat command doesn't exists." playerNotOnline: "&cPlayer &7%player% &cis not online." @@ -40,5 +40,7 @@ cooldownPlaceholderReady: "&a&lReady!" pluginCriticalErrors: "&cThe plugin has detected some errors. Check them using &7/kit verify" kitPreviewDisabled: "&cKit preview is disabled." inventoryNotExists: "&cThat inventory doesn't exists." +onlyPlayerCommand: "&cOnly a player can use this command." +commandPreviewOtherCorrect: "&aPreviewing kit &7%kit% &ato &e%player%&a."