diff --git a/pom.xml b/pom.xml index fb6c84b..dbdd519 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ me.xemor Superheroes - 3.4.0 + 3.5.0 jar ${project.artifactId} diff --git a/src/main/java/me/xemor/superheroes/commands/Check.java b/src/main/java/me/xemor/superheroes/commands/Check.java new file mode 100644 index 0000000..ac2cc3a --- /dev/null +++ b/src/main/java/me/xemor/superheroes/commands/Check.java @@ -0,0 +1,52 @@ +package me.xemor.superheroes.commands; + +import me.xemor.superheroes.Superhero; +import me.xemor.superheroes.Superheroes; +import net.kyori.adventure.audience.Audience; +import net.kyori.adventure.text.minimessage.MiniMessage; +import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder; +import org.bukkit.Bukkit; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import java.util.Collections; +import java.util.List; + +public class Check implements SubCommand { + + @Override + public void onCommand(CommandSender sender, String[] args) { + Audience audience = Superheroes.getBukkitAudiences().sender(sender); + if (sender.hasPermission("superheroes.check")) { + if (args.length > 1) { + Player other = Bukkit.getPlayer(args[1]); + if (other == null) { + audience.sendMessage(MiniMessage.miniMessage().deserialize(Superheroes.getInstance().getConfigHandler().getInvalidPlayerMessage(), + Placeholder.unparsed("player", sender.getName()))); + return; + } + Superhero hero = Superheroes.getInstance().getHeroHandler().getSuperhero(other); + audience.sendMessage( + MiniMessage.miniMessage().deserialize(Superheroes.getInstance().getConfigHandler().getCurrentHeroMessage(), + Placeholder.unparsed("player", other.getName()), + Placeholder.unparsed("hero", hero.getName())) + ); + } + else { + if (sender instanceof Player player) { + Superhero hero = Superheroes.getInstance().getHeroHandler().getSuperhero(player); + audience.sendMessage( + MiniMessage.miniMessage().deserialize(Superheroes.getInstance().getConfigHandler().getCurrentHeroMessage(), + Placeholder.unparsed("player", player.getName()), + Placeholder.unparsed("hero", hero.getName())) + ); + } + } + } + } + + @Override + public List tabComplete(CommandSender sender, String[] args) { + return Collections.emptyList(); + } +} diff --git a/src/main/java/me/xemor/superheroes/commands/HeroCommand.java b/src/main/java/me/xemor/superheroes/commands/HeroCommand.java index 0ea9ae3..4729c2e 100644 --- a/src/main/java/me/xemor/superheroes/commands/HeroCommand.java +++ b/src/main/java/me/xemor/superheroes/commands/HeroCommand.java @@ -25,6 +25,8 @@ public class HeroCommand implements CommandExecutor, TabExecutor { private Import importCommand; private Export exportCommand; private TextConvert textConvertCommand; + + private Check checkCommand; private Reroll reroll; public HeroCommand(HeroHandler heroHandler, Reroll reroll) { @@ -36,6 +38,7 @@ public HeroCommand(HeroHandler heroHandler, Reroll reroll) { importCommand = new Import(); exportCommand = new Export(); textConvertCommand = new TextConvert(); + checkCommand = new Check(); } @Override @@ -50,12 +53,13 @@ public boolean onCommand(CommandSender sender, Command command, String label, St return true; } switch (commandType) { - case SELECT: heroSelectCommand.onCommand(sender, args); break; - case RELOAD: reloadCommand.onCommand(sender, args); break; - case REROLL: reroll.onCommand(sender, args); break; - case EXPORT: exportCommand.onCommand(sender, args); break; - case IMPORT: importCommand.onCommand(sender, args); break; - case TEXTCONVERT: textConvertCommand.onCommand(sender, args); break; + case SELECT -> heroSelectCommand.onCommand(sender, args); + case RELOAD -> reloadCommand.onCommand(sender, args); + case REROLL -> reroll.onCommand(sender, args); + case EXPORT -> exportCommand.onCommand(sender, args); + case IMPORT -> importCommand.onCommand(sender, args); + case TEXTCONVERT -> textConvertCommand.onCommand(sender, args); + case CHECK -> checkCommand.onCommand(sender, args); } } return true; @@ -78,14 +82,15 @@ else if (args.length > 1) { SubCommands subCommand; try { subCommand = SubCommands.valueOf(args[0].toUpperCase()); - switch (subCommand) { - case SELECT: tabComplete = heroSelectCommand.tabComplete(sender, args); break; - case RELOAD: tabComplete = reloadCommand.tabComplete(sender, args); break; - case REROLL: tabComplete = reroll.tabComplete(sender, args); break; - case EXPORT: tabComplete = exportCommand.tabComplete(sender, args); break; - case IMPORT: tabComplete = importCommand.tabComplete(sender, args); break; - case TEXTCONVERT: tabComplete = textConvertCommand.tabComplete(sender, args); break; - } + tabComplete = switch (subCommand) { + case SELECT -> heroSelectCommand.tabComplete(sender, args); + case RELOAD -> reloadCommand.tabComplete(sender, args); + case REROLL -> reroll.tabComplete(sender, args); + case EXPORT -> exportCommand.tabComplete(sender, args); + case IMPORT -> importCommand.tabComplete(sender, args); + case TEXTCONVERT -> textConvertCommand.tabComplete(sender, args); + case CHECK -> checkCommand.tabComplete(sender, args); + }; } catch(IllegalArgumentException ignored) {} } return tabComplete; diff --git a/src/main/java/me/xemor/superheroes/commands/HeroSelect.java b/src/main/java/me/xemor/superheroes/commands/HeroSelect.java index 30b16d9..5a40d8f 100644 --- a/src/main/java/me/xemor/superheroes/commands/HeroSelect.java +++ b/src/main/java/me/xemor/superheroes/commands/HeroSelect.java @@ -34,8 +34,7 @@ public void onCommand(CommandSender sender, String[] args) { return; } if (args.length <= 1) { - if (sender instanceof Player) { - Player player = (Player) sender; + if (sender instanceof Player player) { Superhero superhero = heroHandler.getSuperhero(player); audience.sendMessage(MiniMessage.miniMessage().deserialize(configHandler.getCurrentHeroMessage(), Placeholder.unparsed("player", player.getName()), diff --git a/src/main/java/me/xemor/superheroes/commands/Import.java b/src/main/java/me/xemor/superheroes/commands/Import.java index 4c10981..996db7e 100644 --- a/src/main/java/me/xemor/superheroes/commands/Import.java +++ b/src/main/java/me/xemor/superheroes/commands/Import.java @@ -12,6 +12,8 @@ import java.util.List; public class Import implements SubCommand { + + private final Component notReload = MiniMessage.miniMessage().deserialize("REMINDER: This is NOT a reload command. This is for importing an exported file into your database of which players have which hero!"); private final Component importing = MiniMessage.miniMessage().deserialize("Importing..."); private final Component done = MiniMessage.miniMessage().deserialize("Done!"); @@ -25,6 +27,7 @@ public void onCommand(CommandSender sender, String[] args) { Audience audience = Superheroes.getBukkitAudiences().sender(sender); ConfigHandler configHandler = Superheroes.getInstance().getConfigHandler(); if (sender.hasPermission("superheroes.import")) { + audience.sendMessage(notReload); audience.sendMessage(importing); HeroHandler heroHandler = Superheroes.getInstance().getHeroHandler(); heroHandler.getHeroIOHandler().importFiles() diff --git a/src/main/java/me/xemor/superheroes/commands/SubCommands.java b/src/main/java/me/xemor/superheroes/commands/SubCommands.java index 9d8f787..689b5ad 100644 --- a/src/main/java/me/xemor/superheroes/commands/SubCommands.java +++ b/src/main/java/me/xemor/superheroes/commands/SubCommands.java @@ -2,6 +2,6 @@ public enum SubCommands { - SELECT, RELOAD, REROLL, IMPORT, EXPORT, TEXTCONVERT + SELECT, RELOAD, REROLL, IMPORT, EXPORT, TEXTCONVERT, CHECK } diff --git a/src/main/resources/language.yml b/src/main/resources/language.yml index e5b66ef..d6d8989 100644 --- a/src/main/resources/language.yml +++ b/src/main/resources/language.yml @@ -1,9 +1,9 @@ Chat: - gainedHero: has gained the power of + gainedHero: [Superheroes] has gained the power of noPermission: You do not have permission to use this power! - currentHero: , you are currently - heroCommandCooldown: , /hero is currently on cooldown. You need to - wait / more seconds! - invalidHeroMessage: , You have entered an invalid hero name! - invalidPlayerName: , You have entered an invalid player name! - invalidCommandMessage: , You have entered an invalid subcommand name! + currentHero: [Superheroes] , is currently + heroCommandCooldown: [Superheroes] , /hero is currently on cooldown. You need to + wait / more seconds! + invalidHeroMessage: [Superheroes] , You have entered an invalid hero name! + invalidPlayerMessage: [Superheroes] , You have entered an invalid player name! + invalidCommandMessage: [Superheroes] , You have entered an invalid subcommand name!