Skip to content

Commit

Permalink
Added ./hero check for checking which hero you are, and other players…
Browse files Browse the repository at this point in the history
… are. This command requires the permission node "superheroes.check"

Revamped the default language messages to look nicer, and more professional for servers that don't customise them themselves
Fixed a bug where the invalidPlayerMessage had the incorrect configuration node in language.yml (was invalidPlayerName, should be invalidPlayerMessage)
Bumped version to 3.5.0
  • Loading branch information
Xemorr committed Mar 4, 2023
1 parent a0bc933 commit 82d804a
Show file tree
Hide file tree
Showing 7 changed files with 84 additions and 25 deletions.
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

<groupId>me.xemor</groupId>
<artifactId>Superheroes</artifactId>
<version>3.4.0</version>
<version>3.5.0</version>
<packaging>jar</packaging>

<name>${project.artifactId}</name>
Expand Down
52 changes: 52 additions & 0 deletions src/main/java/me/xemor/superheroes/commands/Check.java
Original file line number Diff line number Diff line change
@@ -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<String> tabComplete(CommandSender sender, String[] args) {
return Collections.emptyList();
}
}
33 changes: 19 additions & 14 deletions src/main/java/me/xemor/superheroes/commands/HeroCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand All @@ -36,6 +38,7 @@ public HeroCommand(HeroHandler heroHandler, Reroll reroll) {
importCommand = new Import();
exportCommand = new Export();
textConvertCommand = new TextConvert();
checkCommand = new Check();
}

@Override
Expand All @@ -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;
Expand All @@ -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;
Expand Down
3 changes: 1 addition & 2 deletions src/main/java/me/xemor/superheroes/commands/HeroSelect.java
Original file line number Diff line number Diff line change
Expand Up @@ -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()),
Expand Down
3 changes: 3 additions & 0 deletions src/main/java/me/xemor/superheroes/commands/Import.java
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@
import java.util.List;

public class Import implements SubCommand {

private final Component notReload = MiniMessage.miniMessage().deserialize("<red>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("<green>Importing...");
private final Component done = MiniMessage.miniMessage().deserialize("<green>Done!");

Expand All @@ -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()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@

public enum SubCommands {

SELECT, RELOAD, REROLL, IMPORT, EXPORT, TEXTCONVERT
SELECT, RELOAD, REROLL, IMPORT, EXPORT, TEXTCONVERT, CHECK

}
14 changes: 7 additions & 7 deletions src/main/resources/language.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
Chat:
gainedHero: <bold><player> has gained the power of <hero>
gainedHero: <dark_gray><bold>[<red>Superheroes<dark_gray>]</bold><gray><player> <gray>has gained the power of <hero><reset>
noPermission: <dark_red>You do not have permission to use this power!
currentHero: <bold><player>, you are currently <hero>
heroCommandCooldown: <bold><player>, /hero is currently on cooldown. You need to
wait <currentcooldown>/<cooldown> more seconds!
invalidHeroMessage: <bold><player>, You have entered an invalid hero name!
invalidPlayerName: <bold><player>, You have entered an invalid player name!
invalidCommandMessage: <bold><player>, You have entered an invalid subcommand name!
currentHero: <dark_gray><bold>[<red>Superheroes<dark_gray>]</bold> <gray><player><gray>, is currently <hero><reset>
heroCommandCooldown: <dark_gray><bold>[<red>Superheroes<dark_gray>]</bold> <gray><player><gray>, /hero is currently on cooldown. You need to
wait <currentcooldown>/<cooldown> <gray>more seconds!<reset>
invalidHeroMessage: <dark_gray><bold>[<red>Superheroes<dark_gray>]</bold> <gray><player><gray>, You have entered an invalid hero name!
invalidPlayerMessage: <dark_gray><bold>[<red>Superheroes<dark_gray>]</bold> <gray><player><gray>, You have entered an invalid player name!
invalidCommandMessage: <dark_gray><bold>[<red>Superheroes<dark_gray>]</bold> <gray><player><gray>, You have entered an invalid subcommand name!

0 comments on commit 82d804a

Please sign in to comment.