This commit is contained in:
Ajneb97 2023-09-27 20:45:01 -03:00
parent 75a0d9ad5a
commit 30103db82f
5 changed files with 60 additions and 3 deletions

View file

@ -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 <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 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 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 <kit>
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 <kit>
PlayerKitsMessageResult result = plugin.getKitsManager().giveKit(player,kitName,new GiveKitInstructions());
@ -269,8 +306,9 @@ public class MainCommand implements CommandExecutor, TabCompleter {
@Override
public List<String> 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<String> completions = new ArrayList<String>();
List<String> commands = new ArrayList<String>();
@ -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");

View file

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

View file

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

View file

@ -11,6 +11,7 @@ commandCreateError: "&cYou need to use: &7/kit create <name>"
commandDeleteError: "&cYou need to use: &7/kit delete <name>"
commandResetError: "&cYou need to use: &7/kit reset <kit> <player>"
commandEditError: "&cYou need to use: &7/kit edit <kit>"
commandPreviewError: "&cYou need to use: &7/kit preview <kit>"
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."

View file

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