This commit is contained in:
Ajneb97 2025-08-06 10:05:11 -04:00
parent c2be0ef391
commit fb4080d574
5 changed files with 78 additions and 38 deletions

View file

@ -6,7 +6,7 @@
<groupId>pk.ajneb97</groupId> <groupId>pk.ajneb97</groupId>
<artifactId>PlayerKits2</artifactId> <artifactId>PlayerKits2</artifactId>
<version>1.18.3</version> <version>1.18.4</version>
<properties> <properties>
<maven.compiler.source>21</maven.compiler.source> <maven.compiler.source>21</maven.compiler.source>

View file

@ -44,6 +44,8 @@ public class MainCommand implements CommandExecutor, TabCompleter {
migrate(sender,args,messagesConfig,msgManager); migrate(sender,args,messagesConfig,msgManager);
}else if(args[0].equalsIgnoreCase("open")){ }else if(args[0].equalsIgnoreCase("open")){
open(sender,args,messagesConfig,msgManager); open(sender,args,messagesConfig,msgManager);
}else if(args[0].equalsIgnoreCase("preview")){
preview(sender,args,messagesConfig,msgManager);
}else{ }else{
help(sender,msgManager,messagesConfig); help(sender,msgManager,messagesConfig);
} }
@ -115,7 +117,7 @@ public class MainCommand implements CommandExecutor, TabCompleter {
sender.sendMessage(MessagesManager.getColoredMessage("&6/kit give <kit> <player> &8Gives a kit to a player.")); sender.sendMessage(MessagesManager.getColoredMessage("&6/kit give <kit> <player> &8Gives a kit to a player."));
sender.sendMessage(MessagesManager.getColoredMessage("&6/kit delete <kit> &8Deletes a kit.")); sender.sendMessage(MessagesManager.getColoredMessage("&6/kit delete <kit> &8Deletes a kit."));
sender.sendMessage(MessagesManager.getColoredMessage("&6/kit reset <kit> <player>/* &8Resets kit data for a player.")); sender.sendMessage(MessagesManager.getColoredMessage("&6/kit reset <kit> <player>/* &8Resets kit data for a player."));
sender.sendMessage(MessagesManager.getColoredMessage("&6/kit preview <kit> &8Previews a kit.")); sender.sendMessage(MessagesManager.getColoredMessage("&6/kit preview <kit> (optional)<player> &8Previews a kit."));
sender.sendMessage(MessagesManager.getColoredMessage("&6/kit open <inventory> <player> &8Opens a specific inventory for a player.")); sender.sendMessage(MessagesManager.getColoredMessage("&6/kit open <inventory> <player> &8Opens a specific inventory for a player."));
sender.sendMessage(MessagesManager.getColoredMessage("&6/kit reload &8Reloads the config.")); sender.sendMessage(MessagesManager.getColoredMessage("&6/kit reload &8Reloads the config."));
sender.sendMessage(MessagesManager.getColoredMessage("&6/kit verify &8Checks the plugin for errors.")); 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); claimKitShortCommand(player,messagesConfig,msgManager,kitName);
} }
public void preview(Player player,String[] args,FileConfiguration messagesConfig,MessagesManager msgManager){ public void preview(CommandSender sender,String[] args,FileConfiguration messagesConfig,MessagesManager msgManager){
// /kit preview <kit> // /kit preview <kit> (optional)<player>
MainConfigManager mainConfigManager = plugin.getConfigsManager().getMainConfigManager(); MainConfigManager mainConfigManager = plugin.getConfigsManager().getMainConfigManager();
if(!mainConfigManager.isKitPreview()){ if(!mainConfigManager.isKitPreview()){
msgManager.sendMessage(player,messagesConfig.getString("kitPreviewDisabled"),true); msgManager.sendMessage(sender,messagesConfig.getString("kitPreviewDisabled"),true);
return; return;
} }
if(args.length < 2){ if(args.length < 2){
msgManager.sendMessage(player,messagesConfig.getString("commandPreviewError"),true); msgManager.sendMessage(sender,messagesConfig.getString("commandPreviewError"),true);
return; return;
} }
Kit kit = plugin.getKitsManager().getKitByName(args[1]); Kit kit = plugin.getKitsManager().getKitByName(args[1]);
if(kit == null){ if(kit == null){
msgManager.sendMessage(player,messagesConfig.getString("kitDoesNotExists") msgManager.sendMessage(sender,messagesConfig.getString("kitDoesNotExists")
.replace("%kit%",args[1]),true); .replace("%kit%",args[1]),true);
return; return;
} }
if(kit.isPermissionRequired()){ Player player;
if(mainConfigManager.isKitPreviewRequiresKitPermission() && !kit.playerHasPermission(player)){ if(args.length > 2){
msgManager.sendMessage(player,messagesConfig.getString("cantPreviewError"),true); // Kit preview for someone else
if(!PlayerUtils.isPlayerKitsAdmin(sender)){
msgManager.sendMessage(sender,messagesConfig.getString("noPermissions"),true);
return; 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"); InventoryPlayer inventoryPlayer = new InventoryPlayer(player,"preview_inventory");
@ -477,7 +505,6 @@ public class MainCommand implements CommandExecutor, TabCompleter {
ArrayList<KitInventory> inventories = plugin.getInventoryManager().getInventories(); ArrayList<KitInventory> inventories = plugin.getInventoryManager().getInventories();
for(KitInventory inv : inventories) { for(KitInventory inv : inventories) {
Bukkit.getConsoleSender().sendMessage(inv.getName());
if((argInv.isEmpty() || inv.getName().toLowerCase().startsWith(argInv.toLowerCase())) if((argInv.isEmpty() || inv.getName().toLowerCase().startsWith(argInv.toLowerCase()))
&& !inv.getName().equals("preview_inventory") && !inv.getName().equals("buy_requirements_inventory")) { && !inv.getName().equals("preview_inventory") && !inv.getName().equals("buy_requirements_inventory")) {
completions.add(inv.getName()); completions.add(inv.getName());

View file

@ -59,6 +59,11 @@ public class MessagesConfigManager {
Path pathConfig = Paths.get(configFile.getRoute()); Path pathConfig = Paths.get(configFile.getRoute());
try{ try{
String text = new String(Files.readAllBytes(pathConfig)); 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:")){ if(!text.contains("kitResetCorrectAll:")){
getConfig().set("kitResetCorrectAll", "&aKit &7%kit% &areset for &7all players&a!"); getConfig().set("kitResetCorrectAll", "&aKit &7%kit% &areset for &7all players&a!");
saveConfig(); saveConfig();

View file

@ -236,6 +236,8 @@ public class KitsManager {
KitItem itemBoots = null; KitItem itemBoots = null;
KitItem itemOffhand = null; KitItem itemOffhand = null;
boolean clearInventory = kit.isClearInventory();
PlayerInventory playerInventory = player.getInventory(); PlayerInventory playerInventory = player.getInventory();
for(KitItem item : items){ for(KitItem item : items){
if(kit.isAutoArmor()){ if(kit.isAutoArmor()){
@ -245,35 +247,40 @@ public class KitsManager {
} }
//Check if the item must be put in the player equipment //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 if((id.contains("_HELMET") || id.contains("PLAYER_HEAD") || id.contains("SKULL_ITEM")) && itemHelmet == null){
|| playerInventory.getHelmet().getType().equals(Material.AIR))){ if(playerInventory.getHelmet() == null || playerInventory.getHelmet().getType().equals(Material.AIR) || clearInventory){
itemHelmet = item; itemHelmet = item;
freeSlots++; freeSlots++;
continue; continue;
}else if((id.contains("_CHESTPLATE") || id.contains("ELYTRA")) && itemChestplate == null && (playerInventory.getChestplate() == null }
|| playerInventory.getChestplate().getType().equals(Material.AIR))){ }else if((id.contains("_CHESTPLATE") || id.contains("ELYTRA")) && itemChestplate == null){
if(playerInventory.getChestplate() == null || playerInventory.getChestplate().getType().equals(Material.AIR) || clearInventory){
itemChestplate = item; itemChestplate = item;
freeSlots++; freeSlots++;
continue; continue;
}else if(id.contains("_LEGGINGS") && itemLeggings == null && (playerInventory.getLeggings() == null }
|| playerInventory.getLeggings().getType().equals(Material.AIR))){ }else if(id.contains("_LEGGINGS") && itemLeggings == null){
if(playerInventory.getLeggings() == null || playerInventory.getLeggings().getType().equals(Material.AIR) || clearInventory){
itemLeggings = item; itemLeggings = item;
freeSlots++; freeSlots++;
continue; continue;
}else if(id.contains("_BOOTS") && itemBoots == null && (playerInventory.getBoots() == null }
|| playerInventory.getBoots().getType().equals(Material.AIR))){ }else if(id.contains("_BOOTS") && itemBoots == null){
if(playerInventory.getBoots() == null || playerInventory.getBoots().getType().equals(Material.AIR) || clearInventory){
itemBoots = item; itemBoots = item;
freeSlots++; freeSlots++;
continue; continue;
} }
} }
}
if(item.isOffhand() && itemOffhand == null && (playerInventory.getItemInOffHand() == null if(item.isOffhand() && itemOffhand == null){
|| playerInventory.getItemInOffHand().getType().equals(Material.AIR))){ if(playerInventory.getItemInOffHand() == null || playerInventory.getItemInOffHand().getType().equals(Material.AIR) || clearInventory){
itemOffhand = item; itemOffhand = item;
freeSlots++; freeSlots++;
continue; continue;
} }
}
inventoryKitItems++; inventoryKitItems++;
} }
@ -286,7 +293,6 @@ public class KitsManager {
boolean enoughSpace = freeSlots < inventoryKitItems; boolean enoughSpace = freeSlots < inventoryKitItems;
boolean dropItemsIfFullInventory = configFile.getBoolean("drop_items_if_full_inventory"); boolean dropItemsIfFullInventory = configFile.getBoolean("drop_items_if_full_inventory");
boolean clearInventory = kit.isClearInventory();
if(enoughSpace && !dropItemsIfFullInventory && !clearInventory){ if(enoughSpace && !dropItemsIfFullInventory && !clearInventory){
sendKitActions(kit.getErrorActions(),player,false); sendKitActions(kit.getErrorActions(),player,false);

View file

@ -11,7 +11,7 @@ commandCreateError: "&cYou need to use: &7/kit create <name> (optional)original/
commandDeleteError: "&cYou need to use: &7/kit delete <name>" commandDeleteError: "&cYou need to use: &7/kit delete <name>"
commandResetError: "&cYou need to use: &7/kit reset <kit> <player>" commandResetError: "&cYou need to use: &7/kit reset <kit> <player>"
commandEditError: "&cYou need to use: &7/kit edit <kit>" commandEditError: "&cYou need to use: &7/kit edit <kit>"
commandPreviewError: "&cYou need to use: &7/kit preview <kit>" commandPreviewError: "&cYou need to use: &7/kit preview <kit> (optional)<player>"
commandOpenError: "&cYou need to use: &7/kit open <inventory> <player>" commandOpenError: "&cYou need to use: &7/kit open <inventory> <player>"
commandDoesNotExists: "&cThat command doesn't exists." commandDoesNotExists: "&cThat command doesn't exists."
playerNotOnline: "&cPlayer &7%player% &cis not online." 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" pluginCriticalErrors: "&cThe plugin has detected some errors. Check them using &7/kit verify"
kitPreviewDisabled: "&cKit preview is disabled." kitPreviewDisabled: "&cKit preview is disabled."
inventoryNotExists: "&cThat inventory doesn't exists." inventoryNotExists: "&cThat inventory doesn't exists."
onlyPlayerCommand: "&cOnly a player can use this command."
commandPreviewOtherCorrect: "&aPreviewing kit &7%kit% &ato &e%player%&a."