From 9991da2dbfa7d5ffcc7224cb8e269a279c4ba212 Mon Sep 17 00:00:00 2001 From: beanbeanjuice Date: Tue, 27 Aug 2024 21:38:27 -0400 Subject: [PATCH 1/5] Refactored the Config File --- .../SimpleProxyChatBungee.java | 39 ++- .../SimpleProxyChatVelocity.java | 40 +-- .../simpleproxychat/chat/ChatHandler.java | 83 +++--- .../bungee/BungeeBroadcastCommand.java | 10 +- .../bungee/BungeeChatToggleCommand.java | 34 +-- .../commands/bungee/BungeeReloadCommand.java | 9 +- .../commands/bungee/ban/BungeeBanCommand.java | 10 +- .../bungee/ban/BungeeUnbanCommand.java | 10 +- .../bungee/whisper/BungeeReplyCommand.java | 10 +- .../bungee/whisper/BungeeWhisperCommand.java | 12 +- .../velocity/VelocityBroadcastCommand.java | 10 +- .../velocity/VelocityChatToggleCommand.java | 34 +-- .../velocity/VelocityReloadCommand.java | 6 +- .../velocity/ban/VelocityBanCommand.java | 10 +- .../velocity/ban/VelocityUnbanCommand.java | 10 +- .../whisper/VelocityReplyCommand.java | 10 +- .../whisper/VelocityWhisperCommand.java | 12 +- .../simpleproxychat/discord/Bot.java | 24 +- .../discord/DiscordChatHandler.java | 6 +- .../socket/bungee/BungeeChatMessageData.java | 4 +- .../velocity/VelocityChatMessageData.java | 4 +- .../utility/ISimpleProxyChat.java | 2 + .../utility/UpdateChecker.java | 6 +- .../utility/config/Config.java | 251 ++++++------------ .../utility/config/ConfigDataKey.java | 106 -------- .../utility/config/ConfigFileType.java | 15 ++ .../utility/config/ConfigKey.java | 118 ++++++++ .../utility/config/ConfigValueWrapper.java | 43 +++ .../utility/epoch/EpochHelper.java | 8 +- .../utility/helper/Helper.java | 4 +- .../utility/helper/LastMessagesHelper.java | 8 +- .../bungee/BungeeServerListener.java | 18 +- .../bungee/BungeeVanishListener.java | 6 +- .../velocity/VelocityServerListener.java | 14 +- .../velocity/VelocityVanishListener.java | 1 - .../utility/status/ServerStatusManager.java | 36 +-- 36 files changed, 504 insertions(+), 519 deletions(-) delete mode 100644 projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/config/ConfigDataKey.java create mode 100644 projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/config/ConfigFileType.java create mode 100644 projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/config/ConfigKey.java create mode 100644 projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/config/ConfigValueWrapper.java diff --git a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/SimpleProxyChatBungee.java b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/SimpleProxyChatBungee.java index 4968bb7..748bb52 100644 --- a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/SimpleProxyChatBungee.java +++ b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/SimpleProxyChatBungee.java @@ -18,7 +18,7 @@ import com.beanbeanjuice.simpleproxychat.discord.Bot; import com.beanbeanjuice.simpleproxychat.utility.UpdateChecker; import com.beanbeanjuice.simpleproxychat.utility.config.Config; -import com.beanbeanjuice.simpleproxychat.utility.config.ConfigDataKey; +import com.beanbeanjuice.simpleproxychat.utility.config.ConfigKey; import com.beanbeanjuice.simpleproxychat.utility.status.ServerStatusManager; import de.myzelyam.api.vanish.BungeeVanishAPI; import litebans.api.Database; @@ -28,12 +28,10 @@ import net.kyori.adventure.text.Component; import net.kyori.adventure.text.minimessage.MiniMessage; import net.kyori.adventure.text.serializer.bungeecord.BungeeComponentSerializer; -import net.luckperms.api.LuckPerms; import net.luckperms.api.LuckPermsProvider; import net.md_5.bungee.api.ChatMessageType; import net.md_5.bungee.api.plugin.Plugin; import net.md_5.bungee.api.plugin.PluginManager; -import nl.chimpgamer.networkmanager.api.NetworkManagerPlugin; import nl.chimpgamer.networkmanager.api.NetworkManagerProvider; import org.bstats.bungeecord.Metrics; @@ -43,6 +41,7 @@ public final class SimpleProxyChatBungee extends Plugin implements ISimpleProxyChat { + @Getter private boolean pluginStarting = true; @Getter private Config config; @Getter private EpochHelper epochHelper; @Getter private Bot discordBot; @@ -92,15 +91,15 @@ public void onEnable() { // Send Initial Server Status discordBot.addRunnableToQueue(() -> { this.getProxy().getScheduler().schedule(this, () -> { - this.config.overwrite(ConfigDataKey.PLUGIN_STARTING, false); + this.pluginStarting = false; ServerStatusManager manager = serverListener.getServerStatusManager(); - manager.getAllStatusStrings().forEach((string) -> this.getLogger().info(string)); + manager.getAllStatusStrings().stream().map(Helper::sanitize).forEach((string) -> this.getLogger().info(string)); - if (!config.getAsBoolean(ConfigDataKey.USE_INITIAL_SERVER_STATUS)) return; - if (!config.getAsBoolean(ConfigDataKey.DISCORD_PROXY_STATUS_ENABLED)) return; + if (!config.get(ConfigKey.USE_INITIAL_SERVER_STATUS).asBoolean()) return; + if (!config.get(ConfigKey.DISCORD_PROXY_STATUS_ENABLED).asBoolean()) return; this.discordBot.sendMessageEmbed(manager.getAllStatusEmbed()); - }, config.getAsInteger(ConfigDataKey.SERVER_UPDATE_INTERVAL) * 2L, TimeUnit.SECONDS); + }, config.get(ConfigKey.SERVER_UPDATE_INTERVAL).asInt() * 2L, TimeUnit.SECONDS); }); } @@ -111,11 +110,11 @@ private void startUpdateChecker() { config, currentVersion, (message) -> { - if (!config.getAsBoolean(ConfigDataKey.UPDATE_NOTIFICATIONS)) return; + if (!config.get(ConfigKey.UPDATE_NOTIFICATIONS).asBoolean()) return; this.getLogger().info(Helper.sanitize(message)); - Component minimessage = MiniMessage.miniMessage().deserialize(config.getAsString(ConfigDataKey.PLUGIN_PREFIX) + message); + Component minimessage = MiniMessage.miniMessage().deserialize(config.get(ConfigKey.PLUGIN_PREFIX).asString() + message); this.getProxy().getPlayers() .stream() .filter((player) -> player.hasPermission(Permission.READ_UPDATE_NOTIFICATION.getPermissionNode())) @@ -156,12 +155,12 @@ private void hookPlugins() { } // Registering the Simple Ban System - if (!this.isLiteBansEnabled() && !this.isAdvancedBanEnabled() && config.getAsBoolean(ConfigDataKey.USE_SIMPLE_PROXY_CHAT_BANNING_SYSTEM)) { + if (!this.isLiteBansEnabled() && !this.isAdvancedBanEnabled() && config.get(ConfigKey.USE_SIMPLE_PROXY_CHAT_BANNING_SYSTEM).asBoolean()) { getLogger().info("LiteBans and AdvancedBan not found. Using the built-in banning system for SimpleProxyChat..."); banHelper = new BanHelper(this.getDataFolder()); banHelper.initialize(); } else { - config.overwrite(ConfigDataKey.USE_SIMPLE_PROXY_CHAT_BANNING_SYSTEM, false); + config.overwrite(ConfigKey.USE_SIMPLE_PROXY_CHAT_BANNING_SYSTEM, false); } } @@ -176,16 +175,16 @@ private void registerListeners() { } private void registerCommands() { - this.getProxy().getPluginManager().registerCommand(this, new BungeeReloadCommand(this, config.getAsArrayList(ConfigDataKey.RELOAD_ALIASES).toArray(new String[0]))); - this.getProxy().getPluginManager().registerCommand(this, new BungeeChatToggleCommand(this, config.getAsArrayList(ConfigDataKey.CHAT_TOGGLE_ALIASES).toArray(new String[0]))); - this.getProxy().getPluginManager().registerCommand(this, new BungeeWhisperCommand(this, config.getAsArrayList(ConfigDataKey.WHISPER_ALIASES).toArray(new String[0]))); - this.getProxy().getPluginManager().registerCommand(this, new BungeeReplyCommand(this, config.getAsArrayList(ConfigDataKey.REPLY_ALIASES).toArray(new String[0]))); - this.getProxy().getPluginManager().registerCommand(this, new BungeeBroadcastCommand(this, config.getAsArrayList(ConfigDataKey.BROADCAST_ALIASES).toArray(new String[0]))); + this.getProxy().getPluginManager().registerCommand(this, new BungeeReloadCommand(this, config.get(ConfigKey.RELOAD_ALIASES).asList().toArray(new String[0]))); + this.getProxy().getPluginManager().registerCommand(this, new BungeeChatToggleCommand(this, config.get(ConfigKey.CHAT_TOGGLE_ALIASES).asList().toArray(new String[0]))); + this.getProxy().getPluginManager().registerCommand(this, new BungeeWhisperCommand(this, config.get(ConfigKey.WHISPER_ALIASES).asList().toArray(new String[0]))); + this.getProxy().getPluginManager().registerCommand(this, new BungeeReplyCommand(this, config.get(ConfigKey.REPLY_ALIASES).asList().toArray(new String[0]))); + this.getProxy().getPluginManager().registerCommand(this, new BungeeBroadcastCommand(this, config.get(ConfigKey.BROADCAST_ALIASES).asList().toArray(new String[0]))); // Only enable when needed. - if (config.getAsBoolean(ConfigDataKey.USE_SIMPLE_PROXY_CHAT_BANNING_SYSTEM)) { - this.getProxy().getPluginManager().registerCommand(this, new BungeeBanCommand(this, config.getAsArrayList(ConfigDataKey.BAN_ALIASES).toArray(new String[0]))); - this.getProxy().getPluginManager().registerCommand(this, new BungeeUnbanCommand(this, config.getAsArrayList(ConfigDataKey.UNBAN_ALIASES).toArray(new String[0]))); + if (config.get(ConfigKey.USE_SIMPLE_PROXY_CHAT_BANNING_SYSTEM).asBoolean()) { + this.getProxy().getPluginManager().registerCommand(this, new BungeeBanCommand(this, config.get(ConfigKey.BAN_ALIASES).asList().toArray(new String[0]))); + this.getProxy().getPluginManager().registerCommand(this, new BungeeUnbanCommand(this, config.get(ConfigKey.UNBAN_ALIASES).asList().toArray(new String[0]))); } } diff --git a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/SimpleProxyChatVelocity.java b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/SimpleProxyChatVelocity.java index 2e37f1e..b8f7495 100644 --- a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/SimpleProxyChatVelocity.java +++ b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/SimpleProxyChatVelocity.java @@ -21,7 +21,7 @@ import com.beanbeanjuice.simpleproxychat.discord.Bot; import com.beanbeanjuice.simpleproxychat.utility.helper.Helper; import com.beanbeanjuice.simpleproxychat.utility.config.Config; -import com.beanbeanjuice.simpleproxychat.utility.config.ConfigDataKey; +import com.beanbeanjuice.simpleproxychat.utility.config.ConfigKey; import com.velocitypowered.api.command.CommandManager; import com.velocitypowered.api.command.CommandMeta; import com.velocitypowered.api.event.PostOrder; @@ -38,9 +38,7 @@ import me.leoko.advancedban.manager.UUIDManager; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.minimessage.MiniMessage; -import net.luckperms.api.LuckPerms; import net.luckperms.api.LuckPermsProvider; -import nl.chimpgamer.networkmanager.api.NetworkManagerPlugin; import nl.chimpgamer.networkmanager.api.NetworkManagerProvider; import org.bstats.velocity.Metrics; import org.slf4j.Logger; @@ -54,6 +52,8 @@ public class SimpleProxyChatVelocity implements ISimpleProxyChat { private final Metrics.Factory metricsFactory; + @Getter private boolean pluginStarting = true; + @Getter private final ProxyServer proxyServer; @Getter private final Logger logger; @Getter private final Config config; @@ -118,16 +118,16 @@ public void onProxyInitialization(ProxyInitializeEvent event) { // Send initial server status. discordBot.addRunnableToQueue(() -> { this.getProxyServer().getScheduler().buildTask(this, () -> { - this.config.overwrite(ConfigDataKey.PLUGIN_STARTING, false); + this.pluginStarting = false; ServerStatusManager manager = serverListener.getServerStatusManager(); - manager.getAllStatusStrings().forEach(this.getLogger()::info); + manager.getAllStatusStrings().stream().map(Helper::sanitize).forEach(this.getLogger()::info); - if (!config.getAsBoolean(ConfigDataKey.USE_INITIAL_SERVER_STATUS)) return; - if (!config.getAsBoolean(ConfigDataKey.DISCORD_PROXY_STATUS_ENABLED)) return; + if (!config.get(ConfigKey.USE_INITIAL_SERVER_STATUS).asBoolean()) return; + if (!config.get(ConfigKey.DISCORD_PROXY_STATUS_ENABLED).asBoolean()) return; discordBot.sendMessageEmbed(manager.getAllStatusEmbed()); }) - .delay(config.getAsInteger(ConfigDataKey.SERVER_UPDATE_INTERVAL) * 2L, TimeUnit.SECONDS) + .delay(config.get(ConfigKey.SERVER_UPDATE_INTERVAL).asInt() * 2L, TimeUnit.SECONDS) .schedule(); }); } @@ -141,12 +141,12 @@ private void startUpdateChecker() { config, currentVersion, (message) -> { - if (!config.getAsBoolean(ConfigDataKey.UPDATE_NOTIFICATIONS)) return; + if (!config.get(ConfigKey.UPDATE_NOTIFICATIONS).asBoolean()) return; this.getLogger().info(Helper.sanitize(message)); this.proxyServer.getAllPlayers() .stream() .filter((player) -> player.hasPermission(Permission.READ_UPDATE_NOTIFICATION.getPermissionNode())) - .forEach((player) -> player.sendMessage(Helper.stringToComponent(config.getAsString(ConfigDataKey.PLUGIN_PREFIX) + message))); + .forEach((player) -> player.sendMessage(Helper.stringToComponent(config.get(ConfigKey.PLUGIN_PREFIX).asString() + message))); } ); @@ -185,12 +185,12 @@ private void hookPlugins() { } // Registering the Simple Banning System - if (!this.isLiteBansEnabled() && !this.isAdvancedBanEnabled() && config.getAsBoolean(ConfigDataKey.USE_SIMPLE_PROXY_CHAT_BANNING_SYSTEM)) { + if (!this.isLiteBansEnabled() && !this.isAdvancedBanEnabled() && config.get(ConfigKey.USE_SIMPLE_PROXY_CHAT_BANNING_SYSTEM).asBoolean()) { getLogger().info("LiteBans and AdvancedBan not found. Using the built-in banning system for SimpleProxyChat..."); banHelper = new BanHelper(dataDirectory); banHelper.initialize(); } else { - config.overwrite(ConfigDataKey.USE_SIMPLE_PROXY_CHAT_BANNING_SYSTEM, false); + config.overwrite(ConfigKey.USE_SIMPLE_PROXY_CHAT_BANNING_SYSTEM, false); } } @@ -211,37 +211,37 @@ private void registerCommands() { CommandManager commandManager = proxyServer.getCommandManager(); CommandMeta reloadCommand = commandManager.metaBuilder("spc-reload") - .aliases(config.getAsArrayList(ConfigDataKey.RELOAD_ALIASES).toArray(new String[0])) + .aliases(config.get(ConfigKey.RELOAD_ALIASES).asList().toArray(new String[0])) .plugin(this) .build(); CommandMeta chatToggleCommand = commandManager.metaBuilder("spc-chat") - .aliases(config.getAsArrayList(ConfigDataKey.CHAT_TOGGLE_ALIASES).toArray(new String[0])) + .aliases(config.get(ConfigKey.CHAT_TOGGLE_ALIASES).asList().toArray(new String[0])) .plugin(this) .build(); CommandMeta whisperCommand = commandManager.metaBuilder("spc-whisper") - .aliases(config.getAsArrayList(ConfigDataKey.WHISPER_ALIASES).toArray(new String[0])) + .aliases(config.get(ConfigKey.WHISPER_ALIASES).asList().toArray(new String[0])) .plugin(this) .build(); CommandMeta replyCommand = commandManager.metaBuilder("spc-reply") - .aliases(config.getAsArrayList(ConfigDataKey.REPLY_ALIASES).toArray(new String[0])) + .aliases(config.get(ConfigKey.REPLY_ALIASES).asList().toArray(new String[0])) .plugin(this) .build(); CommandMeta banCommand = commandManager.metaBuilder("spc-ban") - .aliases(config.getAsArrayList(ConfigDataKey.BAN_ALIASES).toArray(new String[0])) + .aliases(config.get(ConfigKey.BAN_ALIASES).asList().toArray(new String[0])) .plugin(this) .build(); CommandMeta unbanCommand = commandManager.metaBuilder("spc-unban") - .aliases(config.getAsArrayList(ConfigDataKey.UNBAN_ALIASES).toArray(new String[0])) + .aliases(config.get(ConfigKey.UNBAN_ALIASES).asList().toArray(new String[0])) .plugin(this) .build(); CommandMeta broadcastCommand = commandManager.metaBuilder("spc-broadcast") - .aliases(config.getAsArrayList(ConfigDataKey.BROADCAST_ALIASES).toArray(new String[0])) + .aliases(config.get(ConfigKey.BROADCAST_ALIASES).asList().toArray(new String[0])) .plugin(this) .build(); @@ -252,7 +252,7 @@ private void registerCommands() { commandManager.register(broadcastCommand, new VelocityBroadcastCommand(this)); // Only enable if the Simple Banning System is enabled. - if (config.getAsBoolean(ConfigDataKey.USE_SIMPLE_PROXY_CHAT_BANNING_SYSTEM)) { + if (config.get(ConfigKey.USE_SIMPLE_PROXY_CHAT_BANNING_SYSTEM).asBoolean()) { commandManager.register(banCommand, new VelocityBanCommand(this)); commandManager.register(unbanCommand, new VelocityUnbanCommand(this)); } diff --git a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/chat/ChatHandler.java b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/chat/ChatHandler.java index c6652b1..2df02fc 100644 --- a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/chat/ChatHandler.java +++ b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/chat/ChatHandler.java @@ -7,7 +7,7 @@ import com.beanbeanjuice.simpleproxychat.utility.helper.Helper; import com.beanbeanjuice.simpleproxychat.utility.Tuple; import com.beanbeanjuice.simpleproxychat.utility.config.Config; -import com.beanbeanjuice.simpleproxychat.utility.config.ConfigDataKey; +import com.beanbeanjuice.simpleproxychat.utility.config.ConfigKey; import com.beanbeanjuice.simpleproxychat.utility.config.Permission; import com.beanbeanjuice.simpleproxychat.utility.epoch.EpochHelper; import com.beanbeanjuice.simpleproxychat.utility.helper.LastMessagesHelper; @@ -15,7 +15,6 @@ import net.dv8tion.jda.api.entities.Role; import net.dv8tion.jda.api.events.message.MessageReceivedEvent; import net.luckperms.api.LuckPerms; -import net.luckperms.api.LuckPermsProvider; import net.luckperms.api.model.user.User; import net.luckperms.api.node.Node; import net.luckperms.api.node.NodeType; @@ -55,7 +54,7 @@ public ChatHandler(ISimpleProxyChat plugin, EpochHelper epochHelper) { } private Optional getValidMessage(String message) { - String messagePrefix = config.getAsString(ConfigDataKey.PROXY_MESSAGE_PREFIX); + String messagePrefix = config.get(ConfigKey.PROXY_MESSAGE_PREFIX).asString(); if (messagePrefix.isEmpty()) return Optional.of(message); if (!message.startsWith(messagePrefix)) return Optional.empty(); @@ -67,20 +66,20 @@ private Optional getValidMessage(String message) { public void chat(ChatMessageData chatMessageData, String minecraftMessage, String discordMessage, String discordEmbedTitle, String discordEmbedMessage) { // Log to Console - if (config.getAsBoolean(ConfigDataKey.CONSOLE_CHAT)) plugin.log(minecraftMessage); + if (config.get(ConfigKey.CONSOLE_CHAT).asBoolean()) plugin.log(minecraftMessage); // Log to Discord - if (config.getAsBoolean(ConfigDataKey.MINECRAFT_DISCORD_ENABLED)) { - if (config.getAsBoolean(ConfigDataKey.MINECRAFT_DISCORD_EMBED_USE)) { + if (config.get(ConfigKey.MINECRAFT_DISCORD_ENABLED).asBoolean()) { + if (config.get(ConfigKey.MINECRAFT_DISCORD_EMBED_USE).asBoolean()) { - Color color = config.getAsColor(ConfigDataKey.MINECRAFT_DISCORD_EMBED_COLOR).orElse(Color.RED); + Color color = config.get(ConfigKey.MINECRAFT_DISCORD_EMBED_COLOR).asColor(); EmbedBuilder embedBuilder = new EmbedBuilder() .setAuthor(discordEmbedTitle, null, getPlayerHeadURL(chatMessageData.getPlayerUUID())) .setDescription(discordEmbedMessage) .setColor(color); - if (config.getAsBoolean(ConfigDataKey.MINECRAFT_DISCORD_EMBED_USE_TIMESTAMP)) + if (config.get(ConfigKey.MINECRAFT_DISCORD_EMBED_USE_TIMESTAMP).asBoolean()) embedBuilder.setTimestamp(epochHelper.getEpochInstant()); discordBot.sendMessageEmbed(embedBuilder.build()); @@ -90,7 +89,7 @@ public void chat(ChatMessageData chatMessageData, String minecraftMessage, Strin } // Log to Minecraft - if (config.getAsBoolean(ConfigDataKey.MINECRAFT_CHAT_ENABLED)) { + if (config.get(ConfigKey.MINECRAFT_CHAT_ENABLED).asBoolean()) { chatMessageData.chatSendToAllOtherPlayers(minecraftMessage); lastMessagesHelper.addMessage(minecraftMessage); } @@ -109,8 +108,8 @@ public void runProxyChatMessage(ChatMessageData chatMessageData) { if (optionalPlayerMessage.isEmpty()) return; playerMessage = optionalPlayerMessage.get(); - String minecraftConfigString = config.getAsString(ConfigDataKey.MINECRAFT_CHAT_MESSAGE); - String discordConfigString = config.getAsString(ConfigDataKey.MINECRAFT_DISCORD_MESSAGE); + String minecraftConfigString = config.get(ConfigKey.MINECRAFT_CHAT_MESSAGE).asString(); + String discordConfigString = config.get(ConfigKey.MINECRAFT_DISCORD_MESSAGE).asString(); String aliasedServerName = Helper.convertAlias(config, serverName); @@ -123,18 +122,18 @@ public void runProxyChatMessage(ChatMessageData chatMessageData) { replacements.add(Tuple.of("player", playerName)); replacements.add(Tuple.of("epoch", String.valueOf(epochHelper.getEpochSecond()))); replacements.add(Tuple.of("time", getTimeString())); - replacements.add(Tuple.of("plugin-prefix", config.getAsString(ConfigDataKey.PLUGIN_PREFIX))); + replacements.add(Tuple.of("plugin-prefix", config.get(ConfigKey.PLUGIN_PREFIX).asString())); String minecraftMessage = Helper.replaceKeys(minecraftConfigString, replacements); String discordMessage = Helper.replaceKeys(discordConfigString, replacements); - String discordEmbedTitle = Helper.replaceKeys(config.getAsString(ConfigDataKey.MINECRAFT_DISCORD_EMBED_TITLE), replacements); - String discordEmbedMessage = Helper.replaceKeys(config.getAsString(ConfigDataKey.MINECRAFT_DISCORD_EMBED_MESSAGE), replacements); + String discordEmbedTitle = Helper.replaceKeys(config.get(ConfigKey.MINECRAFT_DISCORD_EMBED_TITLE).asString(), replacements); + String discordEmbedMessage = Helper.replaceKeys(config.get(ConfigKey.MINECRAFT_DISCORD_EMBED_MESSAGE).asString(), replacements); minecraftMessage = replacePrefixSuffix(minecraftMessage, playerUUID, aliasedServerName, serverName); discordMessage = replacePrefixSuffix(discordMessage, playerUUID, aliasedServerName, serverName); discordEmbedTitle = replacePrefixSuffix(discordEmbedTitle, chatMessageData.getPlayerUUID(), aliasedServerName, chatMessageData.getServername()); - if (config.getAsBoolean(ConfigDataKey.USE_HELPER)) { + if (config.get(ConfigKey.USE_HELPER).asBoolean()) { chatMessageData.setMinecraftMessage(minecraftMessage); chatMessageData.setDiscordMessage(discordMessage); chatMessageData.setDiscordEmbedTitle(discordEmbedTitle); @@ -147,8 +146,8 @@ public void runProxyChatMessage(ChatMessageData chatMessageData) { } public void runProxyLeaveMessage(String playerName, UUID playerUUID, String serverName, BiConsumer minecraftLogger) { - String configString = config.getAsString(ConfigDataKey.MINECRAFT_LEAVE); - String discordConfigString = config.getAsString(ConfigDataKey.DISCORD_LEAVE_MESSAGE); + String configString = config.get(ConfigKey.MINECRAFT_LEAVE).asString(); + String discordConfigString = config.get(ConfigKey.DISCORD_LEAVE_MESSAGE).asString(); String aliasedServerName = Helper.convertAlias(config, serverName); @@ -160,7 +159,7 @@ public void runProxyLeaveMessage(String playerName, UUID playerUUID, String serv replacements.add(Tuple.of("original_to", serverName)); replacements.add(Tuple.of("epoch", String.valueOf(epochHelper.getEpochSecond()))); replacements.add(Tuple.of("time", getTimeString())); - replacements.add(Tuple.of("plugin-prefix", config.getAsString(ConfigDataKey.PLUGIN_PREFIX))); + replacements.add(Tuple.of("plugin-prefix", config.get(ConfigKey.PLUGIN_PREFIX).asString())); String message = Helper.replaceKeys(configString, replacements); String discordMessage = Helper.replaceKeys(discordConfigString, replacements); @@ -169,24 +168,24 @@ public void runProxyLeaveMessage(String playerName, UUID playerUUID, String serv discordMessage = replacePrefixSuffix(discordMessage, playerUUID, aliasedServerName, serverName); // Log to Console - if (config.getAsBoolean(ConfigDataKey.CONSOLE_LEAVE)) plugin.log(message); + if (config.get(ConfigKey.CONSOLE_LEAVE).asBoolean()) plugin.log(message); // Log to Discord - if (config.getAsBoolean(ConfigDataKey.DISCORD_LEAVE_ENABLED)) { + if (config.get(ConfigKey.DISCORD_LEAVE_ENABLED).asBoolean()) { EmbedBuilder embedBuilder = simpleAuthorEmbedBuilder(playerUUID, discordMessage).setColor(Color.RED); - if (config.getAsBoolean(ConfigDataKey.DISCORD_LEAVE_USE_TIMESTAMP)) embedBuilder.setTimestamp(epochHelper.getEpochInstant()); + if (config.get(ConfigKey.DISCORD_LEAVE_USE_TIMESTAMP).asBoolean()) embedBuilder.setTimestamp(epochHelper.getEpochInstant()); discordBot.sendMessageEmbed(embedBuilder.build()); } // Log to Minecraft - if (config.getAsBoolean(ConfigDataKey.MINECRAFT_LEAVE_ENABLED)) minecraftLogger.accept(message, Permission.READ_LEAVE_MESSAGE); + if (config.get(ConfigKey.MINECRAFT_LEAVE_ENABLED).asBoolean()) minecraftLogger.accept(message, Permission.READ_LEAVE_MESSAGE); } public void runProxyJoinMessage(String playerName, UUID playerUUID, String serverName, BiConsumer minecraftLogger) { - String configString = config.getAsString(ConfigDataKey.MINECRAFT_JOIN); - String discordConfigString = config.getAsString(ConfigDataKey.DISCORD_JOIN_MESSAGE); + String configString = config.get(ConfigKey.MINECRAFT_JOIN).asString(); + String discordConfigString = config.get(ConfigKey.DISCORD_JOIN_MESSAGE).asString(); String aliasedServerName = Helper.convertAlias(config, serverName); @@ -200,7 +199,7 @@ public void runProxyJoinMessage(String playerName, UUID playerUUID, String serve replacements.add(Tuple.of("original_to", serverName)); replacements.add(Tuple.of("epoch", String.valueOf(epochHelper.getEpochSecond()))); replacements.add(Tuple.of("time", getTimeString())); - replacements.add(Tuple.of("plugin-prefix", config.getAsString(ConfigDataKey.PLUGIN_PREFIX))); + replacements.add(Tuple.of("plugin-prefix", config.get(ConfigKey.PLUGIN_PREFIX).asString())); String message = Helper.replaceKeys(configString, replacements); String discordMessage = Helper.replaceKeys(discordConfigString, replacements); @@ -209,25 +208,25 @@ public void runProxyJoinMessage(String playerName, UUID playerUUID, String serve discordMessage = replacePrefixSuffix(discordMessage, playerUUID, aliasedServerName, serverName); // Log to Console - if (config.getAsBoolean(ConfigDataKey.CONSOLE_JOIN)) plugin.log(message); + if (config.get(ConfigKey.CONSOLE_JOIN).asBoolean()) plugin.log(message); // Log to Discord - if (config.getAsBoolean(ConfigDataKey.DISCORD_JOIN_ENABLED)) { + if (config.get(ConfigKey.DISCORD_JOIN_ENABLED).asBoolean()) { EmbedBuilder embedBuilder = simpleAuthorEmbedBuilder(playerUUID, discordMessage).setColor(Color.GREEN); - if (config.getAsBoolean(ConfigDataKey.DISCORD_JOIN_USE_TIMESTAMP)) embedBuilder.setTimestamp(epochHelper.getEpochInstant()); + if (config.get(ConfigKey.DISCORD_JOIN_USE_TIMESTAMP).asBoolean()) embedBuilder.setTimestamp(epochHelper.getEpochInstant()); discordBot.sendMessageEmbed(embedBuilder.build()); } // Log to Minecraft - if (config.getAsBoolean(ConfigDataKey.MINECRAFT_JOIN_ENABLED)) + if (config.get(ConfigKey.MINECRAFT_JOIN_ENABLED).asBoolean()) minecraftLogger.accept(message, Permission.READ_JOIN_MESSAGE); } public void runProxySwitchMessage(String from, String to, String playerName, UUID playerUUID, Consumer minecraftLogger, Consumer playerLogger) { - String consoleConfigString = config.getAsString(ConfigDataKey.MINECRAFT_SWITCH_DEFAULT); - String discordConfigString = config.getAsString(ConfigDataKey.DISCORD_SWITCH_MESSAGE); - String minecraftConfigString = config.getAsString(ConfigDataKey.MINECRAFT_SWITCH_SHORT); + String consoleConfigString = config.get(ConfigKey.MINECRAFT_SWITCH_DEFAULT).asString(); + String discordConfigString = config.get(ConfigKey.DISCORD_SWITCH_MESSAGE).asString(); + String minecraftConfigString = config.get(ConfigKey.MINECRAFT_SWITCH_SHORT).asString(); String aliasedFrom = Helper.convertAlias(config, from); String aliasedTo = Helper.convertAlias(config, to); @@ -242,7 +241,7 @@ public void runProxySwitchMessage(String from, String to, String playerName, UUI replacements.add(Tuple.of("player", playerName)); replacements.add(Tuple.of("epoch", String.valueOf(epochHelper.getEpochSecond()))); replacements.add(Tuple.of("time", getTimeString())); - replacements.add(Tuple.of("plugin-prefix", config.getAsString(ConfigDataKey.PLUGIN_PREFIX))); + replacements.add(Tuple.of("plugin-prefix", config.get(ConfigKey.PLUGIN_PREFIX).asString())); String consoleMessage = Helper.replaceKeys(consoleConfigString, replacements); String discordMessage = Helper.replaceKeys(discordConfigString, replacements); @@ -253,17 +252,17 @@ public void runProxySwitchMessage(String from, String to, String playerName, UUI discordMessage = replacePrefixSuffix(discordMessage, playerUUID, aliasedTo, to); // Log to Console - if (config.getAsBoolean(ConfigDataKey.CONSOLE_SWITCH)) plugin.log(consoleMessage); + if (config.get(ConfigKey.CONSOLE_SWITCH).asBoolean()) plugin.log(consoleMessage); // Log to Discord - if (config.getAsBoolean(ConfigDataKey.DISCORD_SWITCH_ENABLED)) { + if (config.get(ConfigKey.DISCORD_SWITCH_ENABLED).asBoolean()) { EmbedBuilder embedBuilder = simpleAuthorEmbedBuilder(playerUUID, discordMessage).setColor(Color.YELLOW); - if (config.getAsBoolean(ConfigDataKey.DISCORD_SWITCH_USE_TIMESTAMP)) embedBuilder.setTimestamp(epochHelper.getEpochInstant()); + if (config.get(ConfigKey.DISCORD_SWITCH_USE_TIMESTAMP).asBoolean()) embedBuilder.setTimestamp(epochHelper.getEpochInstant()); discordBot.sendMessageEmbed(embedBuilder.build()); } // Log to Minecraft - if (config.getAsBoolean(ConfigDataKey.MINECRAFT_SWITCH_ENABLED)) { + if (config.get(ConfigKey.MINECRAFT_SWITCH_ENABLED).asBoolean()) { minecraftLogger.accept(minecraftMessage); lastMessagesHelper.getBoundedArrayList().forEach(playerLogger); } @@ -286,7 +285,7 @@ private String getPlayerHeadURL(UUID playerUUID) { } public void sendFromDiscord(MessageReceivedEvent event) { - String message = config.getAsString(ConfigDataKey.DISCORD_CHAT_MINECRAFT_MESSAGE); + String message = config.get(ConfigKey.DISCORD_CHAT_MINECRAFT_MESSAGE).asString(); if (event.getMember() == null) return; @@ -316,10 +315,10 @@ public void sendFromDiscord(MessageReceivedEvent event) { Tuple.of("message", discordMessage), Tuple.of("epoch", String.valueOf(epochHelper.getEpochSecond())), Tuple.of("time", getTimeString()), - Tuple.of("plugin-prefix", config.getAsString(ConfigDataKey.PLUGIN_PREFIX)) + Tuple.of("plugin-prefix", config.get(ConfigKey.PLUGIN_PREFIX).asString()) ); - if (config.getAsBoolean(ConfigDataKey.MINECRAFT_DISCORD_ENABLED)) plugin.sendAll(message); + if (config.get(ConfigKey.MINECRAFT_DISCORD_ENABLED).asBoolean()) plugin.sendAll(message); } private List getPrefixBasedOnServerContext(User user, String... serverKeys) { @@ -401,8 +400,8 @@ private String replacePrefixSuffix(String message, UUID playerUUID, String alias * @see Format */ private String getTimeString() { - DateTimeZone zone = DateTimeZone.forID(config.getAsString(ConfigDataKey.TIMESTAMP_TIMEZONE)); - DateTimeFormatter format = DateTimeFormat.forPattern(config.getAsString(ConfigDataKey.TIMESTAMP_FORMAT)); + DateTimeZone zone = config.get(ConfigKey.TIMESTAMP_TIMEZONE).asDateTimeZone(); + DateTimeFormatter format = DateTimeFormat.forPattern(config.get(ConfigKey.TIMESTAMP_FORMAT).asString()); long timeInMillis = epochHelper.getEpochMillisecond(); DateTime time = new DateTime(timeInMillis).withZone(zone); diff --git a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/commands/bungee/BungeeBroadcastCommand.java b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/commands/bungee/BungeeBroadcastCommand.java index cd3deb6..d664a7b 100644 --- a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/commands/bungee/BungeeBroadcastCommand.java +++ b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/commands/bungee/BungeeBroadcastCommand.java @@ -3,7 +3,7 @@ import com.beanbeanjuice.simpleproxychat.SimpleProxyChatBungee; import com.beanbeanjuice.simpleproxychat.utility.Tuple; import com.beanbeanjuice.simpleproxychat.utility.config.Config; -import com.beanbeanjuice.simpleproxychat.utility.config.ConfigDataKey; +import com.beanbeanjuice.simpleproxychat.utility.config.ConfigKey; import com.beanbeanjuice.simpleproxychat.utility.config.Permission; import com.beanbeanjuice.simpleproxychat.utility.helper.Helper; import net.md_5.bungee.api.CommandSender; @@ -30,11 +30,11 @@ public void execute(CommandSender commandSender, String[] strings) { } String broadcastMessage = String.join(" ", strings); - String broadcastString = config.getAsString(ConfigDataKey.MINECRAFT_COMMAND_BROADCAST_MESSAGE); + String broadcastString = config.get(ConfigKey.MINECRAFT_COMMAND_BROADCAST_MESSAGE).asString(); broadcastString = Helper.replaceKeys( broadcastString, - Tuple.of("plugin-prefix", config.getAsString(ConfigDataKey.PLUGIN_PREFIX)), + Tuple.of("plugin-prefix", config.get(ConfigKey.PLUGIN_PREFIX).asString()), Tuple.of("message", Helper.translateLegacyCodes(broadcastMessage)) ); @@ -43,8 +43,8 @@ public void execute(CommandSender commandSender, String[] strings) { } private void sendError(final CommandSender sender) { - String errorString = config.getAsString(ConfigDataKey.MINECRAFT_COMMAND_BROADCAST_USAGE); - errorString = Helper.replaceKeys(errorString, Tuple.of("plugin-prefix", config.getAsString(ConfigDataKey.PLUGIN_PREFIX))); + String errorString = config.get(ConfigKey.MINECRAFT_COMMAND_BROADCAST_USAGE).asString(); + errorString = Helper.replaceKeys(errorString, Tuple.of("plugin-prefix", config.get(ConfigKey.PLUGIN_PREFIX).asString())); sender.sendMessage(Helper.convertToBungee(errorString)); } diff --git a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/commands/bungee/BungeeChatToggleCommand.java b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/commands/bungee/BungeeChatToggleCommand.java index 4383bc6..ed87918 100644 --- a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/commands/bungee/BungeeChatToggleCommand.java +++ b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/commands/bungee/BungeeChatToggleCommand.java @@ -4,7 +4,7 @@ import com.beanbeanjuice.simpleproxychat.utility.helper.Helper; import com.beanbeanjuice.simpleproxychat.utility.Tuple; import com.beanbeanjuice.simpleproxychat.utility.config.Config; -import com.beanbeanjuice.simpleproxychat.utility.config.ConfigDataKey; +import com.beanbeanjuice.simpleproxychat.utility.config.ConfigKey; import com.beanbeanjuice.simpleproxychat.utility.config.Permission; import net.md_5.bungee.api.CommandSender; import net.md_5.bungee.api.config.ServerInfo; @@ -49,10 +49,10 @@ public void execute(CommandSender sender, String[] args) { private void executeAll(CommandSender sender, String type) { if (!sender.hasPermission(Permission.COMMAND_TOGGLE_CHAT_ALL.getPermissionNode()) && sender instanceof ProxiedPlayer) { - String message = config.getAsString(ConfigDataKey.MINECRAFT_COMMAND_NO_PERMISSION); + String message = config.get(ConfigKey.MINECRAFT_COMMAND_NO_PERMISSION).asString(); message = Helper.replaceKeys( message, - Tuple.of("plugin-prefix", config.getAsString(ConfigDataKey.PLUGIN_PREFIX)) + Tuple.of("plugin-prefix", config.get(ConfigKey.PLUGIN_PREFIX).asString()) ); sender.sendMessage(Helper.convertToBungee(message)); return; @@ -62,20 +62,20 @@ private void executeAll(CommandSender sender, String type) { switch (type.toLowerCase()) { case "lock" -> { serverMap.forEach((serverName, serverInfo) -> config.getServerChatLockHelper().addServer(serverName)); - String message = config.getAsString(ConfigDataKey.MINECRAFT_COMMAND_CHAT_LOCK_ALL_LOCKED); + String message = config.get(ConfigKey.MINECRAFT_COMMAND_CHAT_LOCK_ALL_LOCKED).asString(); message = Helper.replaceKeys( message, - Tuple.of("plugin-prefix", config.getAsString(ConfigDataKey.PLUGIN_PREFIX)) + Tuple.of("plugin-prefix", config.get(ConfigKey.PLUGIN_PREFIX).asString()) ); sender.sendMessage(Helper.convertToBungee(message)); } case "unlock" -> { serverMap.forEach((serverName, serverInfo) -> config.getServerChatLockHelper().removeServer(serverName)); - String message = config.getAsString(ConfigDataKey.MINECRAFT_COMMAND_CHAT_LOCK_ALL_UNLOCKED); + String message = config.get(ConfigKey.MINECRAFT_COMMAND_CHAT_LOCK_ALL_UNLOCKED).asString(); message = Helper.replaceKeys( message, - Tuple.of("plugin-prefix", config.getAsString(ConfigDataKey.PLUGIN_PREFIX)) + Tuple.of("plugin-prefix", config.get(ConfigKey.PLUGIN_PREFIX).asString()) ); sender.sendMessage(Helper.convertToBungee(message)); } @@ -87,20 +87,20 @@ private void executeAll(CommandSender sender, String type) { private void executeSingle(CommandSender sender, String type) { if (!sender.hasPermission(Permission.COMMAND_TOGGLE_CHAT.getPermissionNode()) && sender instanceof ProxiedPlayer) { - String message = config.getAsString(ConfigDataKey.MINECRAFT_COMMAND_NO_PERMISSION); + String message = config.get(ConfigKey.MINECRAFT_COMMAND_NO_PERMISSION).asString(); message = Helper.replaceKeys( message, - Tuple.of("plugin-prefix", config.getAsString(ConfigDataKey.PLUGIN_PREFIX)) + Tuple.of("plugin-prefix", config.get(ConfigKey.PLUGIN_PREFIX).asString()) ); sender.sendMessage(Helper.convertToBungee(message)); return; } if (!(sender instanceof ProxiedPlayer player)) { - String message = config.getAsString(ConfigDataKey.MINECRAFT_COMMAND_MUST_BE_PLAYER); + String message = config.get(ConfigKey.MINECRAFT_COMMAND_MUST_BE_PLAYER).asString(); message = Helper.replaceKeys( message, - Tuple.of("plugin-prefix", config.getAsString(ConfigDataKey.PLUGIN_PREFIX)) + Tuple.of("plugin-prefix", config.get(ConfigKey.PLUGIN_PREFIX).asString()) ); sender.sendMessage(Helper.convertToBungee(message)); return; @@ -113,20 +113,20 @@ private void executeSingle(CommandSender sender, String type) { switch (type.toLowerCase()) { case "lock" -> { servers.forEach((serverName) -> config.getServerChatLockHelper().addServer(serverName)); - String message = config.getAsString(ConfigDataKey.MINECRAFT_COMMAND_CHAT_LOCK_SINGLE_LOCKED); + String message = config.get(ConfigKey.MINECRAFT_COMMAND_CHAT_LOCK_SINGLE_LOCKED).asString(); message = Helper.replaceKeys( message, - Tuple.of("plugin-prefix", config.getAsString(ConfigDataKey.PLUGIN_PREFIX)), + Tuple.of("plugin-prefix", config.get(ConfigKey.PLUGIN_PREFIX).asString()), Tuple.of("server", currentServerName) ); sender.sendMessage(Helper.convertToBungee(message)); } case "unlock" -> { servers.forEach((serverName) -> config.getServerChatLockHelper().removeServer(serverName)); - String message = config.getAsString(ConfigDataKey.MINECRAFT_COMMAND_CHAT_LOCK_SINGLE_UNLOCKED); + String message = config.get(ConfigKey.MINECRAFT_COMMAND_CHAT_LOCK_SINGLE_UNLOCKED).asString(); message = Helper.replaceKeys( message, - Tuple.of("plugin-prefix", config.getAsString(ConfigDataKey.PLUGIN_PREFIX)), + Tuple.of("plugin-prefix", config.get(ConfigKey.PLUGIN_PREFIX).asString()), Tuple.of("server", currentServerName) ); sender.sendMessage(Helper.convertToBungee(message)); @@ -136,10 +136,10 @@ private void executeSingle(CommandSender sender, String type) { } private void executeError(CommandSender sender) { - String message = config.getAsString(ConfigDataKey.MINECRAFT_COMMAND_CHAT_LOCK_USAGE); + String message = config.get(ConfigKey.MINECRAFT_COMMAND_CHAT_LOCK_USAGE).asString(); message = Helper.replaceKeys( message, - Tuple.of("plugin-prefix", config.getAsString(ConfigDataKey.PLUGIN_PREFIX)) + Tuple.of("plugin-prefix", config.get(ConfigKey.PLUGIN_PREFIX).asString()) ); sender.sendMessage(Helper.convertToBungee(message)); } diff --git a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/commands/bungee/BungeeReloadCommand.java b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/commands/bungee/BungeeReloadCommand.java index d806373..f92e16c 100644 --- a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/commands/bungee/BungeeReloadCommand.java +++ b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/commands/bungee/BungeeReloadCommand.java @@ -4,7 +4,7 @@ import com.beanbeanjuice.simpleproxychat.utility.helper.Helper; import com.beanbeanjuice.simpleproxychat.utility.Tuple; import com.beanbeanjuice.simpleproxychat.utility.config.Config; -import com.beanbeanjuice.simpleproxychat.utility.config.ConfigDataKey; +import com.beanbeanjuice.simpleproxychat.utility.config.ConfigKey; import com.beanbeanjuice.simpleproxychat.utility.config.Permission; import net.md_5.bungee.api.CommandSender; import net.md_5.bungee.api.connection.ProxiedPlayer; @@ -24,18 +24,17 @@ public BungeeReloadCommand(final SimpleProxyChatBungee plugin, final String... a @Override public void execute(CommandSender sender, String[] args) { if (!sender.hasPermission(Permission.COMMAND_RELOAD.getPermissionNode()) && sender instanceof ProxiedPlayer) { - String message = config.getAsString(ConfigDataKey.MINECRAFT_COMMAND_NO_PERMISSION); + String message = config.get(ConfigKey.MINECRAFT_COMMAND_NO_PERMISSION).asString(); sender.sendMessage(Helper.convertToBungee(message)); return; } config.reload(); - plugin.getDiscordBot().updateActivity(); - String message = config.getAsString(ConfigDataKey.MINECRAFT_COMMAND_RELOAD); + String message = config.get(ConfigKey.MINECRAFT_COMMAND_RELOAD).asString(); message = Helper.replaceKeys( message, - Tuple.of("plugin-prefix", config.getAsString(ConfigDataKey.PLUGIN_PREFIX)) + Tuple.of("plugin-prefix", config.get(ConfigKey.PLUGIN_PREFIX).asString()) ); sender.sendMessage(Helper.convertToBungee(message)); } diff --git a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/commands/bungee/ban/BungeeBanCommand.java b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/commands/bungee/ban/BungeeBanCommand.java index 073d381..c31b3ed 100644 --- a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/commands/bungee/ban/BungeeBanCommand.java +++ b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/commands/bungee/ban/BungeeBanCommand.java @@ -3,7 +3,7 @@ import com.beanbeanjuice.simpleproxychat.SimpleProxyChatBungee; import com.beanbeanjuice.simpleproxychat.utility.Tuple; import com.beanbeanjuice.simpleproxychat.utility.config.Config; -import com.beanbeanjuice.simpleproxychat.utility.config.ConfigDataKey; +import com.beanbeanjuice.simpleproxychat.utility.config.ConfigKey; import com.beanbeanjuice.simpleproxychat.utility.config.Permission; import com.beanbeanjuice.simpleproxychat.utility.helper.Helper; import net.md_5.bungee.api.CommandSender; @@ -25,13 +25,13 @@ public BungeeBanCommand(final SimpleProxyChatBungee plugin, final String... alia @Override public void execute(CommandSender sender, String[] args) { - if (!config.getAsBoolean(ConfigDataKey.USE_SIMPLE_PROXY_CHAT_BANNING_SYSTEM)) { + if (!config.get(ConfigKey.USE_SIMPLE_PROXY_CHAT_BANNING_SYSTEM).asBoolean()) { sender.sendMessage(Helper.convertToBungee("&cThe banning system is disabled...")); return; } if (args.length != 1) { - String errorMessage = config.getAsString(ConfigDataKey.MINECRAFT_COMMAND_PROXY_BAN_USAGE); + String errorMessage = config.get(ConfigKey.MINECRAFT_COMMAND_PROXY_BAN_USAGE).asString(); sender.sendMessage(Helper.convertToBungee(errorMessage)); return; } @@ -40,10 +40,10 @@ public void execute(CommandSender sender, String[] args) { plugin.getBanHelper().addBan(playerName); plugin.getProxy().getPlayer(playerName).disconnect(Helper.convertToBungee("&cYou have been banned from the proxy.")); - String bannedMessage = config.getAsString(ConfigDataKey.MINECRAFT_COMMAND_PROXY_BAN_BANNED); + String bannedMessage = config.get(ConfigKey.MINECRAFT_COMMAND_PROXY_BAN_BANNED).asString(); bannedMessage = Helper.replaceKeys( bannedMessage, - Tuple.of("plugin-prefix", config.getAsString(ConfigDataKey.PLUGIN_PREFIX)), + Tuple.of("plugin-prefix", config.get(ConfigKey.PLUGIN_PREFIX).asString()), Tuple.of("player", playerName) ); diff --git a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/commands/bungee/ban/BungeeUnbanCommand.java b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/commands/bungee/ban/BungeeUnbanCommand.java index 979874e..f3eaa62 100644 --- a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/commands/bungee/ban/BungeeUnbanCommand.java +++ b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/commands/bungee/ban/BungeeUnbanCommand.java @@ -3,7 +3,7 @@ import com.beanbeanjuice.simpleproxychat.SimpleProxyChatBungee; import com.beanbeanjuice.simpleproxychat.utility.Tuple; import com.beanbeanjuice.simpleproxychat.utility.config.Config; -import com.beanbeanjuice.simpleproxychat.utility.config.ConfigDataKey; +import com.beanbeanjuice.simpleproxychat.utility.config.ConfigKey; import com.beanbeanjuice.simpleproxychat.utility.config.Permission; import com.beanbeanjuice.simpleproxychat.utility.helper.Helper; import net.md_5.bungee.api.CommandSender; @@ -25,13 +25,13 @@ public BungeeUnbanCommand(final SimpleProxyChatBungee plugin, final String... al @Override public void execute(CommandSender sender, String[] args) { - if (!config.getAsBoolean(ConfigDataKey.USE_SIMPLE_PROXY_CHAT_BANNING_SYSTEM)) { + if (!config.get(ConfigKey.USE_SIMPLE_PROXY_CHAT_BANNING_SYSTEM).asBoolean()) { sender.sendMessage(Helper.convertToBungee("&cThe banning system is disabled...")); return; } if (args.length != 1) { - String errorMessage = config.getAsString(ConfigDataKey.MINECRAFT_COMMAND_PROXY_BAN_USAGE); + String errorMessage = config.get(ConfigKey.MINECRAFT_COMMAND_PROXY_BAN_USAGE).asString(); sender.sendMessage(Helper.convertToBungee(errorMessage)); return; } @@ -39,10 +39,10 @@ public void execute(CommandSender sender, String[] args) { String playerName = args[0]; plugin.getBanHelper().removeBan(playerName); - String unbannedMessage = config.getAsString(ConfigDataKey.MINECRAFT_COMMAND_PROXY_BAN_UNBANNED); + String unbannedMessage = config.get(ConfigKey.MINECRAFT_COMMAND_PROXY_BAN_UNBANNED).asString(); unbannedMessage = Helper.replaceKeys( unbannedMessage, - Tuple.of("plugin-prefix", config.getAsString(ConfigDataKey.PLUGIN_PREFIX)), + Tuple.of("plugin-prefix", config.get(ConfigKey.PLUGIN_PREFIX).asString()), Tuple.of("player", playerName) ); diff --git a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/commands/bungee/whisper/BungeeReplyCommand.java b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/commands/bungee/whisper/BungeeReplyCommand.java index 2658359..c8cb76e 100644 --- a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/commands/bungee/whisper/BungeeReplyCommand.java +++ b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/commands/bungee/whisper/BungeeReplyCommand.java @@ -4,7 +4,7 @@ import com.beanbeanjuice.simpleproxychat.utility.helper.Helper; import com.beanbeanjuice.simpleproxychat.utility.Tuple; import com.beanbeanjuice.simpleproxychat.utility.config.Config; -import com.beanbeanjuice.simpleproxychat.utility.config.ConfigDataKey; +import com.beanbeanjuice.simpleproxychat.utility.config.ConfigKey; import com.beanbeanjuice.simpleproxychat.utility.config.Permission; import net.md_5.bungee.api.CommandSender; import net.md_5.bungee.api.plugin.Command; @@ -29,14 +29,14 @@ public void execute(CommandSender sender, String[] args) { (receiver) -> { String message = Helper.translateLegacyCodes(String.join(" ", args)); - String senderString = config.getAsString(ConfigDataKey.MINECRAFT_WHISPER_SEND); - String receiverString = config.getAsString(ConfigDataKey.MINECRAFT_WHISPER_RECEIVE); + String senderString = config.get(ConfigKey.MINECRAFT_WHISPER_SEND).asString(); + String receiverString = config.get(ConfigKey.MINECRAFT_WHISPER_RECEIVE).asString(); List> replacements = new ArrayList<>(); replacements.add(Tuple.of("sender", sender.getName())); replacements.add(Tuple.of("receiver", receiver.getName())); replacements.add(Tuple.of("message", message)); - replacements.add(Tuple.of("plugin-prefix", config.getAsString(ConfigDataKey.PLUGIN_PREFIX))); + replacements.add(Tuple.of("plugin-prefix", config.get(ConfigKey.PLUGIN_PREFIX).asString())); senderString = Helper.replaceKeys(senderString, replacements); receiverString = Helper.replaceKeys(receiverString, replacements); @@ -46,7 +46,7 @@ public void execute(CommandSender sender, String[] args) { plugin.getWhisperHandler().set(sender.getName(), receiver.getName()); }, - () -> sender.sendMessage(Helper.convertToBungee(config.getAsString(ConfigDataKey.MINECRAFT_WHISPER_ERROR))) + () -> sender.sendMessage(Helper.convertToBungee(config.get(ConfigKey.MINECRAFT_WHISPER_ERROR).asString())) ); } diff --git a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/commands/bungee/whisper/BungeeWhisperCommand.java b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/commands/bungee/whisper/BungeeWhisperCommand.java index cdc45f9..b8cc9f4 100644 --- a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/commands/bungee/whisper/BungeeWhisperCommand.java +++ b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/commands/bungee/whisper/BungeeWhisperCommand.java @@ -4,7 +4,7 @@ import com.beanbeanjuice.simpleproxychat.utility.helper.Helper; import com.beanbeanjuice.simpleproxychat.utility.Tuple; import com.beanbeanjuice.simpleproxychat.utility.config.Config; -import com.beanbeanjuice.simpleproxychat.utility.config.ConfigDataKey; +import com.beanbeanjuice.simpleproxychat.utility.config.ConfigKey; import com.beanbeanjuice.simpleproxychat.utility.config.Permission; import net.md_5.bungee.api.CommandSender; import net.md_5.bungee.api.connection.ProxiedPlayer; @@ -30,26 +30,26 @@ public BungeeWhisperCommand(final SimpleProxyChatBungee plugin, final String... @Override public void execute(CommandSender sender, String[] args) { if (args.length < 2) { - sender.sendMessage(Helper.convertToBungee(config.getAsString(ConfigDataKey.MINECRAFT_WHISPER_ERROR))); + sender.sendMessage(Helper.convertToBungee(config.get(ConfigKey.MINECRAFT_WHISPER_ERROR).asString())); return; } ProxiedPlayer receiver = plugin.getProxy().getPlayer(args[0]); if (receiver == null) { - sender.sendMessage(Helper.convertToBungee(config.getAsString(ConfigDataKey.MINECRAFT_WHISPER_ERROR))); + sender.sendMessage(Helper.convertToBungee(config.get(ConfigKey.MINECRAFT_WHISPER_ERROR).asString())); return; } String message = Helper.translateLegacyCodes(Arrays.stream(args).skip(1).collect(Collectors.joining(" "))); - String senderString = config.getAsString(ConfigDataKey.MINECRAFT_WHISPER_SEND); - String receiverString = config.getAsString(ConfigDataKey.MINECRAFT_WHISPER_RECEIVE); + String senderString = config.get(ConfigKey.MINECRAFT_WHISPER_SEND).asString(); + String receiverString = config.get(ConfigKey.MINECRAFT_WHISPER_RECEIVE).asString(); List> replacements = new ArrayList<>(); replacements.add(Tuple.of("sender", sender.getName())); replacements.add(Tuple.of("receiver", receiver.getName())); replacements.add(Tuple.of("message", message)); - replacements.add(Tuple.of("plugin-prefix", config.getAsString(ConfigDataKey.PLUGIN_PREFIX))); + replacements.add(Tuple.of("plugin-prefix", config.get(ConfigKey.PLUGIN_PREFIX).asString())); senderString = Helper.replaceKeys(senderString, replacements); receiverString = Helper.replaceKeys(receiverString, replacements); diff --git a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/commands/velocity/VelocityBroadcastCommand.java b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/commands/velocity/VelocityBroadcastCommand.java index 763b29f..77b7a5f 100644 --- a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/commands/velocity/VelocityBroadcastCommand.java +++ b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/commands/velocity/VelocityBroadcastCommand.java @@ -3,7 +3,7 @@ import com.beanbeanjuice.simpleproxychat.SimpleProxyChatVelocity; import com.beanbeanjuice.simpleproxychat.utility.Tuple; import com.beanbeanjuice.simpleproxychat.utility.config.Config; -import com.beanbeanjuice.simpleproxychat.utility.config.ConfigDataKey; +import com.beanbeanjuice.simpleproxychat.utility.config.ConfigKey; import com.beanbeanjuice.simpleproxychat.utility.config.Permission; import com.beanbeanjuice.simpleproxychat.utility.helper.Helper; import com.velocitypowered.api.command.CommandSource; @@ -28,11 +28,11 @@ public void execute(Invocation invocation) { } String broadcastMessage = String.join(" ", invocation.arguments()); - String broadcastString = config.getAsString(ConfigDataKey.MINECRAFT_COMMAND_BROADCAST_MESSAGE); + String broadcastString = config.get(ConfigKey.MINECRAFT_COMMAND_BROADCAST_MESSAGE).asString(); broadcastString = Helper.replaceKeys( broadcastString, - Tuple.of("plugin-prefix", config.getAsString(ConfigDataKey.PLUGIN_PREFIX)), + Tuple.of("plugin-prefix", config.get(ConfigKey.PLUGIN_PREFIX).asString()), Tuple.of("message", Helper.translateLegacyCodes(broadcastMessage)) ); @@ -41,8 +41,8 @@ public void execute(Invocation invocation) { } private void sendError(final CommandSource sender) { - String errorString = config.getAsString(ConfigDataKey.MINECRAFT_COMMAND_BROADCAST_USAGE); - errorString = Helper.replaceKeys(errorString, Tuple.of("plugin-prefix", config.getAsString(ConfigDataKey.PLUGIN_PREFIX))); + String errorString = config.get(ConfigKey.MINECRAFT_COMMAND_BROADCAST_USAGE).asString(); + errorString = Helper.replaceKeys(errorString, Tuple.of("plugin-prefix", config.get(ConfigKey.PLUGIN_PREFIX).asString())); sender.sendMessage(Helper.stringToComponent(errorString)); } diff --git a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/commands/velocity/VelocityChatToggleCommand.java b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/commands/velocity/VelocityChatToggleCommand.java index 768fa7b..49beead 100644 --- a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/commands/velocity/VelocityChatToggleCommand.java +++ b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/commands/velocity/VelocityChatToggleCommand.java @@ -4,7 +4,7 @@ import com.beanbeanjuice.simpleproxychat.utility.helper.Helper; import com.beanbeanjuice.simpleproxychat.utility.Tuple; import com.beanbeanjuice.simpleproxychat.utility.config.Config; -import com.beanbeanjuice.simpleproxychat.utility.config.ConfigDataKey; +import com.beanbeanjuice.simpleproxychat.utility.config.ConfigKey; import com.beanbeanjuice.simpleproxychat.utility.config.Permission; import com.velocitypowered.api.command.CommandSource; import com.velocitypowered.api.command.SimpleCommand; @@ -56,10 +56,10 @@ public List suggest(Invocation invocation) { private void executeAll(CommandSource sender, String type) { if (!sender.hasPermission(Permission.COMMAND_TOGGLE_CHAT_ALL.getPermissionNode()) && sender instanceof Player) { - String message = config.getAsString(ConfigDataKey.MINECRAFT_COMMAND_NO_PERMISSION); + String message = config.get(ConfigKey.MINECRAFT_COMMAND_NO_PERMISSION).asString(); message = Helper.replaceKeys( message, - Tuple.of("plugin-prefix", config.getAsString(ConfigDataKey.PLUGIN_PREFIX)) + Tuple.of("plugin-prefix", config.get(ConfigKey.PLUGIN_PREFIX).asString()) ); sender.sendMessage(Helper.stringToComponent(message)); return; @@ -71,19 +71,19 @@ private void executeAll(CommandSource sender, String type) { switch (type.toLowerCase()) { case "lock" -> { servers.forEach((serverName) -> config.getServerChatLockHelper().addServer(serverName)); - String message = config.getAsString(ConfigDataKey.MINECRAFT_COMMAND_CHAT_LOCK_ALL_LOCKED); + String message = config.get(ConfigKey.MINECRAFT_COMMAND_CHAT_LOCK_ALL_LOCKED).asString(); message = Helper.replaceKeys( message, - Tuple.of("plugin-prefix", config.getAsString(ConfigDataKey.PLUGIN_PREFIX)) + Tuple.of("plugin-prefix", config.get(ConfigKey.PLUGIN_PREFIX).asString()) ); sender.sendMessage(Helper.stringToComponent(message)); } case "unlock" -> { servers.forEach((serverName) -> config.getServerChatLockHelper().removeServer(serverName)); - String message = config.getAsString(ConfigDataKey.MINECRAFT_COMMAND_CHAT_LOCK_ALL_UNLOCKED); + String message = config.get(ConfigKey.MINECRAFT_COMMAND_CHAT_LOCK_ALL_UNLOCKED).asString(); message = Helper.replaceKeys( message, - Tuple.of("plugin-prefix", config.getAsString(ConfigDataKey.PLUGIN_PREFIX)) + Tuple.of("plugin-prefix", config.get(ConfigKey.PLUGIN_PREFIX).asString()) ); sender.sendMessage(Helper.stringToComponent(message)); } @@ -93,20 +93,20 @@ private void executeAll(CommandSource sender, String type) { private void executeSingle(CommandSource sender, String type) { if (!sender.hasPermission(Permission.COMMAND_TOGGLE_CHAT.getPermissionNode()) && sender instanceof Player) { - String message = config.getAsString(ConfigDataKey.MINECRAFT_COMMAND_NO_PERMISSION); + String message = config.get(ConfigKey.MINECRAFT_COMMAND_NO_PERMISSION).asString(); message = Helper.replaceKeys( message, - Tuple.of("plugin-prefix", config.getAsString(ConfigDataKey.PLUGIN_PREFIX)) + Tuple.of("plugin-prefix", config.get(ConfigKey.PLUGIN_PREFIX).asString()) ); sender.sendMessage(Helper.stringToComponent(message)); return; } if (!(sender instanceof Player player)) { - String message = config.getAsString(ConfigDataKey.MINECRAFT_COMMAND_MUST_BE_PLAYER); + String message = config.get(ConfigKey.MINECRAFT_COMMAND_MUST_BE_PLAYER).asString(); message = Helper.replaceKeys( message, - Tuple.of("plugin-prefix", config.getAsString(ConfigDataKey.PLUGIN_PREFIX)) + Tuple.of("plugin-prefix", config.get(ConfigKey.PLUGIN_PREFIX).asString()) ); sender.sendMessage(Helper.stringToComponent(message)); return; @@ -122,20 +122,20 @@ private void executeSingle(CommandSource sender, String type) { switch (type.toLowerCase()) { case "lock" -> { servers.forEach((serverName) -> config.getServerChatLockHelper().addServer(serverName)); - String message = config.getAsString(ConfigDataKey.MINECRAFT_COMMAND_CHAT_LOCK_SINGLE_LOCKED); + String message = config.get(ConfigKey.MINECRAFT_COMMAND_CHAT_LOCK_SINGLE_LOCKED).asString(); message = Helper.replaceKeys( message, - Tuple.of("plugin-prefix", config.getAsString(ConfigDataKey.PLUGIN_PREFIX)), + Tuple.of("plugin-prefix", config.get(ConfigKey.PLUGIN_PREFIX).asString()), Tuple.of("server", currentServerName) ); sender.sendMessage(Helper.stringToComponent(message)); } case "unlock" -> { servers.forEach((serverName) -> config.getServerChatLockHelper().removeServer(serverName)); - String message = config.getAsString(ConfigDataKey.MINECRAFT_COMMAND_CHAT_LOCK_SINGLE_UNLOCKED); + String message = config.get(ConfigKey.MINECRAFT_COMMAND_CHAT_LOCK_SINGLE_UNLOCKED).asString(); message = Helper.replaceKeys( message, - Tuple.of("plugin-prefix", config.getAsString(ConfigDataKey.PLUGIN_PREFIX)), + Tuple.of("plugin-prefix", config.get(ConfigKey.PLUGIN_PREFIX).asString()), Tuple.of("server", currentServerName) ); sender.sendMessage(Helper.stringToComponent(message)); @@ -148,10 +148,10 @@ private void executeSingle(CommandSource sender, String type) { } private void executeError(CommandSource sender) { - String message = config.getAsString(ConfigDataKey.MINECRAFT_COMMAND_CHAT_LOCK_USAGE); + String message = config.get(ConfigKey.MINECRAFT_COMMAND_CHAT_LOCK_USAGE).asString(); message = Helper.replaceKeys( message, - Tuple.of("plugin-prefix", config.getAsString(ConfigDataKey.PLUGIN_PREFIX)) + Tuple.of("plugin-prefix", config.get(ConfigKey.PLUGIN_PREFIX).asString()) ); sender.sendMessage(Helper.stringToComponent(message)); } diff --git a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/commands/velocity/VelocityReloadCommand.java b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/commands/velocity/VelocityReloadCommand.java index 8e80cd8..6fb2edf 100644 --- a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/commands/velocity/VelocityReloadCommand.java +++ b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/commands/velocity/VelocityReloadCommand.java @@ -4,7 +4,7 @@ import com.beanbeanjuice.simpleproxychat.utility.helper.Helper; import com.beanbeanjuice.simpleproxychat.utility.Tuple; import com.beanbeanjuice.simpleproxychat.utility.config.Config; -import com.beanbeanjuice.simpleproxychat.utility.config.ConfigDataKey; +import com.beanbeanjuice.simpleproxychat.utility.config.ConfigKey; import com.beanbeanjuice.simpleproxychat.utility.config.Permission; import com.velocitypowered.api.command.CommandSource; import com.velocitypowered.api.command.SimpleCommand; @@ -26,10 +26,10 @@ public void execute(Invocation invocation) { config.reload(); plugin.getDiscordBot().updateActivity(); - String message = config.getAsString(ConfigDataKey.MINECRAFT_COMMAND_RELOAD); + String message = config.get(ConfigKey.MINECRAFT_COMMAND_RELOAD).asString(); message = Helper.replaceKeys( message, - Tuple.of("plugin-prefix", config.getAsString(ConfigDataKey.PLUGIN_PREFIX)) + Tuple.of("plugin-prefix", config.get(ConfigKey.PLUGIN_PREFIX).asString()) ); source.sendMessage(Helper.stringToComponent(message)); } diff --git a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/commands/velocity/ban/VelocityBanCommand.java b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/commands/velocity/ban/VelocityBanCommand.java index ce6e14a..c4d9dc4 100644 --- a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/commands/velocity/ban/VelocityBanCommand.java +++ b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/commands/velocity/ban/VelocityBanCommand.java @@ -3,7 +3,7 @@ import com.beanbeanjuice.simpleproxychat.SimpleProxyChatVelocity; import com.beanbeanjuice.simpleproxychat.utility.Tuple; import com.beanbeanjuice.simpleproxychat.utility.config.Config; -import com.beanbeanjuice.simpleproxychat.utility.config.ConfigDataKey; +import com.beanbeanjuice.simpleproxychat.utility.config.ConfigKey; import com.beanbeanjuice.simpleproxychat.utility.config.Permission; import com.beanbeanjuice.simpleproxychat.utility.helper.Helper; import com.velocitypowered.api.command.SimpleCommand; @@ -23,13 +23,13 @@ public VelocityBanCommand(final SimpleProxyChatVelocity plugin) { @Override public void execute(Invocation invocation) { - if (!config.getAsBoolean(ConfigDataKey.USE_SIMPLE_PROXY_CHAT_BANNING_SYSTEM)) { + if (!config.get(ConfigKey.USE_SIMPLE_PROXY_CHAT_BANNING_SYSTEM).asBoolean()) { invocation.source().sendMessage(Helper.stringToComponent("&cThe banning system is disabled...")); return; } if (invocation.arguments().length != 1) { - String errorMessage = config.getAsString(ConfigDataKey.MINECRAFT_COMMAND_PROXY_BAN_USAGE); + String errorMessage = config.get(ConfigKey.MINECRAFT_COMMAND_PROXY_BAN_USAGE).asString(); invocation.source().sendMessage(Helper.stringToComponent(errorMessage)); return; } @@ -38,10 +38,10 @@ public void execute(Invocation invocation) { plugin.getBanHelper().addBan(playerName); plugin.getProxyServer().getPlayer(playerName).ifPresent(player -> player.disconnect(Helper.stringToComponent("&cYou have been banned from the proxy."))); - String bannedMessage = config.getAsString(ConfigDataKey.MINECRAFT_COMMAND_PROXY_BAN_BANNED); + String bannedMessage = config.get(ConfigKey.MINECRAFT_COMMAND_PROXY_BAN_BANNED).asString(); bannedMessage = Helper.replaceKeys( bannedMessage, - Tuple.of("plugin-prefix", config.getAsString(ConfigDataKey.PLUGIN_PREFIX)), + Tuple.of("plugin-prefix", config.get(ConfigKey.PLUGIN_PREFIX).asString()), Tuple.of("player", playerName) ); diff --git a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/commands/velocity/ban/VelocityUnbanCommand.java b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/commands/velocity/ban/VelocityUnbanCommand.java index 3ef0aa3..6162b55 100644 --- a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/commands/velocity/ban/VelocityUnbanCommand.java +++ b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/commands/velocity/ban/VelocityUnbanCommand.java @@ -3,7 +3,7 @@ import com.beanbeanjuice.simpleproxychat.SimpleProxyChatVelocity; import com.beanbeanjuice.simpleproxychat.utility.Tuple; import com.beanbeanjuice.simpleproxychat.utility.config.Config; -import com.beanbeanjuice.simpleproxychat.utility.config.ConfigDataKey; +import com.beanbeanjuice.simpleproxychat.utility.config.ConfigKey; import com.beanbeanjuice.simpleproxychat.utility.config.Permission; import com.beanbeanjuice.simpleproxychat.utility.helper.Helper; import com.velocitypowered.api.command.SimpleCommand; @@ -22,13 +22,13 @@ public VelocityUnbanCommand(final SimpleProxyChatVelocity plugin) { @Override public void execute(Invocation invocation) { - if (!config.getAsBoolean(ConfigDataKey.USE_SIMPLE_PROXY_CHAT_BANNING_SYSTEM)) { + if (!config.get(ConfigKey.USE_SIMPLE_PROXY_CHAT_BANNING_SYSTEM).asBoolean()) { invocation.source().sendMessage(Helper.stringToComponent("&cThe banning system is disabled...")); return; } if (invocation.arguments().length != 1) { - String errorMessage = config.getAsString(ConfigDataKey.MINECRAFT_COMMAND_PROXY_BAN_USAGE); + String errorMessage = config.get(ConfigKey.MINECRAFT_COMMAND_PROXY_BAN_USAGE).asString(); invocation.source().sendMessage(Helper.stringToComponent(errorMessage)); return; } @@ -36,10 +36,10 @@ public void execute(Invocation invocation) { String playerName = invocation.arguments()[0]; plugin.getBanHelper().removeBan(playerName); - String unbannedMessage = config.getAsString(ConfigDataKey.MINECRAFT_COMMAND_PROXY_BAN_UNBANNED); + String unbannedMessage = config.get(ConfigKey.MINECRAFT_COMMAND_PROXY_BAN_UNBANNED).asString(); unbannedMessage = Helper.replaceKeys( unbannedMessage, - Tuple.of("plugin-prefix", config.getAsString(ConfigDataKey.PLUGIN_PREFIX)), + Tuple.of("plugin-prefix", config.get(ConfigKey.PLUGIN_PREFIX).asString()), Tuple.of("player", playerName) ); diff --git a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/commands/velocity/whisper/VelocityReplyCommand.java b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/commands/velocity/whisper/VelocityReplyCommand.java index 60438f1..cc01c39 100644 --- a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/commands/velocity/whisper/VelocityReplyCommand.java +++ b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/commands/velocity/whisper/VelocityReplyCommand.java @@ -4,7 +4,7 @@ import com.beanbeanjuice.simpleproxychat.utility.helper.Helper; import com.beanbeanjuice.simpleproxychat.utility.Tuple; import com.beanbeanjuice.simpleproxychat.utility.config.Config; -import com.beanbeanjuice.simpleproxychat.utility.config.ConfigDataKey; +import com.beanbeanjuice.simpleproxychat.utility.config.ConfigKey; import com.beanbeanjuice.simpleproxychat.utility.config.Permission; import com.velocitypowered.api.command.SimpleCommand; import com.velocitypowered.api.proxy.Player; @@ -28,14 +28,14 @@ public void execute(Invocation invocation) { (receiver) -> { String message = Helper.translateLegacyCodes(String.join(" ", invocation.arguments())); - String senderString = config.getAsString(ConfigDataKey.MINECRAFT_WHISPER_SEND); - String receiverString = config.getAsString(ConfigDataKey.MINECRAFT_WHISPER_RECEIVE); + String senderString = config.get(ConfigKey.MINECRAFT_WHISPER_SEND).asString(); + String receiverString = config.get(ConfigKey.MINECRAFT_WHISPER_RECEIVE).asString(); List> replacements = new ArrayList<>(); replacements.add(Tuple.of("sender", ((Player) invocation.source()).getUsername())); replacements.add(Tuple.of("receiver", receiver.getUsername())); replacements.add(Tuple.of("message", message)); - replacements.add(Tuple.of("plugin-prefix", config.getAsString(ConfigDataKey.PLUGIN_PREFIX))); + replacements.add(Tuple.of("plugin-prefix", config.get(ConfigKey.PLUGIN_PREFIX).asString())); senderString = Helper.replaceKeys(senderString, replacements); receiverString = Helper.replaceKeys(receiverString, replacements); @@ -45,7 +45,7 @@ public void execute(Invocation invocation) { plugin.getWhisperHandler().set(((Player) invocation.source()).getUsername(), receiver.getUsername()); }, - () -> invocation.source().sendMessage(Helper.stringToComponent(config.getAsString(ConfigDataKey.MINECRAFT_WHISPER_ERROR))) + () -> invocation.source().sendMessage(Helper.stringToComponent(config.get(ConfigKey.MINECRAFT_WHISPER_ERROR).asString())) ); } diff --git a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/commands/velocity/whisper/VelocityWhisperCommand.java b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/commands/velocity/whisper/VelocityWhisperCommand.java index ee7bcaf..e18cc3f 100644 --- a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/commands/velocity/whisper/VelocityWhisperCommand.java +++ b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/commands/velocity/whisper/VelocityWhisperCommand.java @@ -4,7 +4,7 @@ import com.beanbeanjuice.simpleproxychat.utility.helper.Helper; import com.beanbeanjuice.simpleproxychat.utility.Tuple; import com.beanbeanjuice.simpleproxychat.utility.config.Config; -import com.beanbeanjuice.simpleproxychat.utility.config.ConfigDataKey; +import com.beanbeanjuice.simpleproxychat.utility.config.ConfigKey; import com.beanbeanjuice.simpleproxychat.utility.config.Permission; import com.velocitypowered.api.command.SimpleCommand; import com.velocitypowered.api.proxy.Player; @@ -27,7 +27,7 @@ public VelocityWhisperCommand(final SimpleProxyChatVelocity plugin) { @Override public void execute(Invocation invocation) { if (invocation.arguments().length < 2) { - invocation.source().sendMessage(Helper.stringToComponent(config.getAsString(ConfigDataKey.MINECRAFT_WHISPER_ERROR))); + invocation.source().sendMessage(Helper.stringToComponent(config.get(ConfigKey.MINECRAFT_WHISPER_ERROR).asString())); return; } @@ -35,14 +35,14 @@ public void execute(Invocation invocation) { (receiver) -> { String message = Helper.translateLegacyCodes(Arrays.stream(invocation.arguments()).skip(1).collect(Collectors.joining(" "))); - String senderString = config.getAsString(ConfigDataKey.MINECRAFT_WHISPER_SEND); - String receiverString = config.getAsString(ConfigDataKey.MINECRAFT_WHISPER_RECEIVE); + String senderString = config.get(ConfigKey.MINECRAFT_WHISPER_SEND).asString(); + String receiverString = config.get(ConfigKey.MINECRAFT_WHISPER_RECEIVE).asString(); List> replacements = new ArrayList<>(); replacements.add(Tuple.of("sender", ((Player) invocation.source()).getUsername())); replacements.add(Tuple.of("receiver", receiver.getUsername())); replacements.add(Tuple.of("message", message)); - replacements.add(Tuple.of("plugin-prefix", config.getAsString(ConfigDataKey.PLUGIN_PREFIX))); + replacements.add(Tuple.of("plugin-prefix", config.get(ConfigKey.PLUGIN_PREFIX).asString())); senderString = Helper.replaceKeys(senderString, replacements); receiverString = Helper.replaceKeys(receiverString, replacements); @@ -52,7 +52,7 @@ public void execute(Invocation invocation) { plugin.getWhisperHandler().set(((Player) invocation.source()).getUsername(), receiver.getUsername()); }, - () -> invocation.source().sendMessage(Helper.stringToComponent(config.getAsString(ConfigDataKey.MINECRAFT_WHISPER_ERROR))) + () -> invocation.source().sendMessage(Helper.stringToComponent(config.get(ConfigKey.MINECRAFT_WHISPER_ERROR).asString())) ); } diff --git a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/discord/Bot.java b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/discord/Bot.java index 96088b0..bc151e4 100644 --- a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/discord/Bot.java +++ b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/discord/Bot.java @@ -2,7 +2,7 @@ import com.beanbeanjuice.simpleproxychat.utility.helper.Helper; import com.beanbeanjuice.simpleproxychat.utility.config.Config; -import com.beanbeanjuice.simpleproxychat.utility.config.ConfigDataKey; +import com.beanbeanjuice.simpleproxychat.utility.config.ConfigKey; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.JDA; import net.dv8tion.jda.api.JDABuilder; @@ -46,7 +46,7 @@ public Bot(final Config config, final Consumer errorLogger, final Suppli this.runnableQueue = new ConcurrentLinkedQueue<>(); - if (!config.getAsBoolean(ConfigDataKey.USE_DISCORD)) { + if (!config.get(ConfigKey.USE_DISCORD).asBoolean()) { bot = null; return; } @@ -96,7 +96,7 @@ public void sendMessageEmbed(final MessageEmbed embed) { } public Optional getBotTextChannel() { - return Optional.ofNullable(bot.getTextChannelById(config.getAsString(ConfigDataKey.CHANNEL_ID))); + return Optional.ofNullable(bot.getTextChannelById(config.get(ConfigKey.CHANNEL_ID).asString())); } private MessageEmbed sanitizeEmbed(final MessageEmbed oldEmbed) { @@ -161,7 +161,7 @@ public void updateChannelTopic(final String topic) { public void channelUpdaterFunction() { if (bot == null) return; - String topicMessage = config.getAsString(ConfigDataKey.DISCORD_TOPIC_ONLINE).replace("%online%", String.valueOf(getOnlinePlayers.get())); + String topicMessage = config.get(ConfigKey.DISCORD_TOPIC_ONLINE).asString().replace("%online%", String.valueOf(getOnlinePlayers.get())); this.updateChannelTopic(topicMessage); } @@ -174,7 +174,7 @@ public void addRunnableToQueue(final Runnable runnable) { } public void start() throws InterruptedException { - String token = config.getAsString(ConfigDataKey.BOT_TOKEN); + String token = config.get(ConfigKey.BOT_TOKEN).asString(); if (token.isEmpty() || token.equalsIgnoreCase("TOKEN_HERE") || token.equalsIgnoreCase("null")) return; bot = JDABuilder @@ -203,8 +203,8 @@ public void updateActivity() { String text; try { - type = Activity.ActivityType.valueOf(config.getAsString(ConfigDataKey.BOT_ACTIVITY_TYPE)); - text = config.getAsString(ConfigDataKey.BOT_ACTIVITY_TEXT); + type = Activity.ActivityType.valueOf(config.get(ConfigKey.BOT_ACTIVITY_TYPE).asString()); + text = config.get(ConfigKey.BOT_ACTIVITY_TEXT).asString(); } catch (Exception e) { type = Activity.ActivityType.WATCHING; text = "CONFIG ERROR"; @@ -221,7 +221,7 @@ public void updateStatus() { OnlineStatus status; try { - status = OnlineStatus.valueOf(config.getAsString(ConfigDataKey.BOT_ACTIVITY_STATUS)); + status = OnlineStatus.valueOf(config.get(ConfigKey.BOT_ACTIVITY_STATUS).asString()); } catch (Exception e) { status = OnlineStatus.IDLE; } @@ -230,19 +230,19 @@ public void updateStatus() { } public void sendProxyStatus(final boolean isStart) { - if (!config.getAsBoolean(ConfigDataKey.DISCORD_PROXY_STATUS_ENABLED)) return; + if (!config.get(ConfigKey.DISCORD_PROXY_STATUS_ENABLED).asBoolean()) return; if (isStart) { this.sendMessageEmbed( new EmbedBuilder() - .setTitle(config.getAsString(ConfigDataKey.DISCORD_PROXY_STATUS_MODULE_ENABLED)) + .setTitle(config.get(ConfigKey.DISCORD_PROXY_STATUS_MODULE_ENABLED).asString()) .setColor(Color.GREEN) .build() ); } else { this.sendMessageEmbed( new EmbedBuilder() - .setTitle(config.getAsString(ConfigDataKey.DISCORD_PROXY_STATUS_MODULE_DISABLED)) + .setTitle(config.get(ConfigKey.DISCORD_PROXY_STATUS_MODULE_DISABLED).asString()) .setColor(Color.RED) .build() ); @@ -253,7 +253,7 @@ public void stop() { if (bot == null) return; sendProxyStatus(false); - this.updateChannelTopic(config.getAsString(ConfigDataKey.DISCORD_TOPIC_OFFLINE)); + this.updateChannelTopic(config.get(ConfigKey.DISCORD_TOPIC_OFFLINE).asString()); this.getJDA().ifPresent((jda) -> { try { diff --git a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/discord/DiscordChatHandler.java b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/discord/DiscordChatHandler.java index 8152715..7f3bc91 100644 --- a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/discord/DiscordChatHandler.java +++ b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/discord/DiscordChatHandler.java @@ -1,7 +1,7 @@ package com.beanbeanjuice.simpleproxychat.discord; import com.beanbeanjuice.simpleproxychat.utility.config.Config; -import com.beanbeanjuice.simpleproxychat.utility.config.ConfigDataKey; +import com.beanbeanjuice.simpleproxychat.utility.config.ConfigKey; import net.dv8tion.jda.api.events.message.MessageReceivedEvent; import net.dv8tion.jda.api.hooks.ListenerAdapter; @@ -19,9 +19,9 @@ public DiscordChatHandler(Config config, } public void onMessageReceived(MessageReceivedEvent event) { - if (!event.getChannel().getId().equalsIgnoreCase(config.getAsString(ConfigDataKey.CHANNEL_ID))) return; + if (!event.getChannel().getId().equalsIgnoreCase(config.get(ConfigKey.CHANNEL_ID).asString())) return; if (event.getAuthor().isBot()) return; - if (!config.getAsBoolean(ConfigDataKey.DISCORD_CHAT_ENABLED)) return; + if (!config.get(ConfigKey.DISCORD_CHAT_ENABLED).asBoolean()) return; sendFromDiscord.accept(event); } diff --git a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/socket/bungee/BungeeChatMessageData.java b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/socket/bungee/BungeeChatMessageData.java index 8ee69bc..9f3d15e 100644 --- a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/socket/bungee/BungeeChatMessageData.java +++ b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/socket/bungee/BungeeChatMessageData.java @@ -2,7 +2,7 @@ import com.beanbeanjuice.simpleproxychat.SimpleProxyChatBungee; import com.beanbeanjuice.simpleproxychat.socket.ChatMessageData; -import com.beanbeanjuice.simpleproxychat.utility.config.ConfigDataKey; +import com.beanbeanjuice.simpleproxychat.utility.config.ConfigKey; import com.beanbeanjuice.simpleproxychat.utility.config.Permission; import com.beanbeanjuice.simpleproxychat.utility.listeners.MessageType; import lombok.Getter; @@ -66,7 +66,7 @@ public void chatSendToAllOtherPlayers(String parsedMessage) { return true; }) .filter((streamPlayer) -> { - if (!plugin.getConfig().getAsBoolean(ConfigDataKey.USE_PERMISSIONS)) return true; + if (!plugin.getConfig().get(ConfigKey.USE_PERMISSIONS).asBoolean()) return true; return streamPlayer.hasPermission(Permission.READ_CHAT_MESSAGE.getPermissionNode()); }) .forEach((streamPlayer) -> streamPlayer.sendMessage(ChatMessageType.CHAT, convertToBungee(parsedMessage))); diff --git a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/socket/velocity/VelocityChatMessageData.java b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/socket/velocity/VelocityChatMessageData.java index 0dd4a17..95ca4fe 100644 --- a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/socket/velocity/VelocityChatMessageData.java +++ b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/socket/velocity/VelocityChatMessageData.java @@ -2,7 +2,7 @@ import com.beanbeanjuice.simpleproxychat.SimpleProxyChatVelocity; import com.beanbeanjuice.simpleproxychat.socket.ChatMessageData; -import com.beanbeanjuice.simpleproxychat.utility.config.ConfigDataKey; +import com.beanbeanjuice.simpleproxychat.utility.config.ConfigKey; import com.beanbeanjuice.simpleproxychat.utility.config.Permission; import com.beanbeanjuice.simpleproxychat.utility.listeners.MessageType; import com.velocitypowered.api.proxy.Player; @@ -59,7 +59,7 @@ public void chatSendToAllOtherPlayers(String parsedMessage) { plugin.getProxyServer().getAllPlayers().stream() .filter((streamPlayer) -> !blacklistedUUIDs.contains(streamPlayer)) .filter((streamPlayer) -> { - if (!plugin.getConfig().getAsBoolean(ConfigDataKey.USE_PERMISSIONS)) return true; + if (!plugin.getConfig().get(ConfigKey.USE_PERMISSIONS).asBoolean()) return true; return streamPlayer.hasPermission(Permission.READ_CHAT_MESSAGE.getPermissionNode()); }) .forEach((streamPlayer) -> streamPlayer.sendMessage(component)); diff --git a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/ISimpleProxyChat.java b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/ISimpleProxyChat.java index 980d6e8..0481e07 100644 --- a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/ISimpleProxyChat.java +++ b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/ISimpleProxyChat.java @@ -7,6 +7,8 @@ public interface ISimpleProxyChat { + boolean isPluginStarting(); + boolean isLuckPermsEnabled(); Optional getLuckPerms(); diff --git a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/UpdateChecker.java b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/UpdateChecker.java index 4574aa4..8c6adb3 100644 --- a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/UpdateChecker.java +++ b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/UpdateChecker.java @@ -1,7 +1,7 @@ package com.beanbeanjuice.simpleproxychat.utility; import com.beanbeanjuice.simpleproxychat.utility.config.Config; -import com.beanbeanjuice.simpleproxychat.utility.config.ConfigDataKey; +import com.beanbeanjuice.simpleproxychat.utility.config.ConfigKey; import com.beanbeanjuice.simpleproxychat.utility.helper.Helper; import org.apache.maven.artifact.versioning.DefaultArtifactVersion; @@ -37,8 +37,8 @@ public void checkUpdate() { if (compare(currentVersion, spigotVersion) >= 0) return; String message = Helper.replaceKeys( - config.getAsString(ConfigDataKey.UPDATE_MESSAGE), - Tuple.of("plugin-prefix", config.getAsString(ConfigDataKey.PLUGIN_PREFIX)), + config.get(ConfigKey.UPDATE_MESSAGE).asString(), + Tuple.of("plugin-prefix", config.get(ConfigKey.PLUGIN_PREFIX).asString()), Tuple.of("old", currentVersion), Tuple.of("new", spigotVersion), Tuple.of("link", "https://www.spigotmc.org/resources/115305/") diff --git a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/config/Config.java b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/config/Config.java index f66d0e6..8e28d52 100644 --- a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/config/Config.java +++ b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/config/Config.java @@ -16,20 +16,17 @@ import java.awt.*; import java.io.File; import java.io.IOException; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Objects; -import java.util.Optional; +import java.util.*; +import java.util.List; public class Config { private YamlDocument yamlConfig; private YamlDocument yamlMessages; private final File configFolder; - private final HashMap config; + private final HashMap config; private final ArrayList reloadFunctions; - private boolean initialSetup = true; @Getter private final ServerChatLockHelper serverChatLockHelper; public Config(File configFolder) { @@ -64,173 +61,91 @@ public void reload() { } catch (IOException ignored) { } } - private Object get(ConfigDataKey key) { + public ConfigValueWrapper get(ConfigKey key) { return config.get(key); } - public String getAsString(ConfigDataKey key) { - return (String) get(key); - } - - public int getAsInteger(ConfigDataKey key) { - return (int) get(key); - } - - public boolean getAsBoolean(ConfigDataKey key) { - return (boolean) get(key); - } - - public Optional getAsColor(ConfigDataKey key) { - try { - return Optional.of(Color.decode(getAsString(key))); - } catch (NumberFormatException e) { - return Optional.empty(); - } - } - - @SuppressWarnings("unchecked") - public HashMap getAsStringMap(ConfigDataKey key) { - return (HashMap) get(key); - } - - @SuppressWarnings("unchecked") - public ArrayList getAsArrayList(ConfigDataKey key) { - return (ArrayList) get(key); - } - private void readConfig() throws IOException { - // config.yml - config.put(ConfigDataKey.USE_DISCORD, yamlConfig.getBoolean("use-discord")); - config.put(ConfigDataKey.BOT_TOKEN, yamlConfig.getString("BOT-TOKEN")); - config.put(ConfigDataKey.CHANNEL_ID, yamlConfig.getString("CHANNEL-ID")); - config.put(ConfigDataKey.BOT_ACTIVITY_STATUS, yamlConfig.getString("bot-activity.status")); - config.put(ConfigDataKey.BOT_ACTIVITY_TYPE, yamlConfig.getString("bot-activity.type")); - config.put(ConfigDataKey.BOT_ACTIVITY_TEXT, yamlConfig.getString("bot-activity.text")); - config.put(ConfigDataKey.SERVER_UPDATE_INTERVAL, yamlConfig.getInt("server-update-interval")); - HashMap aliases = new HashMap<>(); - Section aliasSection = yamlConfig.getSection("aliases"); - aliasSection.getKeys().stream() - .map((key) -> (String) key) - .map((key) -> Tuple.of(key, aliasSection.getString(key))) - .forEach((pair) -> aliases.put(pair.getKey(), Helper.translateLegacyCodes(pair.getValue()))); - config.put(ConfigDataKey.ALIASES, aliases); - config.put(ConfigDataKey.USE_PERMISSIONS, yamlConfig.getBoolean("use-permissions")); - config.put(ConfigDataKey.PROXY_MESSAGE_PREFIX, yamlConfig.getString("proxy-message-prefix")); - config.put(ConfigDataKey.USE_INITIAL_SERVER_STATUS, yamlConfig.getBoolean("use-initial-server-status")); - config.put(ConfigDataKey.USE_FAKE_MESSAGES, yamlConfig.getBoolean("use-fake-messages")); - config.put(ConfigDataKey.TIMESTAMP_USE_API, yamlConfig.getBoolean("timestamp.use-api")); - config.put(ConfigDataKey.TIMESTAMP_FORMAT, yamlConfig.getString("timestamp.format")); - config.put(ConfigDataKey.TIMESTAMP_TIMEZONE, yamlConfig.getString("timestamp.timezone")); - config.put(ConfigDataKey.USE_HELPER, yamlConfig.getBoolean("use-helper")); - config.put(ConfigDataKey.UPDATE_NOTIFICATIONS, yamlConfig.getBoolean("update-notifications")); - config.put(ConfigDataKey.USE_SIMPLE_PROXY_CHAT_BANNING_SYSTEM, yamlConfig.getBoolean("use-simple-proxy-chat-banning-system")); - config.put(ConfigDataKey.SEND_PREVIOUS_MESSAGES_ON_SWITCH_ENABLED, yamlConfig.getBoolean("send-previous-messages-on-switch.enabled")); - config.put(ConfigDataKey.SEND_PREVIOUS_MESSAGES_ON_SWITCH_AMOUNT, yamlConfig.getInt("send-previous-messages-on-switch.amount")); - - ArrayList reloadAliases = (ArrayList) yamlConfig.getStringList("commands.reload-aliases"); - config.put(ConfigDataKey.RELOAD_ALIASES, reloadAliases); - ArrayList chatToggleAliases = (ArrayList) yamlConfig.getStringList("commands.chat-toggle-aliases"); - config.put(ConfigDataKey.CHAT_TOGGLE_ALIASES, chatToggleAliases); - ArrayList BanAliases = (ArrayList) yamlConfig.getStringList("commands.ban-aliases"); - config.put(ConfigDataKey.BAN_ALIASES, BanAliases); - ArrayList UnbanAliases = (ArrayList) yamlConfig.getStringList("commands.unban-aliases"); - config.put(ConfigDataKey.UNBAN_ALIASES, UnbanAliases); - ArrayList whisperAliases = (ArrayList) yamlConfig.getStringList("commands.whisper-aliases"); - config.put(ConfigDataKey.WHISPER_ALIASES, whisperAliases); - ArrayList replyAliases = (ArrayList) yamlConfig.getStringList("commands.reply-aliases"); - config.put(ConfigDataKey.REPLY_ALIASES, replyAliases); - ArrayList broadcastAliases = (ArrayList) yamlConfig.getStringList("commands.broadcast-aliases"); - config.put(ConfigDataKey.BROADCAST_ALIASES, broadcastAliases); - - // Checking timezone. - try { - DateTimeZone.forID(getAsString(ConfigDataKey.TIMESTAMP_TIMEZONE)); - } catch (IllegalArgumentException e) { - System.err.printf( - "%s is not a valid timezone. Using default timezone. %s%n", - getAsString(ConfigDataKey.TIMESTAMP_TIMEZONE), - "https://www.joda.org/joda-time/timezones.html" - ); - overwrite(ConfigDataKey.TIMESTAMP_TIMEZONE, "America/Los_Angeles"); - } - - // messages.yml - putMessage(ConfigDataKey.PLUGIN_PREFIX, "plugin-prefix", false); + Arrays.stream(ConfigKey.values()).forEach((key) -> { + YamlDocument document = (key.getFile() == ConfigFileType.CONFIG) ? yamlConfig : yamlMessages; + String route = key.getKey(); + + if (key.getClassType() == String.class) { + String message = Helper.translateLegacyCodes(document.getString(route)); + this.config.put(key, new ConfigValueWrapper(message)); + return; + } + + if (key.getClassType() == Integer.class) { + this.config.put(key, new ConfigValueWrapper(document.getInt(route))); + return; + } + + if (key.getClassType() == Boolean.class) { + this.config.put(key, new ConfigValueWrapper(document.getBoolean(route))); + return; + } + + if (key.getClassType() == Map.class) { + Map map = new HashMap<>(); + Section mapSection = document.getSection(route); + mapSection.getKeys().stream() + .map((mapKey) -> (String) mapKey) + .map((mapKey) -> Tuple.of(mapKey, mapSection.getString(mapKey))) + .forEach((pair) -> map.put(pair.getKey(), Helper.translateLegacyCodes(pair.getValue()))); + + this.config.put(key, new ConfigValueWrapper(map)); + return; + } + + if (key.getClassType() == List.class) { + List list = document.getStringList(route); + this.config.put(key, new ConfigValueWrapper(list.stream().map(Helper::translateLegacyCodes).toList())); + return; + } + + if (key.getClassType() == Color.class) { + String colorString = document.getString(route); + Color color; + + try { + color = Color.decode(colorString); + } catch (NumberFormatException e) { + System.err.printf( + "%s is not a valid color. Defaulting to black.\n", + colorString + ); + color = Color.black; + } + + this.config.put(key, new ConfigValueWrapper(color)); + return; + } + + if (key.getClassType() == DateTimeZone.class) { + String timezoneString = document.getString(route); + DateTimeZone timezone; + + try { + timezone = DateTimeZone.forID(timezoneString); + } catch (IllegalArgumentException e) { + System.err.printf( + "%s is not a valid timezone. Using default timezone. %s\n", + timezoneString, "https://www.joda.org/joda-time/timezones.html" + ); + timezone = DateTimeZone.forID("America/Los_Angeles"); + } + + this.config.put(key, new ConfigValueWrapper(timezone)); + return; + } + + }); - config.put(ConfigDataKey.MINECRAFT_JOIN_ENABLED, yamlMessages.getBoolean("minecraft.join.enabled")); - putMessage(ConfigDataKey.MINECRAFT_JOIN, "minecraft.join.message", false); - config.put(ConfigDataKey.MINECRAFT_LEAVE_ENABLED, yamlMessages.getBoolean("minecraft.leave.enabled")); - putMessage(ConfigDataKey.MINECRAFT_LEAVE, "minecraft.leave.message", false); - config.put(ConfigDataKey.MINECRAFT_CHAT_ENABLED, yamlMessages.getBoolean("minecraft.chat.enabled")); - putMessage(ConfigDataKey.MINECRAFT_CHAT_MESSAGE, "minecraft.chat.message", false); - putMessage(ConfigDataKey.MINECRAFT_CHAT_VANISHED_MESSAGE, "minecraft.chat.vanished", false); - config.put(ConfigDataKey.MINECRAFT_SWITCH_ENABLED, yamlMessages.getBoolean("minecraft.switch.enabled")); - putMessage(ConfigDataKey.MINECRAFT_SWITCH_DEFAULT, "minecraft.switch.default", false); - putMessage(ConfigDataKey.MINECRAFT_SWITCH_SHORT, "minecraft.switch.no-from", false); - putMessage(ConfigDataKey.MINECRAFT_WHISPER_SEND, "minecraft.whisper.send", false); - putMessage(ConfigDataKey.MINECRAFT_WHISPER_RECEIVE, "minecraft.whisper.receive", false); - putMessage(ConfigDataKey.MINECRAFT_WHISPER_ERROR, "minecraft.whisper.error", false); - config.put(ConfigDataKey.MINECRAFT_DISCORD_ENABLED, yamlMessages.getBoolean("minecraft.discord.enabled")); - putMessage(ConfigDataKey.MINECRAFT_DISCORD_MESSAGE, "minecraft.discord.message", true); - config.put(ConfigDataKey.MINECRAFT_DISCORD_EMBED_USE, yamlMessages.getBoolean("minecraft.discord.embed.use")); - putMessage(ConfigDataKey.MINECRAFT_DISCORD_EMBED_TITLE, "minecraft.discord.embed.title", true); - putMessage(ConfigDataKey.MINECRAFT_DISCORD_EMBED_MESSAGE, "minecraft.discord.embed.message", true); - putMessage(ConfigDataKey.MINECRAFT_DISCORD_EMBED_COLOR, "minecraft.discord.embed.color", true); - config.put(ConfigDataKey.MINECRAFT_DISCORD_EMBED_USE_TIMESTAMP, yamlMessages.getBoolean("minecraft.discord.embed.use-timestamp")); - putMessage(ConfigDataKey.MINECRAFT_COMMAND_NO_PERMISSION, "minecraft.command.no-permission", false); - putMessage(ConfigDataKey.MINECRAFT_COMMAND_UNKNOWN, "minecraft.command.unknown", false); - putMessage(ConfigDataKey.MINECRAFT_COMMAND_MUST_BE_PLAYER, "minecraft.command.must-be-player", false); - putMessage(ConfigDataKey.MINECRAFT_COMMAND_RELOAD, "minecraft.command.reload", false); - putMessage(ConfigDataKey.MINECRAFT_COMMAND_CHAT_LOCK_USAGE, "minecraft.command.chat-lock.usage", false); - putMessage(ConfigDataKey.MINECRAFT_COMMAND_CHAT_LOCK_SINGLE_LOCKED, "minecraft.command.chat-lock.single.locked", false); - putMessage(ConfigDataKey.MINECRAFT_COMMAND_CHAT_LOCK_SINGLE_UNLOCKED, "minecraft.command.chat-lock.single.unlocked", false); - putMessage(ConfigDataKey.MINECRAFT_COMMAND_CHAT_LOCK_ALL_LOCKED, "minecraft.command.chat-lock.all.locked", false); - putMessage(ConfigDataKey.MINECRAFT_COMMAND_CHAT_LOCK_ALL_UNLOCKED, "minecraft.command.chat-lock.all.unlocked", false); - putMessage(ConfigDataKey.MINECRAFT_COMMAND_PROXY_BAN_USAGE, "minecraft.command.proxy-ban.usage", false); - putMessage(ConfigDataKey.MINECRAFT_COMMAND_PROXY_BAN_BANNED, "minecraft.command.proxy-ban.banned", false); - putMessage(ConfigDataKey.MINECRAFT_COMMAND_PROXY_BAN_UNBANNED, "minecraft.command.proxy-ban.unbanned", false); - putMessage(ConfigDataKey.MINECRAFT_COMMAND_PROXY_BAN_LOGIN_MESSAGE, "minecraft.command.proxy-ban.login-message", false); - putMessage(ConfigDataKey.MINECRAFT_COMMAND_BROADCAST_USAGE, "minecraft.command.broadcast.usage", false); - putMessage(ConfigDataKey.MINECRAFT_COMMAND_BROADCAST_MESSAGE, "minecraft.command.broadcast.message", false); - - config.put(ConfigDataKey.DISCORD_JOIN_ENABLED, yamlMessages.getBoolean("discord.join.enabled")); - putMessage(ConfigDataKey.DISCORD_JOIN_MESSAGE, "discord.join.message", true); - config.put(ConfigDataKey.DISCORD_JOIN_USE_TIMESTAMP, yamlMessages.getBoolean("discord.join.use-timestamp")); - config.put(ConfigDataKey.DISCORD_LEAVE_ENABLED, yamlMessages.getBoolean("discord.leave.enabled")); - putMessage(ConfigDataKey.DISCORD_LEAVE_MESSAGE, "discord.leave.message", true); - config.put(ConfigDataKey.DISCORD_LEAVE_USE_TIMESTAMP, yamlMessages.getBoolean("discord.leave.use-timestamp")); - config.put(ConfigDataKey.DISCORD_SWITCH_ENABLED, yamlMessages.getBoolean("discord.switch.enabled")); - putMessage(ConfigDataKey.DISCORD_SWITCH_MESSAGE, "discord.switch.message", true); - config.put(ConfigDataKey.DISCORD_SWITCH_USE_TIMESTAMP, yamlMessages.getBoolean("discord.switch.use-timestamp")); - config.put(ConfigDataKey.DISCORD_CHAT_ENABLED, yamlMessages.getBoolean("discord.chat.enabled")); - putMessage(ConfigDataKey.DISCORD_CHAT_MINECRAFT_MESSAGE, "discord.chat.minecraft-message", false); - putMessage(ConfigDataKey.DISCORD_TOPIC_ONLINE, "discord.topic.online", true); - putMessage(ConfigDataKey.DISCORD_TOPIC_OFFLINE, "discord.topic.offline", true); - config.put(ConfigDataKey.DISCORD_PROXY_STATUS_ENABLED, yamlMessages.getBoolean("discord.proxy-status.enabled")); - putMessage(ConfigDataKey.DISCORD_PROXY_STATUS_MODULE_ENABLED, "discord.proxy-status.messages.enabled", true); - putMessage(ConfigDataKey.DISCORD_PROXY_STATUS_MODULE_DISABLED, "discord.proxy-status.messages.disabled", true); - putMessage(ConfigDataKey.DISCORD_PROXY_STATUS_MODULE_TITLE, "discord.proxy-status.messages.title", true); - putMessage(ConfigDataKey.DISCORD_PROXY_STATUS_MODULE_MESSAGE, "discord.proxy-status.messages.message", true); - putMessage(ConfigDataKey.DISCORD_PROXY_STATUS_MODULE_ONLINE, "discord.proxy-status.messages.online", true); - putMessage(ConfigDataKey.DISCORD_PROXY_STATUS_MODULE_OFFLINE, "discord.proxy-status.messages.offline", true); - config.put(ConfigDataKey.DISCORD_PROXY_STATUS_MODULE_USE_TIMESTAMP, yamlMessages.getBoolean("discord.proxy-status.messages.use-timestamp")); - putMessage(ConfigDataKey.UPDATE_MESSAGE, "update-message", false); - - config.put(ConfigDataKey.CONSOLE_CHAT, yamlMessages.getBoolean("console.chat")); - config.put(ConfigDataKey.CONSOLE_JOIN, yamlMessages.getBoolean("console.join")); - config.put(ConfigDataKey.CONSOLE_LEAVE, yamlMessages.getBoolean("console.leave")); - config.put(ConfigDataKey.CONSOLE_SWITCH, yamlMessages.getBoolean("console.switch")); - config.put(ConfigDataKey.CONSOLE_DISCORD_CHAT, yamlMessages.getBoolean("console.discord-chat")); - config.put(ConfigDataKey.CONSOLE_SERVER_STATUS, yamlMessages.getBoolean("console.server-status")); - - // External - if (!initialSetup) return; - config.put(ConfigDataKey.PLUGIN_STARTING, true); - initialSetup = false; } - private void putMessage(ConfigDataKey type, String path, boolean isDiscord) { - config.put(type, (isDiscord) ? yamlMessages.getString(path) : Helper.translateLegacyCodes(yamlMessages.getString(path))); + public void overwrite(ConfigKey key, Object value) { + config.put(key, new ConfigValueWrapper(value)); } private YamlDocument loadConfig(String fileName) throws IOException { @@ -265,8 +180,4 @@ private YamlDocument loadConfig(String fileName) throws IOException { ); } - public void overwrite(ConfigDataKey key, Object entry) { - config.put(key, entry); - } - } diff --git a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/config/ConfigDataKey.java b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/config/ConfigDataKey.java deleted file mode 100644 index afe9227..0000000 --- a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/config/ConfigDataKey.java +++ /dev/null @@ -1,106 +0,0 @@ -package com.beanbeanjuice.simpleproxychat.utility.config; - -public enum ConfigDataKey { - // CONFIG - USE_DISCORD, - BOT_TOKEN, - CHANNEL_ID, - BOT_ACTIVITY_STATUS, - BOT_ACTIVITY_TYPE, - BOT_ACTIVITY_TEXT, - SERVER_UPDATE_INTERVAL, - ALIASES, - USE_PERMISSIONS, - PROXY_MESSAGE_PREFIX, - USE_INITIAL_SERVER_STATUS, - USE_FAKE_MESSAGES, - TIMESTAMP_USE_API, - TIMESTAMP_FORMAT, - TIMESTAMP_TIMEZONE, - USE_HELPER, - UPDATE_NOTIFICATIONS, - USE_SIMPLE_PROXY_CHAT_BANNING_SYSTEM, - SEND_PREVIOUS_MESSAGES_ON_SWITCH_ENABLED, - SEND_PREVIOUS_MESSAGES_ON_SWITCH_AMOUNT, - RELOAD_ALIASES, - CHAT_TOGGLE_ALIASES, - BAN_ALIASES, - UNBAN_ALIASES, - WHISPER_ALIASES, - REPLY_ALIASES, - BROADCAST_ALIASES, - - // MESSAGES - PLUGIN_PREFIX, - - MINECRAFT_JOIN_ENABLED, - MINECRAFT_JOIN, - MINECRAFT_LEAVE_ENABLED, - MINECRAFT_LEAVE, - MINECRAFT_CHAT_ENABLED, - MINECRAFT_CHAT_MESSAGE, - MINECRAFT_CHAT_VANISHED_MESSAGE, - MINECRAFT_SWITCH_ENABLED, - MINECRAFT_SWITCH_DEFAULT, - MINECRAFT_SWITCH_SHORT, - MINECRAFT_WHISPER_SEND, - MINECRAFT_WHISPER_RECEIVE, - MINECRAFT_WHISPER_ERROR, - MINECRAFT_DISCORD_ENABLED, - MINECRAFT_DISCORD_MESSAGE, - MINECRAFT_DISCORD_EMBED_USE, - MINECRAFT_DISCORD_EMBED_TITLE, - MINECRAFT_DISCORD_EMBED_MESSAGE, - MINECRAFT_DISCORD_EMBED_COLOR, - MINECRAFT_DISCORD_EMBED_USE_TIMESTAMP, - MINECRAFT_COMMAND_NO_PERMISSION, - MINECRAFT_COMMAND_UNKNOWN, - MINECRAFT_COMMAND_MUST_BE_PLAYER, - MINECRAFT_COMMAND_RELOAD, - MINECRAFT_COMMAND_CHAT_LOCK_USAGE, - MINECRAFT_COMMAND_CHAT_LOCK_SINGLE_LOCKED, - MINECRAFT_COMMAND_CHAT_LOCK_SINGLE_UNLOCKED, - MINECRAFT_COMMAND_CHAT_LOCK_ALL_LOCKED, - MINECRAFT_COMMAND_CHAT_LOCK_ALL_UNLOCKED, - MINECRAFT_COMMAND_PROXY_BAN_USAGE, - MINECRAFT_COMMAND_PROXY_BAN_BANNED, - MINECRAFT_COMMAND_PROXY_BAN_UNBANNED, - MINECRAFT_COMMAND_PROXY_BAN_LOGIN_MESSAGE, - MINECRAFT_COMMAND_BROADCAST_USAGE, - MINECRAFT_COMMAND_BROADCAST_MESSAGE, - - DISCORD_JOIN_ENABLED, - DISCORD_JOIN_MESSAGE, - DISCORD_JOIN_USE_TIMESTAMP, - DISCORD_LEAVE_ENABLED, - DISCORD_LEAVE_MESSAGE, - DISCORD_LEAVE_USE_TIMESTAMP, - DISCORD_SWITCH_ENABLED, - DISCORD_SWITCH_MESSAGE, - DISCORD_SWITCH_USE_TIMESTAMP, - DISCORD_CHAT_ENABLED, - DISCORD_CHAT_MINECRAFT_MESSAGE, - DISCORD_TOPIC_ONLINE, - DISCORD_TOPIC_OFFLINE, - DISCORD_PROXY_STATUS_ENABLED, - DISCORD_PROXY_STATUS_MODULE_ENABLED, - DISCORD_PROXY_STATUS_MODULE_DISABLED, - DISCORD_PROXY_STATUS_MODULE_TITLE, - DISCORD_PROXY_STATUS_MODULE_MESSAGE, - DISCORD_PROXY_STATUS_MODULE_ONLINE, - DISCORD_PROXY_STATUS_MODULE_OFFLINE, - DISCORD_PROXY_STATUS_MODULE_USE_TIMESTAMP, - - // CONSOLE STUFF - CONSOLE_CHAT, - CONSOLE_JOIN, - CONSOLE_LEAVE, - CONSOLE_SWITCH, - CONSOLE_DISCORD_CHAT, - CONSOLE_SERVER_STATUS, - - UPDATE_MESSAGE, - - // External - PLUGIN_STARTING -} diff --git a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/config/ConfigFileType.java b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/config/ConfigFileType.java new file mode 100644 index 0000000..86f77a3 --- /dev/null +++ b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/config/ConfigFileType.java @@ -0,0 +1,15 @@ +package com.beanbeanjuice.simpleproxychat.utility.config; + +import lombok.Getter; +import lombok.RequiredArgsConstructor; + +@Getter +@RequiredArgsConstructor +public enum ConfigFileType { + + CONFIG ("config.yml"), + MESSAGES ("messages.yml"); + + private final String fileName; + +} diff --git a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/config/ConfigKey.java b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/config/ConfigKey.java new file mode 100644 index 0000000..444567d --- /dev/null +++ b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/config/ConfigKey.java @@ -0,0 +1,118 @@ +package com.beanbeanjuice.simpleproxychat.utility.config; + +import lombok.Getter; +import lombok.RequiredArgsConstructor; +import org.joda.time.DateTimeZone; + +import java.awt.*; +import java.util.List; +import java.util.Map; + +@Getter +@RequiredArgsConstructor +public enum ConfigKey { + // CONFIG + USE_DISCORD (ConfigFileType.CONFIG, "use-discord", Boolean.class), + BOT_TOKEN (ConfigFileType.CONFIG, "BOT-TOKEN", String.class), + CHANNEL_ID (ConfigFileType.CONFIG, "CHANNEL-ID", String.class), + BOT_ACTIVITY_STATUS (ConfigFileType.CONFIG, "bot-activity.status", String.class), + BOT_ACTIVITY_TYPE (ConfigFileType.CONFIG, "bot-activity.type", String.class), + BOT_ACTIVITY_TEXT (ConfigFileType.CONFIG, "bot-activity.text", String.class), + SERVER_UPDATE_INTERVAL (ConfigFileType.CONFIG, "server-update-interval", Integer.class), + ALIASES (ConfigFileType.CONFIG, "aliases", Map.class), + USE_PERMISSIONS (ConfigFileType.CONFIG, "use-permissions", Boolean.class), + PROXY_MESSAGE_PREFIX (ConfigFileType.CONFIG, "proxy-message-prefix", String.class), + USE_INITIAL_SERVER_STATUS (ConfigFileType.CONFIG, "use-initial-server-status", Boolean.class), + USE_FAKE_MESSAGES (ConfigFileType.CONFIG, "use-fake-messages", Boolean.class), + TIMESTAMP_USE_API (ConfigFileType.CONFIG, "timestamp.use-api", Boolean.class), + TIMESTAMP_FORMAT (ConfigFileType.CONFIG, "timestamp.format", String.class), + TIMESTAMP_TIMEZONE (ConfigFileType.CONFIG, "timestamp.timezone", DateTimeZone.class), + USE_HELPER (ConfigFileType.CONFIG, "use-helper", Boolean.class), + UPDATE_NOTIFICATIONS (ConfigFileType.CONFIG, "update-notifications", Boolean.class), + USE_SIMPLE_PROXY_CHAT_BANNING_SYSTEM (ConfigFileType.CONFIG, "use-simple-proxy-chat-banning-system", Boolean.class), + SEND_PREVIOUS_MESSAGES_ON_SWITCH_ENABLED (ConfigFileType.CONFIG, "send-previous-messages-on-switch.enabled", Boolean.class), + SEND_PREVIOUS_MESSAGES_ON_SWITCH_AMOUNT (ConfigFileType.CONFIG, "send-previous-messages-on-switch.amount", Integer.class), + RELOAD_ALIASES (ConfigFileType.CONFIG, "commands.reload-aliases", List.class), + CHAT_TOGGLE_ALIASES (ConfigFileType.CONFIG, "commands.chat-toggle-aliases", List.class), + BAN_ALIASES (ConfigFileType.CONFIG, "commands.ban-aliases", List.class), + UNBAN_ALIASES (ConfigFileType.CONFIG, "commands.unban-aliases", List.class), + WHISPER_ALIASES (ConfigFileType.CONFIG, "commands.whisper-aliases", List.class), + REPLY_ALIASES (ConfigFileType.CONFIG, "commands.reply-aliases", List.class), + BROADCAST_ALIASES (ConfigFileType.CONFIG, "commands.broadcast-aliases", List.class), + + // MESSAGES + PLUGIN_PREFIX (ConfigFileType.MESSAGES, "plugin-prefix", String.class), + + MINECRAFT_JOIN_ENABLED (ConfigFileType.MESSAGES, "minecraft.join.enabled", Boolean.class), + MINECRAFT_JOIN (ConfigFileType.MESSAGES, "minecraft.join.message", String.class), + MINECRAFT_LEAVE_ENABLED (ConfigFileType.MESSAGES, "minecraft.leave.enabled", Boolean.class), + MINECRAFT_LEAVE (ConfigFileType.MESSAGES, "minecraft.leave.message", String.class), + MINECRAFT_CHAT_ENABLED (ConfigFileType.MESSAGES, "minecraft.chat.enabled", Boolean.class), + MINECRAFT_CHAT_MESSAGE (ConfigFileType.MESSAGES, "minecraft.chat.message", String.class), + MINECRAFT_CHAT_VANISHED_MESSAGE (ConfigFileType.MESSAGES, "minecraft.chat.vanished", String.class), + MINECRAFT_SWITCH_ENABLED (ConfigFileType.MESSAGES, "minecraft.switch.enabled", Boolean.class), + MINECRAFT_SWITCH_DEFAULT (ConfigFileType.MESSAGES, "minecraft.switch.default", String.class), + MINECRAFT_SWITCH_SHORT (ConfigFileType.MESSAGES, "minecraft.switch.no-from", String.class), + MINECRAFT_WHISPER_SEND (ConfigFileType.MESSAGES, "minecraft.whisper.send", String.class), + MINECRAFT_WHISPER_RECEIVE (ConfigFileType.MESSAGES, "minecraft.whisper.receive", String.class), + MINECRAFT_WHISPER_ERROR (ConfigFileType.MESSAGES, "minecraft.whisper.error", String.class), + MINECRAFT_DISCORD_ENABLED (ConfigFileType.MESSAGES, "minecraft.discord.enabled", Boolean.class), + MINECRAFT_DISCORD_MESSAGE (ConfigFileType.MESSAGES, "minecraft.discord.message", String.class), + MINECRAFT_DISCORD_EMBED_USE (ConfigFileType.MESSAGES, "minecraft.discord.embed.use", Boolean.class), + MINECRAFT_DISCORD_EMBED_TITLE (ConfigFileType.MESSAGES, "minecraft.discord.embed.title", String.class), + MINECRAFT_DISCORD_EMBED_MESSAGE (ConfigFileType.MESSAGES, "minecraft.discord.embed.message", String.class), + MINECRAFT_DISCORD_EMBED_COLOR (ConfigFileType.MESSAGES, "minecraft.discord.embed.color", Color.class), + MINECRAFT_DISCORD_EMBED_USE_TIMESTAMP (ConfigFileType.MESSAGES, "minecraft.discord.embed.use-timestamp", Boolean.class), + MINECRAFT_COMMAND_NO_PERMISSION (ConfigFileType.MESSAGES, "minecraft.command.no-permission", String.class), + MINECRAFT_COMMAND_UNKNOWN (ConfigFileType.MESSAGES, "minecraft.command.unknown", String.class), + MINECRAFT_COMMAND_MUST_BE_PLAYER (ConfigFileType.MESSAGES, "minecraft.command.must-be-player", String.class), + MINECRAFT_COMMAND_RELOAD (ConfigFileType.MESSAGES, "minecraft.command.reload", String.class), + MINECRAFT_COMMAND_CHAT_LOCK_USAGE (ConfigFileType.MESSAGES, "minecraft.command.chat-lock.usage", String.class), + MINECRAFT_COMMAND_CHAT_LOCK_SINGLE_LOCKED (ConfigFileType.MESSAGES, "minecraft.command.chat-lock.single.locked", String.class), + MINECRAFT_COMMAND_CHAT_LOCK_SINGLE_UNLOCKED (ConfigFileType.MESSAGES, "minecraft.command.chat-lock.single.unlocked", String.class), + MINECRAFT_COMMAND_CHAT_LOCK_ALL_LOCKED (ConfigFileType.MESSAGES, "minecraft.command.chat-lock.all.locked", String.class), + MINECRAFT_COMMAND_CHAT_LOCK_ALL_UNLOCKED (ConfigFileType.MESSAGES, "minecraft.command.chat-lock.all.unlocked", String.class), + MINECRAFT_COMMAND_PROXY_BAN_USAGE (ConfigFileType.MESSAGES, "minecraft.command.proxy-ban.usage", String.class), + MINECRAFT_COMMAND_PROXY_BAN_BANNED (ConfigFileType.MESSAGES, "minecraft.command.proxy-ban.banned", String.class), + MINECRAFT_COMMAND_PROXY_BAN_UNBANNED (ConfigFileType.MESSAGES, "minecraft.command.proxy-ban.unbanned", String.class), + MINECRAFT_COMMAND_PROXY_BAN_LOGIN_MESSAGE (ConfigFileType.MESSAGES, "minecraft.command.proxy-ban.login-message", String.class), + MINECRAFT_COMMAND_BROADCAST_USAGE (ConfigFileType.MESSAGES, "minecraft.command.broadcast.usage", String.class), + MINECRAFT_COMMAND_BROADCAST_MESSAGE (ConfigFileType.MESSAGES, "minecraft.command.broadcast.message", String.class), + + DISCORD_JOIN_ENABLED (ConfigFileType.MESSAGES, "discord.join.enabled", Boolean.class), + DISCORD_JOIN_MESSAGE (ConfigFileType.MESSAGES, "discord.join.message", String.class), + DISCORD_JOIN_USE_TIMESTAMP (ConfigFileType.MESSAGES, "discord.join.use-timestamp", Boolean.class), + DISCORD_LEAVE_ENABLED (ConfigFileType.MESSAGES, "discord.leave.enabled", Boolean.class), + DISCORD_LEAVE_MESSAGE (ConfigFileType.MESSAGES, "discord.leave.message", String.class), + DISCORD_LEAVE_USE_TIMESTAMP (ConfigFileType.MESSAGES, "discord.leave.use-timestamp", Boolean.class), + DISCORD_SWITCH_ENABLED (ConfigFileType.MESSAGES, "discord.switch.enabled", Boolean.class), + DISCORD_SWITCH_MESSAGE (ConfigFileType.MESSAGES, "discord.switch.message", String.class), + DISCORD_SWITCH_USE_TIMESTAMP (ConfigFileType.MESSAGES, "discord.switch.use-timestamp", Boolean.class), + DISCORD_CHAT_ENABLED (ConfigFileType.MESSAGES, "discord.chat.enabled", Boolean.class), + DISCORD_CHAT_MINECRAFT_MESSAGE (ConfigFileType.MESSAGES, "discord.chat.minecraft-message", String.class), + DISCORD_TOPIC_ONLINE (ConfigFileType.MESSAGES, "discord.topic.online", String.class), + DISCORD_TOPIC_OFFLINE (ConfigFileType.MESSAGES, "discord.topic.offline", String.class), + DISCORD_PROXY_STATUS_ENABLED (ConfigFileType.MESSAGES, "discord.proxy-status.enabled", Boolean.class), + DISCORD_PROXY_STATUS_MODULE_ENABLED (ConfigFileType.MESSAGES, "discord.proxy-status.messages.enabled", String.class), + DISCORD_PROXY_STATUS_MODULE_DISABLED (ConfigFileType.MESSAGES, "discord.proxy-status.messages.disabled", String.class), + DISCORD_PROXY_STATUS_MODULE_TITLE (ConfigFileType.MESSAGES, "discord.proxy-status.messages.title", String.class), + DISCORD_PROXY_STATUS_MODULE_MESSAGE (ConfigFileType.MESSAGES, "discord.proxy-status.messages.message", String.class), + DISCORD_PROXY_STATUS_MODULE_ONLINE (ConfigFileType.MESSAGES, "discord.proxy-status.messages.online", String.class), + DISCORD_PROXY_STATUS_MODULE_OFFLINE (ConfigFileType.MESSAGES, "discord.proxy-status.messages.offline", String.class), + DISCORD_PROXY_STATUS_MODULE_USE_TIMESTAMP (ConfigFileType.MESSAGES, "discord.proxy-status.messages.use-timestamp", Boolean.class), + + // CONSOLE STUFF + CONSOLE_CHAT (ConfigFileType.MESSAGES, "console.chat", Boolean.class), + CONSOLE_JOIN (ConfigFileType.MESSAGES, "console.join", Boolean.class), + CONSOLE_LEAVE (ConfigFileType.MESSAGES, "console.leave", Boolean.class), + CONSOLE_SWITCH (ConfigFileType.MESSAGES, "console.switch", Boolean.class), + CONSOLE_DISCORD_CHAT (ConfigFileType.MESSAGES, "console.discord-chat", Boolean.class), + CONSOLE_SERVER_STATUS (ConfigFileType.MESSAGES, "console.server-status", Boolean.class), + + UPDATE_MESSAGE (ConfigFileType.MESSAGES, "update-message", String.class); + + private final ConfigFileType file; + private final String key; + private final Class classType; + +} diff --git a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/config/ConfigValueWrapper.java b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/config/ConfigValueWrapper.java new file mode 100644 index 0000000..8672287 --- /dev/null +++ b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/config/ConfigValueWrapper.java @@ -0,0 +1,43 @@ +package com.beanbeanjuice.simpleproxychat.utility.config; + +import lombok.RequiredArgsConstructor; +import org.joda.time.DateTimeZone; + +import java.awt.*; +import java.util.HashMap; +import java.util.List; + +@RequiredArgsConstructor +public class ConfigValueWrapper { + + private final Object value; + + public String asString() { + return (String) value; + } + + public int asInt() { + return (int) value; + } + + public boolean asBoolean() { + return (boolean) value; + } + + public Color asColor() { + return (Color) value; + } + + public HashMap asStringMap() { + return (HashMap) value; + } + + public List asList() { + return (List) value; + } + + public DateTimeZone asDateTimeZone() { + return (DateTimeZone) value; + } + +} diff --git a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/epoch/EpochHelper.java b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/epoch/EpochHelper.java index 38ecbb3..8f8cb64 100644 --- a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/epoch/EpochHelper.java +++ b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/epoch/EpochHelper.java @@ -1,7 +1,7 @@ package com.beanbeanjuice.simpleproxychat.utility.epoch; import com.beanbeanjuice.simpleproxychat.utility.config.Config; -import com.beanbeanjuice.simpleproxychat.utility.config.ConfigDataKey; +import com.beanbeanjuice.simpleproxychat.utility.config.ConfigKey; import java.io.IOException; import java.io.InputStream; @@ -24,7 +24,7 @@ public EpochHelper(Config config) { } public long getEpochMillisecond() { - if (!config.getAsBoolean(ConfigDataKey.TIMESTAMP_USE_API)) return System.currentTimeMillis(); + if (!config.get(ConfigKey.TIMESTAMP_USE_API).asBoolean()) return System.currentTimeMillis(); Optional optionalEpochLong = getEpochFromAPI(); if (optionalEpochLong.isEmpty()) return epochCache; @@ -40,6 +40,10 @@ public long getEpochSecond() { return getEpochMillisecond() / 1000; } + /** + * @deprecated Since 0.5.3 + */ + @Deprecated private Optional getEpochFromAPI() { if (System.currentTimeMillis() - timeAtLastRefresh < 15000) return Optional.of(epochCache); diff --git a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/helper/Helper.java b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/helper/Helper.java index 8fbcc74..3e8a23d 100644 --- a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/helper/Helper.java +++ b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/helper/Helper.java @@ -3,7 +3,7 @@ import com.beanbeanjuice.simpleproxychat.utility.ISimpleProxyChat; import com.beanbeanjuice.simpleproxychat.utility.Tuple; import com.beanbeanjuice.simpleproxychat.utility.config.Config; -import com.beanbeanjuice.simpleproxychat.utility.config.ConfigDataKey; +import com.beanbeanjuice.simpleproxychat.utility.config.ConfigKey; import litebans.api.Database; import me.leoko.advancedban.manager.PunishmentManager; import me.leoko.advancedban.manager.UUIDManager; @@ -75,7 +75,7 @@ public static String replaceEssentialsColorCodes(String string) { } public static String convertAlias(Config config, String serverName) { - String alias = config.getAsStringMap(ConfigDataKey.ALIASES).get(serverName); + String alias = config.get(ConfigKey.ALIASES).asStringMap().get(serverName); return (alias == null) ? serverName : alias; } diff --git a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/helper/LastMessagesHelper.java b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/helper/LastMessagesHelper.java index 6f041b2..f48043d 100644 --- a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/helper/LastMessagesHelper.java +++ b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/helper/LastMessagesHelper.java @@ -1,7 +1,7 @@ package com.beanbeanjuice.simpleproxychat.utility.helper; import com.beanbeanjuice.simpleproxychat.utility.config.Config; -import com.beanbeanjuice.simpleproxychat.utility.config.ConfigDataKey; +import com.beanbeanjuice.simpleproxychat.utility.config.ConfigKey; import com.beanbeanjuice.simpleproxychat.utility.datastructures.BoundedArrayList; public class LastMessagesHelper { @@ -11,13 +11,13 @@ public class LastMessagesHelper { public LastMessagesHelper(final Config config) { this.config = config; - boundedArrayList = new BoundedArrayList<>(config.getAsInteger(ConfigDataKey.SEND_PREVIOUS_MESSAGES_ON_SWITCH_AMOUNT)); + boundedArrayList = new BoundedArrayList<>(config.get(ConfigKey.SEND_PREVIOUS_MESSAGES_ON_SWITCH_AMOUNT).asInt()); config.addReloadListener(this::reset); } private void reset() { BoundedArrayList old = boundedArrayList; - boundedArrayList = new BoundedArrayList<>(config.getAsInteger(ConfigDataKey.SEND_PREVIOUS_MESSAGES_ON_SWITCH_AMOUNT)); + boundedArrayList = new BoundedArrayList<>(config.get(ConfigKey.SEND_PREVIOUS_MESSAGES_ON_SWITCH_AMOUNT).asInt()); boundedArrayList.addAll(old); } @@ -26,7 +26,7 @@ public void addMessage(final String message) { } public BoundedArrayList getBoundedArrayList() { - if (!config.getAsBoolean(ConfigDataKey.SEND_PREVIOUS_MESSAGES_ON_SWITCH_ENABLED)) return new BoundedArrayList<>(0); + if (!config.get(ConfigKey.SEND_PREVIOUS_MESSAGES_ON_SWITCH_ENABLED).asBoolean()) return new BoundedArrayList<>(0); return boundedArrayList; } diff --git a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/listeners/bungee/BungeeServerListener.java b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/listeners/bungee/BungeeServerListener.java index 3a96b32..58975f5 100644 --- a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/listeners/bungee/BungeeServerListener.java +++ b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/listeners/bungee/BungeeServerListener.java @@ -7,7 +7,7 @@ import com.beanbeanjuice.simpleproxychat.utility.config.Permission; import com.beanbeanjuice.simpleproxychat.utility.listeners.MessageType; import com.beanbeanjuice.simpleproxychat.utility.status.ServerStatusManager; -import com.beanbeanjuice.simpleproxychat.utility.config.ConfigDataKey; +import com.beanbeanjuice.simpleproxychat.utility.config.ConfigKey; import de.myzelyam.api.vanish.*; import lombok.Getter; import net.md_5.bungee.api.ChatMessageType; @@ -46,7 +46,7 @@ public void onProxyChatEvent(ChatEvent event) { if (plugin.isVanishAPIEnabled() && BungeeVanishAPI.isInvisible(player)) { // TODO: If is allowed to speak in vanish then continue. if (!event.getMessage().endsWith("/")) { - String errorMessage = plugin.getConfig().getAsString(ConfigDataKey.MINECRAFT_CHAT_VANISHED_MESSAGE); + String errorMessage = plugin.getConfig().get(ConfigKey.MINECRAFT_CHAT_VANISHED_MESSAGE).asString(); player.sendMessage(ChatMessageType.SYSTEM, Helper.convertToBungee(errorMessage)); return; } @@ -111,7 +111,7 @@ void leave(ProxiedPlayer player, boolean isFake) { public void onPreLogin(PreLoginEvent event) { String playerName = event.getConnection().getName(); - if (!plugin.getConfig().getAsBoolean(ConfigDataKey.USE_SIMPLE_PROXY_CHAT_BANNING_SYSTEM)) return; + if (!plugin.getConfig().get(ConfigKey.USE_SIMPLE_PROXY_CHAT_BANNING_SYSTEM).asBoolean()) return; if (!plugin.getBanHelper().isBanned(playerName)) return; event.setCancelled(true); @@ -171,7 +171,7 @@ public void onPlayerServerSwitch(ServerSwitchEvent event) { (message) -> from.getPlayers().stream() .filter((streamPlayer) -> streamPlayer != player) .filter((streamPlayer) -> { - if (plugin.getConfig().getAsBoolean(ConfigDataKey.USE_PERMISSIONS)) + if (plugin.getConfig().get(ConfigKey.USE_PERMISSIONS).asBoolean()) return streamPlayer.hasPermission(Permission.READ_SWITCH_MESSAGE.getPermissionNode()); return true; }) @@ -181,8 +181,8 @@ public void onPlayerServerSwitch(ServerSwitchEvent event) { } private void startServerStatusDetection() { - this.serverStatusManager = new ServerStatusManager(plugin.getConfig()); - int updateInterval = plugin.getConfig().getAsInteger(ConfigDataKey.SERVER_UPDATE_INTERVAL); + this.serverStatusManager = new ServerStatusManager(plugin); + int updateInterval = plugin.getConfig().get(ConfigKey.SERVER_UPDATE_INTERVAL).asInt(); plugin.getProxy().getScheduler().schedule(plugin, () -> plugin.getProxy().getServers().forEach((serverName, serverInfo) -> { serverInfo.ping((result, error) -> { @@ -195,7 +195,7 @@ private void startServerStatusDetection() { private void sendToAllServers(String parsedMessage, Permission permission) { plugin.getProxy().getPlayers().stream() .filter((player) -> { - if (plugin.getConfig().getAsBoolean(ConfigDataKey.USE_PERMISSIONS)) + if (plugin.getConfig().get(ConfigKey.USE_PERMISSIONS).asBoolean()) return player.hasPermission(permission.getPermissionNode()); return true; }) @@ -209,12 +209,12 @@ private void sendToAllServers(String parsedMessage, Permission permission) { private void sendToAllServersVanish(String parsedMessage, Permission permission) { plugin.getProxy().getPlayers().stream() .filter((player) -> { - if (plugin.getConfig().getAsBoolean(ConfigDataKey.USE_PERMISSIONS)) + if (plugin.getConfig().get(ConfigKey.USE_PERMISSIONS).asBoolean()) return player.hasPermission(permission.getPermissionNode()); return true; }) .filter((player) -> { - if (plugin.getConfig().getAsBoolean(ConfigDataKey.USE_PERMISSIONS)) + if (plugin.getConfig().get(ConfigKey.USE_PERMISSIONS).asBoolean()) return player.hasPermission(Permission.READ_FAKE_MESSAGE.getPermissionNode()); return true; }) diff --git a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/listeners/bungee/BungeeVanishListener.java b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/listeners/bungee/BungeeVanishListener.java index 5404d00..5c7ab03 100644 --- a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/listeners/bungee/BungeeVanishListener.java +++ b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/listeners/bungee/BungeeVanishListener.java @@ -1,7 +1,7 @@ package com.beanbeanjuice.simpleproxychat.utility.listeners.bungee; import com.beanbeanjuice.simpleproxychat.utility.config.Config; -import com.beanbeanjuice.simpleproxychat.utility.config.ConfigDataKey; +import com.beanbeanjuice.simpleproxychat.utility.config.ConfigKey; import de.myzelyam.api.vanish.BungeePlayerHideEvent; import de.myzelyam.api.vanish.BungeePlayerShowEvent; import net.md_5.bungee.api.plugin.Listener; @@ -21,14 +21,14 @@ public BungeeVanishListener(BungeeServerListener listener, Config config) { public void onVanish(BungeePlayerHideEvent event) { listener.getPreviousServerHandler().put(event.getPlayer().getName(), event.getPlayer().getServer().getInfo()); - if (!config.getAsBoolean(ConfigDataKey.USE_FAKE_MESSAGES)) return; + if (!config.get(ConfigKey.USE_FAKE_MESSAGES).asBoolean()) return; listener.leave(event.getPlayer(),true); } @EventHandler public void onAppear(BungeePlayerShowEvent event) { - if (!config.getAsBoolean(ConfigDataKey.USE_FAKE_MESSAGES)) return; + if (!config.get(ConfigKey.USE_FAKE_MESSAGES).asBoolean()) return; listener.join(event.getPlayer(), event.getPlayer().getServer(), true); } diff --git a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/listeners/velocity/VelocityServerListener.java b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/listeners/velocity/VelocityServerListener.java index 4a0d410..b0499ca 100644 --- a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/listeners/velocity/VelocityServerListener.java +++ b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/listeners/velocity/VelocityServerListener.java @@ -7,7 +7,7 @@ import com.beanbeanjuice.simpleproxychat.utility.config.Permission; import com.beanbeanjuice.simpleproxychat.utility.listeners.MessageType; import com.beanbeanjuice.simpleproxychat.utility.status.ServerStatusManager; -import com.beanbeanjuice.simpleproxychat.utility.config.ConfigDataKey; +import com.beanbeanjuice.simpleproxychat.utility.config.ConfigKey; import com.velocitypowered.api.event.PostOrder; import com.velocitypowered.api.event.Subscribe; import com.velocitypowered.api.event.connection.DisconnectEvent; @@ -50,7 +50,7 @@ public void onPlayerChat(PlayerChatEvent event) { if (plugin.isVanishAPIEnabled() && VelocityVanishAPI.isInvisible(player)) { // If is allowed to speak in vanish, continue. if (!event.getMessage().endsWith("/")) { - String errorMessage = plugin.getConfig().getAsString(ConfigDataKey.MINECRAFT_CHAT_VANISHED_MESSAGE); + String errorMessage = plugin.getConfig().get(ConfigKey.MINECRAFT_CHAT_VANISHED_MESSAGE).asString(); player.sendMessage(Helper.stringToComponent(errorMessage)); return; } @@ -97,8 +97,8 @@ protected void join(Player player, String serverName) { } private void startServerStatusDetection() { - this.serverStatusManager = new ServerStatusManager(plugin.getConfig()); - int updateInterval = plugin.getConfig().getAsInteger(ConfigDataKey.SERVER_UPDATE_INTERVAL); + this.serverStatusManager = new ServerStatusManager(plugin); + int updateInterval = plugin.getConfig().get(ConfigKey.SERVER_UPDATE_INTERVAL).asInt(); plugin.getProxyServer().getScheduler().buildTask(plugin, () -> plugin.getProxyServer().getAllServers().forEach((registeredServer) -> { String serverName = registeredServer.getServerInfo().getName(); @@ -116,7 +116,7 @@ private void startServerStatusDetection() { public void onPreLoginEvent(PreLoginEvent event) { String playerName = event.getUsername(); - if (!plugin.getConfig().getAsBoolean(ConfigDataKey.USE_SIMPLE_PROXY_CHAT_BANNING_SYSTEM)) return; + if (!plugin.getConfig().get(ConfigKey.USE_SIMPLE_PROXY_CHAT_BANNING_SYSTEM).asBoolean()) return; if (!plugin.getBanHelper().isBanned(playerName)) return; event.setResult(PreLoginEvent.PreLoginComponentResult.denied(Helper.stringToComponent("&cYou are banned from the proxy."))); @@ -149,7 +149,7 @@ public void onServerConnected(ServerConnectedEvent event) { previousServer.getPlayersConnected().stream() .filter((streamPlayer) -> streamPlayer != event.getPlayer()) .filter((player) -> { - if (plugin.getConfig().getAsBoolean(ConfigDataKey.USE_PERMISSIONS)) + if (plugin.getConfig().get(ConfigKey.USE_PERMISSIONS).asBoolean()) return player.hasPermission(Permission.READ_SWITCH_MESSAGE.getPermissionNode()); return true; }) @@ -162,7 +162,7 @@ public void onServerConnected(ServerConnectedEvent event) { private void sendToAllServers(String message, Permission permission) { plugin.getProxyServer().getAllPlayers().stream() .filter((player) -> { - if (plugin.getConfig().getAsBoolean(ConfigDataKey.USE_PERMISSIONS)) + if (plugin.getConfig().get(ConfigKey.USE_PERMISSIONS).asBoolean()) return player.hasPermission(permission.getPermissionNode()); return true; }) diff --git a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/listeners/velocity/VelocityVanishListener.java b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/listeners/velocity/VelocityVanishListener.java index d3d1cd4..d5cd809 100644 --- a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/listeners/velocity/VelocityVanishListener.java +++ b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/listeners/velocity/VelocityVanishListener.java @@ -1,7 +1,6 @@ package com.beanbeanjuice.simpleproxychat.utility.listeners.velocity; import com.beanbeanjuice.simpleproxychat.SimpleProxyChatVelocity; -import com.beanbeanjuice.simpleproxychat.utility.config.ConfigDataKey; import com.velocitypowered.api.proxy.Player; import de.myzelyam.api.vanish.VelocityVanishAPI; diff --git a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/status/ServerStatusManager.java b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/status/ServerStatusManager.java index a51b7dc..6c193b7 100644 --- a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/status/ServerStatusManager.java +++ b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/status/ServerStatusManager.java @@ -1,9 +1,10 @@ package com.beanbeanjuice.simpleproxychat.utility.status; import com.beanbeanjuice.simpleproxychat.discord.Bot; +import com.beanbeanjuice.simpleproxychat.utility.ISimpleProxyChat; import com.beanbeanjuice.simpleproxychat.utility.helper.Helper; import com.beanbeanjuice.simpleproxychat.utility.config.Config; -import com.beanbeanjuice.simpleproxychat.utility.config.ConfigDataKey; +import com.beanbeanjuice.simpleproxychat.utility.config.ConfigKey; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.MessageEmbed; @@ -14,12 +15,13 @@ public class ServerStatusManager { - private final Hashtable servers; // Hashtable for Thread Safety + private final ISimpleProxyChat plugin; private final Config config; + private final Hashtable servers = new Hashtable<>(); // Hashtable for Thread Safety - public ServerStatusManager(Config config) { - servers = new Hashtable<>(); - this.config = config; + public ServerStatusManager(ISimpleProxyChat plugin) { + this.plugin = plugin; + this.config = plugin.getSPCConfig(); } public ServerStatus getStatus(String serverName) { @@ -32,11 +34,11 @@ public void setStatus(String serverName, boolean status) { } public MessageEmbed getStatusEmbed(String serverName, boolean status) { - String statusMessageString = config.getAsString(ConfigDataKey.DISCORD_PROXY_STATUS_MODULE_MESSAGE); - String statusString = status ? config.getAsString(ConfigDataKey.DISCORD_PROXY_STATUS_MODULE_ONLINE) : config.getAsString(ConfigDataKey.DISCORD_PROXY_STATUS_MODULE_OFFLINE); + String statusMessageString = config.get(ConfigKey.DISCORD_PROXY_STATUS_MODULE_MESSAGE).asString(); + String statusString = status ? config.get(ConfigKey.DISCORD_PROXY_STATUS_MODULE_ONLINE).asString() : config.get(ConfigKey.DISCORD_PROXY_STATUS_MODULE_OFFLINE).asString(); EmbedBuilder embedBuilder = new EmbedBuilder(); - embedBuilder.setTitle(config.getAsString(ConfigDataKey.DISCORD_PROXY_STATUS_MODULE_TITLE)); + embedBuilder.setTitle(config.get(ConfigKey.DISCORD_PROXY_STATUS_MODULE_TITLE).asString()); embedBuilder.addField( Helper.convertAlias(config, serverName), String.format("%s%s", statusMessageString, statusString), @@ -46,10 +48,10 @@ public MessageEmbed getStatusEmbed(String serverName, boolean status) { } public MessageEmbed getAllStatusEmbed() { - String title = config.getAsString(ConfigDataKey.DISCORD_PROXY_STATUS_MODULE_TITLE); - String message = config.getAsString(ConfigDataKey.DISCORD_PROXY_STATUS_MODULE_MESSAGE); - String onlineString = config.getAsString(ConfigDataKey.DISCORD_PROXY_STATUS_MODULE_ONLINE); - String offlineString = config.getAsString(ConfigDataKey.DISCORD_PROXY_STATUS_MODULE_OFFLINE); + String title = config.get(ConfigKey.DISCORD_PROXY_STATUS_MODULE_TITLE).asString(); + String message = config.get(ConfigKey.DISCORD_PROXY_STATUS_MODULE_MESSAGE).asString(); + String onlineString = config.get(ConfigKey.DISCORD_PROXY_STATUS_MODULE_ONLINE).asString(); + String offlineString = config.get(ConfigKey.DISCORD_PROXY_STATUS_MODULE_OFFLINE).asString(); EmbedBuilder embedBuilder = new EmbedBuilder(); embedBuilder.setTitle(title); @@ -70,24 +72,24 @@ public String getStatusString(String serverName, boolean status) { public ArrayList getAllStatusStrings() { ArrayList statusStrings = new ArrayList<>(); - if (config.getAsBoolean(ConfigDataKey.CONSOLE_SERVER_STATUS)) + if (config.get(ConfigKey.CONSOLE_SERVER_STATUS).asBoolean()) servers.forEach((serverName, serverStatus) -> statusStrings.add(getStatusString(serverName, serverStatus.getStatus()))); return statusStrings; } public void runStatusLogic(String serverName, boolean newStatus, Bot discordBot, Consumer logger) { - if (config.getAsBoolean(ConfigDataKey.PLUGIN_STARTING)) { + if (plugin.isPluginStarting()) { this.setStatus(serverName, newStatus); return; } ServerStatus currentStatus = this.getStatus(serverName); currentStatus.updateStatus(newStatus).ifPresent((isOnline) -> { - if (config.getAsBoolean(ConfigDataKey.DISCORD_PROXY_STATUS_ENABLED)) + if (config.get(ConfigKey.DISCORD_PROXY_STATUS_ENABLED).asBoolean()) discordBot.sendMessageEmbed(this.getStatusEmbed(serverName, isOnline)); - if (config.getAsBoolean(ConfigDataKey.CONSOLE_SERVER_STATUS)) - logger.accept(this.getStatusString(serverName, isOnline)); + if (config.get(ConfigKey.CONSOLE_SERVER_STATUS).asBoolean()) + logger.accept(Helper.sanitize(this.getStatusString(serverName, isOnline))); }); } } From 170627f63253b9ab1e0519de2f1ca231b94e059b Mon Sep 17 00:00:00 2001 From: beanbeanjuice Date: Tue, 27 Aug 2024 22:29:27 -0400 Subject: [PATCH 2/5] Added the Disabled Servers Config Option --- README.md | 17 ++++++++++++- .../simpleproxychat/chat/ChatHandler.java | 1 - .../socket/bungee/BungeeChatMessageData.java | 2 ++ .../velocity/VelocityChatMessageData.java | 2 ++ .../utility/config/ConfigKey.java | 1 + .../bungee/BungeeServerListener.java | 18 +++++++++++++- .../velocity/VelocityServerListener.java | 24 +++++++++++++++++++ .../main-app/src/main/resources/config.yml | 6 ++++- 8 files changed, 67 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index c791fb4..ba7dcca 100644 --- a/README.md +++ b/README.md @@ -167,13 +167,28 @@ send-previous-messages-on-switch: # These require a restart in order to take place. commands: + reload-aliases: + - "spcreload" + chat-toggle-aliases: + - "chattoggle" + ban-aliases: + - "spcban" + unban-aliases: + - "spcunban" whisper-aliases: - "spc-msg" reply-aliases: - "spc-r" + broadcast-aliases: + - "spc-bc" + - "broadcast" + +# Disable servers from sending/receiving proxy messages. +disabled-servers: + - example1 # DO NOT TOUCH THIS -file-version: 13 +file-version: 15 ``` **messages.yml** diff --git a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/chat/ChatHandler.java b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/chat/ChatHandler.java index 2df02fc..cb335b0 100644 --- a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/chat/ChatHandler.java +++ b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/chat/ChatHandler.java @@ -170,7 +170,6 @@ public void runProxyLeaveMessage(String playerName, UUID playerUUID, String serv // Log to Console if (config.get(ConfigKey.CONSOLE_LEAVE).asBoolean()) plugin.log(message); - // Log to Discord if (config.get(ConfigKey.DISCORD_LEAVE_ENABLED).asBoolean()) { EmbedBuilder embedBuilder = simpleAuthorEmbedBuilder(playerUUID, discordMessage).setColor(Color.RED); diff --git a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/socket/bungee/BungeeChatMessageData.java b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/socket/bungee/BungeeChatMessageData.java index 9f3d15e..c38cac3 100644 --- a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/socket/bungee/BungeeChatMessageData.java +++ b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/socket/bungee/BungeeChatMessageData.java @@ -5,6 +5,7 @@ import com.beanbeanjuice.simpleproxychat.utility.config.ConfigKey; import com.beanbeanjuice.simpleproxychat.utility.config.Permission; import com.beanbeanjuice.simpleproxychat.utility.listeners.MessageType; +import com.beanbeanjuice.simpleproxychat.utility.listeners.bungee.BungeeServerListener; import lombok.Getter; import net.md_5.bungee.api.ChatMessageType; import net.md_5.bungee.api.config.ServerInfo; @@ -69,6 +70,7 @@ public void chatSendToAllOtherPlayers(String parsedMessage) { if (!plugin.getConfig().get(ConfigKey.USE_PERMISSIONS).asBoolean()) return true; return streamPlayer.hasPermission(Permission.READ_CHAT_MESSAGE.getPermissionNode()); }) + .filter((streamPlayer) -> !BungeeServerListener.playerIsInDisabledServer(streamPlayer, plugin)) .forEach((streamPlayer) -> streamPlayer.sendMessage(ChatMessageType.CHAT, convertToBungee(parsedMessage))); } diff --git a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/socket/velocity/VelocityChatMessageData.java b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/socket/velocity/VelocityChatMessageData.java index 95ca4fe..165def1 100644 --- a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/socket/velocity/VelocityChatMessageData.java +++ b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/socket/velocity/VelocityChatMessageData.java @@ -5,6 +5,7 @@ import com.beanbeanjuice.simpleproxychat.utility.config.ConfigKey; import com.beanbeanjuice.simpleproxychat.utility.config.Permission; import com.beanbeanjuice.simpleproxychat.utility.listeners.MessageType; +import com.beanbeanjuice.simpleproxychat.utility.listeners.velocity.VelocityServerListener; import com.velocitypowered.api.proxy.Player; import com.velocitypowered.api.proxy.server.RegisteredServer; import lombok.Getter; @@ -62,6 +63,7 @@ public void chatSendToAllOtherPlayers(String parsedMessage) { if (!plugin.getConfig().get(ConfigKey.USE_PERMISSIONS).asBoolean()) return true; return streamPlayer.hasPermission(Permission.READ_CHAT_MESSAGE.getPermissionNode()); }) + .filter((streamPlayer) -> !VelocityServerListener.playerIsInDisabledServer(streamPlayer, plugin)) .forEach((streamPlayer) -> streamPlayer.sendMessage(component)); } diff --git a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/config/ConfigKey.java b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/config/ConfigKey.java index 444567d..c4d8842 100644 --- a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/config/ConfigKey.java +++ b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/config/ConfigKey.java @@ -39,6 +39,7 @@ public enum ConfigKey { WHISPER_ALIASES (ConfigFileType.CONFIG, "commands.whisper-aliases", List.class), REPLY_ALIASES (ConfigFileType.CONFIG, "commands.reply-aliases", List.class), BROADCAST_ALIASES (ConfigFileType.CONFIG, "commands.broadcast-aliases", List.class), + DISABLED_SERVERS (ConfigFileType.CONFIG, "disabled-servers", List.class), // MESSAGES PLUGIN_PREFIX (ConfigFileType.MESSAGES, "plugin-prefix", String.class), diff --git a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/listeners/bungee/BungeeServerListener.java b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/listeners/bungee/BungeeServerListener.java index 58975f5..89505a8 100644 --- a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/listeners/bungee/BungeeServerListener.java +++ b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/listeners/bungee/BungeeServerListener.java @@ -3,6 +3,7 @@ import com.beanbeanjuice.simpleproxychat.SimpleProxyChatBungee; import com.beanbeanjuice.simpleproxychat.chat.ChatHandler; import com.beanbeanjuice.simpleproxychat.socket.bungee.BungeeChatMessageData; +import com.beanbeanjuice.simpleproxychat.utility.ISimpleProxyChat; import com.beanbeanjuice.simpleproxychat.utility.helper.Helper; import com.beanbeanjuice.simpleproxychat.utility.config.Permission; import com.beanbeanjuice.simpleproxychat.utility.listeners.MessageType; @@ -37,12 +38,17 @@ public BungeeServerListener(SimpleProxyChatBungee plugin, ChatHandler chatHandle startServerStatusDetection(); } + public static boolean playerIsInDisabledServer(ProxiedPlayer player, ISimpleProxyChat plugin) { + return plugin.getSPCConfig().get(ConfigKey.DISABLED_SERVERS).asList().contains(player.getServer().getInfo().getName()); + } + @EventHandler (priority = EventPriority.HIGHEST) public void onProxyChatEvent(ChatEvent event) { if (event.isCancelled()) return; if (event.isCommand() || event.isProxyCommand()) return; - ProxiedPlayer player = (ProxiedPlayer) event.getSender(); + if (playerIsInDisabledServer(player, plugin)) return; + if (plugin.isVanishAPIEnabled() && BungeeVanishAPI.isInvisible(player)) { // TODO: If is allowed to speak in vanish then continue. if (!event.getMessage().endsWith("/")) { @@ -67,6 +73,7 @@ public void onProxyChatEvent(ChatEvent event) { */ @EventHandler public void onPlayerLeaveServer(ServerDisconnectEvent event) { + if (playerIsInDisabledServer(event.getPlayer(), plugin)) return; previousServerHandler.put(event.getPlayer().getName(), event.getTarget()); } @@ -76,6 +83,7 @@ public void onPlayerLeaveServer(ServerDisconnectEvent event) { */ @EventHandler public void onPlayerKick(ServerKickEvent event) { + if (playerIsInDisabledServer(event.getPlayer(), plugin)) return; if (event.getState() == ServerKickEvent.State.CONNECTING) return; if (!event.getPlayer().getGroups().contains("successful-connection")) return; previousServerHandler.put(event.getPlayer().getName(), event.getKickedFrom()); @@ -83,6 +91,7 @@ public void onPlayerKick(ServerKickEvent event) { @EventHandler public void onPlayerLeaveProxy(PlayerDisconnectEvent event) { + if (playerIsInDisabledServer(event.getPlayer(), plugin)) return; if (!event.getPlayer().getGroups().contains("successful-connection")) return; if (!event.getPlayer().getGroups().contains("not-first-join")) return; if (plugin.isVanishAPIEnabled() && BungeeVanishAPI.isInvisible(event.getPlayer())) return; // Ignore if invisible. @@ -125,6 +134,8 @@ public void onPostLogin(PostLoginEvent event) { @EventHandler public void onPlayerJoinProxy(ServerConnectedEvent event) { + if (playerIsInDisabledServer(event.getPlayer(), plugin)) return; + if (event.getPlayer().getGroups().contains("not-first-join")) return; // If not first join, don't do anything. if (!event.getPlayer().getGroups().contains("successful-connection")) return; event.getPlayer().addGroups("not-first-join"); @@ -157,6 +168,8 @@ public void join(ProxiedPlayer player, @Nullable Server server, boolean isFake) public void onPlayerServerSwitch(ServerSwitchEvent event) { ProxiedPlayer player = event.getPlayer(); + if (playerIsInDisabledServer(player, plugin)) return; + if (plugin.isVanishAPIEnabled() && BungeeVanishAPI.isInvisible(player)) return; // Ignore if player is invisible. if (event.getFrom() == null) return; // This means the player just joined the network. @@ -203,6 +216,9 @@ private void sendToAllServers(String parsedMessage, Permission permission) { if (player.getServer() == null || player.getServer().getInfo() == null) return false; return !Helper.serverHasChatLocked(plugin, player.getServer().getInfo().getName()); }) + .filter((player) -> { // Players IN the server will not receive the message. + return !playerIsInDisabledServer(player, plugin); + }) .forEach((player) -> player.sendMessage(ChatMessageType.CHAT, Helper.convertToBungee(parsedMessage))); } diff --git a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/listeners/velocity/VelocityServerListener.java b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/listeners/velocity/VelocityServerListener.java index b0499ca..4a39e46 100644 --- a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/listeners/velocity/VelocityServerListener.java +++ b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/listeners/velocity/VelocityServerListener.java @@ -3,6 +3,7 @@ import com.beanbeanjuice.simpleproxychat.SimpleProxyChatVelocity; import com.beanbeanjuice.simpleproxychat.chat.ChatHandler; import com.beanbeanjuice.simpleproxychat.socket.velocity.VelocityChatMessageData; +import com.beanbeanjuice.simpleproxychat.utility.ISimpleProxyChat; import com.beanbeanjuice.simpleproxychat.utility.helper.Helper; import com.beanbeanjuice.simpleproxychat.utility.config.Permission; import com.beanbeanjuice.simpleproxychat.utility.listeners.MessageType; @@ -16,7 +17,9 @@ import com.velocitypowered.api.event.player.PlayerChatEvent; import com.velocitypowered.api.event.player.ServerConnectedEvent; import com.velocitypowered.api.proxy.Player; +import com.velocitypowered.api.proxy.ServerConnection; import com.velocitypowered.api.proxy.server.RegisteredServer; +import com.velocitypowered.api.proxy.server.ServerInfo; import de.myzelyam.api.vanish.VelocityVanishAPI; import lombok.Getter; import net.kyori.adventure.text.Component; @@ -43,8 +46,22 @@ public void initializeVelocityVanishListener() { this.velocityVanishListener.startVanishListener(); } + public static boolean playerIsInDisabledServer(Player player, ISimpleProxyChat plugin) { + return player.getCurrentServer() + .map(ServerConnection::getServerInfo) + .map(ServerInfo::getName) + .map(plugin.getSPCConfig().get(ConfigKey.DISABLED_SERVERS).asList()::contains) + .orElse(false); + } + + public static boolean playerIsInDisabledServer(ServerInfo serverInfo, ISimpleProxyChat plugin) { + return plugin.getSPCConfig().get(ConfigKey.DISABLED_SERVERS).asList().contains(serverInfo.getName()); + } + @Subscribe(order = PostOrder.LAST) public void onPlayerChat(PlayerChatEvent event) { + if (playerIsInDisabledServer(event.getPlayer(), plugin)) return; + String playerMessage = event.getMessage(); Player player = event.getPlayer(); if (plugin.isVanishAPIEnabled() && VelocityVanishAPI.isInvisible(player)) { @@ -67,6 +84,7 @@ public void onPlayerChat(PlayerChatEvent event) { @Subscribe public void onDisconnect(DisconnectEvent event) { + if (playerIsInDisabledServer(event.getPlayer(), plugin)) return; if (plugin.isVanishAPIEnabled() && VelocityVanishAPI.isInvisible(event.getPlayer())) return; // Ignore if invisible. leave(event.getPlayer()); @@ -74,6 +92,8 @@ public void onDisconnect(DisconnectEvent event) { @Subscribe public void kickedFromServerEvent(KickedFromServerEvent event) { + if (playerIsInDisabledServer(event.getPlayer(), plugin)) return; + KickedFromServerEvent.ServerKickResult result = event.getResult(); if (result.toString().contains("velocity.error.cant-connect")) return; if (event.getServerKickReason().isEmpty()) return; @@ -124,10 +144,13 @@ public void onPreLoginEvent(PreLoginEvent event) { @Subscribe public void onServerConnected(ServerConnectedEvent event) { + if (playerIsInDisabledServer(event.getPlayer(), plugin)) return; if (plugin.isVanishAPIEnabled() && VelocityVanishAPI.isInvisible(event.getPlayer())) return; // First Join if (event.getPreviousServer().isEmpty()) { + if (playerIsInDisabledServer(event.getServer().getServerInfo(), plugin)) return; + join(event.getPlayer(), event.getServer().getServerInfo().getName()); return; } @@ -166,6 +189,7 @@ private void sendToAllServers(String message, Permission permission) { return player.hasPermission(permission.getPermissionNode()); return true; }) + .filter((player) -> !playerIsInDisabledServer(player, plugin)) .forEach((player) -> player.sendMessage(MiniMessage.miniMessage().deserialize(message))); } diff --git a/projects/main-app/src/main/resources/config.yml b/projects/main-app/src/main/resources/config.yml index a234321..ff0af4c 100644 --- a/projects/main-app/src/main/resources/config.yml +++ b/projects/main-app/src/main/resources/config.yml @@ -108,5 +108,9 @@ commands: - "spc-bc" - "broadcast" +# Disable servers from sending/receiving proxy messages. +disabled-servers: + - example1 + # DO NOT TOUCH THIS -file-version: 14 +file-version: 15 From 73cb75c4747db72e2542169b46d26b9932ada4d8 Mon Sep 17 00:00:00 2001 From: beanbeanjuice Date: Tue, 27 Aug 2024 22:32:32 -0400 Subject: [PATCH 3/5] Changed Build Number --- projects/main-app/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/main-app/build.gradle.kts b/projects/main-app/build.gradle.kts index 9f4feff..111778b 100644 --- a/projects/main-app/build.gradle.kts +++ b/projects/main-app/build.gradle.kts @@ -1,6 +1,6 @@ import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar -version = "0.5.6" +version = "0.5.7" java { sourceCompatibility = JavaVersion.VERSION_17 From 4ab5a9285103317f26ab27a91403870a360f55be Mon Sep 17 00:00:00 2001 From: beanbeanjuice Date: Sat, 31 Aug 2024 03:42:42 -0400 Subject: [PATCH 4/5] Added Escaped Username Placeholder --- README.md | 1 + .../com/beanbeanjuice/simpleproxychat/chat/ChatHandler.java | 5 +++++ .../beanbeanjuice/simpleproxychat/utility/helper/Helper.java | 4 ++++ 3 files changed, 10 insertions(+) diff --git a/README.md b/README.md index c791fb4..1eee4d6 100644 --- a/README.md +++ b/README.md @@ -335,6 +335,7 @@ file-version: 9 * `%from%` - The server the player just disconnected from. Uses the alias if one is specified. * `%original_from%` - Same as `%from%`, but does not use the alias. * `%player%` - The player's Minecraft username. +* `%escaped_player%` - The escaped player's Minecraft username. (Adds '\\' before the '_' to prevent italics.) * `%sender%` - The person sending the private message. **Private Messaging Only** * `%receiver%` - The person receiving the private message. **Private Messaging Only** * `%user%` - The player's Discord username. diff --git a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/chat/ChatHandler.java b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/chat/ChatHandler.java index 2df02fc..9fc808a 100644 --- a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/chat/ChatHandler.java +++ b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/chat/ChatHandler.java @@ -120,6 +120,7 @@ public void runProxyChatMessage(ChatMessageData chatMessageData) { replacements.add(Tuple.of("to", aliasedServerName)); replacements.add(Tuple.of("original_to", serverName)); replacements.add(Tuple.of("player", playerName)); + replacements.add(Tuple.of("escaped_player", Helper.escapeString(playerName))); replacements.add(Tuple.of("epoch", String.valueOf(epochHelper.getEpochSecond()))); replacements.add(Tuple.of("time", getTimeString())); replacements.add(Tuple.of("plugin-prefix", config.get(ConfigKey.PLUGIN_PREFIX).asString())); @@ -144,6 +145,7 @@ public void runProxyChatMessage(ChatMessageData chatMessageData) { chat(chatMessageData, minecraftMessage, discordMessage, discordEmbedTitle, discordEmbedMessage); } + public void runProxyLeaveMessage(String playerName, UUID playerUUID, String serverName, BiConsumer minecraftLogger) { String configString = config.get(ConfigKey.MINECRAFT_LEAVE).asString(); @@ -153,6 +155,7 @@ public void runProxyLeaveMessage(String playerName, UUID playerUUID, String serv List> replacements = new ArrayList<>(); replacements.add(Tuple.of("player", playerName)); + replacements.add(Tuple.of("escaped_player", Helper.escapeString(playerName))); replacements.add(Tuple.of("server", aliasedServerName)); replacements.add(Tuple.of("original_server", serverName)); replacements.add(Tuple.of("to", aliasedServerName)); @@ -191,6 +194,7 @@ public void runProxyJoinMessage(String playerName, UUID playerUUID, String serve List> replacements = new ArrayList<>(); replacements.add(Tuple.of("player", playerName)); + replacements.add(Tuple.of("escaped_player", Helper.escapeString(playerName))); replacements.add(Tuple.of("server", Helper.convertAlias(config, serverName))); replacements.add(Tuple.of("to", Helper.convertAlias(config, serverName))); replacements.add(Tuple.of("server", aliasedServerName)); @@ -239,6 +243,7 @@ public void runProxySwitchMessage(String from, String to, String playerName, UUI replacements.add(Tuple.of("server", aliasedTo)); replacements.add(Tuple.of("original_server", to)); replacements.add(Tuple.of("player", playerName)); + replacements.add(Tuple.of("escaped_player", Helper.escapeString(playerName))); replacements.add(Tuple.of("epoch", String.valueOf(epochHelper.getEpochSecond()))); replacements.add(Tuple.of("time", getTimeString())); replacements.add(Tuple.of("plugin-prefix", config.get(ConfigKey.PLUGIN_PREFIX).asString())); diff --git a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/helper/Helper.java b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/helper/Helper.java index 3e8a23d..76bbaa3 100644 --- a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/helper/Helper.java +++ b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/helper/Helper.java @@ -142,4 +142,8 @@ public static String replaceKeys(String string, Tuple... entries return string; } + public static String escapeString(String string) { + return string.replaceAll("_", "\\_"); + } + } From 6e618bb4b47c12ded2fc0c39c1c2806bb9af0130 Mon Sep 17 00:00:00 2001 From: beanbeanjuice Date: Sat, 31 Aug 2024 17:42:20 -0400 Subject: [PATCH 5/5] Added Embed Toggles for Join/Leave/Switch --- README.md | 8 ++++++- .../simpleproxychat/chat/ChatHandler.java | 21 ++++++++++++++++--- .../utility/config/ConfigKey.java | 3 +++ .../main-app/src/main/resources/messages.yml | 8 ++++++- 4 files changed, 35 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 4a1870c..c322d05 100644 --- a/README.md +++ b/README.md @@ -260,14 +260,20 @@ discord: enabled: true message: "%player% has joined the network. (%server%)" use-timestamp: true + # Incompatible with use-timestamp. + use-embed: true leave: enabled: true message: "%player% has left the network. (%server%)" use-timestamp: true + # Incompatible with use-timestamp. + use-embed: true switch: enabled: true message: "%player% has switched from %from% to %to%." use-timestamp: true + # Incompatible with use-timestamp. + use-embed: true chat: enabled: true minecraft-message: "&8[&bDiscord&8] %role% &f%user% &9» &7%message%" @@ -299,7 +305,7 @@ console: update-message: "&7There is an update! You are on &c%old%. New version is &a%new%&7: &6%link%" # DO NOT TOUCH THIS -file-version: 9 +file-version: 10 ``` --- diff --git a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/chat/ChatHandler.java b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/chat/ChatHandler.java index 9e7ed13..3eaacfb 100644 --- a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/chat/ChatHandler.java +++ b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/chat/ChatHandler.java @@ -174,7 +174,12 @@ public void runProxyLeaveMessage(String playerName, UUID playerUUID, String serv if (config.get(ConfigKey.CONSOLE_LEAVE).asBoolean()) plugin.log(message); // Log to Discord - if (config.get(ConfigKey.DISCORD_LEAVE_ENABLED).asBoolean()) { + DISCORD_SENT: if (config.get(ConfigKey.DISCORD_LEAVE_ENABLED).asBoolean()) { + if (!config.get(ConfigKey.DISCORD_LEAVE_USE_EMBED).asBoolean()) { + discordBot.sendMessage(discordMessage); + break DISCORD_SENT; + } + EmbedBuilder embedBuilder = simpleAuthorEmbedBuilder(playerUUID, discordMessage).setColor(Color.RED); if (config.get(ConfigKey.DISCORD_LEAVE_USE_TIMESTAMP).asBoolean()) embedBuilder.setTimestamp(epochHelper.getEpochInstant()); discordBot.sendMessageEmbed(embedBuilder.build()); @@ -214,7 +219,12 @@ public void runProxyJoinMessage(String playerName, UUID playerUUID, String serve if (config.get(ConfigKey.CONSOLE_JOIN).asBoolean()) plugin.log(message); // Log to Discord - if (config.get(ConfigKey.DISCORD_JOIN_ENABLED).asBoolean()) { + DISCORD_SENT: if (config.get(ConfigKey.DISCORD_JOIN_ENABLED).asBoolean()) { + if (!config.get(ConfigKey.DISCORD_JOIN_USE_EMBED).asBoolean()) { + discordBot.sendMessage(discordMessage); + break DISCORD_SENT; + } + EmbedBuilder embedBuilder = simpleAuthorEmbedBuilder(playerUUID, discordMessage).setColor(Color.GREEN); if (config.get(ConfigKey.DISCORD_JOIN_USE_TIMESTAMP).asBoolean()) embedBuilder.setTimestamp(epochHelper.getEpochInstant()); discordBot.sendMessageEmbed(embedBuilder.build()); @@ -259,7 +269,12 @@ public void runProxySwitchMessage(String from, String to, String playerName, UUI if (config.get(ConfigKey.CONSOLE_SWITCH).asBoolean()) plugin.log(consoleMessage); // Log to Discord - if (config.get(ConfigKey.DISCORD_SWITCH_ENABLED).asBoolean()) { + DISCORD_SENT: if (config.get(ConfigKey.DISCORD_SWITCH_ENABLED).asBoolean()) { + if (!config.get(ConfigKey.DISCORD_SWITCH_USE_EMBED).asBoolean()) { + discordBot.sendMessage(discordMessage); + break DISCORD_SENT; + } + EmbedBuilder embedBuilder = simpleAuthorEmbedBuilder(playerUUID, discordMessage).setColor(Color.YELLOW); if (config.get(ConfigKey.DISCORD_SWITCH_USE_TIMESTAMP).asBoolean()) embedBuilder.setTimestamp(epochHelper.getEpochInstant()); discordBot.sendMessageEmbed(embedBuilder.build()); diff --git a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/config/ConfigKey.java b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/config/ConfigKey.java index c4d8842..f789b9c 100644 --- a/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/config/ConfigKey.java +++ b/projects/main-app/src/main/java/com/beanbeanjuice/simpleproxychat/utility/config/ConfigKey.java @@ -83,12 +83,15 @@ public enum ConfigKey { DISCORD_JOIN_ENABLED (ConfigFileType.MESSAGES, "discord.join.enabled", Boolean.class), DISCORD_JOIN_MESSAGE (ConfigFileType.MESSAGES, "discord.join.message", String.class), DISCORD_JOIN_USE_TIMESTAMP (ConfigFileType.MESSAGES, "discord.join.use-timestamp", Boolean.class), + DISCORD_JOIN_USE_EMBED (ConfigFileType.MESSAGES, "discord.join.use-embed", Boolean.class), DISCORD_LEAVE_ENABLED (ConfigFileType.MESSAGES, "discord.leave.enabled", Boolean.class), DISCORD_LEAVE_MESSAGE (ConfigFileType.MESSAGES, "discord.leave.message", String.class), DISCORD_LEAVE_USE_TIMESTAMP (ConfigFileType.MESSAGES, "discord.leave.use-timestamp", Boolean.class), + DISCORD_LEAVE_USE_EMBED (ConfigFileType.MESSAGES, "discord.leave.use-embed", Boolean.class), DISCORD_SWITCH_ENABLED (ConfigFileType.MESSAGES, "discord.switch.enabled", Boolean.class), DISCORD_SWITCH_MESSAGE (ConfigFileType.MESSAGES, "discord.switch.message", String.class), DISCORD_SWITCH_USE_TIMESTAMP (ConfigFileType.MESSAGES, "discord.switch.use-timestamp", Boolean.class), + DISCORD_SWITCH_USE_EMBED (ConfigFileType.MESSAGES, "discord.switch.use-embed", Boolean.class), DISCORD_CHAT_ENABLED (ConfigFileType.MESSAGES, "discord.chat.enabled", Boolean.class), DISCORD_CHAT_MINECRAFT_MESSAGE (ConfigFileType.MESSAGES, "discord.chat.minecraft-message", String.class), DISCORD_TOPIC_ONLINE (ConfigFileType.MESSAGES, "discord.topic.online", String.class), diff --git a/projects/main-app/src/main/resources/messages.yml b/projects/main-app/src/main/resources/messages.yml index 8e4b956..34bbf74 100644 --- a/projects/main-app/src/main/resources/messages.yml +++ b/projects/main-app/src/main/resources/messages.yml @@ -65,14 +65,20 @@ discord: enabled: true message: "%player% has joined the network. (%server%)" use-timestamp: true + # Incompatible with use-timestamp. + use-embed: true leave: enabled: true message: "%player% has left the network. (%server%)" use-timestamp: true + # Incompatible with use-timestamp. + use-embed: true switch: enabled: true message: "%player% has switched from %from% to %to%." use-timestamp: true + # Incompatible with use-timestamp. + use-embed: true chat: enabled: true minecraft-message: "&8[&bDiscord&8] %role% &f%user% &9» &7%message%" @@ -104,4 +110,4 @@ console: update-message: "&7There is an update! You are on &c%old%. New version is &a%new%&7: &6%link%" # DO NOT TOUCH THIS -file-version: 9 +file-version: 10