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!