diff --git a/EssentialsDiscord/src/main/java/net/essentialsx/discord/DiscordSettings.java b/EssentialsDiscord/src/main/java/net/essentialsx/discord/DiscordSettings.java index aa69bec9370..3aed831ad40 100644 --- a/EssentialsDiscord/src/main/java/net/essentialsx/discord/DiscordSettings.java +++ b/EssentialsDiscord/src/main/java/net/essentialsx/discord/DiscordSettings.java @@ -62,6 +62,11 @@ public String getBotToken() { return config.getString("token", ""); } + // #easteregg + public String getHttpProxyServer() { + return config.getString("http-proxy-server", ""); + } + public long getGuildId() { return config.getLong("guild", 0); } diff --git a/EssentialsDiscord/src/main/java/net/essentialsx/discord/JDADiscordService.java b/EssentialsDiscord/src/main/java/net/essentialsx/discord/JDADiscordService.java index 210a81b21f1..0ab9068bb27 100644 --- a/EssentialsDiscord/src/main/java/net/essentialsx/discord/JDADiscordService.java +++ b/EssentialsDiscord/src/main/java/net/essentialsx/discord/JDADiscordService.java @@ -8,6 +8,8 @@ import com.earth2me.essentials.utils.FormatUtil; import com.earth2me.essentials.utils.NumberUtil; import com.earth2me.essentials.utils.VersionUtil; +import com.neovisionaries.ws.client.ProxySettings; +import com.neovisionaries.ws.client.WebSocketFactory; import net.dv8tion.jda.api.JDA; import net.dv8tion.jda.api.JDABuilder; import net.dv8tion.jda.api.entities.Guild; @@ -168,7 +170,14 @@ public void startup() throws LoginException, InterruptedException { throw new IllegalArgumentException(tlLiteral("discordErrorNoToken")); } + final WebSocketFactory wsFactory = new WebSocketFactory(); + if (!plugin.getSettings().getHttpProxyServer().trim().isEmpty()) { + final ProxySettings proxySettings = wsFactory.getProxySettings(); + proxySettings.setServer(plugin.getSettings().getHttpProxyServer()); + } + jda = JDABuilder.createDefault(plugin.getSettings().getBotToken()) + .setWebsocketFactory(wsFactory) .addEventListeners(new DiscordListener(this)) .enableIntents(GatewayIntent.MESSAGE_CONTENT) .enableCache(CacheFlag.EMOJI)