diff --git a/src/main/java/pk/ajneb97/MainCommand.java b/src/main/java/pk/ajneb97/MainCommand.java index e6a19f6..6d44fee 100644 --- a/src/main/java/pk/ajneb97/MainCommand.java +++ b/src/main/java/pk/ajneb97/MainCommand.java @@ -7,6 +7,7 @@ import org.bukkit.command.CommandSender; import org.bukkit.command.TabCompleter; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.entity.Player; +import pk.ajneb97.configs.MainConfigManager; import pk.ajneb97.managers.MessagesManager; import pk.ajneb97.model.Kit; import pk.ajneb97.model.internal.GiveKitInstructions; @@ -52,6 +53,8 @@ public class MainCommand implements CommandExecutor, TabCompleter { if(args.length >= 1){ if(args[0].equalsIgnoreCase("claim") && !claimKitShortCommand){ claim(player,args,messagesConfig,msgManager); + }else if(args[0].equalsIgnoreCase("preview")){ + preview(player,args,messagesConfig,msgManager); }else if(args[0].equalsIgnoreCase("create")){ create(player,args,messagesConfig,msgManager); }else if(args[0].equalsIgnoreCase("give")) { @@ -103,6 +106,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 reload &8Reloads the config.")); sender.sendMessage(MessagesManager.getColoredMessage("&6/kit verify &8Checks the plugin for errors.")); sender.sendMessage(MessagesManager.getColoredMessage(" ")); @@ -195,6 +199,39 @@ public class MainCommand implements CommandExecutor, TabCompleter { claimKitShortCommand(player,messagesConfig,msgManager,kitName); } + public void preview(Player player,String[] args,FileConfiguration messagesConfig,MessagesManager msgManager){ + // /kit preview + MainConfigManager mainConfigManager = plugin.getConfigsManager().getMainConfigManager(); + if(!mainConfigManager.isKitPreview()){ + msgManager.sendMessage(player,messagesConfig.getString("kitPreviewDisabled"),true); + return; + } + + if(args.length < 2){ + msgManager.sendMessage(player,messagesConfig.getString("commandPreviewError"),true); + return; + } + + Kit kit = plugin.getKitsManager().getKitByName(args[1]); + if(kit == null){ + msgManager.sendMessage(player,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); + return; + } + } + + InventoryPlayer inventoryPlayer = new InventoryPlayer(player,"preview_inventory"); + inventoryPlayer.setKitName(args[1]); + inventoryPlayer.setPreviousInventoryName("main_inventory"); + plugin.getInventoryManager().openInventory(inventoryPlayer); + } + public void claimKitShortCommand(Player player,FileConfiguration messagesConfig,MessagesManager msgManager,String kitName){ // /kit PlayerKitsMessageResult result = plugin.getKitsManager().giveKit(player,kitName,new GiveKitInstructions()); @@ -269,8 +306,9 @@ public class MainCommand implements CommandExecutor, TabCompleter { @Override public List onTabComplete(CommandSender sender, Command command, String label, String[] args) { - FileConfiguration configFile = plugin.getConfigsManager().getMainConfigManager().getConfig(); - boolean claimKitShortCommand = configFile.getBoolean("claim_kit_short_command"); + MainConfigManager mainConfigManager = plugin.getConfigsManager().getMainConfigManager(); + boolean claimKitShortCommand = mainConfigManager.isClaimKitShortCommand(); + boolean kitPreviewEnabled = mainConfigManager.isKitPreview(); List completions = new ArrayList(); List commands = new ArrayList(); @@ -284,6 +322,9 @@ public class MainCommand implements CommandExecutor, TabCompleter { }else{ commands.add("claim"); } + if(kitPreviewEnabled){ + commands.add("preview"); + } if(PlayerUtils.isPlayerKitsAdmin(sender)){ commands.add("give");commands.add("delete");commands.add("create"); commands.add("reload");commands.add("reset");commands.add("edit"); @@ -300,6 +341,9 @@ public class MainCommand implements CommandExecutor, TabCompleter { if(!claimKitShortCommand){ commands.add("claim"); } + if(kitPreviewEnabled){ + commands.add("preview"); + } if(PlayerUtils.isPlayerKitsAdmin(sender)){ commands.add("give");commands.add("delete"); commands.add("reset");commands.add("edit"); diff --git a/src/main/java/pk/ajneb97/configs/MainConfigManager.java b/src/main/java/pk/ajneb97/configs/MainConfigManager.java index ba4d365..9c6578d 100644 --- a/src/main/java/pk/ajneb97/configs/MainConfigManager.java +++ b/src/main/java/pk/ajneb97/configs/MainConfigManager.java @@ -18,6 +18,7 @@ public class MainConfigManager { private Kit newKitDefault; private boolean kitPreview; private boolean closeInventoryOnClaim; + private boolean claimKitShortCommand; private boolean kitPreviewRequiresKitPermission; private String firstJoinKit; private String newKitDefaultInventory; @@ -40,6 +41,7 @@ public class MainConfigManager { newKitDefaultInventory = config.getString("new_kit_default_inventory"); isMySQL = config.getBoolean("mysql_database.enabled"); updateNotify = config.getBoolean("update_notify"); + claimKitShortCommand = config.getBoolean("claim_kit_short_command"); } public boolean reloadConfig(){ @@ -101,4 +103,8 @@ public class MainConfigManager { public boolean isUpdateNotify() { return updateNotify; } + + public boolean isClaimKitShortCommand() { + return claimKitShortCommand; + } } diff --git a/src/main/java/pk/ajneb97/configs/MessagesConfigManager.java b/src/main/java/pk/ajneb97/configs/MessagesConfigManager.java index 4b78e8c..85ab06c 100644 --- a/src/main/java/pk/ajneb97/configs/MessagesConfigManager.java +++ b/src/main/java/pk/ajneb97/configs/MessagesConfigManager.java @@ -58,6 +58,11 @@ public class MessagesConfigManager { Path pathConfig = Paths.get(configFile.getRoute()); try{ String text = new String(Files.readAllBytes(pathConfig)); + if(!text.contains("commandPreviewError:")){ + getConfig().set("commandPreviewError", "&cYou need to use: &7/kit preview "); + getConfig().set("kitPreviewDisabled", "&cKit preview is disabled."); + saveConfig(); + } if(!text.contains("pluginCriticalErrors:")){ getConfig().set("pluginCriticalErrors", "&cThe plugin has detected some errors. Check them using &7/kit verify"); saveConfig(); diff --git a/src/main/resources/messages.yml b/src/main/resources/messages.yml index 59a9ea5..0a6709a 100644 --- a/src/main/resources/messages.yml +++ b/src/main/resources/messages.yml @@ -11,6 +11,7 @@ commandCreateError: "&cYou need to use: &7/kit create " 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 " commandDoesNotExists: "&cThat command doesn't exists." playerNotOnline: "&cPlayer &7%player% &cis not online." oneTimeError: "&cYou can't claim this kit again." @@ -35,5 +36,6 @@ hours: 'h' days: 'd' cooldownPlaceholderReady: "&a&lReady!" pluginCriticalErrors: "&cThe plugin has detected some errors. Check them using &7/kit verify" +kitPreviewDisabled: "&cKit preview is disabled." diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index fd78eb3..b62fbb7 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -1,5 +1,5 @@ main: pk.ajneb97.PlayerKits2 -version: 1.4.2 +version: 1.5.1 name: PlayerKits2 api-version: 1.13 softdepend: [Vault,PlaceholderAPI]