diff --git a/src/main/java/dev/plex/LibsDisguises.java b/src/main/java/dev/plex/LibsDisguises.java index e022d1e..89952a9 100644 --- a/src/main/java/dev/plex/LibsDisguises.java +++ b/src/main/java/dev/plex/LibsDisguises.java @@ -11,6 +11,12 @@ public class LibsDisguises extends PlexModule public static boolean enabled = true; DisguiseListener disguiseListener; + @Override + public void load() + { + loadMessages("libsdisguises/messages.yml"); + } + @Override public void enable() { @@ -21,7 +27,7 @@ public class LibsDisguises extends PlexModule } registerCommand(new DisguiseToggleCMD()); registerCommand(new UndisguiseAllCMD()); - disguiseListener = new DisguiseListener(api()); + disguiseListener = new DisguiseListener(this); disguiseListener.getCommands(); registerListener(disguiseListener); } diff --git a/src/main/java/dev/plex/command/DisguiseToggleCMD.java b/src/main/java/dev/plex/command/DisguiseToggleCMD.java index 2685e26..e4c4a32 100644 --- a/src/main/java/dev/plex/command/DisguiseToggleCMD.java +++ b/src/main/java/dev/plex/command/DisguiseToggleCMD.java @@ -1,23 +1,26 @@ package dev.plex.command; import dev.plex.LibsDisguises; -import dev.plex.command.annotation.CommandParameters; -import dev.plex.command.annotation.CommandPermissions; import dev.plex.listener.UndisguiseEvent; import java.util.Collections; import java.util.List; import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.Bukkit; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -@CommandParameters(name = "disguisetoggle", description = "Toggle LibsDisguises", aliases = "dtoggle") -@CommandPermissions(permission = "plex.libsdisguises.disguisetoggle") -public class DisguiseToggleCMD extends PlexCommand +public class DisguiseToggleCMD extends SimplePlexCommand { + public DisguiseToggleCMD() + { + super(command("disguisetoggle") + .description("Toggle LibsDisguises") + .aliases("dtoggle") + .permission("plex.libsdisguises.disguisetoggle") + .build()); + } @Override protected Component execute(@NotNull CommandSender commandSender, @Nullable Player player, @NotNull String[] strings) { @@ -26,12 +29,12 @@ public class DisguiseToggleCMD extends PlexCommand { Bukkit.getServer().getPluginManager().callEvent(new UndisguiseEvent(true)); } - Bukkit.broadcast(Component.text(commandSender.getName() + " - " + (LibsDisguises.enabled ? "Enabling LibsDisguises" : "Disabling LibsDisguises")).color((LibsDisguises.enabled ? NamedTextColor.AQUA : NamedTextColor.RED))); + broadcast(messageComponent(LibsDisguises.enabled ? "disguisesEnabled" : "disguisesDisabled", commandSender.getName())); return null; } @Override - public @NotNull List smartTabComplete(@NotNull CommandSender sender, @NotNull String alias, @NotNull String[] args) throws IllegalArgumentException + protected @NotNull List suggestions(@NotNull CommandSender sender, @NotNull String alias, @NotNull String[] args) throws IllegalArgumentException { return Collections.emptyList(); } diff --git a/src/main/java/dev/plex/command/UndisguiseAllCMD.java b/src/main/java/dev/plex/command/UndisguiseAllCMD.java index 6872d2a..f796086 100644 --- a/src/main/java/dev/plex/command/UndisguiseAllCMD.java +++ b/src/main/java/dev/plex/command/UndisguiseAllCMD.java @@ -1,42 +1,46 @@ package dev.plex.command; -import dev.plex.command.annotation.CommandParameters; -import dev.plex.command.annotation.CommandPermissions; import dev.plex.listener.UndisguiseEvent; import java.util.Collections; import java.util.List; import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.Bukkit; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -@CommandParameters(name = "undisguiseall", usage = "/ [-a]", description = "Undisguise all players", aliases = "undisall,uall") -@CommandPermissions(permission = "plex.libsdisguises.undisguiseall") -public class UndisguiseAllCMD extends PlexCommand +public class UndisguiseAllCMD extends SimplePlexCommand { + public UndisguiseAllCMD() + { + super(command("undisguiseall") + .description("Undisguise all players") + .usage("/ [-a]") + .aliases("undisall,uall") + .permission("plex.libsdisguises.undisguiseall") + .build()); + } @Override protected Component execute(@NotNull CommandSender sender, @Nullable Player player, @NotNull String[] args) { if (args.length == 0) { Bukkit.getServer().getPluginManager().callEvent(new UndisguiseEvent(false)); - Bukkit.broadcast(Component.text(sender.getName() + " - Undisguising all non-admins").color(NamedTextColor.RED)); + broadcast(messageComponent("undisguiseAllNonAdmins", sender.getName())); return null; } else if (args[0].equalsIgnoreCase("-a")) { Bukkit.getServer().getPluginManager().callEvent(new UndisguiseEvent(true)); - Bukkit.broadcast(Component.text(sender.getName() + " - Undisguising all players").color(NamedTextColor.RED)); + broadcast(messageComponent("undisguiseAllPlayers", sender.getName())); return null; } return usage(); } @Override - public @NotNull List smartTabComplete(@NotNull CommandSender sender, @NotNull String alias, @NotNull String[] args) throws IllegalArgumentException + protected @NotNull List suggestions(@NotNull CommandSender sender, @NotNull String alias, @NotNull String[] args) throws IllegalArgumentException { if (silentCheckPermission(sender, this.getPermission())) { diff --git a/src/main/java/dev/plex/listener/DisguiseListener.java b/src/main/java/dev/plex/listener/DisguiseListener.java index 35a15ae..5763125 100644 --- a/src/main/java/dev/plex/listener/DisguiseListener.java +++ b/src/main/java/dev/plex/listener/DisguiseListener.java @@ -1,7 +1,6 @@ package dev.plex.listener; import dev.plex.LibsDisguises; -import dev.plex.api.PlexApi; import java.util.ArrayList; import java.util.List; import me.libraryaddict.disguise.DisguiseAPI; @@ -13,8 +12,6 @@ import me.libraryaddict.disguise.disguisetypes.watchers.PhantomWatcher; import me.libraryaddict.disguise.disguisetypes.watchers.SlimeWatcher; import me.libraryaddict.disguise.disguisetypes.watchers.WitherWatcher; import me.libraryaddict.disguise.events.DisguiseEvent; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.format.NamedTextColor; import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer; import net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer; import org.bukkit.Bukkit; @@ -28,11 +25,11 @@ import org.bukkit.plugin.Plugin; public class DisguiseListener extends PlexListener { - private final PlexApi api; + private final LibsDisguises module; - public DisguiseListener(PlexApi api) + public DisguiseListener(LibsDisguises module) { - this.api = api; + this.module = module; } private static float safeYMod(float f) @@ -47,7 +44,7 @@ public class DisguiseListener extends PlexListener Player playerSender = event.getCommandSender() instanceof Player player ? player : null; if (event.getDisguise().getType() == DisguiseType.FISHING_HOOK) { - event.getCommandSender().sendMessage(Component.text("You cannot use Fishing Hook disguises").color(NamedTextColor.RED)); + event.getCommandSender().sendMessage(module.messageComponent("fishingHookDisguiseDenied")); return; } String name = event.getDisguise().getWatcher().getCustomName(); @@ -57,7 +54,7 @@ public class DisguiseListener extends PlexListener // each color code counts as one char rather than two, for flexibility if (((name.length() - noColorLen) / 2) + noColorLen > 32) { - event.getCommandSender().sendMessage(Component.text("Your disguise name is too long").color(NamedTextColor.RED)); + event.getCommandSender().sendMessage(module.messageComponent("disguiseNameTooLong")); return; } } @@ -151,7 +148,7 @@ public class DisguiseListener extends PlexListener { if (message.equalsIgnoreCase(command.getName()) || message.equalsIgnoreCase(commandAliases)) { - event.getPlayer().sendMessage(Component.text("LibsDisguises is currently disabled.").color(NamedTextColor.RED)); + event.getPlayer().sendMessage(module.messageComponent("libsDisguisesCurrentlyDisabled")); event.setCancelled(true); break; } @@ -170,7 +167,7 @@ public class DisguiseListener extends PlexListener commands.addAll(commandList); } } - api.logging().info("Successfully fetched all LibsDisguises commands!"); + module.api().logging().info("Successfully fetched all LibsDisguises commands!"); return commands; } } diff --git a/src/main/resources/libsdisguises/messages.yml b/src/main/resources/libsdisguises/messages.yml new file mode 100644 index 0000000..692419b --- /dev/null +++ b/src/main/resources/libsdisguises/messages.yml @@ -0,0 +1,7 @@ +disguisesEnabled: "{0} - Enabling LibsDisguises" +disguisesDisabled: "{0} - Disabling LibsDisguises" +undisguiseAllNonAdmins: "{0} - Undisguising all non-admins" +undisguiseAllPlayers: "{0} - Undisguising all players" +fishingHookDisguiseDenied: "You cannot use Fishing Hook disguises" +disguiseNameTooLong: "Your disguise name is too long" +libsDisguisesCurrentlyDisabled: "LibsDisguises is currently disabled."