mirror of
https://github.com/Shimeo98/DiscordWhitelisterSpigot.git
synced 2025-02-01 13:01:27 +01:00
Fix for whitelisting amount issue, option to delete unneeded messages after a set amount of time, option to hide info commands
This commit is contained in:
parent
eb2d033b7b
commit
40250fc1ab
2
pom.xml
2
pom.xml
@ -6,7 +6,7 @@
|
||||
|
||||
<groupId>uk.co.angrybee.joe</groupId>
|
||||
<artifactId>discord-whitelister</artifactId>
|
||||
<version>1.4.4</version>
|
||||
<version>1.4.5</version>
|
||||
|
||||
<name>discord-whitelister</name>
|
||||
<url>https://github.com/JoeShimell/DiscordWhitelisterSpigot</url>
|
||||
|
@ -27,10 +27,12 @@ import uk.co.angrybee.joe.stores.WhitelistedPlayers;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import javax.security.auth.login.LoginException;
|
||||
import javax.xml.soap.Text;
|
||||
import java.awt.Color;
|
||||
import java.io.*;
|
||||
import java.net.URL;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
// handles Discord interaction
|
||||
public class DiscordClient extends ListenerAdapter
|
||||
@ -330,13 +332,18 @@ public class DiscordClient extends ListenerAdapter
|
||||
// TODO remove, use in command classes when complete
|
||||
AuthorPermissions authorPermissions = new AuthorPermissions(messageReceivedEvent);
|
||||
User author = messageReceivedEvent.getAuthor();
|
||||
//String messageContents = messageReceivedEvent.getMessage().getContentDisplay(); // used above
|
||||
TextChannel channel = messageReceivedEvent.getTextChannel();
|
||||
|
||||
// determine which command to run
|
||||
if (splitMessage.length == 1 && CheckForPrefix(whitelistInfoPrefix, splitMessage))
|
||||
{
|
||||
if(MainConfig.getMainConfig().getBoolean("hide-info-command-replies"))
|
||||
return;
|
||||
|
||||
CommandInfo.ExecuteCommand(messageReceivedEvent);
|
||||
|
||||
if(DiscordWhitelister.removeUnnecessaryMessages)
|
||||
RemoveMessageAfterSeconds(messageReceivedEvent, DiscordWhitelister.removeMessageWaitTime);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -344,6 +351,9 @@ public class DiscordClient extends ListenerAdapter
|
||||
|| DiscordWhitelister.getUseCustomPrefixes() && splitMessage.length >= customWhitelistAddPrefixSplit.length && CheckForPrefix(customWhitelistAddPrefixSplit, splitMessage))
|
||||
{
|
||||
CommandAdd.ExecuteCommand(messageReceivedEvent, splitMessage);
|
||||
|
||||
if(DiscordWhitelister.removeUnnecessaryMessages)
|
||||
RemoveMessageAfterSeconds(messageReceivedEvent, DiscordWhitelister.removeMessageWaitTime);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -375,7 +385,10 @@ public class DiscordClient extends ListenerAdapter
|
||||
|
||||
if (finalNameToRemove.isEmpty())
|
||||
{
|
||||
channel.sendMessage(removeCommandInfo).queue();
|
||||
if(!MainConfig.getMainConfig().getBoolean("hide-info-command-replies"))
|
||||
QueueAndRemoveAfterSeconds(channel, removeCommandInfo);
|
||||
|
||||
TempRemoveOriginalMessageAfterSeconds(messageReceivedEvent);
|
||||
return;
|
||||
}
|
||||
else
|
||||
@ -390,7 +403,11 @@ public class DiscordClient extends ListenerAdapter
|
||||
|
||||
if(!DiscordWhitelister.useCustomMessages)
|
||||
{
|
||||
channel.sendMessage(CreateEmbeddedMessage("This user is not on the whitelist", (author.getAsMention() + ", cannot remove user as `" + finalNameToRemove + "` is not on the whitelist!"), EmbedMessageType.INFO).build()).queue();
|
||||
MessageEmbed messageEmbed = CreateEmbeddedMessage("This user is not on the whitelist",
|
||||
(author.getAsMention() + ", cannot remove user as `" + finalNameToRemove + "` is not on the whitelist!"), EmbedMessageType.INFO).build();
|
||||
QueueAndRemoveAfterSeconds(channel, messageEmbed);
|
||||
TempRemoveOriginalMessageAfterSeconds(messageReceivedEvent);
|
||||
// Return below
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -399,7 +416,9 @@ public class DiscordClient extends ListenerAdapter
|
||||
customMessage = customMessage.replaceAll("\\{Sender}", author.getAsMention());
|
||||
customMessage = customMessage.replaceAll("\\{MinecraftUsername}", finalNameToRemove);
|
||||
|
||||
channel.sendMessage(CreateEmbeddedMessage(customTitle, customMessage, EmbedMessageType.INFO).build()).queue();
|
||||
MessageEmbed messageEmbed = CreateEmbeddedMessage(customTitle, customMessage, EmbedMessageType.INFO).build();
|
||||
QueueAndRemoveAfterSeconds(channel, messageEmbed);
|
||||
TempRemoveOriginalMessageAfterSeconds(messageReceivedEvent);
|
||||
}
|
||||
}
|
||||
|
||||
@ -416,7 +435,10 @@ public class DiscordClient extends ListenerAdapter
|
||||
|
||||
if(!DiscordWhitelister.useCustomMessages)
|
||||
{
|
||||
embedBuilderSuccess = CreateEmbeddedMessage((finalNameToRemove + " has been removed"), (author.getAsMention() + " has removed `" + finalNameToRemove + "` from the whitelist."), EmbedMessageType.SUCCESS);
|
||||
if(!MainConfig.getMainConfig().getBoolean("set-removed-message-colour-to-red"))
|
||||
embedBuilderSuccess = CreateEmbeddedMessage((finalNameToRemove + " has been removed"), (author.getAsMention() + " has removed `" + finalNameToRemove + "` from the whitelist."), EmbedMessageType.SUCCESS);
|
||||
else
|
||||
embedBuilderSuccess = CreateEmbeddedMessage((finalNameToRemove + " has been removed"), (author.getAsMention() + " has removed `" + finalNameToRemove + "` from the whitelist."), EmbedMessageType.FAILURE);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -427,7 +449,16 @@ public class DiscordClient extends ListenerAdapter
|
||||
customMessage = customMessage.replaceAll("\\{Sender}", author.getAsMention());
|
||||
customMessage = customMessage.replaceAll("\\{MinecraftUsername}", finalNameToRemove);
|
||||
|
||||
embedBuilderSuccess = CreateEmbeddedMessage(customTitle, customMessage, EmbedMessageType.SUCCESS);
|
||||
if(!MainConfig.getMainConfig().getBoolean("set-removed-message-colour-to-red"))
|
||||
embedBuilderSuccess = CreateEmbeddedMessage(customTitle, customMessage, EmbedMessageType.SUCCESS);
|
||||
else
|
||||
embedBuilderSuccess = CreateEmbeddedMessage(customTitle, customMessage, EmbedMessageType.FAILURE);
|
||||
}
|
||||
|
||||
if(DiscordWhitelister.showPlayerSkin)
|
||||
{
|
||||
String playerUUID = DiscordClient.minecraftUsernameToUUID(finalNameToRemove);
|
||||
embedBuilderSuccess.setThumbnail("https://minotar.net/armor/bust/" + playerUUID + "/100.png");
|
||||
}
|
||||
|
||||
EmbedBuilder embedBuilderFailure;
|
||||
@ -442,6 +473,7 @@ public class DiscordClient extends ListenerAdapter
|
||||
|| !WhitelistedPlayers.usingEasyWhitelist && !WhitelistedPlayers.CheckForPlayer(finalNameToRemove))
|
||||
{
|
||||
channel.sendMessage(embedBuilderSuccess.build()).queue();
|
||||
TempRemoveOriginalMessageAfterSeconds(messageReceivedEvent);
|
||||
|
||||
if(DiscordWhitelister.useUltraPerms)
|
||||
{
|
||||
@ -525,14 +557,17 @@ public class DiscordClient extends ListenerAdapter
|
||||
}
|
||||
else
|
||||
{
|
||||
channel.sendMessage(embedBuilderFailure.build()).queue();
|
||||
QueueAndRemoveAfterSeconds(channel, embedBuilderFailure.build());
|
||||
TempRemoveOriginalMessageAfterSeconds(messageReceivedEvent);
|
||||
}
|
||||
|
||||
return null;
|
||||
});
|
||||
return;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (authorPermissions.isUserCanAdd() && !authorPermissions.isUserCanAddRemove())
|
||||
@ -558,12 +593,14 @@ public class DiscordClient extends ListenerAdapter
|
||||
embedBuilderInfo = CreateEmbeddedMessage(customTitle, customMessage, EmbedMessageType.INFO);
|
||||
}
|
||||
|
||||
channel.sendMessage(embedBuilderInfo.build()).queue();
|
||||
QueueAndRemoveAfterSeconds(channel, embedBuilderInfo.build());
|
||||
TempRemoveOriginalMessageAfterSeconds(messageReceivedEvent);
|
||||
return;
|
||||
}
|
||||
|
||||
// if the user doesn't have any allowed roles
|
||||
channel.sendMessage(CreateInsufficientPermsMessage(author)).queue();
|
||||
QueueAndRemoveAfterSeconds(channel, CreateInsufficientPermsMessage(author));
|
||||
//TempRemoveOriginalMessageAfterSeconds(messageReceivedEvent);
|
||||
}
|
||||
|
||||
// Clear Whitelists command
|
||||
@ -579,11 +616,24 @@ public class DiscordClient extends ListenerAdapter
|
||||
if(messageContents.toLowerCase().trim().equals("!clearname") && !DiscordWhitelister.getUseCustomPrefixes()
|
||||
|| messageContents.toLowerCase().trim().equals(customClearNamePrefix) && DiscordWhitelister.getUseCustomPrefixes())
|
||||
{
|
||||
if(!DiscordWhitelister.getUseCustomPrefixes())
|
||||
channel.sendMessage(CreateEmbeddedMessage("Clear Name Command", "Usage: `!clearname <minecraftUsername>`\n", EmbedMessageType.INFO).build()).queue();
|
||||
else
|
||||
channel.sendMessage(CreateEmbeddedMessage("Clear Name Command", "Usage: `" + customClearNamePrefix + " <minecraftUsername>`\n", EmbedMessageType.INFO).build()).queue();
|
||||
if(!MainConfig.getMainConfig().getBoolean("hide-info-command-replies"))
|
||||
{
|
||||
TempRemoveOriginalMessageAfterSeconds(messageReceivedEvent);
|
||||
return;
|
||||
}
|
||||
|
||||
if(!DiscordWhitelister.getUseCustomPrefixes())
|
||||
{
|
||||
MessageEmbed messageEmbed = CreateEmbeddedMessage("Clear Name Command", "Usage: `!clearname <minecraftUsername>`\n", EmbedMessageType.INFO).build();
|
||||
QueueAndRemoveAfterSeconds(channel, messageEmbed);
|
||||
}
|
||||
else
|
||||
{
|
||||
MessageEmbed messageEmbed = CreateEmbeddedMessage("Clear Name Command", "Usage: `" + customClearNamePrefix + " <minecraftUsername>`\n", EmbedMessageType.INFO).build();
|
||||
QueueAndRemoveAfterSeconds(channel, messageEmbed);
|
||||
}
|
||||
|
||||
TempRemoveOriginalMessageAfterSeconds(messageReceivedEvent);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -691,20 +741,28 @@ public class DiscordClient extends ListenerAdapter
|
||||
|
||||
clearNameTitle = clearNameTitle.replaceAll("\\{MinecraftUsername}", splitMessage[userNameIndex]);
|
||||
|
||||
channel.sendMessage(CreateEmbeddedMessage(clearNameTitle, clearNameMessage, EmbedMessageType.SUCCESS).build()).queue();
|
||||
MessageEmbed messageEmbed = CreateEmbeddedMessage(clearNameTitle, clearNameMessage, EmbedMessageType.SUCCESS).build();
|
||||
QueueAndRemoveAfterSeconds(channel, messageEmbed);
|
||||
}
|
||||
else
|
||||
{
|
||||
channel.sendMessage(CreateEmbeddedMessage("Successfully Cleared Name", (author.getAsMention() + " successfully cleared username `" + splitMessage[userNameIndex] +
|
||||
"` from <@" + targetDiscordId + ">'s whitelisted users."), EmbedMessageType.SUCCESS).build()).queue();
|
||||
MessageEmbed messageEmbed = CreateEmbeddedMessage("Successfully Cleared Name", (author.getAsMention() + " successfully cleared username `" + splitMessage[userNameIndex] +
|
||||
"` from <@" + targetDiscordId + ">'s whitelisted users."), EmbedMessageType.SUCCESS).build();
|
||||
QueueAndRemoveAfterSeconds(channel, messageEmbed);
|
||||
}
|
||||
|
||||
TempRemoveOriginalMessageAfterSeconds(messageReceivedEvent);
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Name not found
|
||||
if(!DiscordWhitelister.useCustomMessages)
|
||||
{
|
||||
channel.sendMessage(CreateEmbeddedMessage((splitMessage[userNameIndex] + " not Found"), (author.getAsMention() + ", could not find name " + splitMessage[userNameIndex] + " to clear in user list."), EmbedMessageType.FAILURE).build()).queue();
|
||||
MessageEmbed messageEmbed =
|
||||
CreateEmbeddedMessage((splitMessage[userNameIndex] + " not Found"),
|
||||
(author.getAsMention() + ", could not find name " + splitMessage[userNameIndex] + " to clear in user list."), EmbedMessageType.FAILURE).build();
|
||||
QueueAndRemoveAfterSeconds(channel, messageEmbed);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -714,13 +772,18 @@ public class DiscordClient extends ListenerAdapter
|
||||
customMessage = customMessage.replaceAll("\\{MinecraftUsername}", splitMessage[userNameIndex]);
|
||||
customTitle = customTitle.replaceAll("\\{MinecraftUsername}", splitMessage[userNameIndex]);
|
||||
|
||||
channel.sendMessage(CreateEmbeddedMessage(customTitle, customMessage, EmbedMessageType.FAILURE).build()).queue();
|
||||
MessageEmbed messageEmbed = CreateEmbeddedMessage(customTitle, customMessage, EmbedMessageType.FAILURE).build();
|
||||
QueueAndRemoveAfterSeconds(channel, messageEmbed);
|
||||
}
|
||||
|
||||
TempRemoveOriginalMessageAfterSeconds(messageReceivedEvent);
|
||||
return;
|
||||
}
|
||||
}
|
||||
else // Don't have permission
|
||||
{
|
||||
channel.sendMessage(CreateInsufficientPermsMessage(author)).queue();
|
||||
QueueAndRemoveAfterSeconds(channel, CreateInsufficientPermsMessage(author));
|
||||
TempRemoveOriginalMessageAfterSeconds(messageReceivedEvent);
|
||||
return;
|
||||
}
|
||||
}
|
||||
@ -735,8 +798,10 @@ public class DiscordClient extends ListenerAdapter
|
||||
// just inform staff, can add custom messages later if really needed
|
||||
if(authorPermissions.isUserCanAddRemove() && !authorPermissions.isUserIsBanned() || authorPermissions.isUserCanAdd() && !authorPermissions.isUserIsBanned())
|
||||
{
|
||||
channel.sendMessage(CreateEmbeddedMessage("This Command is Only Available for Limited Whitelister Roles",
|
||||
"If staff members need to clear a name from the whitelist please use `!clearname <mcName>`.", EmbedMessageType.INFO).build()).queue();
|
||||
MessageEmbed messageEmbed = CreateEmbeddedMessage("This Command is Only Available for Limited Whitelister Roles",
|
||||
"If staff members need to clear a name from the whitelist please use `!clearname <mcName>`.", EmbedMessageType.INFO).build();
|
||||
QueueAndRemoveAfterSeconds(channel, messageEmbed);
|
||||
TempRemoveOriginalMessageAfterSeconds(messageReceivedEvent);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -783,8 +848,9 @@ public class DiscordClient extends ListenerAdapter
|
||||
}
|
||||
message += "\n You now have **" + maxWhitelistAmount + " whitelist(s) remaining**.";
|
||||
|
||||
channel.sendMessage(CreateEmbeddedMessage(("Successfully Removed " + author.getName() + "'s Whitelisted Entries"),
|
||||
message, EmbedMessageType.FAILURE).build()).queue();
|
||||
MessageEmbed messageEmbed = CreateEmbeddedMessage(("Successfully Removed " + author.getName() + "'s Whitelisted Entries"),
|
||||
message, EmbedMessageType.FAILURE).build();
|
||||
QueueAndRemoveAfterSeconds(channel, messageEmbed);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -802,7 +868,8 @@ public class DiscordClient extends ListenerAdapter
|
||||
customMessage = customMessage.replaceAll("\\{RemovedEntries}", removedNames);
|
||||
customMessage = customMessage.replaceAll("\\{MaxWhitelistAmount}", String.valueOf(maxWhitelistAmount));
|
||||
|
||||
channel.sendMessage(CreateEmbeddedMessage(customTitle,customMessage,EmbedMessageType.SUCCESS).build()).queue();
|
||||
MessageEmbed messageEmbed = CreateEmbeddedMessage(customTitle,customMessage,EmbedMessageType.SUCCESS).build();
|
||||
QueueAndRemoveAfterSeconds(channel, messageEmbed);
|
||||
}
|
||||
|
||||
if(MainConfig.getMainConfig().getBoolean("whitelisted-role-auto-remove"))
|
||||
@ -814,6 +881,9 @@ public class DiscordClient extends ListenerAdapter
|
||||
RemoveRolesFromUser(javaDiscordAPI.getGuilds().get(i), author.getId(), Arrays.asList(whitelistedRoleNames));
|
||||
}
|
||||
}
|
||||
|
||||
TempRemoveOriginalMessageAfterSeconds(messageReceivedEvent);
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -823,8 +893,9 @@ public class DiscordClient extends ListenerAdapter
|
||||
// Log in Discord channel
|
||||
if(!DiscordWhitelister.useCustomMessages)
|
||||
{
|
||||
channel.sendMessage(CreateEmbeddedMessage("No Entries to Remove",
|
||||
(author.getAsMention() + ", you do not have any whitelisted entries to remove."), EmbedMessageType.FAILURE).build()).queue();
|
||||
MessageEmbed messageEmbed = CreateEmbeddedMessage("No Entries to Remove",
|
||||
(author.getAsMention() + ", you do not have any whitelisted entries to remove."), EmbedMessageType.FAILURE).build();
|
||||
QueueAndRemoveAfterSeconds(channel, messageEmbed);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -832,14 +903,19 @@ public class DiscordClient extends ListenerAdapter
|
||||
String customMessage = DiscordWhitelister.getCustomMessagesConfig().getString("whitelist-clear-failure-message");
|
||||
customMessage = customMessage.replaceAll("\\{Sender}", author.getAsMention());
|
||||
|
||||
channel.sendMessage(CreateEmbeddedMessage(customTitle, customMessage, EmbedMessageType.FAILURE).build()).queue();
|
||||
MessageEmbed messageEmbed = CreateEmbeddedMessage(customTitle, customMessage, EmbedMessageType.FAILURE).build();
|
||||
QueueAndRemoveAfterSeconds(channel, messageEmbed);
|
||||
}
|
||||
|
||||
TempRemoveOriginalMessageAfterSeconds(messageReceivedEvent);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if(!authorPermissions.isUserCanAddRemove() && !authorPermissions.isUserCanAdd() && !authorPermissions.isUserHasLimitedAdd() || authorPermissions.isUserIsBanned())
|
||||
{
|
||||
channel.sendMessage(CreateInsufficientPermsMessage(author)).queue();
|
||||
QueueAndRemoveAfterSeconds(channel, CreateInsufficientPermsMessage(author));
|
||||
TempRemoveOriginalMessageAfterSeconds(messageReceivedEvent);
|
||||
return;
|
||||
}
|
||||
}
|
||||
@ -853,12 +929,25 @@ public class DiscordClient extends ListenerAdapter
|
||||
if(messageContents.toLowerCase().trim().equals("!clearban") && !DiscordWhitelister.getUseCustomPrefixes()
|
||||
|| messageContents.toLowerCase().trim().equals(customClearBanPrefix) && DiscordWhitelister.getUseCustomPrefixes())
|
||||
{
|
||||
if(!MainConfig.getMainConfig().getBoolean("hide-info-command-replies"))
|
||||
{
|
||||
TempRemoveOriginalMessageAfterSeconds(messageReceivedEvent);
|
||||
return;
|
||||
}
|
||||
|
||||
// Send info message
|
||||
if(!DiscordWhitelister.getUseCustomPrefixes())
|
||||
channel.sendMessage(CreateEmbeddedMessage("Clear Ban Command", "Usage: `!clearban <minecraftUsername>`\n", EmbedMessageType.INFO).build()).queue();
|
||||
{
|
||||
MessageEmbed messageEmbed = CreateEmbeddedMessage("Clear Ban Command", "Usage: `!clearban <minecraftUsername>`\n", EmbedMessageType.INFO).build();
|
||||
QueueAndRemoveAfterSeconds(channel, messageEmbed);
|
||||
}
|
||||
else
|
||||
channel.sendMessage(CreateEmbeddedMessage("Clear Ban Command", "Usage: `" + customClearBanPrefix + " <minecraftUsername>`\n", EmbedMessageType.INFO).build()).queue();
|
||||
{
|
||||
MessageEmbed messageEmbed = CreateEmbeddedMessage("Clear Ban Command", "Usage: `" + customClearBanPrefix + " <minecraftUsername>`\n", EmbedMessageType.INFO).build();
|
||||
QueueAndRemoveAfterSeconds(channel, messageEmbed);
|
||||
}
|
||||
|
||||
TempRemoveOriginalMessageAfterSeconds(messageReceivedEvent);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -900,8 +989,9 @@ public class DiscordClient extends ListenerAdapter
|
||||
|
||||
if(!DiscordWhitelister.useCustomMessages)
|
||||
{
|
||||
channel.sendMessage(CreateEmbeddedMessage(("Successfully Cleared `" + targetName + "`"),
|
||||
(author.getAsMention() + " has successfully cleared `" + targetName + "` from the removed list(s)."), EmbedMessageType.SUCCESS).build()).queue();
|
||||
MessageEmbed messageEmbed = CreateEmbeddedMessage(("Successfully Cleared `" + targetName + "`"),
|
||||
(author.getAsMention() + " has successfully cleared `" + targetName + "` from the removed list(s)."), EmbedMessageType.SUCCESS).build();
|
||||
QueueAndRemoveAfterSeconds(channel, messageEmbed);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -911,17 +1001,20 @@ public class DiscordClient extends ListenerAdapter
|
||||
customMessage = customMessage.replaceAll("\\{MinecraftUsername}", targetName);
|
||||
customTitle = customTitle.replaceAll("\\{MinecraftUsername}", targetName);
|
||||
|
||||
channel.sendMessage(CreateEmbeddedMessage(customTitle, customMessage, EmbedMessageType.INFO).build()).queue();
|
||||
MessageEmbed messageEmbed = CreateEmbeddedMessage(customTitle, customMessage, EmbedMessageType.INFO).build();
|
||||
QueueAndRemoveAfterSeconds(channel, messageEmbed);
|
||||
}
|
||||
|
||||
TempRemoveOriginalMessageAfterSeconds(messageReceivedEvent);
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
if(!DiscordWhitelister.useCustomMessages)
|
||||
{
|
||||
channel.sendMessage(CreateEmbeddedMessage(("Failed to Clear `" + targetName + "`"),
|
||||
(author.getAsMention() + ", `" + targetName + "` cannot be found in any of the removed lists!"), EmbedMessageType.FAILURE).build()).queue();
|
||||
MessageEmbed messageEmbed = CreateEmbeddedMessage(("Failed to Clear `" + targetName + "`"),
|
||||
(author.getAsMention() + ", `" + targetName + "` cannot be found in any of the removed lists!"), EmbedMessageType.FAILURE).build();
|
||||
QueueAndRemoveAfterSeconds(channel, messageEmbed);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -931,15 +1024,18 @@ public class DiscordClient extends ListenerAdapter
|
||||
customMessage = customMessage.replaceAll("\\{MinecraftUsername}", targetName);
|
||||
customTitle = customTitle.replaceAll("\\{MinecraftUsername}", targetName);
|
||||
|
||||
channel.sendMessage(CreateEmbeddedMessage(customTitle, customMessage, EmbedMessageType.FAILURE).build()).queue();
|
||||
MessageEmbed messageEmbed = CreateEmbeddedMessage(customTitle, customMessage, EmbedMessageType.FAILURE).build();
|
||||
QueueAndRemoveAfterSeconds(channel, messageEmbed);
|
||||
}
|
||||
|
||||
TempRemoveOriginalMessageAfterSeconds(messageReceivedEvent);
|
||||
return;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
channel.sendMessage(CreateInsufficientPermsMessage(author));
|
||||
QueueAndRemoveAfterSeconds(channel, CreateInsufficientPermsMessage(author));
|
||||
TempRemoveOriginalMessageAfterSeconds(messageReceivedEvent);
|
||||
return;
|
||||
}
|
||||
}
|
||||
@ -948,8 +1044,37 @@ public class DiscordClient extends ListenerAdapter
|
||||
|| DiscordWhitelister.getUseCustomPrefixes() && splitMessage.length >= customWhoIsPrefix.length && CheckForPrefix(customWhoIsPrefix, splitMessage))
|
||||
{
|
||||
CommandWhoIs.ExecuteCommand(messageReceivedEvent, splitMessage);
|
||||
|
||||
if(DiscordWhitelister.removeUnnecessaryMessages)
|
||||
RemoveMessageAfterSeconds(messageReceivedEvent, DiscordWhitelister.removeMessageWaitTime);
|
||||
return;
|
||||
}
|
||||
|
||||
// if no commands are executed, delete the message, if enabled
|
||||
if(DiscordWhitelister.removeUnnecessaryMessages)
|
||||
{
|
||||
RemoveMessageAfterSeconds(messageReceivedEvent, DiscordWhitelister.removeMessageWaitTime);
|
||||
|
||||
if(MainConfig.getMainConfig().getBoolean("show-warning-in-command-channel"))
|
||||
{
|
||||
if(!DiscordWhitelister.useCustomMessages)
|
||||
{
|
||||
MessageEmbed messageEmbed = CreateEmbeddedMessage("This Channel is for Commands Only", (author.getAsMention() + ", this channel is for commands only, please use another channel."),
|
||||
EmbedMessageType.FAILURE).build();
|
||||
QueueAndRemoveAfterSeconds(channel, messageEmbed);
|
||||
}
|
||||
else
|
||||
{
|
||||
String customTitle = DiscordWhitelister.getCustomMessagesConfig().getString("command-channel-title");
|
||||
|
||||
String customMessage = DiscordWhitelister.getCustomMessagesConfig().getString("command-channel-message");
|
||||
customMessage = customMessage.replaceAll("\\{Sender}", author.getAsMention());
|
||||
|
||||
MessageEmbed messageEmbed = DiscordClient.CreateEmbeddedMessage(customTitle, customMessage, DiscordClient.EmbedMessageType.FAILURE).build();
|
||||
QueueAndRemoveAfterSeconds(channel, messageEmbed);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1295,6 +1420,60 @@ public class DiscordClient extends ListenerAdapter
|
||||
}
|
||||
}
|
||||
|
||||
public static void RemoveMessageAfterSeconds(MessageReceivedEvent messageReceivedEvent, Integer timeToWait)
|
||||
{
|
||||
Thread removeTimerThread = new Thread(() ->
|
||||
{
|
||||
try
|
||||
{
|
||||
TimeUnit.SECONDS.sleep(timeToWait);
|
||||
messageReceivedEvent.getMessage().delete().queue();
|
||||
}
|
||||
catch (InterruptedException e)
|
||||
{
|
||||
e.printStackTrace();
|
||||
}
|
||||
});
|
||||
|
||||
removeTimerThread.start();
|
||||
}
|
||||
|
||||
// public static void SendAndRemoveMessagesAfterSeconds(MessageReceivedEvent messageReceivedEvent, List<Object> messages, Integer timeToWait)
|
||||
// {
|
||||
// TextChannel textChannel = messageReceivedEvent.getTextChannel();
|
||||
//
|
||||
// for (Object o : messages)
|
||||
// {
|
||||
// // Only Remove supplied Messages
|
||||
// if(o instanceof Message)
|
||||
// {
|
||||
// if(DiscordWhitelister.removeUnnecessaryMessages)
|
||||
// RemoveMessageAfterSeconds(messageReceivedEvent, DiscordWhitelister.removeMessageWaitTime);
|
||||
// }
|
||||
// else if(o instanceof MessageEmbed)
|
||||
// {
|
||||
// if(DiscordWhitelister.removeUnnecessaryMessages)
|
||||
// textChannel.sendMessage((MessageEmbed) o).queue(message -> message.delete().queueAfter(timeToWait, TimeUnit.SECONDS));
|
||||
// else
|
||||
// textChannel.sendMessage((MessageEmbed) o).queue();
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
public static void QueueAndRemoveAfterSeconds(TextChannel textChannel, MessageEmbed messageEmbed)
|
||||
{
|
||||
if(DiscordWhitelister.removeUnnecessaryMessages)
|
||||
textChannel.sendMessage(messageEmbed).queue(message -> message.delete().queueAfter(DiscordWhitelister.removeMessageWaitTime, TimeUnit.SECONDS));
|
||||
else
|
||||
textChannel.sendMessage(messageEmbed).queue();
|
||||
}
|
||||
|
||||
public static void TempRemoveOriginalMessageAfterSeconds(MessageReceivedEvent messageReceivedEvent)
|
||||
{
|
||||
if(DiscordWhitelister.removeUnnecessaryMessages)
|
||||
RemoveMessageAfterSeconds(messageReceivedEvent, DiscordWhitelister.removeMessageWaitTime);
|
||||
}
|
||||
|
||||
// TODO: improve, not go through console commands
|
||||
// For ultra perms
|
||||
public static void AssignPermsToUser(String targetPlayerName, List<String> permsToAssign)
|
||||
|
@ -34,6 +34,7 @@ public class DiscordWhitelister extends JavaPlugin
|
||||
public static boolean useOnBanEvents = true;
|
||||
public static boolean useUltraPerms = false;
|
||||
public static boolean useOnWhitelistCommands = false;
|
||||
public static boolean removeUnnecessaryMessages = false;
|
||||
|
||||
public static boolean botEnabled;
|
||||
|
||||
@ -46,6 +47,8 @@ public class DiscordWhitelister extends JavaPlugin
|
||||
// For not counting vanished players when other players join/leave
|
||||
private static int vanishedPlayersCount;
|
||||
|
||||
public static int removeMessageWaitTime = 5;
|
||||
|
||||
@Override
|
||||
public void onEnable()
|
||||
{
|
||||
@ -121,6 +124,9 @@ public class DiscordWhitelister extends JavaPlugin
|
||||
showVanishedPlayersInCount = MainConfig.getMainConfig().getBoolean("show-vanished-players-in-player-count");
|
||||
useInGameAddRemoves = MainConfig.getMainConfig().getBoolean("add-in-game-adds-and-removes-to-list");
|
||||
useOnBanEvents = MainConfig.getMainConfig().getBoolean("use-on-ban-events");
|
||||
removeUnnecessaryMessages = MainConfig.getMainConfig().getBoolean("remove-unnecessary-messages-from-whitelist-channel");
|
||||
|
||||
removeMessageWaitTime = MainConfig.getMainConfig().getInt("seconds-to-remove-message-from-whitelist-channel");
|
||||
|
||||
// Check for UltraPerms first
|
||||
if(MainConfig.getMainConfig().getBoolean("assign-perms-with-ultra-perms"))
|
||||
|
@ -10,5 +10,5 @@ public class VersionInfo
|
||||
return "v." + getVersion();
|
||||
}
|
||||
|
||||
private static String version = "1.4.4";
|
||||
private static String version = "1.4.5";
|
||||
}
|
||||
|
@ -1,10 +1,7 @@
|
||||
package uk.co.angrybee.joe.commands.discord;
|
||||
|
||||
import net.dv8tion.jda.api.EmbedBuilder;
|
||||
import net.dv8tion.jda.api.entities.Member;
|
||||
import net.dv8tion.jda.api.entities.Role;
|
||||
import net.dv8tion.jda.api.entities.TextChannel;
|
||||
import net.dv8tion.jda.api.entities.User;
|
||||
import net.dv8tion.jda.api.entities.*;
|
||||
import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
|
||||
import uk.co.angrybee.joe.AuthorPermissions;
|
||||
import uk.co.angrybee.joe.DiscordClient;
|
||||
@ -20,6 +17,7 @@ import uk.co.angrybee.joe.stores.WhitelistedPlayers;
|
||||
import java.util.ArrayList;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Queue;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
|
||||
@ -36,7 +34,10 @@ public class CommandAdd
|
||||
{
|
||||
if(!DiscordWhitelister.useCustomMessages)
|
||||
{
|
||||
channel.sendMessage(DiscordClient.CreateEmbeddedMessage("You have been banned!", (author.getAsMention() + ", you cannot use this bot as you have been banned!"), DiscordClient.EmbedMessageType.FAILURE).build()).queue();
|
||||
MessageEmbed messageEmbed =
|
||||
DiscordClient.CreateEmbeddedMessage("You have been banned!", (author.getAsMention() + ", you cannot use this bot as you have been banned!"), DiscordClient.EmbedMessageType.FAILURE).build();
|
||||
|
||||
DiscordClient.QueueAndRemoveAfterSeconds(channel, messageEmbed);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -44,16 +45,16 @@ public class CommandAdd
|
||||
String customMessage = DiscordWhitelister.getCustomMessagesConfig().getString("banned-message");
|
||||
customMessage = customMessage.replaceAll("\\{Sender}", author.getAsMention()); // Only checking for {Sender}
|
||||
|
||||
channel.sendMessage(DiscordClient.CreateEmbeddedMessage(customTitle, customMessage, DiscordClient.EmbedMessageType.FAILURE).build()).queue();
|
||||
MessageEmbed messageEmbed = DiscordClient.CreateEmbeddedMessage(customTitle, customMessage, DiscordClient.EmbedMessageType.FAILURE).build();
|
||||
DiscordClient.QueueAndRemoveAfterSeconds(channel, messageEmbed);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
// Permission check
|
||||
if (!(authorPermissions.isUserCanAddRemove() || authorPermissions.isUserCanAdd() || DiscordClient.limitedWhitelistEnabled && authorPermissions.isUserHasLimitedAdd()))
|
||||
{
|
||||
channel.sendMessage(DiscordClient.CreateInsufficientPermsMessage(author)).queue();
|
||||
DiscordClient.QueueAndRemoveAfterSeconds(channel, DiscordClient.CreateInsufficientPermsMessage(author));
|
||||
return;
|
||||
}
|
||||
|
||||
@ -107,10 +108,12 @@ public class CommandAdd
|
||||
}
|
||||
exampleCommand.append("<minecraftUsername> <@discordMention>");
|
||||
|
||||
channel.sendMessage(DiscordClient.CreateEmbeddedMessage("Too many arguments",
|
||||
MessageEmbed messageEmbed = DiscordClient.CreateEmbeddedMessage("Too many arguments",
|
||||
(author.getAsMention() + ", expected 1 or 2 arguments but found " + amountOfArgs + ".\n" +
|
||||
"Example: " + exampleCommand.toString() + "\n\n **NOTE:** Only staff members may use the <@discordMention> parameter."),
|
||||
DiscordClient.EmbedMessageType.FAILURE).build()).queue();
|
||||
DiscordClient.EmbedMessageType.FAILURE).build();
|
||||
|
||||
DiscordClient.QueueAndRemoveAfterSeconds(channel, messageEmbed);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -135,9 +138,10 @@ public class CommandAdd
|
||||
{
|
||||
if(onlyHasLimitedAdd)
|
||||
{
|
||||
channel.sendMessage(DiscordClient.CreateEmbeddedMessage("Insufficient Permissions",
|
||||
(author.getAsMention() + ", only staff members can manually link Discord IDs. Please only enter your Minecraft name."), DiscordClient.EmbedMessageType.FAILURE).build()).queue();
|
||||
MessageEmbed messageEmbed = DiscordClient.CreateEmbeddedMessage("Insufficient Permissions",
|
||||
(author.getAsMention() + ", only staff members can manually link Discord IDs. Please only enter your Minecraft name."), DiscordClient.EmbedMessageType.FAILURE).build();
|
||||
|
||||
DiscordClient.QueueAndRemoveAfterSeconds(channel, messageEmbed);
|
||||
return;
|
||||
}
|
||||
else
|
||||
@ -161,10 +165,11 @@ public class CommandAdd
|
||||
|
||||
if(finalDiscordIdProvided && suppliedMember == null)
|
||||
{
|
||||
channel.sendMessage(DiscordClient.CreateEmbeddedMessage("Discord ID not found in Guild or is incorrect",
|
||||
MessageEmbed messageEmbed = DiscordClient.CreateEmbeddedMessage("Discord ID not found in Guild or is incorrect",
|
||||
(author.getAsMention() + ", the ID supplied (`" + discordIdStripped + "`) could not be located in this Discord Server/Guild."),
|
||||
DiscordClient.EmbedMessageType.FAILURE).build()).queue();
|
||||
DiscordClient.EmbedMessageType.FAILURE).build();
|
||||
|
||||
DiscordClient.QueueAndRemoveAfterSeconds(channel, messageEmbed);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -194,8 +199,9 @@ public class CommandAdd
|
||||
{
|
||||
if(!DiscordWhitelister.useCustomMessages)
|
||||
{
|
||||
channel.sendMessage(DiscordClient.CreateEmbeddedMessage("No Whitelists Remaining", (author.getAsMention() + ", unable to whitelist. You have **" + (DiscordClient.maxWhitelistAmount - timesWhitelisted)
|
||||
+ " out of " + DiscordClient.maxWhitelistAmount + "** whitelists remaining."), DiscordClient.EmbedMessageType.INFO).build()).queue();
|
||||
MessageEmbed messageEmbed = DiscordClient.CreateEmbeddedMessage("No Whitelists Remaining", (author.getAsMention() + ", unable to whitelist. You have **" + (DiscordClient.maxWhitelistAmount - timesWhitelisted)
|
||||
+ " out of " + DiscordClient.maxWhitelistAmount + "** whitelists remaining."), DiscordClient.EmbedMessageType.INFO).build();
|
||||
DiscordClient.QueueAndRemoveAfterSeconds(channel, messageEmbed);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -205,7 +211,8 @@ public class CommandAdd
|
||||
customMessage = customMessage.replaceAll("\\{RemainingWhitelists}", String.valueOf((DiscordClient.maxWhitelistAmount - timesWhitelisted)));
|
||||
customMessage = customMessage.replaceAll("\\{MaxWhitelistAmount}", String.valueOf(DiscordClient.maxWhitelistAmount));
|
||||
|
||||
channel.sendMessage(DiscordClient.CreateEmbeddedMessage(customTitle, customMessage, DiscordClient.EmbedMessageType.INFO).build()).queue();
|
||||
MessageEmbed messageEmbed = DiscordClient.CreateEmbeddedMessage(customTitle, customMessage, DiscordClient.EmbedMessageType.INFO).build();
|
||||
DiscordClient.QueueAndRemoveAfterSeconds(channel, messageEmbed);
|
||||
}
|
||||
|
||||
return;
|
||||
@ -216,7 +223,8 @@ public class CommandAdd
|
||||
|| !DiscordWhitelister.getUseCustomPrefixes() && splitMessage.length == DiscordClient.whitelistAddPrefix.length
|
||||
|| finalNameToAdd.isEmpty())
|
||||
{
|
||||
channel.sendMessage(DiscordClient.addCommandInfo).queue();
|
||||
if(!MainConfig.getMainConfig().getBoolean("hide-info-command-replies"))
|
||||
DiscordClient.QueueAndRemoveAfterSeconds(channel, DiscordClient.addCommandInfo);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -247,7 +255,7 @@ public class CommandAdd
|
||||
DiscordClient.AddWhitelistRemainingCount(embedBuilderInvalidChar, timesWhitelisted);
|
||||
}
|
||||
|
||||
channel.sendMessage(embedBuilderInvalidChar.build()).queue();
|
||||
DiscordClient.QueueAndRemoveAfterSeconds(channel, embedBuilderInvalidChar.build());
|
||||
return;
|
||||
}
|
||||
}
|
||||
@ -275,7 +283,7 @@ public class CommandAdd
|
||||
DiscordClient.AddWhitelistRemainingCount(embedBuilderLengthInvalid, timesWhitelisted);
|
||||
}
|
||||
|
||||
channel.sendMessage(embedBuilderLengthInvalid.build()).queue();
|
||||
DiscordClient.QueueAndRemoveAfterSeconds(channel, embedBuilderLengthInvalid.build());
|
||||
return;
|
||||
}
|
||||
}
|
||||
@ -303,7 +311,10 @@ public class CommandAdd
|
||||
{
|
||||
if(!DiscordWhitelister.useCustomMessages)
|
||||
{
|
||||
channel.sendMessage(DiscordClient.CreateEmbeddedMessage("User already on the whitelist", (author.getAsMention() + ", cannot add user as `" + finalNameToAdd + "` is already on the whitelist!"), DiscordClient.EmbedMessageType.INFO).build()).queue();
|
||||
MessageEmbed messageEmbed =
|
||||
DiscordClient.CreateEmbeddedMessage("User already on the whitelist",
|
||||
(author.getAsMention() + ", cannot add user as `" + finalNameToAdd + "` is already on the whitelist!"), DiscordClient.EmbedMessageType.INFO).build();
|
||||
DiscordClient.QueueAndRemoveAfterSeconds(channel, messageEmbed);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -312,7 +323,8 @@ public class CommandAdd
|
||||
customMessage = customMessage.replaceAll("\\{Sender}", author.getAsMention());
|
||||
customMessage = customMessage.replaceAll("\\{MinecraftUsername}", finalNameToAdd);
|
||||
|
||||
channel.sendMessage(DiscordClient.CreateEmbeddedMessage(customTitle, customMessage, DiscordClient.EmbedMessageType.INFO).build()).queue();
|
||||
MessageEmbed messageEmbed = DiscordClient.CreateEmbeddedMessage(customTitle, customMessage, DiscordClient.EmbedMessageType.INFO).build();
|
||||
DiscordClient.QueueAndRemoveAfterSeconds(channel, messageEmbed);
|
||||
}
|
||||
return;
|
||||
}
|
||||
@ -342,8 +354,7 @@ public class CommandAdd
|
||||
}
|
||||
|
||||
DiscordClient.AddWhitelistRemainingCount(embedBuilderRemovedByStaff, timesWhitelisted);
|
||||
|
||||
channel.sendMessage(embedBuilderRemovedByStaff.build()).queue();
|
||||
DiscordClient.QueueAndRemoveAfterSeconds(channel, embedBuilderRemovedByStaff.build());
|
||||
return;
|
||||
}
|
||||
else
|
||||
@ -384,7 +395,7 @@ public class CommandAdd
|
||||
|
||||
DiscordClient.AddWhitelistRemainingCount(embedBuilderRemovedByInGameStaff, timesWhitelisted);
|
||||
|
||||
channel.sendMessage(embedBuilderRemovedByInGameStaff.build()).queue();
|
||||
DiscordClient.QueueAndRemoveAfterSeconds(channel, embedBuilderRemovedByInGameStaff.build());
|
||||
return;
|
||||
}
|
||||
else
|
||||
@ -566,30 +577,30 @@ public class CommandAdd
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (onlyHasLimitedAdd || finalDiscordIdProvided)
|
||||
if (onlyHasLimitedAdd || finalDiscordIdProvided)
|
||||
{
|
||||
if(!finalDiscordIdProvided)
|
||||
{
|
||||
if(!finalDiscordIdProvided)
|
||||
{
|
||||
UserList.addRegisteredUser(author.getId(), finalNameToAdd);
|
||||
}
|
||||
else
|
||||
{
|
||||
UserList.addRegisteredUser(suppliedMember.getId(), finalNameToAdd);
|
||||
}
|
||||
|
||||
if(!finalDiscordIdProvided)
|
||||
DiscordWhitelister.getPluginLogger().info(author.getName() + "(" + author.getId() + ") successfully added " + finalNameToAdd
|
||||
+ " to the whitelist, " + (DiscordClient.maxWhitelistAmount - finalTimesWhitelisted) + " whitelists remaining.");
|
||||
else
|
||||
DiscordWhitelister.getPluginLogger().info(author.getName() + "(" + author.getId() + ") successfully added " + finalNameToAdd
|
||||
+ " to the whitelist and linked " + finalNameToAdd + " to "+ suppliedMember.getEffectiveName() + "(" + suppliedMember.getId() + ").");
|
||||
UserList.addRegisteredUser(author.getId(), finalNameToAdd);
|
||||
}
|
||||
else
|
||||
{
|
||||
UserList.addRegisteredUser(suppliedMember.getId(), finalNameToAdd);
|
||||
}
|
||||
|
||||
if(!finalDiscordIdProvided)
|
||||
DiscordWhitelister.getPluginLogger().info(author.getName() + "(" + author.getId() + ") successfully added " + finalNameToAdd
|
||||
+ " to the whitelist, " + (DiscordClient.maxWhitelistAmount - finalTimesWhitelisted) + " whitelists remaining.");
|
||||
else
|
||||
DiscordWhitelister.getPluginLogger().info(author.getName() + "(" + author.getId() + ") successfully added " + finalNameToAdd
|
||||
+ " to the whitelist and linked " + finalNameToAdd + " to "+ suppliedMember.getEffectiveName() + "(" + suppliedMember.getId() + ").");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
channel.sendMessage(embedBuilderWhitelistFailure.build()).queue();
|
||||
DiscordClient.QueueAndRemoveAfterSeconds(channel, embedBuilderWhitelistFailure.build());
|
||||
}
|
||||
return null;
|
||||
});
|
||||
|
@ -16,11 +16,11 @@ public class CommandInfo
|
||||
|
||||
if (authorPermissions.isUserCanUseCommand())
|
||||
{
|
||||
channel.sendMessage(DiscordClient.botInfo).queue();
|
||||
DiscordClient.QueueAndRemoveAfterSeconds(channel, DiscordClient.botInfo);
|
||||
}
|
||||
else
|
||||
{
|
||||
channel.sendMessage(DiscordClient.CreateInsufficientPermsMessage(author)).queue();
|
||||
DiscordClient.QueueAndRemoveAfterSeconds(channel, DiscordClient.CreateInsufficientPermsMessage(author));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -2,24 +2,24 @@ package uk.co.angrybee.joe.commands.discord;
|
||||
|
||||
import com.sun.org.apache.xpath.internal.operations.Bool;
|
||||
import net.dv8tion.jda.api.EmbedBuilder;
|
||||
import net.dv8tion.jda.api.entities.Member;
|
||||
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.*;
|
||||
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.DiscordClient;
|
||||
import uk.co.angrybee.joe.DiscordWhitelister;
|
||||
import uk.co.angrybee.joe.configs.MainConfig;
|
||||
import uk.co.angrybee.joe.stores.UserList;
|
||||
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.InputStream;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
public class CommandWhoIs
|
||||
{
|
||||
@ -28,11 +28,10 @@ public class CommandWhoIs
|
||||
AuthorPermissions authorPermissions = new AuthorPermissions(messageReceivedEvent);
|
||||
User author = messageReceivedEvent.getAuthor();
|
||||
TextChannel channel = messageReceivedEvent.getTextChannel();
|
||||
Member member = messageReceivedEvent.getMember();
|
||||
|
||||
if (!authorPermissions.isUserCanAddRemove() && !authorPermissions.isUserCanAdd())
|
||||
{
|
||||
channel.sendMessage(DiscordClient.CreateInsufficientPermsMessage(author)).queue();
|
||||
DiscordClient.QueueAndRemoveAfterSeconds(channel, DiscordClient.CreateInsufficientPermsMessage(author));
|
||||
return;
|
||||
}
|
||||
|
||||
@ -63,9 +62,11 @@ public class CommandWhoIs
|
||||
}
|
||||
exampleCommand.append("<minecraftUsername>");
|
||||
|
||||
channel.sendMessage(DiscordClient.CreateEmbeddedMessage("Too many arguments",
|
||||
MessageEmbed messageEmbed = DiscordClient.CreateEmbeddedMessage("Too many arguments",
|
||||
(author.getAsMention() + ", expected 1 argument but found " + amountOfArgs + ".\n" +
|
||||
"Example: " + exampleCommand.toString()), DiscordClient.EmbedMessageType.FAILURE).build()).queue();
|
||||
"Example: " + exampleCommand.toString()), DiscordClient.EmbedMessageType.FAILURE).build();
|
||||
|
||||
DiscordClient.QueueAndRemoveAfterSeconds(channel, messageEmbed);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -79,7 +80,10 @@ public class CommandWhoIs
|
||||
if(DiscordWhitelister.getUseCustomPrefixes() && splitMessage.length == DiscordClient.customWhoIsPrefix.length
|
||||
|| !DiscordWhitelister.getUseCustomPrefixes() && splitMessage.length == DiscordClient.whitelistWhoIsPrefix.length || nameToCheck.isEmpty())
|
||||
{
|
||||
channel.sendMessage(DiscordClient.whoIsInfo).queue();
|
||||
if(!MainConfig.getMainConfig().getBoolean("hide-info-command-replies"))
|
||||
return;
|
||||
|
||||
DiscordClient.QueueAndRemoveAfterSeconds(channel, DiscordClient.whoIsInfo);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -134,14 +138,16 @@ public class CommandWhoIs
|
||||
else
|
||||
DiscordWhitelister.getPluginLogger().warning("Failed to fetch avatar linked to Discord ID: " + targetDiscordId);
|
||||
|
||||
channel.sendMessage(idFoundMessage.build()).queue();
|
||||
DiscordClient.QueueAndRemoveAfterSeconds(channel, idFoundMessage.build());
|
||||
}
|
||||
else
|
||||
{
|
||||
channel.sendMessage(DiscordClient.CreateEmbeddedMessage(("Could not find an account linked to `" + nameToCheck + "`"),
|
||||
MessageEmbed messageEmbed = DiscordClient.CreateEmbeddedMessage(("Could not find an account linked to `" + nameToCheck + "`"),
|
||||
(author.getAsMention() + ", the name: `" + nameToCheck +
|
||||
"` could not be found in the users list. Please make sure that the Minecraft name is valid and whitelisted + linked to an ID before."),
|
||||
DiscordClient.EmbedMessageType.FAILURE).build()).queue();
|
||||
DiscordClient.EmbedMessageType.FAILURE).build();
|
||||
|
||||
DiscordClient.QueueAndRemoveAfterSeconds(channel, messageEmbed);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -130,6 +130,9 @@ public class CustomMessagesConfig
|
||||
|
||||
CheckEntry("whitelist-clear-failure-title", "No Entries to Remove");
|
||||
CheckEntry("whitelist-clear-failure-message", "{Sender}, you do not have any whitelisted entries to remove. ");
|
||||
|
||||
CheckEntry("command-channel-title", "This Channel is for Commands Only");
|
||||
CheckEntry("command-channel-message", "{Sender}, this channel is for commands only, please use another channel.");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -143,6 +143,16 @@ public class MainConfig
|
||||
|
||||
CheckEntry("un-whitelist-on-server-leave", true);
|
||||
|
||||
CheckEntry("remove-unnecessary-messages-from-whitelist-channel", false);
|
||||
|
||||
CheckEntry("seconds-to-remove-message-from-whitelist-channel", 5);
|
||||
|
||||
CheckEntry("set-removed-message-colour-to-red", false);
|
||||
|
||||
CheckEntry("show-warning-in-command-channel", false);
|
||||
|
||||
CheckEntry("hide-info-command-replies", false);
|
||||
|
||||
// Remove old role entry if found, move role to new array (for people with v1.3.6 or below)
|
||||
if(whitelisterBotConfig.get("whitelisted-role") != null)
|
||||
{
|
||||
|
@ -1,5 +1,5 @@
|
||||
name: DiscordWhitelister
|
||||
version: 1.4.4
|
||||
version: 1.4.5
|
||||
author: Joe Shimell
|
||||
main: uk.co.angrybee.joe.DiscordWhitelister
|
||||
description: Discord Whitelister.
|
||||
|
Loading…
Reference in New Issue
Block a user