Compare commits

...

2 Commits

Author SHA1 Message Date
Joe d88513ee49 Fixed errors caused by dep updates, mainly JDA 2024-01-18 16:02:46 +00:00
Joe fbddc45353 dep update 2024-01-17 11:25:26 +00:00
14 changed files with 173 additions and 121 deletions

88
pom.xml
View File

@ -6,7 +6,7 @@
<groupId>uk.co.angrybee.joe</groupId> <groupId>uk.co.angrybee.joe</groupId>
<artifactId>discord-whitelister</artifactId> <artifactId>discord-whitelister</artifactId>
<version>1.5.0</version> <version>1.5.1</version>
<name>discord-whitelister</name> <name>discord-whitelister</name>
<url>https://github.com/JoeShimell/DiscordWhitelisterSpigot</url> <url>https://github.com/JoeShimell/DiscordWhitelisterSpigot</url>
@ -45,14 +45,14 @@
<dependency> <dependency>
<groupId>org.spigotmc</groupId> <groupId>org.spigotmc</groupId>
<artifactId>spigot-api</artifactId> <artifactId>spigot-api</artifactId>
<version>1.17.1-R0.1-SNAPSHOT</version> <version>1.20.4-R0.1-SNAPSHOT</version>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>net.dv8tion</groupId> <groupId>net.dv8tion</groupId>
<artifactId>JDA</artifactId> <artifactId>JDA</artifactId>
<version>4.3.0_346</version> <version>5.0.0-beta.19</version>
<exclusions> <exclusions>
<exclusion> <exclusion>
<groupId>club.minnced</groupId> <groupId>club.minnced</groupId>
@ -61,28 +61,40 @@
</exclusions> </exclusions>
</dependency> </dependency>
<dependency> <!-- <dependency>-->
<groupId>com.googlecode.json-simple</groupId> <!-- <groupId>com.googlecode.json-simple</groupId>-->
<artifactId>json-simple</artifactId> <!-- <artifactId>json-simple</artifactId>-->
<version>1.1.1</version> <!-- <version>1.1.1</version>-->
</dependency> <!-- </dependency>-->
<dependency> <dependency>
<groupId>ch.qos.logback</groupId> <groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId> <artifactId>logback-classic</artifactId>
<version>1.2.3</version> <version>1.4.14</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.4.14</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>2.0.10</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.yaml</groupId> <groupId>org.yaml</groupId>
<artifactId>snakeyaml</artifactId> <artifactId>snakeyaml</artifactId>
<version>1.26</version> <version>2.2</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId> <artifactId>maven-shade-plugin</artifactId>
<version>3.2.4</version> <version>3.5.1</version>
<type>maven-plugin</type> <type>maven-plugin</type>
</dependency> </dependency>
@ -91,8 +103,7 @@
<groupId>com.github.LeonMangler</groupId> <groupId>com.github.LeonMangler</groupId>
<artifactId>SuperVanish</artifactId> <artifactId>SuperVanish</artifactId>
<!-- POM is invalid with java compiler ver > 8 (maven-compiler-plugin source & target version is set to 8) --> <!-- POM is invalid with java compiler ver > 8 (maven-compiler-plugin source & target version is set to 8) -->
<!-- TODO: get updated version if/when available for better support with compiler versions > 8 --> <version>fbc303bbee6e129e56b3e89c5e83e98ee2127ff2</version>
<version>6.2.6-2</version>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
@ -100,7 +111,7 @@
<dependency> <dependency>
<groupId>net.essentialsx</groupId> <groupId>net.essentialsx</groupId>
<artifactId>EssentialsX</artifactId> <artifactId>EssentialsX</artifactId>
<version>2.19.0</version> <version>2.20.1</version>
<scope>provided</scope> <scope>provided</scope>
<exclusions> <exclusions>
<exclusion> <exclusion>
@ -114,10 +125,16 @@
<dependency> <dependency>
<groupId>com.github.mbax</groupId> <groupId>com.github.mbax</groupId>
<artifactId>VanishNoPacket</artifactId> <artifactId>VanishNoPacket</artifactId>
<version>0cb428ff27ced0b97b9601a3088e9b93616c907c</version> <version>341a9a9710848d85813f7dfdab0b606d46ab264a</version>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.10.1</version>
</dependency>
</dependencies> </dependencies>
<build> <build>
@ -125,54 +142,54 @@
<plugins> <plugins>
<plugin> <plugin>
<artifactId>maven-clean-plugin</artifactId> <artifactId>maven-clean-plugin</artifactId>
<version>3.1.0</version> <version>3.3.2</version>
</plugin> </plugin>
<plugin> <plugin>
<artifactId>maven-resources-plugin</artifactId> <artifactId>maven-resources-plugin</artifactId>
<version>3.0.2</version> <version>3.3.1</version>
</plugin> </plugin>
<plugin> <plugin>
<artifactId>maven-compiler-plugin</artifactId> <artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version> <version>3.12.1</version>
</plugin> </plugin>
<plugin> <plugin>
<artifactId>maven-surefire-plugin</artifactId> <artifactId>maven-surefire-plugin</artifactId>
<version>2.22.1</version> <version>3.2.5</version>
</plugin> </plugin>
<plugin> <plugin>
<artifactId>maven-jar-plugin</artifactId> <artifactId>maven-jar-plugin</artifactId>
<version>3.0.2</version> <version>3.3.0</version>
</plugin> </plugin>
<plugin> <plugin>
<artifactId>maven-install-plugin</artifactId> <artifactId>maven-install-plugin</artifactId>
<version>2.5.2</version> <version>3.1.1</version>
</plugin> </plugin>
<plugin> <plugin>
<artifactId>maven-deploy-plugin</artifactId> <artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version> <version>3.1.1</version>
</plugin> </plugin>
<plugin> <plugin>
<artifactId>maven-site-plugin</artifactId> <artifactId>maven-site-plugin</artifactId>
<version>3.7.1</version> <version>4.0.0-M13</version>
</plugin> </plugin>
<plugin> <plugin>
<artifactId>maven-project-info-reports-plugin</artifactId> <artifactId>maven-project-info-reports-plugin</artifactId>
<version>3.0.0</version> <version>3.5.0</version>
</plugin> </plugin>
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId> <artifactId>maven-shade-plugin</artifactId>
<version>3.2.4</version> <version>3.5.1</version>
<executions> <executions>
<execution> <execution>
<phase>package</phase> <phase>package</phase>
@ -215,10 +232,10 @@
<shadedPattern>uk.co.angrybee.joe.shaded.org.yaml.snakeyaml</shadedPattern> <shadedPattern>uk.co.angrybee.joe.shaded.org.yaml.snakeyaml</shadedPattern>
</relocation> </relocation>
<relocation> <!-- <relocation>-->
<pattern>org.json.simple</pattern> <!-- <pattern>org.json.simple</pattern>-->
<shadedPattern>uk.co.angrybee.joe.shaded.org.json.simple</shadedPattern> <!-- <shadedPattern>uk.co.angrybee.joe.shaded.org.json.simple</shadedPattern>-->
</relocation> <!-- </relocation>-->
<relocation> <relocation>
<pattern>org.jetbrains.annotations</pattern> <pattern>org.jetbrains.annotations</pattern>
@ -279,6 +296,11 @@
<pattern>ch.qos.logback</pattern> <pattern>ch.qos.logback</pattern>
<shadedPattern>uk.co.angrybee.joe.shaded.ch.qos.logback</shadedPattern> <shadedPattern>uk.co.angrybee.joe.shaded.ch.qos.logback</shadedPattern>
</relocation> </relocation>
<relocation>
<pattern>com.google.code.gson</pattern>
<shadedPattern>uk.co.angrybee.joe.shaded.com.google.code.gson</shadedPattern>
</relocation>
</relocations> </relocations>
</configuration> </configuration>
</plugin> </plugin>
@ -286,7 +308,7 @@
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId> <artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version> <version>3.1.0</version>
<executions> <executions>
<execution> <execution>
<phase>test</phase> <phase>test</phase>
@ -309,15 +331,15 @@
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId> <artifactId>maven-compiler-plugin</artifactId>
<configuration> <configuration>
<source>8</source> <source>19</source>
<target>8</target> <target>19</target>
</configuration> </configuration>
</plugin> </plugin>
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId> <artifactId>maven-shade-plugin</artifactId>
<version>3.2.4</version> <version>3.5.1</version>
</plugin> </plugin>
</plugins> </plugins>

