From 1a956d22cd2cb3ae9cf64b00a4853d3329aea9b5 Mon Sep 17 00:00:00 2001 From: Owen2k6 Date: Thu, 15 Dec 2022 19:15:24 +0000 Subject: [PATCH 1/2] Fix Getconfig --- .../discordchatbridge/DCBDiscordListener.java | 26 +++++++++---------- .../discordchatbridge/DCBGameListener.java | 16 ++++++------ .../discordchatbridge/DiscordChatBridge.java | 14 +++++----- 3 files changed, 28 insertions(+), 28 deletions(-) diff --git a/src/com/johnymuffin/beta/discordchatbridge/DCBDiscordListener.java b/src/com/johnymuffin/beta/discordchatbridge/DCBDiscordListener.java index 6a5be9b..66b78f1 100644 --- a/src/com/johnymuffin/beta/discordchatbridge/DCBDiscordListener.java +++ b/src/com/johnymuffin/beta/discordchatbridge/DCBDiscordListener.java @@ -31,24 +31,24 @@ public void onMessageReceived(MessageReceivedEvent event) { return; } - String gameBridgeChannelID = plugin.getaConfig().getConfigString("channel-id"); + String gameBridgeChannelID = plugin.getConfig().getConfigString("channel-id"); String[] messageCMD = event.getMessage().getContentRaw().split(" "); //sorry for the mess of copy pasting the code into each if statement -Owen2k6 //Online Command - if (messageCMD[0].equalsIgnoreCase("!online") && plugin.getaConfig().getConfigBoolean("online-command-enabled")) { + if (messageCMD[0].equalsIgnoreCase("!online") && plugin.getConfig().getConfigBoolean("online-command-enabled")) { //Check for if its enabled. - if (plugin.getaConfig().getConfigBoolean("bot-command-channel-enabled")) { + if (plugin.getConfig().getConfigBoolean("bot-command-channel-enabled")) { //Does it match? - if (Objects.equals(plugin.getaConfig().getConfigString("bot-command-channel-id"), event.getChannel().getId())) { + if (Objects.equals(plugin.getConfig().getConfigString("bot-command-channel-id"), event.getChannel().getId())) { //begin Online Command Response String onlineMessage = "**The online players are:** "; for (Player p : Bukkit.getServer().getOnlinePlayers()) { onlineMessage += p.getName() + ", "; } EmbedBuilder eb = new EmbedBuilder(); - eb.setTitle(plugin.getaConfig().getConfigString("server-name") + " Online Players", null); + eb.setTitle(plugin.getConfig().getConfigString("server-name") + " Online Players", null); if (Bukkit.getServer().getOnlinePlayers().length > 0) { int rnd = new Random().nextInt(Bukkit.getServer().getOnlinePlayers().length); Player player = Bukkit.getServer().getOnlinePlayers()[rnd]; @@ -63,7 +63,7 @@ public void onMessageReceived(MessageReceivedEvent event) { event.getChannel().sendMessage(eb.build()).queue(); return; } - if (plugin.getaConfig().getConfigString("bot-command-channel-id").isEmpty() || Objects.equals(plugin.getaConfig().getConfigString("bot-command-channel-id"), "id")) { + if (plugin.getConfig().getConfigString("bot-command-channel-id").isEmpty() || Objects.equals(plugin.getConfig().getConfigString("bot-command-channel-id"), "id")) { Bukkit.getLogger().warning("You appear to have forgotten to add a channel ID. go to the config and add an ID or disable the bot command channel limiter"); Bukkit.getLogger().info("Will proceed like the feature is disabled."); //begin Online Command Response @@ -72,7 +72,7 @@ public void onMessageReceived(MessageReceivedEvent event) { onlineMessage += p.getName() + ", "; } EmbedBuilder eb = new EmbedBuilder(); - eb.setTitle(plugin.getaConfig().getConfigString("server-name") + " Online Players", null); + eb.setTitle(plugin.getConfig().getConfigString("server-name") + " Online Players", null); if (Bukkit.getServer().getOnlinePlayers().length > 0) { int rnd = new Random().nextInt(Bukkit.getServer().getOnlinePlayers().length); Player player = Bukkit.getServer().getOnlinePlayers()[rnd]; @@ -90,14 +90,14 @@ public void onMessageReceived(MessageReceivedEvent event) { } //Check for if it's not enabled - if (!plugin.getaConfig().getConfigBoolean("bot-command-channel-enabled")) { + if (!plugin.getConfig().getConfigBoolean("bot-command-channel-enabled")) { //begin Online Command Response String onlineMessage = "**The online players are:** "; for (Player p : Bukkit.getServer().getOnlinePlayers()) { onlineMessage += p.getName() + ", "; } EmbedBuilder eb = new EmbedBuilder(); - eb.setTitle(plugin.getaConfig().getConfigString("server-name") + " Online Players", null); + eb.setTitle(plugin.getConfig().getConfigString("server-name") + " Online Players", null); if (Bukkit.getServer().getOnlinePlayers().length > 0) { int rnd = new Random().nextInt(Bukkit.getServer().getOnlinePlayers().length); Player player = Bukkit.getServer().getOnlinePlayers()[rnd]; @@ -118,15 +118,15 @@ public void onMessageReceived(MessageReceivedEvent event) { if (event.getChannel().getId().equalsIgnoreCase(gameBridgeChannelID)) { String displayName = null; - if (plugin.getaConfig().getConfigBoolean("authentication.enabled")) { + if (plugin.getConfig().getConfigBoolean("authentication.enabled")) { DiscordAuthentication authPlugin = (DiscordAuthentication) Bukkit.getServer().getPluginManager().getPlugin("DiscordAuthentication"); - if (plugin.getaConfig().getConfigBoolean("authentication.discord.only-allow-linked-users")) { + if (plugin.getConfig().getConfigBoolean("authentication.discord.only-allow-linked-users")) { if (!authPlugin.getData().isDiscordIDAlreadyLinked(event.getAuthor().getId())) { event.getChannel().sendMessage(plugin.getConfig().getString("message.require-link")).queue(); return; } } - if (plugin.getaConfig().getConfigBoolean("authentication.discord.use-in-game-names-if-available")) { + if (plugin.getConfig().getConfigBoolean("authentication.discord.use-in-game-names-if-available")) { displayName = authPlugin.getData().getLastUsernameFromDiscordID(event.getAuthor().getId()); } @@ -139,7 +139,7 @@ public void onMessageReceived(MessageReceivedEvent event) { displayName = event.getAuthor().getName(); } } - String chatMessage = plugin.getaConfig().getConfigString("message.discord-chat-message"); + String chatMessage = plugin.getConfig().getConfigString("message.discord-chat-message"); chatMessage = chatMessage.replace("%messageAuthor%", displayName); chatMessage = chatMessage.replace("%message%", dmsg); chatMessage = chatMessage.replaceAll("(&([a-f0-9]))", "\u00A7$2"); diff --git a/src/com/johnymuffin/beta/discordchatbridge/DCBGameListener.java b/src/com/johnymuffin/beta/discordchatbridge/DCBGameListener.java index f350dc7..5895431 100644 --- a/src/com/johnymuffin/beta/discordchatbridge/DCBGameListener.java +++ b/src/com/johnymuffin/beta/discordchatbridge/DCBGameListener.java @@ -19,20 +19,20 @@ public DCBGameListener(DiscordChatBridge plugin) { @Override public void onPlayerJoin(PlayerJoinEvent event) { - String chatMessage = plugin.getaConfig().getConfigString("message.join-message"); + String chatMessage = plugin.getConfig().getConfigString("message.join-message"); chatMessage = chatMessage.replace("%username%", event.getPlayer().getName()); chatMessage = chatMessage.replace("%onlineCount%", String.valueOf(Bukkit.getServer().getOnlinePlayers().length)); chatMessage = chatMessage.replace("%maxCount%", String.valueOf(Bukkit.getServer().getMaxPlayers())); - plugin.getDiscordCore().getDiscordBot().discordSendToChannel(plugin.getaConfig().getConfigString("channel-id"), chatMessage); + plugin.getDiscordCore().getDiscordBot().discordSendToChannel(plugin.getConfig().getConfigString("channel-id"), chatMessage); } @Override public void onPlayerQuit(PlayerQuitEvent event) { - String chatMessage = plugin.getaConfig().getConfigString("message.quit-message"); + String chatMessage = plugin.getConfig().getConfigString("message.quit-message"); chatMessage = chatMessage.replace("%username%", event.getPlayer().getName()); chatMessage = chatMessage.replace("%onlineCount%", String.valueOf(Bukkit.getServer().getOnlinePlayers().length - 1)); chatMessage = chatMessage.replace("%maxCount%", String.valueOf(Bukkit.getServer().getMaxPlayers())); - plugin.getDiscordCore().getDiscordBot().discordSendToChannel(plugin.getaConfig().getConfigString("channel-id"), chatMessage); + plugin.getDiscordCore().getDiscordBot().discordSendToChannel(plugin.getConfig().getConfigString("channel-id"), chatMessage); } @Override @@ -41,8 +41,8 @@ public void onPlayerChat(PlayerChatEvent event) { return; } - if (plugin.getaConfig().getConfigBoolean("webhook.use-webhook")) { - final DiscordWebhook webhookMessage = new DiscordWebhook(plugin.getaConfig().getConfigString("webhook.url")); + if (plugin.getConfig().getConfigBoolean("webhook.use-webhook")) { + final DiscordWebhook webhookMessage = new DiscordWebhook(plugin.getConfig().getConfigString("webhook.url")); webhookMessage.setUsername(event.getPlayer().getName()); webhookMessage.setContent(sanitizeMessage(event.getMessage())); webhookMessage.setAvatarUrl("http://minotar.net/helm/" + event.getPlayer().getName() + "/100.png"); @@ -56,11 +56,11 @@ public void onPlayerChat(PlayerChatEvent event) { }, 0L); } else { - String chatMessage = plugin.getaConfig().getConfigString("message.game-chat-message"); + String chatMessage = plugin.getConfig().getConfigString("message.game-chat-message"); chatMessage = chatMessage.replace("%messageAuthor%", event.getPlayer().getName()); chatMessage = chatMessage.replace("%message%", event.getMessage()); chatMessage = sanitizeMessage(chatMessage); - plugin.getDiscordCore().getDiscordBot().discordSendToChannel(plugin.getaConfig().getConfigString("channel-id"), chatMessage); + plugin.getDiscordCore().getDiscordBot().discordSendToChannel(plugin.getConfig().getConfigString("channel-id"), chatMessage); } } diff --git a/src/com/johnymuffin/beta/discordchatbridge/DiscordChatBridge.java b/src/com/johnymuffin/beta/discordchatbridge/DiscordChatBridge.java index f8ce425..b41f49d 100644 --- a/src/com/johnymuffin/beta/discordchatbridge/DiscordChatBridge.java +++ b/src/com/johnymuffin/beta/discordchatbridge/DiscordChatBridge.java @@ -90,7 +90,7 @@ public void onEnable() { if (dcbConfig.getConfigBoolean("system.starting-message.enable")) { Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(plugin, () -> { String message = dcbConfig.getConfigString("system.starting-message.message"); - message = message.replace("{servername}", getaConfig().getConfigString("server-name")); + message = message.replace("{servername}", getConfig().getConfigString("server-name")); getDiscordCore().getDiscordBot().discordSendToChannel(dcbConfig.getConfigString("channel-id"), message); }, 0L); } @@ -98,7 +98,7 @@ public void onEnable() { if (dcbConfig.getConfigBoolean("presence-player-count")) { taskID = this.getServer().getScheduler().scheduleSyncRepeatingTask(this, () -> { if (getDiscordCore().getDiscordBot().jda.getStatus() == JDA.Status.CONNECTED) { - getDiscordCore().getDiscordBot().jda.getPresence().setActivity(Activity.playing(plugin.getaConfig().getConfigString("server-name") + " With " + Bukkit.getServer().getOnlinePlayers().length + " Players")); + getDiscordCore().getDiscordBot().jda.getPresence().setActivity(Activity.playing(plugin.getConfig().getConfigString("server-name") + " With " + Bukkit.getServer().getOnlinePlayers().length + " Players")); } @@ -128,7 +128,7 @@ public void logger(Level level, String message) { } - public DCBConfig getaConfig() { + public DCBConfig getConfig() { return dcbConfig; } @@ -139,10 +139,10 @@ public DiscordCore getDiscordCore() { protected void handleDiscordCoreShutdown() { //Discord Shutdown Message shutdown = true; - if (getaConfig().getConfigBoolean("system.shutdown-message.enable")) { - String message = getaConfig().getConfigString("system.shutdown-message.message"); - message = message.replace("{servername}", getaConfig().getConfigString("server-name")); - TextChannel textChannel = this.discordCore.getDiscordBot().jda.getTextChannelById(plugin.getaConfig().getConfigString("channel-id")); + if (getConfig().getConfigBoolean("system.shutdown-message.enable")) { + String message = getConfig().getConfigString("system.shutdown-message.message"); + message = message.replace("{servername}", getConfig().getConfigString("server-name")); + TextChannel textChannel = this.discordCore.getDiscordBot().jda.getTextChannelById(plugin.getConfig().getConfigString("channel-id")); textChannel.sendMessage(message).complete(); } } From c4b3af12dee06105c1eda28b72cc78c1adfa62b9 Mon Sep 17 00:00:00 2001 From: Owen2k6 Date: Sun, 18 Dec 2022 00:24:59 +0000 Subject: [PATCH 2/2] Slash Command Implimentation --- .../discordchatbridge/DCBDiscordListener.java | 117 +++++++----------- .../discordchatbridge/DiscordChatBridge.java | 10 ++ 2 files changed, 53 insertions(+), 74 deletions(-) diff --git a/src/com/johnymuffin/beta/discordchatbridge/DCBDiscordListener.java b/src/com/johnymuffin/beta/discordchatbridge/DCBDiscordListener.java index 66b78f1..bf47723 100644 --- a/src/com/johnymuffin/beta/discordchatbridge/DCBDiscordListener.java +++ b/src/com/johnymuffin/beta/discordchatbridge/DCBDiscordListener.java @@ -2,8 +2,13 @@ import com.johnymuffin.beta.discordauth.DiscordAuthentication; import net.dv8tion.jda.api.EmbedBuilder; +import net.dv8tion.jda.api.JDA; +import net.dv8tion.jda.api.MessageBuilder; +import net.dv8tion.jda.api.entities.Message; +import net.dv8tion.jda.api.events.interaction.SlashCommandEvent; import net.dv8tion.jda.api.events.message.MessageReceivedEvent; import net.dv8tion.jda.api.hooks.ListenerAdapter; +import net.dv8tion.jda.api.requests.restaction.CommandListUpdateAction; import org.bukkit.Bukkit; import org.bukkit.entity.Player; import org.bukkit.ChatColor; @@ -21,102 +26,66 @@ public DCBDiscordListener(DiscordChatBridge plugin) { @Override - public void onMessageReceived(MessageReceivedEvent event) { - //Don't respond to bots - if (event.getAuthor().isBot() || event.isWebhookMessage()) { - return; - } - //Don't respond to funky messages - if (event.getMessage().getContentRaw().isEmpty()) { - return; - } + public void onSlashCommand(SlashCommandEvent event) { + if (event.getName().equals("online")) { + MessageBuilder messageBuilder = new MessageBuilder(); - String gameBridgeChannelID = plugin.getConfig().getConfigString("channel-id"); - String[] messageCMD = event.getMessage().getContentRaw().split(" "); - //sorry for the mess of copy pasting the code into each if statement -Owen2k6 - //Online Command - if (messageCMD[0].equalsIgnoreCase("!online") && plugin.getConfig().getConfigBoolean("online-command-enabled")) { - - //Check for if its enabled. - if (plugin.getConfig().getConfigBoolean("bot-command-channel-enabled")) { - //Does it match? - if (Objects.equals(plugin.getConfig().getConfigString("bot-command-channel-id"), event.getChannel().getId())) { - //begin Online Command Response - String onlineMessage = "**The online players are:** "; - for (Player p : Bukkit.getServer().getOnlinePlayers()) { - onlineMessage += p.getName() + ", "; - } - EmbedBuilder eb = new EmbedBuilder(); - eb.setTitle(plugin.getConfig().getConfigString("server-name") + " Online Players", null); - if (Bukkit.getServer().getOnlinePlayers().length > 0) { - int rnd = new Random().nextInt(Bukkit.getServer().getOnlinePlayers().length); - Player player = Bukkit.getServer().getOnlinePlayers()[rnd]; - eb.setThumbnail("http://minotar.net/helm/" + player.getName() + "/100.png"); - } - eb.setColor(Color.red); - eb.setDescription("There are currently **" + Bukkit.getServer().getOnlinePlayers().length - + "** players online\n" + onlineMessage); - eb.setFooter("https://github.com/RhysB/Discord-Bot-Chatbridge", - "https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png"); - - event.getChannel().sendMessage(eb.build()).queue(); - return; - } - if (plugin.getConfig().getConfigString("bot-command-channel-id").isEmpty() || Objects.equals(plugin.getConfig().getConfigString("bot-command-channel-id"), "id")) { - Bukkit.getLogger().warning("You appear to have forgotten to add a channel ID. go to the config and add an ID or disable the bot command channel limiter"); - Bukkit.getLogger().info("Will proceed like the feature is disabled."); - //begin Online Command Response - String onlineMessage = "**The online players are:** "; - for (Player p : Bukkit.getServer().getOnlinePlayers()) { - onlineMessage += p.getName() + ", "; - } - EmbedBuilder eb = new EmbedBuilder(); - eb.setTitle(plugin.getConfig().getConfigString("server-name") + " Online Players", null); - if (Bukkit.getServer().getOnlinePlayers().length > 0) { - int rnd = new Random().nextInt(Bukkit.getServer().getOnlinePlayers().length); - Player player = Bukkit.getServer().getOnlinePlayers()[rnd]; - eb.setThumbnail("http://minotar.net/helm/" + player.getName() + "/100.png"); - } - eb.setColor(Color.red); - eb.setDescription("There are currently **" + Bukkit.getServer().getOnlinePlayers().length - + "** players online\n" + onlineMessage); - eb.setFooter("https://github.com/RhysB/Discord-Bot-Chatbridge", - "https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png"); - - event.getChannel().sendMessage(eb.build()).queue(); - return; + String onlineMessage = "**The online players are:** "; + if (Bukkit.getServer().getOnlinePlayers().length == 1) { + for (Player p : Bukkit.getServer().getOnlinePlayers()) { + onlineMessage += p.getName(); } - - } - //Check for if it's not enabled - if (!plugin.getConfig().getConfigBoolean("bot-command-channel-enabled")) { - //begin Online Command Response - String onlineMessage = "**The online players are:** "; + } else { for (Player p : Bukkit.getServer().getOnlinePlayers()) { onlineMessage += p.getName() + ", "; } - EmbedBuilder eb = new EmbedBuilder(); + } + EmbedBuilder eb = new EmbedBuilder(); + if(Bukkit.getServer().getOnlinePlayers().length == 0) + { + eb.setTitle(plugin.getConfig().getConfigString("server-name"), null); + eb.setColor(Color.red); + eb.setDescription("There are currently no players online."); + eb.setFooter("https://github.com/RhysB/Discord-Bot-Chatbridge", + "https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png"); + } + else { eb.setTitle(plugin.getConfig().getConfigString("server-name") + " Online Players", null); if (Bukkit.getServer().getOnlinePlayers().length > 0) { int rnd = new Random().nextInt(Bukkit.getServer().getOnlinePlayers().length); Player player = Bukkit.getServer().getOnlinePlayers()[rnd]; eb.setThumbnail("http://minotar.net/helm/" + player.getName() + "/100.png"); } - eb.setColor(Color.red); + eb.setColor(Color.green); eb.setDescription("There are currently **" + Bukkit.getServer().getOnlinePlayers().length + "** players online\n" + onlineMessage); eb.setFooter("https://github.com/RhysB/Discord-Bot-Chatbridge", "https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png"); - - event.getChannel().sendMessage(eb.build()).queue(); - return; } + + messageBuilder.setEmbeds(eb.build()); + event.reply(messageBuilder.build()).setEphemeral(true).queue(); + } + } + + @Override + public void onMessageReceived(MessageReceivedEvent event) { + //Don't respond to bots + if (event.getAuthor().isBot() || event.isWebhookMessage()) { + return; + } + //Don't respond to funky messages + if (event.getMessage().getContentRaw().isEmpty()) { + return; } + String gameBridgeChannelID = plugin.getConfig().getConfigString("channel-id"); + String[] messageCMD = event.getMessage().getContentRaw().split(" "); //Is the message in the game bridge channel if (event.getChannel().getId().equalsIgnoreCase(gameBridgeChannelID)) { String displayName = null; + String dmsg = event.getMessage().getContentRaw(); if (plugin.getConfig().getConfigBoolean("authentication.enabled")) { DiscordAuthentication authPlugin = (DiscordAuthentication) Bukkit.getServer().getPluginManager().getPlugin("DiscordAuthentication"); diff --git a/src/com/johnymuffin/beta/discordchatbridge/DiscordChatBridge.java b/src/com/johnymuffin/beta/discordchatbridge/DiscordChatBridge.java index b41f49d..3136640 100644 --- a/src/com/johnymuffin/beta/discordchatbridge/DiscordChatBridge.java +++ b/src/com/johnymuffin/beta/discordchatbridge/DiscordChatBridge.java @@ -5,6 +5,8 @@ import net.dv8tion.jda.api.JDA; import net.dv8tion.jda.api.entities.Activity; import net.dv8tion.jda.api.entities.TextChannel; +import net.dv8tion.jda.api.interactions.commands.build.CommandData; +import net.dv8tion.jda.api.requests.restaction.CommandListUpdateAction; import org.bukkit.Bukkit; import org.bukkit.event.CustomEventListener; import org.bukkit.event.Event; @@ -105,6 +107,14 @@ public void onEnable() { }, 0L, 20 * 60); } + CommandListUpdateAction commands = getDiscordCore().getDiscordBot().jda.updateCommands(); + + commands.addCommands( + new CommandData("online", "List all online players.") + ); + + commands.queue(); + } @Override