View File

@ -1,7 +1,9 @@
package uk.co.angrybee.joe; package uk.co.angrybee.joe;
import net.dv8tion.jda.api.entities.Role; import net.dv8tion.jda.api.entities.Role;
import net.dv8tion.jda.api.events.interaction.SlashCommandEvent; //import net.dv8tion.jda.api.events.interaction.SlashCommandEvent;
import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent;
import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent;
import net.dv8tion.jda.api.events.message.MessageReceivedEvent; import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
import java.util.Arrays; import java.util.Arrays;
@ -14,7 +16,7 @@ public class AuthorPermissions
private boolean userIsBanned = false; private boolean userIsBanned = false;
private boolean userCanUseClear = false; private boolean userCanUseClear = false;
public AuthorPermissions(SlashCommandEvent event) { public AuthorPermissions(SlashCommandInteractionEvent event) {
for (Role role : event.getMember().getRoles()) for (Role role : event.getMember().getRoles())
{ {
if(!DiscordWhitelister.useIdForRoles) if(!DiscordWhitelister.useIdForRoles)

View File

@ -1,16 +1,23 @@
package uk.co.angrybee.joe; package uk.co.angrybee.joe;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.EmbedBuilder;
import net.dv8tion.jda.api.JDA; import net.dv8tion.jda.api.JDA;
import net.dv8tion.jda.api.JDABuilder; import net.dv8tion.jda.api.JDABuilder;
import net.dv8tion.jda.api.entities.*; import net.dv8tion.jda.api.entities.*;
import net.dv8tion.jda.api.entities.channel.ChannelType;
import net.dv8tion.jda.api.entities.channel.concrete.TextChannel;
import net.dv8tion.jda.api.events.guild.member.GuildMemberRemoveEvent; import net.dv8tion.jda.api.events.guild.member.GuildMemberRemoveEvent;
import net.dv8tion.jda.api.events.guild.member.GuildMemberRoleRemoveEvent; import net.dv8tion.jda.api.events.guild.member.GuildMemberRoleRemoveEvent;
import net.dv8tion.jda.api.events.interaction.SlashCommandEvent; //import net.dv8tion.jda.api.events.interaction.SlashCommandEvent;
import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent;
import net.dv8tion.jda.api.events.message.MessageReceivedEvent; import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
import net.dv8tion.jda.api.hooks.ListenerAdapter; import net.dv8tion.jda.api.hooks.ListenerAdapter;
import net.dv8tion.jda.api.interactions.commands.OptionMapping; import net.dv8tion.jda.api.interactions.commands.OptionMapping;
import net.dv8tion.jda.api.interactions.commands.build.CommandData; import net.dv8tion.jda.api.interactions.commands.build.CommandData;
import net.dv8tion.jda.api.interactions.commands.build.Commands;
import net.dv8tion.jda.api.interactions.commands.build.OptionData; import net.dv8tion.jda.api.interactions.commands.build.OptionData;
import net.dv8tion.jda.api.interactions.commands.build.SubcommandData; import net.dv8tion.jda.api.interactions.commands.build.SubcommandData;
import net.dv8tion.jda.api.requests.GatewayIntent; import net.dv8tion.jda.api.requests.GatewayIntent;
@ -19,9 +26,6 @@ import net.dv8tion.jda.api.utils.ChunkingFilter;
import net.dv8tion.jda.api.utils.MemberCachePolicy; import net.dv8tion.jda.api.utils.MemberCachePolicy;
import net.dv8tion.jda.api.utils.cache.CacheFlag; import net.dv8tion.jda.api.utils.cache.CacheFlag;
import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.FileConfiguration;
import org.json.simple.JSONObject;
import org.json.simple.JSONValue;
import org.json.simple.parser.ParseException;
import uk.co.angrybee.joe.commands.discord.*; import uk.co.angrybee.joe.commands.discord.*;
import uk.co.angrybee.joe.events.ShutdownEvents; import uk.co.angrybee.joe.events.ShutdownEvents;
import uk.co.angrybee.joe.stores.UserList; import uk.co.angrybee.joe.stores.UserList;
@ -31,8 +35,11 @@ import javax.annotation.Nonnull;
import javax.security.auth.login.LoginException; import javax.security.auth.login.LoginException;
import java.awt.Color; import java.awt.Color;
import java.io.*; import java.io.*;
import java.net.MalformedURLException;
import java.net.URL; import java.net.URL;
import java.net.URLConnection;
import java.util.*; import java.util.*;
import java.util.concurrent.RecursiveTask;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import static net.dv8tion.jda.api.interactions.commands.OptionType.*; import static net.dv8tion.jda.api.interactions.commands.OptionType.*;
@ -94,9 +101,9 @@ public class DiscordClient extends ListenerAdapter {
javaDiscordAPI = JDABuilder.createDefault(clientToken) javaDiscordAPI = JDABuilder.createDefault(clientToken)
.setMemberCachePolicy(MemberCachePolicy.ALL) .setMemberCachePolicy(MemberCachePolicy.ALL)
.setBulkDeleteSplittingEnabled(false) .setBulkDeleteSplittingEnabled(false)
.disableCache(CacheFlag.VOICE_STATE, CacheFlag.EMOTE) .disableCache(CacheFlag.VOICE_STATE)
.setContextEnabled(true) .setContextEnabled(true)
.enableIntents(GatewayIntent.GUILD_MEMBERS) .enableIntents(GatewayIntent.GUILD_MEMBERS, GatewayIntent.MESSAGE_CONTENT)
.setChunkingFilter(ChunkingFilter.ALL) .setChunkingFilter(ChunkingFilter.ALL)
.addEventListeners(new DiscordClient()) .addEventListeners(new DiscordClient())
.addEventListeners(new ShutdownEvents()) .addEventListeners(new ShutdownEvents())
@ -107,31 +114,51 @@ public class DiscordClient extends ListenerAdapter {
CommandListUpdateAction commands = javaDiscordAPI.updateCommands(); CommandListUpdateAction commands = javaDiscordAPI.updateCommands();
commands.addCommands( // commands.addCommands(
new CommandData("whitelist", "Edit the whitelist.") // new CommandData("whitelist", "Edit the whitelist.")
.addSubcommands( // .addSubcommands(
new SubcommandData("add", "Add a user to the whitelist") // new SubcommandData("add", "Add a user to the whitelist")
.addOption(STRING, "minecraft_username", "Minecraft username to add", true) // .addOption(STRING, "minecraft_username", "Minecraft username to add", true)
.addOption(USER, "discord_user", "Discord user to bind to", false), // .addOption(USER, "discord_user", "Discord user to bind to", false),
new SubcommandData("remove", "Remove user from the whitelist") // new SubcommandData("remove", "Remove user from the whitelist")
.addOption(STRING, "minecraft_username", "Minecraft username to remove", true), // .addOption(STRING, "minecraft_username", "Minecraft username to remove", true),
new SubcommandData("clear", "Clear whitelists assigned to your account"), // new SubcommandData("clear", "Clear whitelists assigned to your account"),
new SubcommandData("whois", "Find the Discord name linked to a Minecraft name") // new SubcommandData("whois", "Find the Discord name linked to a Minecraft name")
.addOption(STRING, "minecraft_username", "Minecraft name to search", false) // .addOption(STRING, "minecraft_username", "Minecraft name to search", false)
.addOption(USER, "discord_user", "Minecraft name to search", false)), // .addOption(USER, "discord_user", "Minecraft name to search", false)),
//
// new CommandData("clearname", "Clear name from all lists")
// .addOption(STRING, "minecraft_username", "Minecraft username to clear", true),
// new CommandData("clearban", "Clear ban from user")
// .addOption(STRING, "minecraft_username", "Minecraft username to unban", true),
// new CommandData("help", "Show bot info"))
// .queue();
new CommandData("clearname", "Clear name from all lists") commands.addCommands(
.addOption(STRING, "minecraft_username", "Minecraft username to clear", true), Commands.slash("whitelist", "Edit the whitelist.")
new CommandData("clearban", "Clear ban from user") .addSubcommands(
.addOption(STRING, "minecraft_username", "Minecraft username to unban", true), new SubcommandData("add", "Add a user to the whitelist")
new CommandData("help", "Show bot info")) .addOption(STRING, "minecraft_username", "Minecraft username to add", true)
.addOption(USER, "discord_user", "Discord user to bind to", false),
new SubcommandData("remove", "Remove user from the whitelist")
.addOption(STRING, "minecraft_username", "Minecraft username to remove", true),
new SubcommandData("clear", "Clear whitelists assigned to your account"),
new SubcommandData("whois", "Find the Discord name linked to a Minecraft name")
.addOption(STRING, "minecraft_username", "Minecraft name to search", false)
.addOption(USER, "discord_user", "Minecraft name to search", false)),
Commands.slash("clearname", "Clear name from all lists")
.addOption(STRING, "minecraft_username", "Minecraft username to clear", true),
Commands.slash("clearban", "Clear ban from user")
.addOption(STRING, "minecraft_username", "Minecraft username to unban", true),
Commands.slash("help", "Show bot info"))
.queue(); .queue();
// Send the new set of commands to discord, this will override any existing global commands with the new set provided here // Send the new set of commands to discord, this will override any existing global commands with the new set provided here
return 0; return 0;
} catch (LoginException | InterruptedException e) { } catch (InterruptedException e) {
e.printStackTrace(); e.printStackTrace();
return 1; return 1;
} catch (IllegalStateException e) { } catch (IllegalStateException e) {
@ -314,7 +341,7 @@ public class DiscordClient extends ListenerAdapter {
} }
@Override @Override
public void onSlashCommand(SlashCommandEvent event) { public void onSlashCommandInteraction(SlashCommandInteractionEvent event) {
// Todo: add help: CommandInfo.ExecuteCommand(messageReceivedEvent); // Todo: add help: CommandInfo.ExecuteCommand(messageReceivedEvent);
// Todo: add remove message thing // Todo: add remove message thing
@ -328,7 +355,7 @@ public class DiscordClient extends ListenerAdapter {
return; return;
} }
if (!Arrays.asList(targetTextChannels).contains(event.getTextChannel().getId())) { if (!Arrays.asList(targetTextChannels).contains(event.getChannelId())) {
MessageEmbed messageEmbed = CreateEmbeddedMessage("Sorry!", MessageEmbed messageEmbed = CreateEmbeddedMessage("Sorry!",
("This bot can only used in the specified channel."), EmbedMessageType.FAILURE).build(); ("This bot can only used in the specified channel."), EmbedMessageType.FAILURE).build();
ReplyAndRemoveAfterSeconds(event, messageEmbed); ReplyAndRemoveAfterSeconds(event, messageEmbed);
@ -422,11 +449,14 @@ public class DiscordClient extends ListenerAdapter {
@Override @Override
public void onMessageReceived(MessageReceivedEvent messageReceivedEvent) { public void onMessageReceived(MessageReceivedEvent messageReceivedEvent) {
if (!messageReceivedEvent.isFromType(ChannelType.TEXT)) {
if(!messageReceivedEvent.isFromType(ChannelType.TEXT))
{
return; return;
} }
// Check if message should be handled // Check if message should be handled
if (!Arrays.asList(targetTextChannels).contains(messageReceivedEvent.getTextChannel().getId())) if (!Arrays.asList(targetTextChannels).contains(messageReceivedEvent.getChannel().getId()))
return; return;
if (messageReceivedEvent.getAuthor().getIdLong() == javaDiscordAPI.getSelfUser().getIdLong()) if (messageReceivedEvent.getAuthor().getIdLong() == javaDiscordAPI.getSelfUser().getIdLong())
@ -438,7 +468,7 @@ public class DiscordClient extends ListenerAdapter {
// TODO remove, use in command classes when complete // TODO remove, use in command classes when complete
User author = messageReceivedEvent.getAuthor(); User author = messageReceivedEvent.getAuthor();
TextChannel channel = messageReceivedEvent.getTextChannel(); TextChannel channel = messageReceivedEvent.getChannel().asTextChannel();
// if no commands are executed, delete the message, if enabled // if no commands are executed, delete the message, if enabled
if (DiscordWhitelister.removeUnnecessaryMessages) { if (DiscordWhitelister.removeUnnecessaryMessages) {
@ -824,27 +854,28 @@ public class DiscordClient extends ListenerAdapter {
} }
public static String minecraftUsernameToUUID(String minecraftUsername) { public static String minecraftUsernameToUUID(String minecraftUsername)
URL playerURL; {
String inputStream; String playerId = null;
BufferedReader bufferedReader;
String playerUUID = null; try
{
URL pURL = new URL("https://api.mojang.com/users/profiles/minecraft/" + minecraftUsername);
URLConnection req = pURL.openConnection();
req.connect();
try { JsonParser jsonParser = new JsonParser();
playerURL = new URL("https://api.mojang.com/users/profiles/minecraft/" + minecraftUsername); JsonElement root = (JsonElement) jsonParser.parse(new InputStreamReader((InputStream) req.getContent()));
bufferedReader = new BufferedReader(new InputStreamReader(playerURL.openStream())); JsonObject rootObj = root.getAsJsonObject();
inputStream = bufferedReader.readLine(); playerId = rootObj.get("id").getAsString();
if (inputStream != null) { }
JSONObject inputStreamObject = (JSONObject) JSONValue.parseWithException(inputStream); catch (IOException e)
playerUUID = inputStreamObject.get("id").toString(); {
}
} catch (IOException | ParseException e) {
e.printStackTrace(); e.printStackTrace();
} }
return playerUUID; return playerId;
} }
public static void ExecuteServerCommand(String command) { public static void ExecuteServerCommand(String command) {
@ -977,7 +1008,7 @@ public class DiscordClient extends ListenerAdapter {
} }
public static void ReplyAndRemoveAfterSeconds(SlashCommandEvent event, MessageEmbed messageEmbed) { public static void ReplyAndRemoveAfterSeconds(SlashCommandInteractionEvent event, MessageEmbed messageEmbed) {
if (DiscordWhitelister.removeUnnecessaryMessages) if (DiscordWhitelister.removeUnnecessaryMessages)
event.replyEmbeds(messageEmbed).queue(message -> message.deleteOriginal().queueAfter(DiscordWhitelister.removeMessageWaitTime, TimeUnit.SECONDS)); event.replyEmbeds(messageEmbed).queue(message -> message.deleteOriginal().queueAfter(DiscordWhitelister.removeMessageWaitTime, TimeUnit.SECONDS));
else else

View File

@ -10,5 +10,5 @@ public class VersionInfo
return "v." + getVersion(); return "v." + getVersion();
} }
private static String version = "1.5.0"; private static String version = "1.5.1";
} }

View File

@ -2,7 +2,9 @@ package uk.co.angrybee.joe.commands.discord;
import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.EmbedBuilder;
import net.dv8tion.jda.api.entities.*; import net.dv8tion.jda.api.entities.*;
import net.dv8tion.jda.api.events.interaction.SlashCommandEvent; //import net.dv8tion.jda.api.events.interaction.SlashCommandEvent;
import net.dv8tion.jda.api.entities.channel.concrete.TextChannel;
import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent;
import net.dv8tion.jda.api.events.message.MessageReceivedEvent; import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
import uk.co.angrybee.joe.AuthorPermissions; import uk.co.angrybee.joe.AuthorPermissions;
import uk.co.angrybee.joe.DiscordClient; import uk.co.angrybee.joe.DiscordClient;
@ -19,10 +21,10 @@ import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicBoolean;
public class CommandAdd { public class CommandAdd {
public static void ExecuteCommand(SlashCommandEvent event, String mc_user, Member target) { public static void ExecuteCommand(SlashCommandInteractionEvent event, String mc_user, Member target) {
AuthorPermissions authorPermissions = new AuthorPermissions(event); AuthorPermissions authorPermissions = new AuthorPermissions(event);
User author = event.getUser(); User author = event.getUser();
TextChannel channel = event.getTextChannel(); TextChannel channel = event.getChannel().asTextChannel();
Member member = event.getMember(); Member member = event.getMember();
int timesWhitelisted =0; int timesWhitelisted =0;
@ -260,6 +262,7 @@ public class CommandAdd {
/* Do as much as possible off the main server thread. /* Do as much as possible off the main server thread.
convert username into UUID to avoid depreciation and rate limits (according to https://minotar.net/) */ convert username into UUID to avoid depreciation and rate limits (according to https://minotar.net/) */
String playerUUID = DiscordClient.minecraftUsernameToUUID(finalNameToAdd); String playerUUID = DiscordClient.minecraftUsernameToUUID(finalNameToAdd);
final boolean invalidMinecraftName = playerUUID == null; final boolean invalidMinecraftName = playerUUID == null;
/* Configure success & failure messages here instead of on the main server thread - /* Configure success & failure messages here instead of on the main server thread -
@ -407,10 +410,10 @@ public class CommandAdd {
}); });
} }
public static void ExecuteCommand(SlashCommandEvent event, String mc_user) { public static void ExecuteCommand(SlashCommandInteractionEvent event, String mc_user) {
AuthorPermissions authorPermissions = new AuthorPermissions(event); AuthorPermissions authorPermissions = new AuthorPermissions(event);
User author = event.getUser(); User author = event.getUser();
TextChannel channel = event.getTextChannel(); TextChannel channel = event.getChannel().asTextChannel();
Member member = event.getMember(); Member member = event.getMember();
int timesWhitelisted =0; int timesWhitelisted =0;

View File

@ -1,9 +1,11 @@
package uk.co.angrybee.joe.commands.discord; package uk.co.angrybee.joe.commands.discord;
import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.MessageEmbed;
import net.dv8tion.jda.api.entities.TextChannel; //import net.dv8tion.jda.api.entities.TextChannel;
import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.User;
import net.dv8tion.jda.api.events.interaction.SlashCommandEvent; //import net.dv8tion.jda.api.events.interaction.SlashCommandEvent;
import net.dv8tion.jda.api.entities.channel.concrete.TextChannel;
import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent;
import uk.co.angrybee.joe.AuthorPermissions; import uk.co.angrybee.joe.AuthorPermissions;
import uk.co.angrybee.joe.DiscordClient; import uk.co.angrybee.joe.DiscordClient;
import uk.co.angrybee.joe.DiscordWhitelister; import uk.co.angrybee.joe.DiscordWhitelister;
@ -14,11 +16,11 @@ import java.util.Arrays;
import java.util.List; import java.util.List;
public class CommandClear { public class CommandClear {
public static void ExecuteCommand(SlashCommandEvent event) { public static void ExecuteCommand(SlashCommandInteractionEvent event) {
// Clear whitelists for limited-whitelisters // Clear whitelists for limited-whitelisters
AuthorPermissions authorPermissions = new AuthorPermissions(event); AuthorPermissions authorPermissions = new AuthorPermissions(event);
User author = event.getUser(); User author = event.getUser();
TextChannel channel = event.getTextChannel(); TextChannel channel = event.getChannel().asTextChannel();
if (!DiscordWhitelister.mainConfig.getFileConfiguration().getBoolean("allow-limited-whitelisters-to-unwhitelist-self")) { if (!DiscordWhitelister.mainConfig.getFileConfiguration().getBoolean("allow-limited-whitelisters-to-unwhitelist-self")) {
MessageEmbed messageEmbed = DiscordClient.CreateEmbeddedMessage("This Command is disabled", MessageEmbed messageEmbed = DiscordClient.CreateEmbeddedMessage("This Command is disabled",

View File

@ -3,9 +3,9 @@ package uk.co.angrybee.joe.commands.discord;
import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.EmbedBuilder;
import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Member;
import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.MessageEmbed;
import net.dv8tion.jda.api.entities.TextChannel;
import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.User;
import net.dv8tion.jda.api.events.interaction.SlashCommandEvent; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel;
import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent;
import uk.co.angrybee.joe.AuthorPermissions; import uk.co.angrybee.joe.AuthorPermissions;
import uk.co.angrybee.joe.DiscordClient; import uk.co.angrybee.joe.DiscordClient;
import uk.co.angrybee.joe.DiscordWhitelister; import uk.co.angrybee.joe.DiscordWhitelister;
@ -13,11 +13,11 @@ import uk.co.angrybee.joe.stores.InGameRemovedList;
import uk.co.angrybee.joe.stores.RemovedList; import uk.co.angrybee.joe.stores.RemovedList;
public class CommandClearban { public class CommandClearban {
public static void ExecuteCommand(SlashCommandEvent event, String mc_user) { public static void ExecuteCommand(SlashCommandInteractionEvent event, String mc_user) {
AuthorPermissions authorPermissions = new AuthorPermissions(event); AuthorPermissions authorPermissions = new AuthorPermissions(event);
User author = event.getUser(); User author = event.getUser();
TextChannel channel = event.getTextChannel(); TextChannel channel = event.getChannel().asTextChannel();
if (authorPermissions.isUserCanUseClear()) { if (authorPermissions.isUserCanUseClear()) {

View File

@ -2,9 +2,8 @@ package uk.co.angrybee.joe.commands.discord;
import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Member;
import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.MessageEmbed;
import net.dv8tion.jda.api.entities.TextChannel;
import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.User;
import net.dv8tion.jda.api.events.interaction.SlashCommandEvent; import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent;
import uk.co.angrybee.joe.AuthorPermissions; import uk.co.angrybee.joe.AuthorPermissions;
import uk.co.angrybee.joe.DiscordClient; import uk.co.angrybee.joe.DiscordClient;
import uk.co.angrybee.joe.DiscordWhitelister; import uk.co.angrybee.joe.DiscordWhitelister;
@ -14,7 +13,7 @@ import java.util.List;
import java.util.Set; import java.util.Set;
public class CommandClearname { public class CommandClearname {
public static void ExecuteCommand(SlashCommandEvent event, String mc_name) { public static void ExecuteCommand(SlashCommandInteractionEvent event, String mc_name) {
AuthorPermissions authorPermissions = new AuthorPermissions(event); AuthorPermissions authorPermissions = new AuthorPermissions(event);
User author = event.getUser(); User author = event.getUser();

View File

@ -1,15 +1,14 @@
package uk.co.angrybee.joe.commands.discord; package uk.co.angrybee.joe.commands.discord;
import net.dv8tion.jda.api.entities.TextChannel;
import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.User;
import net.dv8tion.jda.api.events.interaction.SlashCommandEvent; import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent;
import net.dv8tion.jda.api.events.message.MessageReceivedEvent; import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
import uk.co.angrybee.joe.AuthorPermissions; import uk.co.angrybee.joe.AuthorPermissions;
import uk.co.angrybee.joe.DiscordClient; import uk.co.angrybee.joe.DiscordClient;
public class CommandInfo public class CommandInfo
{ {
public static void ExecuteCommand(SlashCommandEvent event) public static void ExecuteCommand(SlashCommandInteractionEvent event)
{ {
AuthorPermissions authorPermissions = new AuthorPermissions(event); AuthorPermissions authorPermissions = new AuthorPermissions(event);
User author = event.getUser(); User author = event.getUser();

View File

@ -2,7 +2,8 @@ package uk.co.angrybee.joe.commands.discord;
import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.EmbedBuilder;
import net.dv8tion.jda.api.entities.*; import net.dv8tion.jda.api.entities.*;
import net.dv8tion.jda.api.events.interaction.SlashCommandEvent; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel;
import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent;
import uk.co.angrybee.joe.AuthorPermissions; import uk.co.angrybee.joe.AuthorPermissions;
import uk.co.angrybee.joe.DiscordClient; import uk.co.angrybee.joe.DiscordClient;
import uk.co.angrybee.joe.DiscordWhitelister; import uk.co.angrybee.joe.DiscordWhitelister;
@ -17,11 +18,11 @@ import java.util.Set;
public class CommandRemove { public class CommandRemove {
public static void ExecuteCommand(SlashCommandEvent event, String mc_name) { public static void ExecuteCommand(SlashCommandInteractionEvent event, String mc_name) {
AuthorPermissions authorPermissions = new AuthorPermissions(event); AuthorPermissions authorPermissions = new AuthorPermissions(event);
User author = event.getUser(); User author = event.getUser();
TextChannel channel = event.getTextChannel(); TextChannel channel = event.getChannel().asTextChannel();
Member member = event.getMember(); Member member = event.getMember();
// Remove Command // Remove Command

View File

@ -2,28 +2,20 @@ package uk.co.angrybee.joe.commands.discord;
import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.EmbedBuilder;
import net.dv8tion.jda.api.entities.*; import net.dv8tion.jda.api.entities.*;
import net.dv8tion.jda.api.events.interaction.SlashCommandEvent; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel;
import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
import net.dv8tion.jda.api.exceptions.AccountTypeException;
import org.yaml.snakeyaml.Yaml;
import uk.co.angrybee.joe.AuthorPermissions; import uk.co.angrybee.joe.AuthorPermissions;
import uk.co.angrybee.joe.DiscordClient; import uk.co.angrybee.joe.DiscordClient;
import uk.co.angrybee.joe.DiscordWhitelister; import uk.co.angrybee.joe.DiscordWhitelister;
import uk.co.angrybee.joe.configs.MainConfig;
import uk.co.angrybee.joe.stores.UserList; import uk.co.angrybee.joe.stores.UserList;
import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.util.*; import java.util.*;
import java.util.concurrent.TimeUnit;
public class CommandWhoIs { public class CommandWhoIs {
public static void ExecuteCommand(SlashCommandEvent event, String mc_name) { public static void ExecuteCommand(SlashCommandInteractionEvent event, String mc_name) {
AuthorPermissions authorPermissions = new AuthorPermissions(event); AuthorPermissions authorPermissions = new AuthorPermissions(event);
User author = event.getUser(); User author = event.getUser();
TextChannel channel = event.getTextChannel(); TextChannel channel = event.getChannel().asTextChannel();
if (!authorPermissions.isUserCanAddRemove() && !authorPermissions.isUserCanAdd()) { if (!authorPermissions.isUserCanAddRemove() && !authorPermissions.isUserCanAdd()) {
DiscordClient.ReplyAndRemoveAfterSeconds(event, DiscordClient.CreateInsufficientPermsMessage(author)); DiscordClient.ReplyAndRemoveAfterSeconds(event, DiscordClient.CreateInsufficientPermsMessage(author));

View File

@ -3,9 +3,10 @@ package uk.co.angrybee.joe.commands.discord;
import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.EmbedBuilder;
import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Member;
import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.MessageEmbed;
import net.dv8tion.jda.api.entities.TextChannel; //import net.dv8tion.jda.api.entities.TextChannel;
import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.User;
import net.dv8tion.jda.api.events.interaction.SlashCommandEvent; //import net.dv8tion.jda.api.events.interaction.SlashCommandEvent;
import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent;
import uk.co.angrybee.joe.AuthorPermissions; import uk.co.angrybee.joe.AuthorPermissions;
import uk.co.angrybee.joe.DiscordClient; import uk.co.angrybee.joe.DiscordClient;
import uk.co.angrybee.joe.DiscordWhitelister; import uk.co.angrybee.joe.DiscordWhitelister;
@ -15,7 +16,7 @@ import java.util.List;
import java.util.Set; import java.util.Set;
public class CommandWhoIsDiscord { public class CommandWhoIsDiscord {
public static void ExecuteCommand(SlashCommandEvent event, Member target) { public static void ExecuteCommand(SlashCommandInteractionEvent event, Member target) {
AuthorPermissions authorPermissions = new AuthorPermissions(event); AuthorPermissions authorPermissions = new AuthorPermissions(event);
User author = event.getUser(); User author = event.getUser();

View File

@ -1,6 +1,6 @@
package uk.co.angrybee.joe.events; package uk.co.angrybee.joe.events;
import net.dv8tion.jda.api.events.ShutdownEvent; import net.dv8tion.jda.api.events.session.ShutdownEvent;
import net.dv8tion.jda.api.hooks.ListenerAdapter; import net.dv8tion.jda.api.hooks.ListenerAdapter;
import net.dv8tion.jda.api.requests.CloseCode; import net.dv8tion.jda.api.requests.CloseCode;
import uk.co.angrybee.joe.DiscordWhitelister; import uk.co.angrybee.joe.DiscordWhitelister;

View File

@ -1,6 +1,6 @@
name: DiscordWhitelister name: DiscordWhitelister
version: 1.5.0 version: 1.5.1
api-version: 1.17 api-version: 1.19
author: Joe Shimell author: Joe Shimell
main: uk.co.angrybee.joe.DiscordWhitelister main: uk.co.angrybee.joe.DiscordWhitelister
description: Discord Whitelister. description: Discord Whitelister.