diff --git a/src/main/java/wtf/beatrice/hidekobot/Cache.java b/src/main/java/wtf/beatrice/hidekobot/Cache.java
index bf54a36..7a1385e 100644
--- a/src/main/java/wtf/beatrice/hidekobot/Cache.java
+++ b/src/main/java/wtf/beatrice/hidekobot/Cache.java
@@ -22,7 +22,8 @@ import java.util.concurrent.ScheduledExecutorService;
public class Cache
{
- private Cache() {
+ private Cache()
+ {
throw new IllegalStateException("Utility class");
}
@@ -70,7 +71,7 @@ public class Cache
private static String botApplicationId = "";
// discord api returns a broken image if you don't use specific sizes (powers of 2), so we limit it to these
- private static final int[] supportedAvatarResolutions = { 16, 32, 64, 128, 256, 512, 1024 };
+ private static final int[] supportedAvatarResolutions = {16, 32, 64, 128, 256, 512, 1024};
/**
* Get an array of all the Discord-supported avatar resolutions.
@@ -78,7 +79,10 @@ public class Cache
*
* @return array of supported resolutions.
*/
- public static int[] getSupportedAvatarResolutions() { return supportedAvatarResolutions; }
+ public static int[] getSupportedAvatarResolutions()
+ {
+ return supportedAvatarResolutions;
+ }
/**
@@ -86,7 +90,10 @@ public class Cache
*
* @return a boolean which is true if the bot is in verbose-mode
*/
- public static synchronized boolean isVerbose() { return verbose; }
+ public static synchronized boolean isVerbose()
+ {
+ return verbose;
+ }
/**
* Set the bot's verbosity status at runtime.
@@ -98,13 +105,13 @@ public class Cache
{
verbose = v;
- if(verbosityLogger != null)
+ if (verbosityLogger != null)
{
HidekoBot.getAPI().removeEventListener(verbosityLogger);
verbosityLogger = null;
}
- if(v)
+ if (v)
{
verbosityLogger = new MessageLogger();
HidekoBot.getAPI().addEventListener(verbosityLogger);
@@ -116,7 +123,8 @@ public class Cache
*
* @return a long of the account's id
*/
- public static long getBotOwnerId() {
+ public static long getBotOwnerId()
+ {
return configurationSource == null ? 0L : (Long) configurationSource.getConfigValue(ConfigurationEntry.BOT_OWNER_ID);
}
@@ -126,7 +134,8 @@ public class Cache
*
* @return a String of the bot's token.
*/
- public static String getBotToken() {
+ public static String getBotToken()
+ {
return configurationSource == null ? null : (String) configurationSource.getConfigValue(ConfigurationEntry.BOT_TOKEN);
}
@@ -136,8 +145,11 @@ public class Cache
*
* @return a long of the account's id
*/
-
- public static long getBotMaintainerId() { return BOT_MAINTAINER_ID; }
+
+ public static long getBotMaintainerId()
+ {
+ return BOT_MAINTAINER_ID;
+ }
/**
* Set the bot's application id.
@@ -154,14 +166,18 @@ public class Cache
*
* @return a string of the bot's application id
*/
- public static String getBotApplicationId() { return botApplicationId; }
+ public static String getBotApplicationId()
+ {
+ return botApplicationId;
+ }
/**
* Function to generate an invite link for the bot
*
* @return a string containing the invite link
*/
- public static String getInviteUrl() {
+ public static String getInviteUrl()
+ {
return DEFAULT_INVITE_LINK.replace("%userid%", botApplicationId);
}
@@ -180,7 +196,10 @@ public class Cache
*
* @return the DatabaseSource instance.
*/
- public static @Nullable DatabaseSource getDatabaseSource() { return databaseSource; }
+ public static @Nullable DatabaseSource getDatabaseSource()
+ {
+ return databaseSource;
+ }
/**
* Set the properties source instance loaded from the JAR archive.
@@ -197,24 +216,34 @@ public class Cache
*
* @return the String of the DateTimeFormatter format.
*/
- public static String getExpiryTimestampFormat(){ return EXPIRY_TIMESTAMP_FORMAT; }
+ public static String getExpiryTimestampFormat()
+ {
+ return EXPIRY_TIMESTAMP_FORMAT;
+ }
/**
* Get the amount of seconds after which a message expires.
*
* @return long value of the expiry seconds.
*/
- public static long getExpiryTimeSeconds() { return EXPIRY_TIME_SECONDS; }
+ public static long getExpiryTimeSeconds()
+ {
+ return EXPIRY_TIME_SECONDS;
+ }
- public static String getBotName() { return BOT_NAME; }
+ public static String getBotName()
+ {
+ return BOT_NAME;
+ }
/**
* Get the bot's version.
*
* @return a String of the bot version.
*/
- public static String getBotVersion() {
+ public static String getBotVersion()
+ {
return propertiesSource.getProperty("bot.version");
}
@@ -223,7 +252,8 @@ public class Cache
*
* @return a String containing the base URL of the repository, including a trailing slash.
*/
- public static String getRepositoryUrl() {
+ public static String getRepositoryUrl()
+ {
String url = propertiesSource.getProperty("repo.base_url");
return url.endsWith("/") ? url : url + "/";
}
@@ -233,16 +263,19 @@ public class Cache
*
* @return the Color object.
*/
- public static Color getBotColor() {
+ public static Color getBotColor()
+ {
Color defaultColor = Color.PINK;
- if(configurationSource == null) return defaultColor;
+ if (configurationSource == null) return defaultColor;
String colorName = (String) configurationSource.getConfigValue(ConfigurationEntry.BOT_COLOR);
Color color = null;
- try {
+ try
+ {
Field field = Color.class.getField(colorName);
- color = (Color)field.get(null);
- } catch (RuntimeException | NoSuchFieldException | IllegalAccessException e) {
+ color = (Color) field.get(null);
+ } catch (RuntimeException | NoSuchFieldException | IllegalAccessException e)
+ {
LOGGER.error("Unknown color: {}", colorName);
}
return color == null ? defaultColor : color;
@@ -251,21 +284,36 @@ public class Cache
//todo javadocs
public static void setSlashCommandListener(SlashCommandListener commandListener)
- { slashCommandListener = commandListener; }
+ {
+ slashCommandListener = commandListener;
+ }
- public static SlashCommandListener getSlashCommandListener() { return slashCommandListener; }
+ public static SlashCommandListener getSlashCommandListener()
+ {
+ return slashCommandListener;
+ }
public static void setSlashCommandCompletionListener(SlashCommandCompletionListener commandCompletionListener)
- { slashCommandCompletionListener = commandCompletionListener; }
+ {
+ slashCommandCompletionListener = commandCompletionListener;
+ }
- public static SlashCommandCompletionListener getSlashCommandCompletionListener() { return slashCommandCompletionListener; }
+ public static SlashCommandCompletionListener getSlashCommandCompletionListener()
+ {
+ return slashCommandCompletionListener;
+ }
public static void setMessageCommandListener(MessageCommandListener commandListener)
- { messageCommandListener = commandListener; }
+ {
+ messageCommandListener = commandListener;
+ }
- public static MessageCommandListener getMessageCommandListener() { return messageCommandListener; }
+ public static MessageCommandListener getMessageCommandListener()
+ {
+ return messageCommandListener;
+ }
/**
* Set the bot's startup time. Generally only used at boot time.
@@ -273,7 +321,9 @@ public class Cache
* @param time a LocalDateTime of the startup moment.
*/
public static void setStartupTime(LocalDateTime time)
- { startupTime = time; }
+ {
+ startupTime = time;
+ }
/**
@@ -281,37 +331,54 @@ public class Cache
*
* @return a LocalDateTime object of the startup instant.
*/
- public static LocalDateTime getStartupTime() { return startupTime; }
+ public static LocalDateTime getStartupTime()
+ {
+ return startupTime;
+ }
/**
* Get the time of when the bot was created.
*
* @return a LocalDateTime object of the first commit's instant.
*/
- public static LocalDateTime getBotBirthDate() { return botBirthDate; }
+ public static LocalDateTime getBotBirthDate()
+ {
+ return botBirthDate;
+ }
- public static String getFullHeartBeatLink() {
+ public static String getFullHeartBeatLink()
+ {
return configurationSource == null ? null : (String) configurationSource.getConfigValue(ConfigurationEntry.HEARTBEAT_LINK);
}
+
//todo javadocs
- public static String getExecPath() { return EXEC_PATH; }
+ public static String getExecPath()
+ {
+ return EXEC_PATH;
+ }
/*private static ConfigurationSource getConfigurationSource()
{ return configurationSource; }*/
- public static String getRandomOrgApiKey() {
+ public static String getRandomOrgApiKey()
+ {
return configurationSource == null ? null : (String) configurationSource.getConfigValue(ConfigurationEntry.RANDOM_ORG_API_KEY);
}
public static void setConfigurationSource(ConfigurationSource configurationSource)
- { Cache.configurationSource = configurationSource; }
+ {
+ Cache.configurationSource = configurationSource;
+ }
/**
* Get the bot's prefix
*
* @return a String of the bot's prefix.
*/
- public static String getBotPrefix() { return BOT_PREFIX; }
+ public static String getBotPrefix()
+ {
+ return BOT_PREFIX;
+ }
public static void cacheLoveCalculatorValue(String userId1, String userId2, int value)
{
@@ -326,7 +393,7 @@ public class Cache
String merged2 = userId2 + "|" + userId1;
Integer value = null;
value = loveCalculatorValues.get(merged1);
- if(value == null) value = loveCalculatorValues.get(merged2);
+ if (value == null) value = loveCalculatorValues.get(merged2);
return value;
}
@@ -336,7 +403,8 @@ public class Cache
loveCalculatorValues.remove(userId2 + "|" + userId1);
}
- public static ScheduledExecutorService getTaskScheduler() {
+ public static ScheduledExecutorService getTaskScheduler()
+ {
return taskScheduler;
}
diff --git a/src/main/java/wtf/beatrice/hidekobot/HidekoBot.java b/src/main/java/wtf/beatrice/hidekobot/HidekoBot.java
index ee150e6..cffb67e 100644
--- a/src/main/java/wtf/beatrice/hidekobot/HidekoBot.java
+++ b/src/main/java/wtf/beatrice/hidekobot/HidekoBot.java
@@ -56,7 +56,7 @@ public class HidekoBot
// check loaded bot token
String botToken = Cache.getBotToken();
- if(botToken == null || botToken.isEmpty())
+ if (botToken == null || botToken.isEmpty())
{
LOGGER.error("Invalid bot token!");
shutdown();
@@ -76,12 +76,12 @@ public class HidekoBot
);
jda = jdaBuilder.build().awaitReady();
- } catch (InterruptedException e) {
+ } catch (InterruptedException e)
+ {
LOGGER.error(e.getMessage()); // print the error message, omit the stack trace.
Thread.currentThread().interrupt(); // send interrupt to the thread.
shutdown(); // if we failed connecting and authenticating, then quit.
- }
- catch (Exception e)
+ } catch (Exception e)
{
LOGGER.error(e.getMessage()); // print the error message, omit the stack trace.
shutdown(); // if we failed connecting and authenticating, then quit.
@@ -96,19 +96,20 @@ public class HidekoBot
// if there is at least one arg, then iterate through them because we have additional things to do.
// we are doing this at the end because we might need the API to be already initialized for some things.
- if(args.length > 0) {
+ if (args.length > 0)
+ {
List argsList = new ArrayList<>(Arrays.asList(args));
// NOTE: do not replace with enhanced for, since we might need
// to know what position we're at or do further elaboration of the string.
// we were using this for api key parsing in the past.
- for(int i = 0; i < argsList.size(); i++)
+ for (int i = 0; i < argsList.size(); i++)
{
String arg = argsList.get(i);
- if(arg.equals("verbose")) Cache.setVerbose(true);
- if(arg.equals("refresh")) forceUpdateCommands = true;
+ if (arg.equals("verbose")) Cache.setVerbose(true);
+ if (arg.equals("refresh")) forceUpdateCommands = true;
}
}
@@ -117,7 +118,7 @@ public class HidekoBot
boolean enableRandomSeedUpdaterTask = false;
// initialize random.org object if API key is provided
{
- if(RandomUtil.isRandomOrgKeyValid())
+ if (RandomUtil.isRandomOrgKeyValid())
{
LOGGER.info("Enabling Random.org integration... This might take a while!");
RandomUtil.initRandomOrg();
@@ -187,7 +188,8 @@ public class HidekoBot
// update slash commands (delayed)
final boolean finalForceUpdateCommands = forceUpdateCommands;
- try (ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor()) {
+ try (ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor())
+ {
executor.schedule(() -> CommandUtil.updateSlashCommands(finalForceUpdateCommands),
1, TimeUnit.SECONDS);
}
@@ -199,7 +201,7 @@ public class HidekoBot
LOGGER.info("Connecting to database...");
String dbFilePath = Cache.getExecPath() + File.separator + "db.sqlite"; // in current directory
DatabaseSource databaseSource = new DatabaseSource(dbFilePath);
- if(databaseSource.connect() && databaseSource.initDb())
+ if (databaseSource.connect() && databaseSource.initDb())
{
LOGGER.info("Database connection initialized!");
Cache.setDatabaseSourceInstance(databaseSource);
@@ -207,7 +209,8 @@ public class HidekoBot
// load data here...
LOGGER.info("Database data loaded into memory!");
- } else {
+ } else
+ {
LOGGER.error("Error initializing database connection!");
}
@@ -219,7 +222,7 @@ public class HidekoBot
scheduler.scheduleAtFixedRate(heartBeatTask, 10L, 30L, TimeUnit.SECONDS); //every 30 seconds
StatusUpdateTask statusUpdateTask = new StatusUpdateTask();
scheduler.scheduleAtFixedRate(statusUpdateTask, 0L, 60L * 5L, TimeUnit.SECONDS); // every 5 minutes
- if(enableRandomSeedUpdaterTask)
+ if (enableRandomSeedUpdaterTask)
{
RandomOrgSeedTask randomSeedTask = new RandomOrgSeedTask();
scheduler.scheduleAtFixedRate(randomSeedTask, 15L, 15L, TimeUnit.MINUTES); // every 15 minutes
@@ -240,6 +243,7 @@ public class HidekoBot
LOGGER.info("Invite Link: {}", Cache.getInviteUrl());
}
+
public static JDA getAPI()
{
return jda;
@@ -254,7 +258,7 @@ public class HidekoBot
private static void preShutdown()
{
LOGGER.warn("WARNING! Shutting down!");
- if(jda != null) jda.shutdown();
+ if (jda != null) jda.shutdown();
}
}
diff --git a/src/main/java/wtf/beatrice/hidekobot/commands/base/Alias.java b/src/main/java/wtf/beatrice/hidekobot/commands/base/Alias.java
index c8f3014..55ec155 100644
--- a/src/main/java/wtf/beatrice/hidekobot/commands/base/Alias.java
+++ b/src/main/java/wtf/beatrice/hidekobot/commands/base/Alias.java
@@ -6,7 +6,8 @@ import java.util.LinkedList;
public class Alias
{
- private Alias() {
+ private Alias()
+ {
throw new IllegalStateException("Utility class");
}
@@ -14,11 +15,11 @@ public class Alias
{
LinkedList aliases = command.getCommandLabels();
StringBuilder aliasesStringBuilder = new StringBuilder();
- for(int i = 0; i < aliases.size(); i++)
+ for (int i = 0; i < aliases.size(); i++)
{
aliasesStringBuilder.append("`").append(aliases.get(i)).append("`");
- if(i + 1 != aliases.size())
+ if (i + 1 != aliases.size())
aliasesStringBuilder.append(", "); // separate with comma except on last iteration
}
diff --git a/src/main/java/wtf/beatrice/hidekobot/commands/base/BotInfo.java b/src/main/java/wtf/beatrice/hidekobot/commands/base/BotInfo.java
index c9442d3..977421b 100644
--- a/src/main/java/wtf/beatrice/hidekobot/commands/base/BotInfo.java
+++ b/src/main/java/wtf/beatrice/hidekobot/commands/base/BotInfo.java
@@ -13,7 +13,8 @@ import java.util.List;
public class BotInfo
{
- private BotInfo() {
+ private BotInfo()
+ {
throw new IllegalStateException("Utility class");
}
@@ -25,7 +26,7 @@ public class BotInfo
// thumbnail
String botAvatarUrl = HidekoBot.getAPI().getSelfUser().getAvatarUrl();
- if(botAvatarUrl != null) embedBuilder.setThumbnail(botAvatarUrl);
+ if (botAvatarUrl != null) embedBuilder.setThumbnail(botAvatarUrl);
// help field
long ownerId = Cache.getBotOwnerId();
@@ -37,12 +38,12 @@ public class BotInfo
// type-specific commands list field
StringBuilder commandsListBuilder = new StringBuilder();
- commandsListBuilder.append(commandLabels.size()).append( " total - ");
- for(int i = 0; i < commandLabels.size(); i++)
+ commandsListBuilder.append(commandLabels.size()).append(" total - ");
+ for (int i = 0; i < commandLabels.size(); i++)
{
commandsListBuilder.append("`").append(commandLabels.get(i)).append("`");
- if(i + 1 != commandLabels.size()) // don't add comma in last iteration
+ if (i + 1 != commandLabels.size()) // don't add comma in last iteration
{
commandsListBuilder.append(", ");
}
@@ -55,9 +56,10 @@ public class BotInfo
// message commands info field
String messageCommandsInfo;
- if(Cache.getMessageCommandListener() == null)
+ if (Cache.getMessageCommandListener() == null)
messageCommandsInfo = "❌ disabled";
- else {
+ else
+ {
messageCommandsInfo = "✅ available";
commandsCount += Cache.getMessageCommandListener().getRegisteredCommands().size();
}
@@ -65,9 +67,10 @@ public class BotInfo
// slash commands info field
String slashCommandsInfo;
- if(Cache.getMessageCommandListener() == null)
+ if (Cache.getMessageCommandListener() == null)
slashCommandsInfo = "❌ disabled";
- else {
+ else
+ {
slashCommandsInfo = "✅ available";
commandsCount += Cache.getSlashCommandListener().getRegisteredCommands().size();
}
@@ -75,10 +78,11 @@ public class BotInfo
// random.org integration field
String randomOrgInfo;
- if(RandomUtil.isRandomOrgKeyValid())
+ if (RandomUtil.isRandomOrgKeyValid())
{
randomOrgInfo = "✅ connected";
- } else {
+ } else
+ {
randomOrgInfo = "❌ disabled";
}
embedBuilder.addField("Random.org", randomOrgInfo, true);
diff --git a/src/main/java/wtf/beatrice/hidekobot/commands/base/ClearChat.java b/src/main/java/wtf/beatrice/hidekobot/commands/base/ClearChat.java
index b3844f7..09b57cc 100644
--- a/src/main/java/wtf/beatrice/hidekobot/commands/base/ClearChat.java
+++ b/src/main/java/wtf/beatrice/hidekobot/commands/base/ClearChat.java
@@ -14,34 +14,42 @@ import java.util.List;
public class ClearChat
{
- private ClearChat() {
+ private ClearChat()
+ {
throw new IllegalStateException("Utility class");
}
- public static String getLabel() {
+ public static String getLabel()
+ {
return "clear";
}
- public static String getDescription() {
+ public static String getDescription()
+ {
return "Clear the current channel's chat.";
}
- public static Permission getPermission() {
+ public static Permission getPermission()
+ {
return Permission.MESSAGE_MANAGE;
}
public static String checkDMs(Channel channel)
{
- if(!(channel instanceof TextChannel))
- { return "\uD83D\uDE22 Sorry! I can't delete messages here."; }
+ if (!(channel instanceof TextChannel))
+ {
+ return "\uD83D\uDE22 Sorry! I can't delete messages here.";
+ }
return null;
}
public static String checkDeleteAmount(int toDeleteAmount)
{
- if(toDeleteAmount <= 0)
- { return "\uD83D\uDE22 Sorry, I can't delete that amount of messages!"; }
+ if (toDeleteAmount <= 0)
+ {
+ return "\uD83D\uDE22 Sorry, I can't delete that amount of messages!";
+ }
return null;
}
@@ -65,7 +73,7 @@ public class ClearChat
//if there are some messages left, but less than , we need one more iterations.
int remainder = toDeleteAmount % limit;
- if(remainder != 0) iterations++;
+ if (remainder != 0) iterations++;
// set the starting point.
long messageId = startingMessageId;
@@ -74,59 +82,62 @@ public class ClearChat
boolean outOfBounds = false;
// do iterate.
- for(int iteration = 0; iteration < iterations; iteration++)
+ for (int iteration = 0; iteration < iterations; iteration++)
{
- if(outOfBounds) break;
+ if (outOfBounds) break;
// set how many messages to delete for this iteration (usually unless there's a remainder)
int iterationSize = limit;
// if we are at the last iteration... check if we have or fewer messages to delete
- if(iteration+1 == iterations && remainder != 0) {
+ if (iteration + 1 == iterations && remainder != 0)
+ {
iterationSize = remainder;
}
- if(iterationSize == 1)
+ if (iterationSize == 1)
{
// grab the message
Message toDelete = channel.retrieveMessageById(messageId).complete();
//only delete one message
- if(toDelete != null) toDelete.delete().queue();
+ if (toDelete != null) toDelete.delete().queue();
else outOfBounds = true;
// increase deleted counter by 1
deleted++;
- } else {
+ } else
+ {
// get the last messages.
MessageHistory.MessageRetrieveAction action = channel.getHistoryBefore(messageId, iterationSize - 1);
// note: first one is the most recent, last one is the oldest message.
List messages = new ArrayList<>();
// (we are skipping first iteration since it would return an error, given that the id is the slash command and not a message)
- if(iteration!=0) messages.add(channel.retrieveMessageById(messageId).complete());
+ if (iteration != 0) messages.add(channel.retrieveMessageById(messageId).complete());
messages.addAll(action.complete().getRetrievedHistory());
// check if we only have one or zero messages left (trying to delete more than possible)
- if(messages.size() <= 1)
+ if (messages.size() <= 1)
{
outOfBounds = true;
- } else {
+ } else
+ {
// before deleting, we need to grab the message's id for next iteration.
action = channel.getHistoryBefore(messages.getLast().getIdLong(), 1);
List previousMessage = action.complete().getRetrievedHistory();
// if that message exists (we are not out of bounds)... store it
- if(!previousMessage.isEmpty()) messageId = previousMessage.getFirst().getIdLong();
+ if (!previousMessage.isEmpty()) messageId = previousMessage.getFirst().getIdLong();
else outOfBounds = true;
}
// queue messages for deletion
- if(messages.size() == 1)
+ if (messages.size() == 1)
{
messages.getFirst().delete().queue();
- }
- else if(!messages.isEmpty())
+ } else if (!messages.isEmpty())
{
- try {
+ try
+ {
((TextChannel) channel).deleteMessages(messages).complete();
/* alternatively, we could use purgeMessages, which is smarter...
however, it also tries to delete messages older than 2 weeks
@@ -156,18 +167,22 @@ public class ClearChat
public static String parseAmount(int deleted)
{
- if(deleted < 1)
+ if (deleted < 1)
{
return "\uD83D\uDE22 Couldn't clear any message!";
- } else if(deleted == 1)
+ } else if (deleted == 1)
{
return "✂ Cleared 1 message!";
- } else {
+ } else
+ {
return "✂ Cleared " + deleted + " messages!";
}
}
// cap the amount to avoid abuse.
- public static int getMaxAmount() { return 1000; }
+ public static int getMaxAmount()
+ {
+ return 1000;
+ }
}
diff --git a/src/main/java/wtf/beatrice/hidekobot/commands/base/CoinFlip.java b/src/main/java/wtf/beatrice/hidekobot/commands/base/CoinFlip.java
index 46ef21f..2ce7cbd 100644
--- a/src/main/java/wtf/beatrice/hidekobot/commands/base/CoinFlip.java
+++ b/src/main/java/wtf/beatrice/hidekobot/commands/base/CoinFlip.java
@@ -14,11 +14,13 @@ import java.util.List;
public class CoinFlip
{
- private CoinFlip() {
+ private CoinFlip()
+ {
throw new IllegalStateException("Utility class");
}
- public static Button getReflipButton() {
+ public static Button getReflipButton()
+ {
return Button.primary("coinflip_reflip", "Flip again")
.withEmoji(Emoji.fromUnicode("\uD83E\uDE99"));
}
@@ -28,10 +30,11 @@ public class CoinFlip
int rand = RandomUtil.getRandomNumber(0, 1);
String msg;
- if(rand == 1)
+ if (rand == 1)
{
msg = ":coin: It's **Heads**!";
- } else {
+ } else
+ {
msg = "It's **Tails**! :coin:";
}
@@ -41,7 +44,7 @@ public class CoinFlip
public static void buttonReFlip(ButtonInteractionEvent event)
{
// check if the user interacting is the same one who ran the command
- if(!(Cache.getDatabaseSource().isUserTrackedFor(event.getUser().getId(), event.getMessageId())))
+ if (!(Cache.getDatabaseSource().isUserTrackedFor(event.getUser().getId(), event.getMessageId())))
{
event.reply("❌ You did not run this command!").setEphemeral(true).queue();
return;
@@ -59,7 +62,8 @@ public class CoinFlip
{
// set the command as expiring and restrict it to the user who ran it
trackAndRestrict(message, event.getUser());
- }, (error) -> {});
+ }, (error) -> {
+ });
}
public static void trackAndRestrict(Message replyMessage, User user)
diff --git a/src/main/java/wtf/beatrice/hidekobot/commands/base/DiceRoll.java b/src/main/java/wtf/beatrice/hidekobot/commands/base/DiceRoll.java
index 827b9ba..7a72f97 100644
--- a/src/main/java/wtf/beatrice/hidekobot/commands/base/DiceRoll.java
+++ b/src/main/java/wtf/beatrice/hidekobot/commands/base/DiceRoll.java
@@ -15,7 +15,8 @@ import java.util.UUID;
public class DiceRoll
{
- private DiceRoll() {
+ private DiceRoll()
+ {
throw new IllegalStateException("Utility class");
}
@@ -30,25 +31,26 @@ public class DiceRoll
UUID lastPushedDice = null;
int totalRolls = 0;
- for(String arg : args)
+ for (String arg : args)
{
- if(totalRolls > 200)
+ if (totalRolls > 200)
{
return new MessageResponse("Too many total rolls!", null);
}
- if(arg.matches(amountRegex))
+ if (arg.matches(amountRegex))
{
currentAmount = Integer.parseInt(arg);
- if(currentDice == null)
+ if (currentDice == null)
{
currentDice = new Dice(6);
- } else {
+ } else
+ {
currentDice = new Dice(currentDice);
}
- if(currentAmount > 100)
+ if (currentAmount > 100)
{
return new MessageResponse("Too many rolls (`" + currentAmount + "`)!", null);
}
@@ -56,25 +58,24 @@ public class DiceRoll
lastPushedDice = currentDice.getUUID();
dicesToRoll.put(currentDice, currentAmount);
totalRolls += currentAmount;
- }
- else if(arg.matches(diceRegex))
+ } else if (arg.matches(diceRegex))
{
int sides = Integer.parseInt(arg.substring(1));
- if(sides > 10000)
+ if (sides > 10000)
{
return new MessageResponse("Too many sides (`" + sides + "`)!", null);
}
- if(args.length == 1)
+ if (args.length == 1)
{
dicesToRoll.put(new Dice(sides), 1);
totalRolls++;
} else
{
- if(currentDice != null)
+ if (currentDice != null)
{
- if(lastPushedDice == null || !lastPushedDice.equals(currentDice.getUUID()))
+ if (lastPushedDice == null || !lastPushedDice.equals(currentDice.getUUID()))
{
dicesToRoll.put(currentDice, 1);
lastPushedDice = currentDice.getUUID();
@@ -87,16 +88,16 @@ public class DiceRoll
}
}
- if(lastPushedDice == null)
+ if (lastPushedDice == null)
{
- if(currentDice != null)
+ if (currentDice != null)
{
dicesToRoll.put(currentDice, 1);
totalRolls++;
}
} else
{
- if(!lastPushedDice.equals(currentDice.getUUID()))
+ if (!lastPushedDice.equals(currentDice.getUUID()))
{
dicesToRoll.put(new Dice(currentDice), 1);
totalRolls++;
@@ -106,19 +107,19 @@ public class DiceRoll
LinkedList rolledDices = new LinkedList<>();
// in case no dice was specified (or invalid), roll a standard 6-sided dice.
- if(dicesToRoll.isEmpty())
+ if (dicesToRoll.isEmpty())
{
Dice standardDice = new Dice(6);
dicesToRoll.put(standardDice, 1);
totalRolls = 1;
}
- for(Map.Entry entry : dicesToRoll.entrySet())
+ for (Map.Entry entry : dicesToRoll.entrySet())
{
Dice dice = entry.getKey();
Integer rollsToMake = entry.getValue();
-
- for(int roll = 0; roll < rollsToMake; roll++)
+
+ for (int roll = 0; roll < rollsToMake; roll++)
{
dice.roll();
rolledDices.add(new Dice(dice));
@@ -131,20 +132,23 @@ public class DiceRoll
embedBuilder.setAuthor(author.getAsTag(), null, author.getAvatarUrl());
embedBuilder.setTitle("Dice Roll");
- if(RandomUtil.isRandomOrgKeyValid())
+ if (RandomUtil.isRandomOrgKeyValid())
embedBuilder.setFooter("Seed provided by random.org");
StringBuilder message = new StringBuilder();
int total = 0;
int previousDiceSides = 0;
- for (Dice dice : rolledDices) {
+ for (Dice dice : rolledDices)
+ {
int diceSize = dice.getSides();
- if (previousDiceSides != diceSize) {
+ if (previousDiceSides != diceSize)
+ {
message.append("\nd").append(diceSize).append(": ");
previousDiceSides = diceSize;
- } else if (previousDiceSides != 0) {
+ } else if (previousDiceSides != 0)
+ {
message.append(", ");
}
@@ -154,7 +158,7 @@ public class DiceRoll
}
// discord doesn't allow embed fields to be longer than 1024 and errors out
- if(message.length() > 1024)
+ if (message.length() > 1024)
{
return new MessageResponse("Too many rolls!", null);
}
diff --git a/src/main/java/wtf/beatrice/hidekobot/commands/base/Invite.java b/src/main/java/wtf/beatrice/hidekobot/commands/base/Invite.java
index e754214..1ad237d 100644
--- a/src/main/java/wtf/beatrice/hidekobot/commands/base/Invite.java
+++ b/src/main/java/wtf/beatrice/hidekobot/commands/base/Invite.java
@@ -10,7 +10,8 @@ import wtf.beatrice.hidekobot.HidekoBot;
public class Invite
{
- private Invite() {
+ private Invite()
+ {
throw new IllegalStateException("Utility class");
}
@@ -22,7 +23,7 @@ public class Invite
{
embedBuilder.setColor(Cache.getBotColor());
String avatarUrl = HidekoBot.getAPI().getSelfUser().getAvatarUrl();
- if(avatarUrl != null) embedBuilder.setThumbnail(avatarUrl);
+ if (avatarUrl != null) embedBuilder.setThumbnail(avatarUrl);
embedBuilder.setTitle("Invite");
embedBuilder.appendDescription("Click on the button below to invite " +
Cache.getBotName() +
diff --git a/src/main/java/wtf/beatrice/hidekobot/commands/base/LoveCalculator.java b/src/main/java/wtf/beatrice/hidekobot/commands/base/LoveCalculator.java
index 871c160..8f02bd3 100644
--- a/src/main/java/wtf/beatrice/hidekobot/commands/base/LoveCalculator.java
+++ b/src/main/java/wtf/beatrice/hidekobot/commands/base/LoveCalculator.java
@@ -11,7 +11,8 @@ import java.util.concurrent.TimeUnit;
public class LoveCalculator
{
- private LoveCalculator() {
+ private LoveCalculator()
+ {
throw new IllegalStateException("Utility class");
}
@@ -21,7 +22,7 @@ public class LoveCalculator
String userId2 = user2.getId();
Integer loveAmount = Cache.getLoveCalculatorValue(userId1, userId2);
- if(loveAmount == null)
+ if (loveAmount == null)
{
loveAmount = RandomUtil.getRandomNumber(0, 100);
Cache.cacheLoveCalculatorValue(userId1, userId2, loveAmount);
@@ -30,9 +31,9 @@ public class LoveCalculator
}
String formattedAmount = loveAmount + "%";
- if(loveAmount <= 30) formattedAmount += "... \uD83D\uDE22";
- else if(loveAmount < 60) formattedAmount += "! \uD83E\uDDD0";
- else if(loveAmount < 75) formattedAmount += "!!! \uD83E\uDD73";
+ if (loveAmount <= 30) formattedAmount += "... \uD83D\uDE22";
+ else if (loveAmount < 60) formattedAmount += "! \uD83E\uDDD0";
+ else if (loveAmount < 75) formattedAmount += "!!! \uD83E\uDD73";
else formattedAmount = "✨ " + formattedAmount + "!!! \uD83D\uDE0D\uD83D\uDCA5";
EmbedBuilder embedBuilder = new EmbedBuilder();
diff --git a/src/main/java/wtf/beatrice/hidekobot/commands/base/MagicBall.java b/src/main/java/wtf/beatrice/hidekobot/commands/base/MagicBall.java
index e28abb5..f1f2f4f 100644
--- a/src/main/java/wtf/beatrice/hidekobot/commands/base/MagicBall.java
+++ b/src/main/java/wtf/beatrice/hidekobot/commands/base/MagicBall.java
@@ -14,7 +14,8 @@ import java.util.List;
public class MagicBall
{
- private MagicBall() {
+ private MagicBall()
+ {
throw new IllegalStateException("Utility class");
}
@@ -55,7 +56,7 @@ public class MagicBall
{
// add a question mark at the end, if missing.
// this might not always apply but it's fun
- if(!question.endsWith("?")) question += "?";
+ if (!question.endsWith("?")) question += "?";
String answer = getRandomAnswer();
diff --git a/src/main/java/wtf/beatrice/hidekobot/commands/base/ProfileImage.java b/src/main/java/wtf/beatrice/hidekobot/commands/base/ProfileImage.java
index ef90b01..afa79f0 100644
--- a/src/main/java/wtf/beatrice/hidekobot/commands/base/ProfileImage.java
+++ b/src/main/java/wtf/beatrice/hidekobot/commands/base/ProfileImage.java
@@ -9,7 +9,8 @@ import wtf.beatrice.hidekobot.objects.MessageResponse;
public class ProfileImage
{
- private ProfileImage() {
+ private ProfileImage()
+ {
throw new IllegalStateException("Utility class");
}
@@ -20,9 +21,11 @@ public class ProfileImage
// method to find closest value to accepted values
int distance = Math.abs(acceptedSizes[0] - resolution);
int idx = 0;
- for(int c = 1; c < acceptedSizes.length; c++){
+ for (int c = 1; c < acceptedSizes.length; c++)
+ {
int cdistance = Math.abs(acceptedSizes[c] - resolution);
- if(cdistance < distance){
+ if (cdistance < distance)
+ {
idx = c;
distance = cdistance;
}
@@ -40,14 +43,15 @@ public class ProfileImage
User.Profile userProfile = user.retrieveProfile().complete();
ImageProxy bannerProxy = userProfile.getBanner();
- if(imageType == ImageType.AVATAR)
+ if (imageType == ImageType.AVATAR)
{
resolutionString = resolution + " × " + resolution;
imageLink = user.getEffectiveAvatar().getUrl(resolution);
- } else {
+ } else
+ {
int verticalRes = 361 * resolution / 1024;
resolutionString = resolution + " × " + verticalRes;
- if(bannerProxy != null)
+ if (bannerProxy != null)
imageLink = bannerProxy.getUrl(resolution);
}
@@ -64,21 +68,22 @@ public class ProfileImage
// string builder to create a string that links to all available resolutions
StringBuilder links = new StringBuilder();
- for(int pos = 0; pos < acceptedSizes.length; pos++)
+ for (int pos = 0; pos < acceptedSizes.length; pos++)
{
int currSize = acceptedSizes[pos];
String currLink;
- if(imageType == ImageType.AVATAR)
+ if (imageType == ImageType.AVATAR)
{
currLink = user.getEffectiveAvatar().getUrl(currSize);
- } else {
- if(bannerProxy == null) break;
+ } else
+ {
+ if (bannerProxy == null) break;
currLink = bannerProxy.getUrl(currSize);
}
links.append("**[").append(currSize).append("px](").append(currLink).append(")**");
- if(pos + 1 != acceptedSizes.length) // don't add a separator on the last iteration
+ if (pos + 1 != acceptedSizes.length) // don't add a separator on the last iteration
{
links.append(" | ");
}
@@ -87,15 +92,16 @@ public class ProfileImage
embedBuilder.addField("Available resolutions", links.toString(), false);
-
- if(imageLink != null)
+ if (imageLink != null)
embedBuilder.setImage(imageLink);
- if(imageLink == null) {
+ if (imageLink == null)
+ {
String error = "I couldn't find " + user.getAsMention() + "'s " + imageTypeName + "!";
return new MessageResponse(error, null);
- } else {
+ } else
+ {
return new MessageResponse(null, embedBuilder.build());
}
}
diff --git a/src/main/java/wtf/beatrice/hidekobot/commands/base/Say.java b/src/main/java/wtf/beatrice/hidekobot/commands/base/Say.java
index 339cea7..a758ab5 100644
--- a/src/main/java/wtf/beatrice/hidekobot/commands/base/Say.java
+++ b/src/main/java/wtf/beatrice/hidekobot/commands/base/Say.java
@@ -5,11 +5,13 @@ import net.dv8tion.jda.api.Permission;
public class Say
{
- private Say() {
+ private Say()
+ {
throw new IllegalStateException("Utility class");
}
- public static Permission getPermission() {
+ public static Permission getPermission()
+ {
return Permission.MESSAGE_MANAGE;
}
}
diff --git a/src/main/java/wtf/beatrice/hidekobot/commands/base/Trivia.java b/src/main/java/wtf/beatrice/hidekobot/commands/base/Trivia.java
index cb66aea..f0b305a 100644
--- a/src/main/java/wtf/beatrice/hidekobot/commands/base/Trivia.java
+++ b/src/main/java/wtf/beatrice/hidekobot/commands/base/Trivia.java
@@ -36,7 +36,8 @@ import java.util.concurrent.TimeUnit;
public class Trivia
{
- private Trivia() {
+ private Trivia()
+ {
throw new IllegalStateException("Utility class");
}
@@ -52,14 +53,23 @@ public class Trivia
// first string is the channelId, the list contain all score records for that channel
public static HashMap> channelAndScores = new HashMap<>();
- public static String getTriviaLink(int categoryId) {return TRIVIA_API_LINK + categoryId; }
- public static String getCategoriesLink() {return TRIVIA_API_CATEGORIES_LINK; }
+ public static String getTriviaLink(int categoryId)
+ {
+ return TRIVIA_API_LINK + categoryId;
+ }
- public static String getNoDMsError() {
+ public static String getCategoriesLink()
+ {
+ return TRIVIA_API_CATEGORIES_LINK;
+ }
+
+ public static String getNoDMsError()
+ {
return "\uD83D\uDE22 Sorry! Trivia doesn't work in DMs.";
}
- public static String getTriviaAlreadyRunningError() {
+ public static String getTriviaAlreadyRunningError()
+ {
// todo nicer looking
return "Trivia is already running here!";
}
@@ -67,10 +77,10 @@ public class Trivia
public static MessageResponse generateMainScreen()
{
JSONObject categoriesJson = Trivia.fetchJson(Trivia.getCategoriesLink());
- if(categoriesJson == null)
+ if (categoriesJson == null)
return new MessageResponse("Error fetching trivia!", null); // todo nicer with emojis
List categories = Trivia.parseCategories(categoriesJson);
- if(categories.isEmpty())
+ if (categories.isEmpty())
return new MessageResponse("Error parsing trivia categories!", null); // todo nicer with emojis
categories.sort(new TriviaCategoryComparator());
@@ -90,7 +100,7 @@ public class Trivia
StringSelectMenu.Builder menuBuilder = StringSelectMenu.create("trivia_categories");
- for(TriviaCategory category : categories)
+ for (TriviaCategory category : categories)
{
String name = category.categoryName();
int id = category.categoryId();
@@ -102,20 +112,22 @@ public class Trivia
public static JSONObject fetchJson(String link)
{
- try {
+ try
+ {
URL url = new URL(link);
URLConnection connection = url.openConnection();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String currentChar;
StringBuilder jsonStrBuilder = new StringBuilder();
- while((currentChar = bufferedReader.readLine()) != null)
+ while ((currentChar = bufferedReader.readLine()) != null)
{
jsonStrBuilder.append(currentChar);
}
bufferedReader.close();
return new JSONObject(jsonStrBuilder.toString());
- } catch (IOException e) {
+ } catch (IOException e)
+ {
LOGGER.error("JSON Parsing Exception", e);
}
@@ -128,7 +140,7 @@ public class Trivia
JSONArray results = jsonObject.getJSONArray("results");
- for(Object currentQuestionGeneric : results)
+ for (Object currentQuestionGeneric : results)
{
JSONObject questionJson = (JSONObject) currentQuestionGeneric;
String question = StringEscapeUtils.unescapeHtml4(questionJson.getString("question"));
@@ -137,7 +149,7 @@ public class Trivia
List incorrectAnswersList = new ArrayList<>();
JSONArray incorrectAnswers = questionJson.getJSONArray("incorrect_answers");
- for(Object incorrectAnswerGeneric : incorrectAnswers)
+ for (Object incorrectAnswerGeneric : incorrectAnswers)
{
String incorrectAnswer = (String) incorrectAnswerGeneric;
incorrectAnswersList.add(StringEscapeUtils.unescapeHtml4(incorrectAnswer));
@@ -154,7 +166,7 @@ public class Trivia
{
List categories = new ArrayList<>();
JSONArray categoriesArray = jsonObject.getJSONArray("trivia_categories");
- for(Object categoryObject : categoriesArray)
+ for (Object categoryObject : categoriesArray)
{
JSONObject categoryJson = (JSONObject) categoryObject;
@@ -172,14 +184,14 @@ public class Trivia
User user = event.getUser();
String channelId = event.getChannel().getId();
- if(trackResponse(user, event.getChannel()))
+ if (trackResponse(user, event.getChannel()))
{
LinkedList scores = channelAndScores.get(channelId);
- if(scores == null) scores = new LinkedList<>();
+ if (scores == null) scores = new LinkedList<>();
TriviaScore currentUserScore = null;
- for(TriviaScore score : scores)
+ for (TriviaScore score : scores)
{
- if(score.getUser().equals(user))
+ if (score.getUser().equals(user))
{
currentUserScore = score;
scores.remove(score);
@@ -187,29 +199,31 @@ public class Trivia
}
}
- if(currentUserScore == null)
+ if (currentUserScore == null)
{
currentUserScore = new TriviaScore(user);
}
- if(answerType.equals(AnswerType.CORRECT))
+ if (answerType.equals(AnswerType.CORRECT))
{
event.reply(user.getAsMention() + " got it right! \uD83E\uDD73 (**+3**)").queue();
currentUserScore.changeScore(3);
- } else {
+ } else
+ {
event.reply("❌ " + user.getAsMention() + ", that's not the right answer! (**-1**)").queue();
currentUserScore.changeScore(-1);
}
scores.add(currentUserScore);
channelAndScores.put(channelId, scores);
- } else {
+ } else
+ {
event.reply("☹️ " + user.getAsMention() + ", you can't answer twice!")
.queue(interaction ->
- Cache.getTaskScheduler().schedule(() ->
- interaction.deleteOriginal().queue(), 3, TimeUnit.SECONDS));
+ Cache.getTaskScheduler().schedule(() ->
+ interaction.deleteOriginal().queue(), 3, TimeUnit.SECONDS));
}
}
@@ -220,17 +234,18 @@ public class Trivia
List responders = channelAndWhoResponded.get(channelId);
- if(responders == null)
+ if (responders == null)
{
responders = new ArrayList<>();
}
- if(responders.isEmpty() || !responders.contains(userId))
+ if (responders.isEmpty() || !responders.contains(userId))
{
responders.add(userId);
channelAndWhoResponded.put(channelId, responders);
return true; // response was successfully tracked
- } else {
+ } else
+ {
return false; // response wasn't tracked because there already was an entry
}
}
@@ -238,7 +253,7 @@ public class Trivia
public static void handleMenuSelection(StringSelectInteractionEvent event)
{
// check if the user interacting is the same one who ran the command
- if(!(Cache.getDatabaseSource().isUserTrackedFor(event.getUser().getId(), event.getMessageId())))
+ if (!(Cache.getDatabaseSource().isUserTrackedFor(event.getUser().getId(), event.getMessageId())))
{
event.reply("❌ You did not run this command!").setEphemeral(true).queue();
return;
@@ -263,7 +278,7 @@ public class Trivia
Message message = event.getMessage();
MessageChannel channel = message.getChannel();
- if(Trivia.channelsRunningTrivia.contains(channel.getId()))
+ if (Trivia.channelsRunningTrivia.contains(channel.getId()))
{
// todo nicer looking
// todo: also what if the bot stops (database...?)
@@ -271,7 +286,8 @@ public class Trivia
Message err = event.reply("Trivia is already running here!").complete().retrieveOriginal().complete();
Cache.getTaskScheduler().schedule(() -> err.delete().queue(), 10, TimeUnit.SECONDS);
return;
- } else {
+ } else
+ {
// todo nicer looking
event.reply("Starting new Trivia session!").queue();
}
@@ -288,7 +304,8 @@ public class Trivia
Trivia.channelsRunningTrivia.add(channel.getId());
}
- public enum AnswerType {
+ public enum AnswerType
+ {
CORRECT, WRONG
}
diff --git a/src/main/java/wtf/beatrice/hidekobot/commands/base/UrbanDictionary.java b/src/main/java/wtf/beatrice/hidekobot/commands/base/UrbanDictionary.java
index 41e08c7..0903f87 100644
--- a/src/main/java/wtf/beatrice/hidekobot/commands/base/UrbanDictionary.java
+++ b/src/main/java/wtf/beatrice/hidekobot/commands/base/UrbanDictionary.java
@@ -25,15 +25,19 @@ import java.util.List;
public class UrbanDictionary
{
- private UrbanDictionary() {
+ private UrbanDictionary()
+ {
throw new IllegalStateException("Utility class");
}
public static LinkedList getCommandLabels()
- { return new LinkedList<>(Arrays.asList("urban", "urbandictionary", "ud")); }
+ {
+ return new LinkedList<>(Arrays.asList("urban", "urbandictionary", "ud"));
+ }
- public static String getBaseUrl() {
+ public static String getBaseUrl()
+ {
return "https://www.urbandictionary.com/define.php?term=";
}
@@ -55,7 +59,8 @@ public class UrbanDictionary
.withEmoji(Emoji.fromFormatted("\uD83D\uDDD1️"));
}
- public static String getNoArgsError() {
+ public static String getNoArgsError()
+ {
return "\uD83D\uDE22 I need to know what to search for!";
}
@@ -63,7 +68,7 @@ public class UrbanDictionary
{
term = term.replaceAll("[^\\w\\s]", ""); // only keep letters, numbers and spaces
term = WordUtils.capitalizeFully(term); // Make Every Word Start With A Capital Letter
- if(forUrl) term = term.replaceAll("\\s+", "+"); // replace all whitespaces with + for the url
+ if (forUrl) term = term.replaceAll("\\s+", "+"); // replace all whitespaces with + for the url
if (term.length() > 64) term = term.substring(0, 64); // cut it to length to avoid abuse
return term;
}
@@ -74,10 +79,10 @@ public class UrbanDictionary
}
public static MessageEmbed buildEmbed(String term,
- String url,
- User author,
- UrbanSearch search,
- int page)
+ String url,
+ User author,
+ UrbanSearch search,
+ int page)
{
EmbedBuilder embedBuilder = new EmbedBuilder();
@@ -87,7 +92,7 @@ public class UrbanDictionary
embedBuilder.addField("\uD83D\uDCD6 Definition", search.getPlaintextMeanings().get(page), false);
embedBuilder.addField("\uD83D\uDCAD Example", search.getPlaintextExamples().get(page), false);
embedBuilder.addField("\uD83D\uDCCC Submission",
- "*Entry " + (page+1) + " | Sent by " + search.getContributorsNames().get(page) +
+ "*Entry " + (page + 1) + " | Sent by " + search.getContributorsNames().get(page) +
" on" + search.getSubmissionDates().get(page) + "*",
false);
@@ -118,7 +123,8 @@ public class UrbanDictionary
DatabaseSource database = Cache.getDatabaseSource();
// check if the user interacting is the same one who ran the command
- if (!(database.isUserTrackedFor(event.getUser().getId(), messageId))) {
+ if (!(database.isUserTrackedFor(event.getUser().getId(), messageId)))
+ {
event.reply("❌ You did not run this command!").setEphemeral(true).queue();
return;
}
@@ -140,9 +146,9 @@ public class UrbanDictionary
serializedExamples, serializedContributors, serializedDates);
// move to new page
- if(changeType == ChangeType.NEXT)
+ if (changeType == ChangeType.NEXT)
page++;
- else if(changeType == ChangeType.PREVIOUS)
+ else if (changeType == ChangeType.PREVIOUS)
page--;
term = UrbanDictionary.sanitizeArgs(term, false);
@@ -153,17 +159,19 @@ public class UrbanDictionary
// get all attached components and check which ones need to be enabled or disabled
List components = new ArrayList<>();
- if(page > 0)
+ if (page > 0)
{
components.add(UrbanDictionary.getPreviousPageButton().asEnabled());
- } else {
+ } else
+ {
components.add(UrbanDictionary.getPreviousPageButton().asDisabled());
}
- if(page + 1 == search.getPages())
+ if (page + 1 == search.getPages())
{
components.add(UrbanDictionary.getNextPageButton().asDisabled());
- } else {
+ } else
+ {
components.add(UrbanDictionary.getNextPageButton().asEnabled());
}
@@ -216,10 +224,10 @@ public class UrbanDictionary
contributorsNames = new LinkedList<>();
submissionDates = new LinkedList<>();
- for(Element definition : definitions)
+ for (Element definition : definitions)
{
Elements meaningSingleton = definition.getElementsByClass("meaning");
- if(meaningSingleton.isEmpty())
+ if (meaningSingleton.isEmpty())
{
plaintextMeanings.add(" ");
} else
@@ -231,13 +239,13 @@ public class UrbanDictionary
// this is used to fix eg. & being shown literally instead of being parsed
text = StringEscapeUtils.unescapeHtml4(text);
// discord only allows 1024 characters for embed fields
- if(text.length() > 1024) text = text.substring(0, 1020) + "...";
+ if (text.length() > 1024) text = text.substring(0, 1020) + "...";
plaintextMeanings.add(text);
}
Elements exampleSingleton = definition.getElementsByClass("example");
- if(exampleSingleton.isEmpty())
+ if (exampleSingleton.isEmpty())
{
plaintextExamples.add(" ");
} else
@@ -249,12 +257,12 @@ public class UrbanDictionary
// this is used to fix eg. & being shown literally instead of being parsed
text = StringEscapeUtils.unescapeHtml4(text);
// discord only allows 1024 characters for embed fields
- if(text.length() > 1024) text = text.substring(0, 1020) + "...";
+ if (text.length() > 1024) text = text.substring(0, 1020) + "...";
plaintextExamples.add(text);
}
Elements contributorSingleton = definition.getElementsByClass("contributor");
- if(contributorSingleton.isEmpty())
+ if (contributorSingleton.isEmpty())
{
contributorsNames.add("Unknown");
} else
@@ -282,39 +290,48 @@ public class UrbanDictionary
pages = submissionDates.size();
}
- public List getPlaintextMeanings() {
+ public List getPlaintextMeanings()
+ {
return this.plaintextMeanings;
}
- public List getPlaintextExamples() {
+ public List getPlaintextExamples()
+ {
return this.plaintextExamples;
}
- public List getContributorsNames() {
+ public List getContributorsNames()
+ {
return this.contributorsNames;
}
- public List getSubmissionDates() {
+ public List getSubmissionDates()
+ {
return this.submissionDates;
}
- public String getSerializedMeanings() {
+ public String getSerializedMeanings()
+ {
return serializedMeanings;
}
- public String getSerializedExamples() {
+ public String getSerializedExamples()
+ {
return serializedExamples;
}
- public String getSerializedContributors() {
+ public String getSerializedContributors()
+ {
return serializedContributors;
}
- public String getSerializedDates() {
+ public String getSerializedDates()
+ {
return serializedDates;
}
- public int getPages() {
+ public int getPages()
+ {
return pages;
}
}
diff --git a/src/main/java/wtf/beatrice/hidekobot/commands/base/UserPunishment.java b/src/main/java/wtf/beatrice/hidekobot/commands/base/UserPunishment.java
index 89ac1d5..cc64495 100644
--- a/src/main/java/wtf/beatrice/hidekobot/commands/base/UserPunishment.java
+++ b/src/main/java/wtf/beatrice/hidekobot/commands/base/UserPunishment.java
@@ -27,7 +27,8 @@ import java.util.concurrent.TimeUnit;
public class UserPunishment
{
- private UserPunishment() {
+ private UserPunishment()
+ {
throw new IllegalStateException("Utility class");
}
@@ -42,24 +43,24 @@ public class UserPunishment
User targetUser = null;
OptionMapping targetUserArg = event.getOption("target");
- if(targetUserArg != null)
+ if (targetUserArg != null)
{
targetUser = targetUserArg.getAsUser();
}
List mentions = null;
- if(targetUser != null) mentions = new ArrayList<>(Collections.singletonList(targetUser));
+ if (targetUser != null) mentions = new ArrayList<>(Collections.singletonList(targetUser));
String reason = null;
OptionMapping reasonArg = event.getOption("reason");
- if(reasonArg != null)
+ if (reasonArg != null)
{
reason = reasonArg.getAsString();
}
String timeDiff = null;
OptionMapping timeDiffArg = event.getOption("duration");
- if(timeDiffArg != null)
+ if (timeDiffArg != null)
{
timeDiff = timeDiffArg.getAsString();
}
@@ -71,13 +72,13 @@ public class UserPunishment
// we should probably rework the it so that it works better in both scenarios.
String[] reasonSplit = null;
// generate the arguments array by splitting the string
- if(reason != null) reasonSplit = reason.split("\\s+");
+ if (reason != null) reasonSplit = reason.split("\\s+");
//prepend timediff at index 0
- if(timeDiff != null) reasonSplit = ArrayUtils.insert(0, reasonSplit, timeDiff);
+ if (timeDiff != null) reasonSplit = ArrayUtils.insert(0, reasonSplit, timeDiff);
// in message-commands, the first arg would contain the user mention. since we have no one mentioned here,
// because it's in its own argument, we just prepend an empty string. note that this makes relying on the
// first argument BAD, because it is no longer ensured that it contains the user mention.
- if(timeDiff != null) reasonSplit = ArrayUtils.insert(0, reasonSplit, "");
+ if (timeDiff != null) reasonSplit = ArrayUtils.insert(0, reasonSplit, "");
MessageResponse response = getResponse(event.getUser(),
punishmentType,
@@ -85,9 +86,9 @@ public class UserPunishment
mentions,
reasonSplit);
- if(response.embed() != null)
+ if (response.embed() != null)
event.getHook().editOriginalEmbeds(response.embed()).queue();
- else if(response.content() != null)
+ else if (response.content() != null)
event.getHook().editOriginal(response.content()).queue();
}
@@ -102,9 +103,9 @@ public class UserPunishment
mentions,
args);
- if(response.embed() != null)
+ if (response.embed() != null)
event.getMessage().replyEmbeds(response.embed()).queue();
- else if(response.content() != null)
+ else if (response.content() != null)
event.getMessage().reply(response.content()).queue();
}
@@ -117,13 +118,13 @@ public class UserPunishment
String punishmentTypeName = punishmentType.name().toLowerCase();
- if(!(channel instanceof TextChannel))
+ if (!(channel instanceof TextChannel))
{
// todo nicer looking with emojis
return new MessageResponse("Sorry! I can't " + punishmentTypeName + " people in DMs.", null);
}
- if(mentions == null || mentions.isEmpty())
+ if (mentions == null || mentions.isEmpty())
{
// todo nicer looking with emojis
return new MessageResponse("You have to tell me who to " + punishmentTypeName + "!", null);
@@ -132,7 +133,8 @@ public class UserPunishment
String mentionedId = mentions.get(0).getId();
User mentioned = null;
- try {
+ try
+ {
mentioned = HidekoBot.getAPI().retrieveUserById(mentionedId).complete();
} catch (RuntimeException ignored)
{
@@ -146,21 +148,21 @@ public class UserPunishment
// some commands require an additional parameter before the reason, so in that case, we should start at 2.
int startingPoint = punishmentType == PunishmentType.TIMEOUT ? 2 : 1;
- if(args != null && args.length > startingPoint)
+ if (args != null && args.length > startingPoint)
{
- for(int i = startingPoint; i < args.length; i++)
+ for (int i = startingPoint; i < args.length; i++)
{
String arg = args[i];
reasonBuilder.append(arg);
- if(i + 1 != arg.length())
+ if (i + 1 != arg.length())
reasonBuilder.append(" "); // separate args with a space except on last iteration.
}
reason = reasonBuilder.toString();
}
- if(mentioned == null)
+ if (mentioned == null)
{
// todo nicer looking with emojis
return new MessageResponse("I can't " + punishmentTypeName + " that user!", null);
@@ -172,12 +174,15 @@ public class UserPunishment
AuditableRestAction punishmentAction = null;
boolean impossible = false;
- try {
- switch (punishmentType) {
+ try
+ {
+ switch (punishmentType)
+ {
case BAN -> punishmentAction = guild.ban(mentioned, 0, TimeUnit.SECONDS);
case KICK -> punishmentAction = guild.kick(mentioned);
- case TIMEOUT -> {
- if(args != null)
+ case TIMEOUT ->
+ {
+ if (args != null)
{
String durationStr = args[1];
duration = FormatUtil.parseDuration(durationStr);
@@ -185,14 +190,14 @@ public class UserPunishment
boolean isDurationValid = true;
- if(duration == null) isDurationValid = false;
+ if (duration == null) isDurationValid = false;
else
{
- if(duration.compareTo(maxTimeoutDuration) > 0) isDurationValid = false;
- if(minTimeoutDuration.compareTo(duration) > 0) isDurationValid = false;
+ if (duration.compareTo(maxTimeoutDuration) > 0) isDurationValid = false;
+ if (minTimeoutDuration.compareTo(duration) > 0) isDurationValid = false;
}
- if(duration == null || !isDurationValid)
+ if (duration == null || !isDurationValid)
{
// todo nicer looking with emojis
return new MessageResponse("Sorry, but the specified duration is invalid!", null);
@@ -201,24 +206,26 @@ public class UserPunishment
punishmentAction = guild.timeoutFor(mentioned, duration);
}
}
- } catch (RuntimeException ignored) {
+ } catch (RuntimeException ignored)
+ {
impossible = true;
}
- if(punishmentAction == null)
+ if (punishmentAction == null)
impossible = true;
- if(impossible)
+ if (impossible)
{
// todo nicer looking with emojis
return new MessageResponse("Sorry, I couldn't " + punishmentTypeName + " " + mentioned.getAsMention() + "!",
null);
}
- if(!reason.isEmpty() && !reasonBuilder.isEmpty())
+ if (!reason.isEmpty() && !reasonBuilder.isEmpty())
punishmentAction.reason("[" + author.getAsTag() + "] " + reason);
- try {
+ try
+ {
punishmentAction.complete();
} catch (RuntimeException ignored)
{
@@ -235,10 +242,10 @@ public class UserPunishment
embedBuilder.addField("\uD83D\uDC64 User", mentioned.getAsMention(), false);
embedBuilder.addField("✂️ By", author.getAsMention(), false);
- if(duration != null)
+ if (duration != null)
embedBuilder.addField("⏱️ Duration", FormatUtil.getNiceDuration(duration), false);
- if(reason.isEmpty())
+ if (reason.isEmpty())
reason = "*No reason specified*";
embedBuilder.addField("\uD83D\uDCD6 Reason", reason, false);
@@ -248,7 +255,8 @@ public class UserPunishment
}
- public enum PunishmentType {
+ public enum PunishmentType
+ {
KICK("kicked"),
BAN("banned"),
TIMEOUT("timed out"),
diff --git a/src/main/java/wtf/beatrice/hidekobot/commands/completer/ProfileImageCommandCompleter.java b/src/main/java/wtf/beatrice/hidekobot/commands/completer/ProfileImageCommandCompleter.java
index f530eff..34696b7 100644
--- a/src/main/java/wtf/beatrice/hidekobot/commands/completer/ProfileImageCommandCompleter.java
+++ b/src/main/java/wtf/beatrice/hidekobot/commands/completer/ProfileImageCommandCompleter.java
@@ -13,23 +13,25 @@ import java.util.List;
public class ProfileImageCommandCompleter extends SlashArgumentsCompleterImpl
{
- public ProfileImageCommandCompleter(SlashCommand parentCommand) {
+ public ProfileImageCommandCompleter(SlashCommand parentCommand)
+ {
super(parentCommand);
}
@Override
- public void runCompletion(@NotNull CommandAutoCompleteInteractionEvent event) {
- if(event.getFocusedOption().getName().equals("size"))
+ public void runCompletion(@NotNull CommandAutoCompleteInteractionEvent event)
+ {
+ if (event.getFocusedOption().getName().equals("size"))
{
List options = new ArrayList<>();
- for(int res : Cache.getSupportedAvatarResolutions())
+ for (int res : Cache.getSupportedAvatarResolutions())
{
String resString = String.valueOf(res);
String userInput = event.getFocusedOption().getValue();
- if(resString.startsWith(userInput))
+ if (resString.startsWith(userInput))
options.add(new Command.Choice(resString, res));
}
diff --git a/src/main/java/wtf/beatrice/hidekobot/commands/message/AliasCommand.java b/src/main/java/wtf/beatrice/hidekobot/commands/message/AliasCommand.java
index 4904dd6..c697f97 100644
--- a/src/main/java/wtf/beatrice/hidekobot/commands/message/AliasCommand.java
+++ b/src/main/java/wtf/beatrice/hidekobot/commands/message/AliasCommand.java
@@ -17,43 +17,49 @@ public class AliasCommand implements MessageCommand
{
@Override
- public LinkedList getCommandLabels() {
+ public LinkedList getCommandLabels()
+ {
return new LinkedList<>(Arrays.asList("alias", "aliases"));
}
@Nullable
@Override
- public List getPermissions() {
+ public List getPermissions()
+ {
return null; // anyone can use it
}
@Override
- public boolean passRawArgs() {
+ public boolean passRawArgs()
+ {
return false;
}
@NotNull
@Override
- public CommandCategory getCategory() {
+ public CommandCategory getCategory()
+ {
return CommandCategory.TOOLS;
}
@NotNull
@Override
- public String getDescription() {
+ public String getDescription()
+ {
return "See other command aliases.";
}
@Nullable
@Override
- public String getUsage() {
+ public String getUsage()
+ {
return "";
}
@Override
public void runCommand(MessageReceivedEvent event, String label, String[] args)
{
- if(args.length == 0)
+ if (args.length == 0)
{
event.getMessage().reply("\uD83D\uDE20 Hey, you have to specify a command!").queue();
return;
@@ -61,14 +67,14 @@ public class AliasCommand implements MessageCommand
String commandLabel = args[0].toLowerCase();
MessageCommand command = Cache.getMessageCommandListener().getRegisteredCommand(commandLabel);
- if(command == null)
+ if (command == null)
{
event.getMessage().reply("Unrecognized command: `" + commandLabel + "`!").queue(); // todo prettier
return;
}
String aliases = Alias.generateNiceAliases(command);
- aliases = "Aliases for **" + command.getCommandLabels().get(0) + "**: " + aliases;
+ aliases = "Aliases for **" + command.getCommandLabels().get(0) + "**: " + aliases;
event.getMessage()
.reply(aliases)
diff --git a/src/main/java/wtf/beatrice/hidekobot/commands/message/AvatarCommand.java b/src/main/java/wtf/beatrice/hidekobot/commands/message/AvatarCommand.java
index db28831..0556105 100644
--- a/src/main/java/wtf/beatrice/hidekobot/commands/message/AvatarCommand.java
+++ b/src/main/java/wtf/beatrice/hidekobot/commands/message/AvatarCommand.java
@@ -16,40 +16,46 @@ import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
-public class AvatarCommand implements MessageCommand
+public class AvatarCommand implements MessageCommand
{
@Override
- public LinkedList getCommandLabels() {
+ public LinkedList getCommandLabels()
+ {
return new LinkedList<>(Collections.singletonList("avatar"));
}
@Nullable
@Override
- public List getPermissions() {
+ public List getPermissions()
+ {
return null; // anyone can use it
}
@Override
- public boolean passRawArgs() {
+ public boolean passRawArgs()
+ {
return false;
}
@NotNull
@Override
- public String getDescription() {
+ public String getDescription()
+ {
return "Get someone's avatar, or your own. You can additionally specify a resolution.";
}
@Nullable
@Override
- public String getUsage() {
+ public String getUsage()
+ {
return "[mentioned user] [resolution]";
}
@NotNull
@Override
- public CommandCategory getCategory() {
+ public CommandCategory getCategory()
+ {
return CommandCategory.TOOLS;
}
@@ -63,23 +69,26 @@ public class AvatarCommand implements MessageCommand
// (mentions are handled differently by a specific method)
boolean resFound = false;
- for (String arg : args) {
- try {
+ for (String arg : args)
+ {
+ try
+ {
int givenRes = Integer.parseInt(arg);
resolution = ProfileImage.parseResolution(givenRes);
resFound = true;
break;
- } catch (NumberFormatException ignored) {
+ } catch (NumberFormatException ignored)
+ {
// ignored because we're running a check after this block
}
}
// fallback in case we didn't find any specified resolution
- if(!resFound) resolution = ProfileImage.parseResolution(512);
+ if (!resFound) resolution = ProfileImage.parseResolution(512);
// check if someone is mentioned
Mentions mentions = event.getMessage().getMentions();
- if(mentions.getMentions().isEmpty())
+ if (mentions.getMentions().isEmpty())
{
user = event.getAuthor();
} else
@@ -89,14 +98,14 @@ public class AvatarCommand implements MessageCommand
}
// in case of issues, fallback to the sender
- if(user == null) user = event.getAuthor();
+ if (user == null) user = event.getAuthor();
// send a response
MessageResponse response = ProfileImage.buildResponse(resolution, user, ProfileImage.ImageType.AVATAR);
- if(response.content() != null)
+ if (response.content() != null)
{
event.getMessage().reply(response.content()).queue();
- } else if(response.embed() != null)
+ } else if (response.embed() != null)
{
event.getMessage().replyEmbeds(response.embed()).queue();
}
diff --git a/src/main/java/wtf/beatrice/hidekobot/commands/message/BanCommand.java b/src/main/java/wtf/beatrice/hidekobot/commands/message/BanCommand.java
index d4c540c..42af38e 100644
--- a/src/main/java/wtf/beatrice/hidekobot/commands/message/BanCommand.java
+++ b/src/main/java/wtf/beatrice/hidekobot/commands/message/BanCommand.java
@@ -17,36 +17,42 @@ public class BanCommand implements MessageCommand
{
@Override
- public LinkedList getCommandLabels() {
+ public LinkedList getCommandLabels()
+ {
return new LinkedList<>(Collections.singletonList("ban"));
}
@Nullable
@Override
- public List getPermissions() {
+ public List getPermissions()
+ {
return new ArrayList(Collections.singletonList(Permission.BAN_MEMBERS));
}
@Override
- public boolean passRawArgs() {
+ public boolean passRawArgs()
+ {
return false;
}
@NotNull
@Override
- public CommandCategory getCategory() {
+ public CommandCategory getCategory()
+ {
return CommandCategory.MODERATION;
}
@NotNull
@Override
- public String getDescription() {
+ public String getDescription()
+ {
return "Ban the mentioned user.";
}
@Nullable
@Override
- public String getUsage() {
+ public String getUsage()
+ {
return " [reason]";
}
diff --git a/src/main/java/wtf/beatrice/hidekobot/commands/message/BannerCommand.java b/src/main/java/wtf/beatrice/hidekobot/commands/message/BannerCommand.java
index dd0cd9b..c708ff4 100644
--- a/src/main/java/wtf/beatrice/hidekobot/commands/message/BannerCommand.java
+++ b/src/main/java/wtf/beatrice/hidekobot/commands/message/BannerCommand.java
@@ -20,36 +20,42 @@ public class BannerCommand implements MessageCommand
{
@Override
- public LinkedList getCommandLabels() {
+ public LinkedList getCommandLabels()
+ {
return new LinkedList<>(Collections.singletonList("banner"));
}
@Nullable
@Override
- public List getPermissions() {
+ public List getPermissions()
+ {
return null; // anyone can use it
}
@Override
- public boolean passRawArgs() {
+ public boolean passRawArgs()
+ {
return false;
}
@NotNull
@Override
- public String getDescription() {
+ public String getDescription()
+ {
return "Get someone's profile banner, or your own.";
}
@Nullable
@Override
- public String getUsage() {
+ public String getUsage()
+ {
return "[mentioned user] [resolution]";
}
@NotNull
@Override
- public CommandCategory getCategory() {
+ public CommandCategory getCategory()
+ {
return CommandCategory.TOOLS;
}
@@ -63,23 +69,26 @@ public class BannerCommand implements MessageCommand
// (mentions are handled differently by a specific method)
boolean resFound = false;
- for (String arg : args) {
- try {
+ for (String arg : args)
+ {
+ try
+ {
int givenRes = Integer.parseInt(arg);
resolution = ProfileImage.parseResolution(givenRes);
resFound = true;
break;
- } catch (NumberFormatException ignored) {
+ } catch (NumberFormatException ignored)
+ {
// ignored because we're running a check after this block
}
}
// fallback in case we didn't find any specified resolution
- if(!resFound) resolution = ProfileImage.parseResolution(512);
+ if (!resFound) resolution = ProfileImage.parseResolution(512);
// check if someone is mentioned
Mentions mentions = event.getMessage().getMentions();
- if(mentions.getMentions().isEmpty())
+ if (mentions.getMentions().isEmpty())
{
user = event.getAuthor();
} else
@@ -89,14 +98,14 @@ public class BannerCommand implements MessageCommand
}
// in case of issues, fallback to the sender
- if(user == null) user = event.getAuthor();
+ if (user == null) user = event.getAuthor();
// send a response
MessageResponse response = ProfileImage.buildResponse(resolution, user, ProfileImage.ImageType.BANNER);
- if(response.content() != null)
+ if (response.content() != null)
{
event.getMessage().reply(response.content()).queue();
- } else if(response.embed() != null)
+ } else if (response.embed() != null)
{
event.getMessage().replyEmbeds(response.embed()).queue();
}
diff --git a/src/main/java/wtf/beatrice/hidekobot/commands/message/BotInfoCommand.java b/src/main/java/wtf/beatrice/hidekobot/commands/message/BotInfoCommand.java
index b2db865..a56b1ee 100644
--- a/src/main/java/wtf/beatrice/hidekobot/commands/message/BotInfoCommand.java
+++ b/src/main/java/wtf/beatrice/hidekobot/commands/message/BotInfoCommand.java
@@ -18,46 +18,54 @@ public class BotInfoCommand implements MessageCommand
{
@Override
- public LinkedList getCommandLabels() {
+ public LinkedList getCommandLabels()
+ {
return new LinkedList<>(Arrays.asList("botinfo", "info"));
}
@Nullable
@Override
- public List getPermissions() {
+ public List getPermissions()
+ {
return null; // anyone can use it
}
@Override
- public boolean passRawArgs() {
+ public boolean passRawArgs()
+ {
return false;
}
@NotNull
@Override
- public String getDescription() {
+ public String getDescription()
+ {
return "Get general info about the bot.";
}
@Nullable
@Override
- public String getUsage() {
+ public String getUsage()
+ {
return null;
}
@NotNull
@Override
- public CommandCategory getCategory() {
+ public CommandCategory getCategory()
+ {
return CommandCategory.TOOLS;
}
@Override
- public void runCommand(MessageReceivedEvent event, String label, String[] args) {
+ public void runCommand(MessageReceivedEvent event, String label, String[] args)
+ {
// get a list of message commands
LinkedList messageCommands = Cache.getMessageCommandListener().getRegisteredCommands();
LinkedList commandNames = new LinkedList<>();
- for (MessageCommand command : messageCommands) {
+ for (MessageCommand command : messageCommands)
+ {
commandNames.add(command.getCommandLabels().get(0));
}
diff --git a/src/main/java/wtf/beatrice/hidekobot/commands/message/ClearCommand.java b/src/main/java/wtf/beatrice/hidekobot/commands/message/ClearCommand.java
index e5281d3..a5c5349 100644
--- a/src/main/java/wtf/beatrice/hidekobot/commands/message/ClearCommand.java
+++ b/src/main/java/wtf/beatrice/hidekobot/commands/message/ClearCommand.java
@@ -19,33 +19,41 @@ public class ClearCommand implements MessageCommand
{
@Override
- public LinkedList getCommandLabels() {
+ public LinkedList getCommandLabels()
+ {
return new LinkedList<>(Collections.singletonList(ClearChat.getLabel()));
}
@Override
- public List getPermissions() { return Collections.singletonList(ClearChat.getPermission()); }
+ public List getPermissions()
+ {
+ return Collections.singletonList(ClearChat.getPermission());
+ }
@Override
- public boolean passRawArgs() {
+ public boolean passRawArgs()
+ {
return false;
}
@NotNull
@Override
- public CommandCategory getCategory() {
+ public CommandCategory getCategory()
+ {
return CommandCategory.MODERATION;
}
@NotNull
@Override
- public String getDescription() {
+ public String getDescription()
+ {
return "Clear the current channel's chat history.";
}
@Nullable
@Override
- public String getUsage() {
+ public String getUsage()
+ {
return "[amount]";
}
@@ -54,7 +62,8 @@ public class ClearCommand implements MessageCommand
{
// check if user is trying to run command in dms.
String error = ClearChat.checkDMs(event.getChannel());
- if (error != null) {
+ if (error != null)
+ {
event.getMessage().reply(error).queue();
return;
}
@@ -64,7 +73,8 @@ public class ClearCommand implements MessageCommand
if (args.length == 0) toDeleteAmount = 1;
else
{
- try {
+ try
+ {
toDeleteAmount = Integer.parseInt(args[0]);
} catch (NumberFormatException e)
{
@@ -73,10 +83,11 @@ public class ClearCommand implements MessageCommand
}
// cap the amount to avoid abuse.
- if(toDeleteAmount > ClearChat.getMaxAmount()) toDeleteAmount = 0;
+ if (toDeleteAmount > ClearChat.getMaxAmount()) toDeleteAmount = 0;
error = ClearChat.checkDeleteAmount(toDeleteAmount);
- if (error != null) {
+ if (error != null)
+ {
event.getMessage().reply(error).queue();
return;
}
diff --git a/src/main/java/wtf/beatrice/hidekobot/commands/message/CoinFlipCommand.java b/src/main/java/wtf/beatrice/hidekobot/commands/message/CoinFlipCommand.java
index 26a5bf6..6e2dcb2 100644
--- a/src/main/java/wtf/beatrice/hidekobot/commands/message/CoinFlipCommand.java
+++ b/src/main/java/wtf/beatrice/hidekobot/commands/message/CoinFlipCommand.java
@@ -16,41 +16,48 @@ public class CoinFlipCommand implements MessageCommand
{
@Override
- public LinkedList getCommandLabels() {
+ public LinkedList getCommandLabels()
+ {
return new LinkedList<>(Arrays.asList("coinflip", "flip", "flipcoin"));
}
@Nullable
@Override
- public List getPermissions() {
+ public List getPermissions()
+ {
return null; // null because it can be used anywhere
}
@Override
- public boolean passRawArgs() {
+ public boolean passRawArgs()
+ {
return false;
}
@NotNull
@Override
- public String getDescription() {
+ public String getDescription()
+ {
return "Flip a coin.";
}
@Nullable
@Override
- public String getUsage() {
+ public String getUsage()
+ {
return null;
}
@NotNull
@Override
- public CommandCategory getCategory() {
+ public CommandCategory getCategory()
+ {
return CommandCategory.FUN;
}
@Override
- public void runCommand(MessageReceivedEvent event, String label, String[] args) {
+ public void runCommand(MessageReceivedEvent event, String label, String[] args)
+ {
// perform coin flip
event.getMessage().reply(CoinFlip.genRandom())
@@ -59,6 +66,7 @@ public class CoinFlipCommand implements MessageCommand
{
// set the command as expiring and restrict it to the user who ran it
CoinFlip.trackAndRestrict(message, event.getAuthor());
- }, (error) -> {});
+ }, (error) -> {
+ });
}
}
diff --git a/src/main/java/wtf/beatrice/hidekobot/commands/message/DiceRollCommand.java b/src/main/java/wtf/beatrice/hidekobot/commands/message/DiceRollCommand.java
index 2cc4976..ac32047 100644
--- a/src/main/java/wtf/beatrice/hidekobot/commands/message/DiceRollCommand.java
+++ b/src/main/java/wtf/beatrice/hidekobot/commands/message/DiceRollCommand.java
@@ -16,18 +16,21 @@ import java.util.List;
public class DiceRollCommand implements MessageCommand
{
@Override
- public LinkedList getCommandLabels() {
+ public LinkedList getCommandLabels()
+ {
return new LinkedList<>(Arrays.asList("diceroll", "droll", "roll"));
}
@Nullable
@Override
- public List getPermissions() {
+ public List getPermissions()
+ {
return null; // anyone can use it
}
@Override
- public boolean passRawArgs() {
+ public boolean passRawArgs()
+ {
return false;
}
@@ -47,13 +50,15 @@ public class DiceRollCommand implements MessageCommand
@Nullable
@Override
- public String getUsage() {
+ public String getUsage()
+ {
return "[dice size] [rolls]";
}
@NotNull
@Override
- public CommandCategory getCategory() {
+ public CommandCategory getCategory()
+ {
return CommandCategory.FUN;
}
@@ -63,10 +68,10 @@ public class DiceRollCommand implements MessageCommand
MessageResponse response = DiceRoll.buildResponse(event.getAuthor(), args);
- if(response.content() != null)
+ if (response.content() != null)
{
event.getMessage().reply(response.content()).queue();
- } else if(response.embed() != null)
+ } else if (response.embed() != null)
{
event.getMessage().replyEmbeds(response.embed()).queue();
}
diff --git a/src/main/java/wtf/beatrice/hidekobot/commands/message/HelloCommand.java b/src/main/java/wtf/beatrice/hidekobot/commands/message/HelloCommand.java
index dae4c11..fdd84bf 100644
--- a/src/main/java/wtf/beatrice/hidekobot/commands/message/HelloCommand.java
+++ b/src/main/java/wtf/beatrice/hidekobot/commands/message/HelloCommand.java
@@ -15,33 +15,41 @@ public class HelloCommand implements MessageCommand
{
@Override
- public LinkedList getCommandLabels() {
+ public LinkedList getCommandLabels()
+ {
return new LinkedList<>(Arrays.asList("hi", "hello", "heya"));
}
@Override
- public List getPermissions() { return null; }
+ public List getPermissions()
+ {
+ return null;
+ }
@Override
- public boolean passRawArgs() {
+ public boolean passRawArgs()
+ {
return false;
}
@NotNull
@Override
- public String getDescription() {
+ public String getDescription()
+ {
return "Get pinged by the bot.";
}
@Nullable
@Override
- public String getUsage() {
+ public String getUsage()
+ {
return null;
}
@NotNull
@Override
- public CommandCategory getCategory() {
+ public CommandCategory getCategory()
+ {
return CommandCategory.FUN;
}
diff --git a/src/main/java/wtf/beatrice/hidekobot/commands/message/HelpCommand.java b/src/main/java/wtf/beatrice/hidekobot/commands/message/HelpCommand.java
index af4ca5e..70a80ff 100644
--- a/src/main/java/wtf/beatrice/hidekobot/commands/message/HelpCommand.java
+++ b/src/main/java/wtf/beatrice/hidekobot/commands/message/HelpCommand.java
@@ -18,34 +18,42 @@ public class HelpCommand implements MessageCommand
@Override
- public LinkedList getCommandLabels() {
+ public LinkedList getCommandLabels()
+ {
return new LinkedList<>(Collections.singletonList("help"));
}
@Nullable
@Override
- public List getPermissions() { return null; }
+ public List getPermissions()
+ {
+ return null;
+ }
@Override
- public boolean passRawArgs() {
+ public boolean passRawArgs()
+ {
return false;
}
@NotNull
@Override
- public String getDescription() {
+ public String getDescription()
+ {
return "Get general help on the bot. Specify a command if you want specific help about that command.";
}
@Nullable
@Override
- public String getUsage() {
+ public String getUsage()
+ {
return "[command]";
}
@NotNull
@Override
- public CommandCategory getCategory() {
+ public CommandCategory getCategory()
+ {
return CommandCategory.TOOLS;
}
@@ -54,14 +62,14 @@ public class HelpCommand implements MessageCommand
{
LinkedHashMap> commandCategories = new LinkedHashMap<>();
- if(args.length == 0)
+ if (args.length == 0)
{
- for(CommandCategory category : CommandCategory.values())
+ for (CommandCategory category : CommandCategory.values())
{
LinkedList commandsOfThisCategory = new LinkedList<>();
for (MessageCommand command : Cache.getMessageCommandListener().getRegisteredCommands())
{
- if(command.getCategory().equals(category))
+ if (command.getCategory().equals(category))
{
commandsOfThisCategory.add(command);
}
@@ -79,18 +87,18 @@ public class HelpCommand implements MessageCommand
"\nYou will find a list of commands organized in categories below.",
false);
- for(Map.Entry> entry : commandCategories.entrySet())
+ for (Map.Entry> entry : commandCategories.entrySet())
{
StringBuilder commandsList = new StringBuilder();
CommandCategory category = entry.getKey();
LinkedList commandsOfThisCategory = entry.getValue();
- for(int pos = 0; pos < commandsOfThisCategory.size(); pos++)
+ for (int pos = 0; pos < commandsOfThisCategory.size(); pos++)
{
MessageCommand command = commandsOfThisCategory.get(pos);
commandsList.append("`").append(command.getCommandLabels().get(0)).append("`");
- if(pos + 1 != commandsOfThisCategory.size())
+ if (pos + 1 != commandsOfThisCategory.size())
commandsList.append(", "); // separate with comma except on last run
}
@@ -102,11 +110,12 @@ public class HelpCommand implements MessageCommand
}
event.getMessage().replyEmbeds(embedBuilder.build()).queue();
- } else {
+ } else
+ {
String commandLabel = args[0].toLowerCase();
MessageCommand command = Cache.getMessageCommandListener().getRegisteredCommand(commandLabel);
- if(command == null)
+ if (command == null)
{
event.getMessage().reply("Unrecognized command: `" + commandLabel + "`!").queue(); // todo prettier
return;
@@ -115,23 +124,24 @@ public class HelpCommand implements MessageCommand
commandLabel = command.getCommandLabels().get(0);
String usage = "`" + Cache.getBotPrefix() + " " + commandLabel;
String internalUsage = command.getUsage();
- if(internalUsage != null) usage += " " + internalUsage;
+ if (internalUsage != null) usage += " " + internalUsage;
usage += "`";
String aliases = Alias.generateNiceAliases(command);
List permissions = command.getPermissions();
StringBuilder permissionsStringBuilder = new StringBuilder();
- if(permissions == null)
+ if (permissions == null)
{
permissionsStringBuilder = new StringBuilder("Available to everyone");
- } else {
- for(int i = 0; i < permissions.size(); i++)
+ } else
+ {
+ for (int i = 0; i < permissions.size(); i++)
{
Permission permission = permissions.get(i);
permissionsStringBuilder.append("**").append(permission.getName()).append("**");
- if(i + 1 != permissions.size())
+ if (i + 1 != permissions.size())
permissionsStringBuilder.append(", "); // separate with comma expect on last iteration
}
}
diff --git a/src/main/java/wtf/beatrice/hidekobot/commands/message/InviteCommand.java b/src/main/java/wtf/beatrice/hidekobot/commands/message/InviteCommand.java
index 53bb1f3..d120080 100644
--- a/src/main/java/wtf/beatrice/hidekobot/commands/message/InviteCommand.java
+++ b/src/main/java/wtf/beatrice/hidekobot/commands/message/InviteCommand.java
@@ -19,36 +19,42 @@ public class InviteCommand implements MessageCommand
{
@Override
- public LinkedList getCommandLabels() {
+ public LinkedList getCommandLabels()
+ {
return new LinkedList<>(Collections.singletonList("invite"));
}
@Nullable
@Override
- public List getPermissions() {
+ public List getPermissions()
+ {
return null;
}
@Override
- public boolean passRawArgs() {
+ public boolean passRawArgs()
+ {
return false;
}
@NotNull
@Override
- public String getDescription() {
+ public String getDescription()
+ {
return "Get the bot's invite link.";
}
@Nullable
@Override
- public String getUsage() {
+ public String getUsage()
+ {
return null;
}
@NotNull
@Override
- public CommandCategory getCategory() {
+ public CommandCategory getCategory()
+ {
return CommandCategory.MODERATION;
}
@@ -61,7 +67,7 @@ public class InviteCommand implements MessageCommand
Button inviteButton = Invite.getInviteButton();
// if this is a guild, don't spam the invite in public but DM it
- if(event.getChannelType().isGuild())
+ if (event.getChannelType().isGuild())
{
event.getAuthor().openPrivateChannel().queue(privateChannel ->
{
@@ -70,7 +76,8 @@ public class InviteCommand implements MessageCommand
.queue();
event.getMessage().addReaction(Emoji.fromUnicode("✅")).queue();
}, error -> event.getMessage().addReaction(Emoji.fromUnicode("❌")).queue());
- } else {
+ } else
+ {
event.getMessage()
.replyEmbeds(inviteEmbed)
.addActionRow(inviteButton)
diff --git a/src/main/java/wtf/beatrice/hidekobot/commands/message/KickCommand.java b/src/main/java/wtf/beatrice/hidekobot/commands/message/KickCommand.java
index 473c4fe..a09d809 100644
--- a/src/main/java/wtf/beatrice/hidekobot/commands/message/KickCommand.java
+++ b/src/main/java/wtf/beatrice/hidekobot/commands/message/KickCommand.java
@@ -17,36 +17,42 @@ public class KickCommand implements MessageCommand
{
@Override
- public LinkedList getCommandLabels() {
+ public LinkedList getCommandLabels()
+ {
return new LinkedList<>(Collections.singletonList("kick"));
}
@Nullable
@Override
- public List getPermissions() {
+ public List getPermissions()
+ {
return new ArrayList(Collections.singletonList(Permission.KICK_MEMBERS));
}
@Override
- public boolean passRawArgs() {
+ public boolean passRawArgs()
+ {
return false;
}
@NotNull
@Override
- public CommandCategory getCategory() {
+ public CommandCategory getCategory()
+ {
return CommandCategory.MODERATION;
}
@NotNull
@Override
- public String getDescription() {
+ public String getDescription()
+ {
return "Kick the mentioned user from the guild.";
}
@Nullable
@Override
- public String getUsage() {
+ public String getUsage()
+ {
return " [reason]";
}
diff --git a/src/main/java/wtf/beatrice/hidekobot/commands/message/LoveCalculatorCommand.java b/src/main/java/wtf/beatrice/hidekobot/commands/message/LoveCalculatorCommand.java
index de2a09b..8e0bfd1 100644
--- a/src/main/java/wtf/beatrice/hidekobot/commands/message/LoveCalculatorCommand.java
+++ b/src/main/java/wtf/beatrice/hidekobot/commands/message/LoveCalculatorCommand.java
@@ -29,30 +29,35 @@ public class LoveCalculatorCommand implements MessageCommand
@Nullable
@Override
- public List getPermissions() {
+ public List getPermissions()
+ {
return null; //anyone can use it
}
@Override
- public boolean passRawArgs() {
+ public boolean passRawArgs()
+ {
return false;
}
@NotNull
@Override
- public String getDescription() {
+ public String getDescription()
+ {
return "Calculate how much two people love each other. You can mention two people or just one.";
}
@Nullable
@Override
- public String getUsage() {
+ public String getUsage()
+ {
return " [person 2]";
}
@NotNull
@Override
- public CommandCategory getCategory() {
+ public CommandCategory getCategory()
+ {
return CommandCategory.FUN;
}
@@ -64,7 +69,7 @@ public class LoveCalculatorCommand implements MessageCommand
List mentions = mentionsObj.getMentions();
- if(args.length == 0 || mentions.isEmpty())
+ if (args.length == 0 || mentions.isEmpty())
{
event.getMessage()
.reply("\uD83D\uDE22 I need to know who to check! Please mention them.")
@@ -77,10 +82,11 @@ public class LoveCalculatorCommand implements MessageCommand
String mentionedUserId = mentions.get(0).getId();
user1 = HidekoBot.getAPI().retrieveUserById(mentionedUserId).complete();
- if(mentions.size() == 1)
+ if (mentions.size() == 1)
{
user2 = event.getAuthor();
- } else {
+ } else
+ {
mentionedUserId = mentions.get(1).getId();
user2 = HidekoBot.getAPI().retrieveUserById(mentionedUserId).complete();
}
diff --git a/src/main/java/wtf/beatrice/hidekobot/commands/message/MagicBallCommand.java b/src/main/java/wtf/beatrice/hidekobot/commands/message/MagicBallCommand.java
index f1faf18..27fa202 100644
--- a/src/main/java/wtf/beatrice/hidekobot/commands/message/MagicBallCommand.java
+++ b/src/main/java/wtf/beatrice/hidekobot/commands/message/MagicBallCommand.java
@@ -15,58 +15,64 @@ public class MagicBallCommand implements MessageCommand
{
@Override
- public LinkedList getCommandLabels() {
+ public LinkedList getCommandLabels()
+ {
return MagicBall.getLabels();
}
@Nullable
@Override
- public List getPermissions() {
+ public List getPermissions()
+ {
return null; // anyone can use it
}
@Override
- public boolean passRawArgs() {
+ public boolean passRawArgs()
+ {
return false;
}
@NotNull
@Override
- public String getDescription() {
+ public String getDescription()
+ {
return "Ask a question to the Magic Ball.";
}
@Nullable
@Override
- public String getUsage() {
+ public String getUsage()
+ {
return "";
}
@NotNull
@Override
- public CommandCategory getCategory() {
+ public CommandCategory getCategory()
+ {
return CommandCategory.FUN;
}
@Override
public void runCommand(MessageReceivedEvent event, String label, String[] args)
{
- if(args.length == 0)
+ if (args.length == 0)
{
event.getMessage().reply("You need to specify a question!").queue();
return;
}
StringBuilder questionBuilder = new StringBuilder();
- for(int i = 0; i < args.length; i++)
+ for (int i = 0; i < args.length; i++)
{
String arg = args[i];
questionBuilder.append(arg);
- if(i + 1 != args.length) // don't add a separator on the last iteration
+ if (i + 1 != args.length) // don't add a separator on the last iteration
questionBuilder.append(" ");
}
- String question = questionBuilder.toString();
+ String question = questionBuilder.toString();
event.getChannel().sendMessageEmbeds(MagicBall.generateEmbed(question, event.getAuthor())).queue();
diff --git a/src/main/java/wtf/beatrice/hidekobot/commands/message/SayCommand.java b/src/main/java/wtf/beatrice/hidekobot/commands/message/SayCommand.java
index 7c87b89..7bccd12 100644
--- a/src/main/java/wtf/beatrice/hidekobot/commands/message/SayCommand.java
+++ b/src/main/java/wtf/beatrice/hidekobot/commands/message/SayCommand.java
@@ -18,34 +18,42 @@ public class SayCommand implements MessageCommand
@Override
- public LinkedList getCommandLabels() {
+ public LinkedList getCommandLabels()
+ {
return new LinkedList<>(Collections.singletonList("say"));
}
@Nullable
@Override
- public List getPermissions() { return Collections.singletonList(Say.getPermission()); }
+ public List getPermissions()
+ {
+ return Collections.singletonList(Say.getPermission());
+ }
@Override
- public boolean passRawArgs() {
+ public boolean passRawArgs()
+ {
return true;
}
@NotNull
@Override
- public String getDescription() {
+ public String getDescription()
+ {
return "Make the bot say something for you.";
}
@Nullable
@Override
- public String getUsage() {
+ public String getUsage()
+ {
return "";
}
@NotNull
@Override
- public CommandCategory getCategory() {
+ public CommandCategory getCategory()
+ {
return CommandCategory.TOOLS;
}
diff --git a/src/main/java/wtf/beatrice/hidekobot/commands/message/TimeoutCommand.java b/src/main/java/wtf/beatrice/hidekobot/commands/message/TimeoutCommand.java
index 50aa23a..c7df0fe 100644
--- a/src/main/java/wtf/beatrice/hidekobot/commands/message/TimeoutCommand.java
+++ b/src/main/java/wtf/beatrice/hidekobot/commands/message/TimeoutCommand.java
@@ -17,36 +17,42 @@ public class TimeoutCommand implements MessageCommand
{
@Override
- public LinkedList getCommandLabels() {
+ public LinkedList getCommandLabels()
+ {
return new LinkedList<>(Collections.singletonList("timeout"));
}
@Nullable
@Override
- public List getPermissions() {
+ public List getPermissions()
+ {
return new ArrayList(Collections.singletonList(Permission.MODERATE_MEMBERS));
}
@Override
- public boolean passRawArgs() {
+ public boolean passRawArgs()
+ {
return false;
}
@NotNull
@Override
- public CommandCategory getCategory() {
+ public CommandCategory getCategory()
+ {
return CommandCategory.MODERATION;
}
@NotNull
@Override
- public String getDescription() {
+ public String getDescription()
+ {
return "Timeout the mentioned user.";
}
@Nullable
@Override
- public String getUsage() {
+ public String getUsage()
+ {
return " [reason]";
}
diff --git a/src/main/java/wtf/beatrice/hidekobot/commands/message/TriviaCommand.java b/src/main/java/wtf/beatrice/hidekobot/commands/message/TriviaCommand.java
index 56c6b41..50fff25 100644
--- a/src/main/java/wtf/beatrice/hidekobot/commands/message/TriviaCommand.java
+++ b/src/main/java/wtf/beatrice/hidekobot/commands/message/TriviaCommand.java
@@ -23,36 +23,42 @@ public class TriviaCommand implements MessageCommand
{
@Override
- public LinkedList getCommandLabels() {
+ public LinkedList getCommandLabels()
+ {
return new LinkedList<>(Collections.singletonList("trivia"));
}
@Nullable
@Override
- public List getPermissions() {
+ public List getPermissions()
+ {
return null;
}
@Override
- public boolean passRawArgs() {
+ public boolean passRawArgs()
+ {
return false;
}
@NotNull
@Override
- public CommandCategory getCategory() {
+ public CommandCategory getCategory()
+ {
return CommandCategory.FUN;
}
@NotNull
@Override
- public String getDescription() {
+ public String getDescription()
+ {
return "Start a Trivia session and play with others!";
}
@Nullable
@Override
- public String getUsage() {
+ public String getUsage()
+ {
return null;
}
@@ -61,13 +67,13 @@ public class TriviaCommand implements MessageCommand
{
MessageChannel channel = event.getChannel();
- if(!(channel instanceof TextChannel))
+ if (!(channel instanceof TextChannel))
{
channel.sendMessage(Trivia.getNoDMsError()).queue();
return;
}
- if(Trivia.channelsRunningTrivia.contains(channel.getId()))
+ if (Trivia.channelsRunningTrivia.contains(channel.getId()))
{
// todo: also what if the bot stops (database...?)
// todo: also what if the message is already deleted
@@ -80,11 +86,12 @@ public class TriviaCommand implements MessageCommand
Message recvMessage = event.getMessage();
MessageCreateAction responseAction = null;
- if(response.content() != null) responseAction = recvMessage.reply(response.content());
- else if(response.embed() != null) responseAction = recvMessage.replyEmbeds(response.embed());
+ if (response.content() != null) responseAction = recvMessage.reply(response.content());
+ else if (response.embed() != null) responseAction = recvMessage.replyEmbeds(response.embed());
- if(responseAction != null) {
- if(response.components() != null) responseAction = responseAction.addActionRow(response.components());
+ if (responseAction != null)
+ {
+ if (response.components() != null) responseAction = responseAction.addActionRow(response.components());
responseAction.queue(message -> {
Cache.getDatabaseSource().trackRanCommandReply(message, event.getAuthor());
diff --git a/src/main/java/wtf/beatrice/hidekobot/commands/message/UrbanDictionaryCommand.java b/src/main/java/wtf/beatrice/hidekobot/commands/message/UrbanDictionaryCommand.java
index 2fd5e32..93169af 100644
--- a/src/main/java/wtf/beatrice/hidekobot/commands/message/UrbanDictionaryCommand.java
+++ b/src/main/java/wtf/beatrice/hidekobot/commands/message/UrbanDictionaryCommand.java
@@ -21,36 +21,42 @@ public class UrbanDictionaryCommand implements MessageCommand
{
@Override
- public LinkedList getCommandLabels() {
+ public LinkedList getCommandLabels()
+ {
return UrbanDictionary.getCommandLabels();
}
@Nullable
@Override
- public List getPermissions() {
+ public List getPermissions()
+ {
return null; //anyone can use it
}
@Override
- public boolean passRawArgs() {
+ public boolean passRawArgs()
+ {
return false;
}
@NotNull
@Override
- public String getDescription() {
+ public String getDescription()
+ {
return "Look something up in the Urban Dictionary.";
}
@Nullable
@Override
- public String getUsage() {
+ public String getUsage()
+ {
return "";
}
@NotNull
@Override
- public CommandCategory getCategory() {
+ public CommandCategory getCategory()
+ {
return CommandCategory.FUN;
}
@@ -58,7 +64,7 @@ public class UrbanDictionaryCommand implements MessageCommand
@Override
public void runCommand(MessageReceivedEvent event, String label, String[] args)
{
- if(args.length == 0)
+ if (args.length == 0)
{
event.getMessage().reply(UrbanDictionary.getNoArgsError()).queue();
return;
@@ -66,11 +72,12 @@ public class UrbanDictionaryCommand implements MessageCommand
// sanitize args by only keeping letters and numbers, and adding "+" instead of spaces for HTML parsing
StringBuilder termBuilder = new StringBuilder();
- for (int i = 0; i < args.length; i++) {
+ for (int i = 0; i < args.length; i++)
+ {
String arg = args[i];
termBuilder.append(arg);
- if(i + 1 != args.length) // add spaces between args, but not on the last run
+ if (i + 1 != args.length) // add spaces between args, but not on the last run
termBuilder.append(" ");
}
@@ -79,9 +86,11 @@ public class UrbanDictionaryCommand implements MessageCommand
Document doc;
- try {
+ try
+ {
doc = Jsoup.connect(url).get();
- } catch (IOException e) {
+ } catch (IOException e)
+ {
event.getMessage().reply(UrbanDictionary.getTermNotFoundError()).queue();
return;
}
@@ -92,7 +101,7 @@ public class UrbanDictionaryCommand implements MessageCommand
// disable next page if we only have one result
Button nextPageBtnLocal = UrbanDictionary.getNextPageButton();
- if(search.getPages() == 1) nextPageBtnLocal = nextPageBtnLocal.asDisabled();
+ if (search.getPages() == 1) nextPageBtnLocal = nextPageBtnLocal.asDisabled();
event.getChannel()
.sendMessageEmbeds(embed)
diff --git a/src/main/java/wtf/beatrice/hidekobot/commands/slash/AvatarCommand.java b/src/main/java/wtf/beatrice/hidekobot/commands/slash/AvatarCommand.java
index 3698278..e1ccef4 100644
--- a/src/main/java/wtf/beatrice/hidekobot/commands/slash/AvatarCommand.java
+++ b/src/main/java/wtf/beatrice/hidekobot/commands/slash/AvatarCommand.java
@@ -14,7 +14,8 @@ import wtf.beatrice.hidekobot.objects.commands.SlashCommandImpl;
public class AvatarCommand extends SlashCommandImpl
{
@Override
- public CommandData getSlashCommandData() {
+ public CommandData getSlashCommandData()
+ {
return Commands.slash("avatar", "Get someone's profile picture.")
.addOption(OptionType.USER, "user", "User you want to grab the avatar of.")
.addOption(OptionType.INTEGER, "size", "The size of the returned image.",
@@ -32,26 +33,28 @@ public class AvatarCommand extends SlashCommandImpl
int resolution;
OptionMapping userArg = event.getOption("user");
- if(userArg != null)
+ if (userArg != null)
{
user = userArg.getAsUser();
- } else {
+ } else
+ {
user = event.getUser();
}
OptionMapping sizeArg = event.getOption("size");
- if(sizeArg != null)
+ if (sizeArg != null)
{
resolution = ProfileImage.parseResolution(sizeArg.getAsInt());
- } else {
+ } else
+ {
resolution = ProfileImage.parseResolution(512);
}
MessageResponse response = ProfileImage.buildResponse(resolution, user, ProfileImage.ImageType.AVATAR);
- if(response.content() != null)
+ if (response.content() != null)
{
event.getHook().editOriginal(response.content()).queue();
- } else if(response.embed() != null)
+ } else if (response.embed() != null)
{
event.getHook().editOriginalEmbeds(response.embed()).queue();
}
diff --git a/src/main/java/wtf/beatrice/hidekobot/commands/slash/BannerCommand.java b/src/main/java/wtf/beatrice/hidekobot/commands/slash/BannerCommand.java
index eb4569a..e9b2d92 100644
--- a/src/main/java/wtf/beatrice/hidekobot/commands/slash/BannerCommand.java
+++ b/src/main/java/wtf/beatrice/hidekobot/commands/slash/BannerCommand.java
@@ -14,7 +14,8 @@ import wtf.beatrice.hidekobot.objects.commands.SlashCommandImpl;
public class BannerCommand extends SlashCommandImpl
{
@Override
- public CommandData getSlashCommandData() {
+ public CommandData getSlashCommandData()
+ {
return Commands.slash("banner", "Get someone's profile banner.")
.addOption(OptionType.USER, "user", "User you want to grab the banner of.")
.addOption(OptionType.INTEGER, "size", "The size of the returned image.",
@@ -32,26 +33,28 @@ public class BannerCommand extends SlashCommandImpl
int resolution;
OptionMapping userArg = event.getOption("user");
- if(userArg != null)
+ if (userArg != null)
{
user = userArg.getAsUser();
- } else {
+ } else
+ {
user = event.getUser();
}
OptionMapping sizeArg = event.getOption("size");
- if(sizeArg != null)
+ if (sizeArg != null)
{
resolution = ProfileImage.parseResolution(sizeArg.getAsInt());
- } else {
+ } else
+ {
resolution = ProfileImage.parseResolution(512);
}
MessageResponse response = ProfileImage.buildResponse(resolution, user, ProfileImage.ImageType.BANNER);
- if(response.content() != null)
+ if (response.content() != null)
{
event.getHook().editOriginal(response.content()).queue();
- } else if(response.embed() != null)
+ } else if (response.embed() != null)
{
event.getHook().editOriginalEmbeds(response.embed()).queue();
}
diff --git a/src/main/java/wtf/beatrice/hidekobot/commands/slash/BotInfoCommand.java b/src/main/java/wtf/beatrice/hidekobot/commands/slash/BotInfoCommand.java
index f9866e8..1a65ef2 100644
--- a/src/main/java/wtf/beatrice/hidekobot/commands/slash/BotInfoCommand.java
+++ b/src/main/java/wtf/beatrice/hidekobot/commands/slash/BotInfoCommand.java
@@ -16,7 +16,8 @@ import java.util.List;
public class BotInfoCommand extends SlashCommandImpl
{
@Override
- public CommandData getSlashCommandData() {
+ public CommandData getSlashCommandData()
+ {
return Commands.slash("botinfo", "Get info about the bot.");
}
@@ -29,7 +30,7 @@ public class BotInfoCommand extends SlashCommandImpl
// get a list of slash commands
List registeredCommands = Cache.getSlashCommandListener().getRegisteredCommands();
LinkedList registeredCommandNames = new LinkedList<>();
- for(SlashCommand command : registeredCommands)
+ for (SlashCommand command : registeredCommands)
{
// node: adding slash so people realize that this is specific about slash commands.
registeredCommandNames.add("/" + command.getCommandName());
diff --git a/src/main/java/wtf/beatrice/hidekobot/commands/slash/ClearCommand.java b/src/main/java/wtf/beatrice/hidekobot/commands/slash/ClearCommand.java
index 73a6013..528f1ae 100644
--- a/src/main/java/wtf/beatrice/hidekobot/commands/slash/ClearCommand.java
+++ b/src/main/java/wtf/beatrice/hidekobot/commands/slash/ClearCommand.java
@@ -17,7 +17,8 @@ public class ClearCommand extends SlashCommandImpl
{
@Override
- public CommandData getSlashCommandData() {
+ public CommandData getSlashCommandData()
+ {
return Commands.slash(ClearChat.getLabel(),
ClearChat.getDescription())
.addOption(OptionType.INTEGER, "amount", "The amount of messages to delete.")
@@ -32,7 +33,7 @@ public class ClearCommand extends SlashCommandImpl
// check if user is trying to run command in dms.
String error = ClearChat.checkDMs(event.getChannel());
- if(error != null)
+ if (error != null)
{
event.getHook().editOriginal(error).queue();
return;
@@ -45,10 +46,10 @@ public class ClearCommand extends SlashCommandImpl
int toDeleteAmount = amountOption == null ? 1 : amountOption.getAsInt();
// cap the amount to avoid abuse.
- if(toDeleteAmount > ClearChat.getMaxAmount()) toDeleteAmount = 0;
+ if (toDeleteAmount > ClearChat.getMaxAmount()) toDeleteAmount = 0;
error = ClearChat.checkDeleteAmount(toDeleteAmount);
- if(error != null)
+ if (error != null)
{
event.getHook().editOriginal(error).queue();
return;
diff --git a/src/main/java/wtf/beatrice/hidekobot/commands/slash/CoinFlipCommand.java b/src/main/java/wtf/beatrice/hidekobot/commands/slash/CoinFlipCommand.java
index eb3257a..aef6425 100644
--- a/src/main/java/wtf/beatrice/hidekobot/commands/slash/CoinFlipCommand.java
+++ b/src/main/java/wtf/beatrice/hidekobot/commands/slash/CoinFlipCommand.java
@@ -29,12 +29,11 @@ public class CoinFlipCommand extends SlashCommandImpl
interaction.retrieveOriginal().queue((message) ->
{
CoinFlip.trackAndRestrict(message, event.getUser());
- }, (error) -> {});
- }, (error) -> {});
+ }, (error) -> {
+ });
+ }, (error) -> {
+ });
}
-
-
-
}
diff --git a/src/main/java/wtf/beatrice/hidekobot/commands/slash/DiceRollCommand.java b/src/main/java/wtf/beatrice/hidekobot/commands/slash/DiceRollCommand.java
index a8f447d..704ab36 100644
--- a/src/main/java/wtf/beatrice/hidekobot/commands/slash/DiceRollCommand.java
+++ b/src/main/java/wtf/beatrice/hidekobot/commands/slash/DiceRollCommand.java
@@ -30,19 +30,19 @@ public class DiceRollCommand extends SlashCommandImpl
OptionMapping textOption = event.getOption("query");
String messageContent = "";
- if(textOption != null)
+ if (textOption != null)
{
- messageContent = textOption.getAsString();
+ messageContent = textOption.getAsString();
}
String[] args = messageContent.split("\\s");
MessageResponse response = DiceRoll.buildResponse(event.getUser(), args);
- if(response.content() != null)
+ if (response.content() != null)
{
event.getHook().editOriginal(response.content()).queue();
- } else if(response.embed() != null)
+ } else if (response.embed() != null)
{
event.getHook().editOriginalEmbeds(response.embed()).queue();
}
diff --git a/src/main/java/wtf/beatrice/hidekobot/commands/slash/DieCommand.java b/src/main/java/wtf/beatrice/hidekobot/commands/slash/DieCommand.java
index 6bc9fdd..375e9f1 100644
--- a/src/main/java/wtf/beatrice/hidekobot/commands/slash/DieCommand.java
+++ b/src/main/java/wtf/beatrice/hidekobot/commands/slash/DieCommand.java
@@ -16,7 +16,8 @@ import java.util.concurrent.TimeUnit;
public class DieCommand extends SlashCommandImpl
{
@Override
- public CommandData getSlashCommandData() {
+ public CommandData getSlashCommandData()
+ {
return Commands.slash("die", "Stop the bot's process.")
.setDefaultPermissions(DefaultMemberPermissions.DISABLED);
}
@@ -24,12 +25,14 @@ public class DieCommand extends SlashCommandImpl
@Override
public void runSlashCommand(@NotNull SlashCommandInteractionEvent event)
{
- if(Cache.getBotOwnerId() != event.getUser().getIdLong())
+ if (Cache.getBotOwnerId() != event.getUser().getIdLong())
{
event.reply("Sorry, only the bot owner can run this command!").setEphemeral(true).queue();
- } else {
+ } else
+ {
event.reply("Going to sleep! Cya ✨").queue();
- try (ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor()) {
+ try (ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor())
+ {
executor.schedule(HidekoBot::shutdown, 3, TimeUnit.SECONDS);
}
}
diff --git a/src/main/java/wtf/beatrice/hidekobot/commands/slash/InviteCommand.java b/src/main/java/wtf/beatrice/hidekobot/commands/slash/InviteCommand.java
index 9cd2ebb..eb4ac2b 100644
--- a/src/main/java/wtf/beatrice/hidekobot/commands/slash/InviteCommand.java
+++ b/src/main/java/wtf/beatrice/hidekobot/commands/slash/InviteCommand.java
@@ -30,7 +30,7 @@ public class InviteCommand extends SlashCommandImpl
ReplyCallbackAction replyCallbackAction = event.deferReply();
// only make message permanent in DMs
- if(event.getChannelType() != ChannelType.PRIVATE)
+ if (event.getChannelType() != ChannelType.PRIVATE)
{
replyCallbackAction = replyCallbackAction.setEphemeral(true);
}
diff --git a/src/main/java/wtf/beatrice/hidekobot/commands/slash/LoveCalculatorCommand.java b/src/main/java/wtf/beatrice/hidekobot/commands/slash/LoveCalculatorCommand.java
index de5318b..303118f 100644
--- a/src/main/java/wtf/beatrice/hidekobot/commands/slash/LoveCalculatorCommand.java
+++ b/src/main/java/wtf/beatrice/hidekobot/commands/slash/LoveCalculatorCommand.java
@@ -18,7 +18,7 @@ public class LoveCalculatorCommand extends SlashCommandImpl
{
return Commands.slash("lovecalc",
- "Calculate how much two people love each other.")
+ "Calculate how much two people love each other.")
.addOption(OptionType.MENTIONABLE,
"first",
@@ -37,10 +37,11 @@ public class LoveCalculatorCommand extends SlashCommandImpl
User firstUser, secondUser;
OptionMapping firsUserArg = event.getOption("first");
- if(firsUserArg != null)
+ if (firsUserArg != null)
{
firstUser = firsUserArg.getAsUser(); //todo null check?
- } else {
+ } else
+ {
event.reply("\uD83D\uDE22 I need to know who to check! Please mention them.")
.setEphemeral(true)
.queue();
@@ -48,10 +49,11 @@ public class LoveCalculatorCommand extends SlashCommandImpl
}
OptionMapping secondUserArg = event.getOption("second");
- if(secondUserArg != null)
+ if (secondUserArg != null)
{
secondUser = secondUserArg.getAsUser(); //todo null check?
- } else {
+ } else
+ {
secondUser = event.getUser();
}
diff --git a/src/main/java/wtf/beatrice/hidekobot/commands/slash/MagicBallCommand.java b/src/main/java/wtf/beatrice/hidekobot/commands/slash/MagicBallCommand.java
index b2d7a8d..5833f59 100644
--- a/src/main/java/wtf/beatrice/hidekobot/commands/slash/MagicBallCommand.java
+++ b/src/main/java/wtf/beatrice/hidekobot/commands/slash/MagicBallCommand.java
@@ -17,7 +17,7 @@ public class MagicBallCommand extends SlashCommandImpl
{
return Commands.slash(MagicBall.getLabels().get(0),
- "Ask a question to the magic ball.")
+ "Ask a question to the magic ball.")
.addOption(OptionType.STRING, "question",
"The question to ask.",
true,
@@ -30,12 +30,12 @@ public class MagicBallCommand extends SlashCommandImpl
// get the asked question
OptionMapping textOption = event.getOption("question");
String question = "";
- if(textOption != null)
+ if (textOption != null)
{
question = textOption.getAsString();
}
- if(textOption == null || question.isEmpty())
+ if (textOption == null || question.isEmpty())
{
event.reply("\uD83D\uDE20 Hey, you have to ask me a question!")
.setEphemeral(true)
diff --git a/src/main/java/wtf/beatrice/hidekobot/commands/slash/SayCommand.java b/src/main/java/wtf/beatrice/hidekobot/commands/slash/SayCommand.java
index f72da75..7d18fd6 100644
--- a/src/main/java/wtf/beatrice/hidekobot/commands/slash/SayCommand.java
+++ b/src/main/java/wtf/beatrice/hidekobot/commands/slash/SayCommand.java
@@ -33,12 +33,12 @@ public class SayCommand extends SlashCommandImpl
// get the text to send
OptionMapping textOption = event.getOption("text");
String messageContent = "";
- if(textOption != null)
+ if (textOption != null)
{
- messageContent = textOption.getAsString();
+ messageContent = textOption.getAsString();
}
- if(textOption == null || messageContent.isEmpty())
+ if (textOption == null || messageContent.isEmpty())
{
event.reply("\uD83D\uDE20 Hey, you have to tell me what to say!")
.setEphemeral(true)
diff --git a/src/main/java/wtf/beatrice/hidekobot/commands/slash/TriviaCommand.java b/src/main/java/wtf/beatrice/hidekobot/commands/slash/TriviaCommand.java
index 819a50f..8730881 100644
--- a/src/main/java/wtf/beatrice/hidekobot/commands/slash/TriviaCommand.java
+++ b/src/main/java/wtf/beatrice/hidekobot/commands/slash/TriviaCommand.java
@@ -26,13 +26,13 @@ public class TriviaCommand extends SlashCommandImpl
{
MessageChannel channel = event.getChannel();
- if(!(channel instanceof TextChannel))
+ if (!(channel instanceof TextChannel))
{
event.reply(Trivia.getNoDMsError()).queue();
return;
}
- if(Trivia.channelsRunningTrivia.contains(channel.getId()))
+ if (Trivia.channelsRunningTrivia.contains(channel.getId()))
{
event.reply(Trivia.getTriviaAlreadyRunningError()).setEphemeral(true).queue();
return;
diff --git a/src/main/java/wtf/beatrice/hidekobot/commands/slash/UrbanDictionaryCommand.java b/src/main/java/wtf/beatrice/hidekobot/commands/slash/UrbanDictionaryCommand.java
index 84727d6..b292bba 100644
--- a/src/main/java/wtf/beatrice/hidekobot/commands/slash/UrbanDictionaryCommand.java
+++ b/src/main/java/wtf/beatrice/hidekobot/commands/slash/UrbanDictionaryCommand.java
@@ -24,7 +24,7 @@ public class UrbanDictionaryCommand extends SlashCommandImpl
{
return Commands.slash(UrbanDictionary.getCommandLabels().get(0),
- "Look up a term on Urban Dictionary.")
+ "Look up a term on Urban Dictionary.")
.addOption(OptionType.STRING, "term", "The term to look up", true);
}
@@ -36,12 +36,12 @@ public class UrbanDictionaryCommand extends SlashCommandImpl
// get the term to look up
OptionMapping textOption = event.getOption("term");
String term = "";
- if(textOption != null)
+ if (textOption != null)
{
term = textOption.getAsString();
}
- if(textOption == null || term.isEmpty())
+ if (textOption == null || term.isEmpty())
{
event.reply(UrbanDictionary.getNoArgsError())
.setEphemeral(true)
@@ -54,9 +54,11 @@ public class UrbanDictionaryCommand extends SlashCommandImpl
Document doc;
- try {
+ try
+ {
doc = Jsoup.connect(url).get();
- } catch (IOException e) {
+ } catch (IOException e)
+ {
event.reply(UrbanDictionary.getTermNotFoundError())
.setEphemeral(true)
.queue();
@@ -69,7 +71,7 @@ public class UrbanDictionaryCommand extends SlashCommandImpl
// disable next page if we only have one result
Button nextPageBtnLocal = UrbanDictionary.getNextPageButton();
- if(search.getPages() == 1) nextPageBtnLocal = nextPageBtnLocal.asDisabled();
+ if (search.getPages() == 1) nextPageBtnLocal = nextPageBtnLocal.asDisabled();
ActionRow actionRow = ActionRow.of(UrbanDictionary.getPreviousPageButton().asDisabled(),
//disabled by default because we're on page 0
diff --git a/src/main/java/wtf/beatrice/hidekobot/datasources/ConfigurationEntry.java b/src/main/java/wtf/beatrice/hidekobot/datasources/ConfigurationEntry.java
index 21cb2c6..b5fc6a0 100644
--- a/src/main/java/wtf/beatrice/hidekobot/datasources/ConfigurationEntry.java
+++ b/src/main/java/wtf/beatrice/hidekobot/datasources/ConfigurationEntry.java
@@ -14,12 +14,20 @@ public enum ConfigurationEntry
private String path;
private Object defaultValue;
+
ConfigurationEntry(String path, Object defaultValue)
{
this.path = path;
this.defaultValue = defaultValue;
}
- public String getPath() { return path; }
- public Object getDefaultValue() { return defaultValue; }
+ public String getPath()
+ {
+ return path;
+ }
+
+ public Object getDefaultValue()
+ {
+ return defaultValue;
+ }
}
diff --git a/src/main/java/wtf/beatrice/hidekobot/datasources/ConfigurationSource.java b/src/main/java/wtf/beatrice/hidekobot/datasources/ConfigurationSource.java
index 8744807..00dbaa2 100644
--- a/src/main/java/wtf/beatrice/hidekobot/datasources/ConfigurationSource.java
+++ b/src/main/java/wtf/beatrice/hidekobot/datasources/ConfigurationSource.java
@@ -32,12 +32,12 @@ public class ConfigurationSource
* we used to have a config.yml file in the "resources" folder, but that is no longer necessary.
*/
LinkedHashMap internalConfigContents = new LinkedHashMap<>(); // map holding all file entries
- for(ConfigurationEntry entry : ConfigurationEntry.values())
+ for (ConfigurationEntry entry : ConfigurationEntry.values())
{
internalConfigContents.put(entry.getPath(), entry.getDefaultValue());
}
- if(internalConfigContents.isEmpty())
+ if (internalConfigContents.isEmpty())
{
LOGGER.error("Error reading internal configuration!");
HidekoBot.shutdown();
@@ -46,18 +46,19 @@ public class ConfigurationSource
// check if config files exists in filesystem
File fsConfigFile = new File(configFilePath);
- if(!fsConfigFile.exists())
+ if (!fsConfigFile.exists())
{
// try to create config file
- try {
- if(!fsConfigFile.createNewFile())
+ try
+ {
+ if (!fsConfigFile.createNewFile())
{
LOGGER.error("We tried creating a file that already exists!");
HidekoBot.shutdown();
return;
}
- }
- catch (IOException e) {
+ } catch (IOException e)
+ {
LOGGER.error("Error creating configuration file!", e);
HidekoBot.shutdown();
return;
@@ -68,11 +69,15 @@ public class ConfigurationSource
Yaml fsConfigYaml = new Yaml(new SafeConstructor(options));
LinkedHashMap fsConfigContents = null; // map holding all file entries
try (InputStream fsConfigStream = new FileInputStream(fsConfigFile))
- { fsConfigContents = fsConfigYaml.load(fsConfigStream); }
- catch (IOException e) { LOGGER.error(e.getMessage()); }
+ {
+ fsConfigContents = fsConfigYaml.load(fsConfigStream);
+ } catch (IOException e)
+ {
+ LOGGER.error(e.getMessage());
+ }
- if(fsConfigContents == null) // if file contents are empty or corrupted...
+ if (fsConfigContents == null) // if file contents are empty or corrupted...
{
// "clean" them (this effectively forces a config file reset)
fsConfigContents = new LinkedHashMap<>();
@@ -80,10 +85,10 @@ public class ConfigurationSource
// check for missing keys
boolean missingKeys = false;
- for(String key : internalConfigContents.keySet())
+ for (String key : internalConfigContents.keySet())
{
// if key is missing
- if(!fsConfigContents.containsKey(key))
+ if (!fsConfigContents.containsKey(key))
{
// quit and flag it, as we need to complete the file with the missing ones
missingKeys = true;
@@ -92,27 +97,29 @@ public class ConfigurationSource
}
// if keys are missing
- if(missingKeys)
+ if (missingKeys)
{
// create a new mixed map that will take existing values from the non-missing keys
// and fill everything else with the default values
LinkedHashMap filledEntries = new LinkedHashMap<>();
- for(Map.Entry entry : internalConfigContents.entrySet())
+ for (Map.Entry entry : internalConfigContents.entrySet())
{
String key = entry.getKey();
- if(fsConfigContents.containsKey(key))
+ if (fsConfigContents.containsKey(key))
{
// if the key already exists, copy the original value
filledEntries.put(key, fsConfigContents.get(key));
- } else {
+ } else
+ {
// else, copy the value from the example config file
filledEntries.put(key, entry.getValue());
}
}
- try {
+ try
+ {
// new writer to actually write the contents to the file
PrintWriter missingKeysWriter = new PrintWriter(fsConfigFile);
@@ -125,7 +132,8 @@ public class ConfigurationSource
// create the yaml object and dump the values to filesystem
Yaml yaml = new Yaml(dumperOptions);
yaml.dump(filledEntries, missingKeysWriter);
- } catch (FileNotFoundException e) {
+ } catch (FileNotFoundException e)
+ {
LOGGER.error(e.getMessage());
HidekoBot.shutdown();
return;
@@ -133,7 +141,8 @@ public class ConfigurationSource
// finally, dump all entries to cache.
loadConfig(filledEntries);
- } else {
+ } else
+ {
// if no key is missing, just cache all entries and values from filesystem.
loadConfig(fsConfigContents);
}
@@ -144,6 +153,7 @@ public class ConfigurationSource
{
this.configurationEntries.putAll(configurationEntries);
}
+
public Object getConfigValue(ConfigurationEntry key)
{
return configurationEntries.get(key.getPath());
diff --git a/src/main/java/wtf/beatrice/hidekobot/datasources/DatabaseSource.java b/src/main/java/wtf/beatrice/hidekobot/datasources/DatabaseSource.java
index a800b99..fc52343 100644
--- a/src/main/java/wtf/beatrice/hidekobot/datasources/DatabaseSource.java
+++ b/src/main/java/wtf/beatrice/hidekobot/datasources/DatabaseSource.java
@@ -12,31 +12,37 @@ import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
-public class DatabaseSource {
+public class DatabaseSource
+{
private static final org.slf4j.Logger LOGGER = LoggerFactory.getLogger(DatabaseSource.class);
private static final String JDBC_URL = "jdbc:sqlite:%path%";
private Connection dbConnection = null;
private final String dbPath;
- public DatabaseSource(String dbPath) {
+ public DatabaseSource(String dbPath)
+ {
this.dbPath = dbPath;
}
- private void logException(SQLException e) {
+ private void logException(SQLException e)
+ {
LOGGER.error("Database Exception", e);
}
- public boolean connect() {
+ public boolean connect()
+ {
String url = JDBC_URL.replace("%path%", dbPath);
if (!close()) return false;
- try {
+ try
+ {
dbConnection = DriverManager.getConnection(url);
LOGGER.info("Database connection established!");
return true;
- } catch (SQLException e) {
+ } catch (SQLException e)
+ {
logException(e);
return false;
}
@@ -44,13 +50,18 @@ public class DatabaseSource {
}
- public boolean close() {
- if (dbConnection != null) {
- try {
- if (!dbConnection.isClosed()) {
+ public boolean close()
+ {
+ if (dbConnection != null)
+ {
+ try
+ {
+ if (!dbConnection.isClosed())
+ {
dbConnection.close();
}
- } catch (SQLException e) {
+ } catch (SQLException e)
+ {
logException(e);
return false;
}
@@ -87,43 +98,47 @@ public class DatabaseSource {
*/
//todo: javadocs
- public boolean initDb() {
+ public boolean initDb()
+ {
List newTables = new ArrayList<>();
newTables.add("""
- CREATE TABLE IF NOT EXISTS pending_disabled_messages (
- guild_id TEXT NOT NULL,
- channel_id TEXT NOT NULL,
- message_id TEXT NOT NULL,
- expiry_timestamp TEXT NOT NULL);
- """);
+ CREATE TABLE IF NOT EXISTS pending_disabled_messages (
+ guild_id TEXT NOT NULL,
+ channel_id TEXT NOT NULL,
+ message_id TEXT NOT NULL,
+ expiry_timestamp TEXT NOT NULL);
+ """);
newTables.add("""
- CREATE TABLE IF NOT EXISTS command_runners (
- guild_id TEXT NOT NULL,
- channel_id TEXT NOT NULL,
- message_id TEXT NOT NULL,
- user_id TEXT NOT NULL,
- channel_type TEXT NOT NULL);
- """);
+ CREATE TABLE IF NOT EXISTS command_runners (
+ guild_id TEXT NOT NULL,
+ channel_id TEXT NOT NULL,
+ message_id TEXT NOT NULL,
+ user_id TEXT NOT NULL,
+ channel_type TEXT NOT NULL);
+ """);
newTables.add("""
- CREATE TABLE IF NOT EXISTS urban_dictionary (
- message_id TEXT NOT NULL,
- page INTEGER NOT NULL,
- meanings TEXT NOT NULL,
- examples TEXT NOT NULL,
- contributors TEXT NOT NULL,
- dates TEXT NOT NULL,
- term TEXT NOT NULL
- );
- """);
+ CREATE TABLE IF NOT EXISTS urban_dictionary (
+ message_id TEXT NOT NULL,
+ page INTEGER NOT NULL,
+ meanings TEXT NOT NULL,
+ examples TEXT NOT NULL,
+ contributors TEXT NOT NULL,
+ dates TEXT NOT NULL,
+ term TEXT NOT NULL
+ );
+ """);
- for (String sql : newTables) {
- try (Statement stmt = dbConnection.createStatement()) {
+ for (String sql : newTables)
+ {
+ try (Statement stmt = dbConnection.createStatement())
+ {
// execute the statement
stmt.execute(sql);
- } catch (SQLException e) {
+ } catch (SQLException e)
+ {
logException(e);
return false;
}
@@ -132,14 +147,17 @@ public class DatabaseSource {
return true;
}
- public boolean trackRanCommandReply(Message message, User user) {
+ public boolean trackRanCommandReply(Message message, User user)
+ {
String userId = user.getId();
String guildId;
ChannelType channelType = message.getChannelType();
- if (!(channelType.isGuild())) {
+ if (!(channelType.isGuild()))
+ {
guildId = userId;
- } else {
+ } else
+ {
guildId = message.getGuild().getId();
}
@@ -153,7 +171,8 @@ public class DatabaseSource {
(?, ?, ?, ?, ?);
""";
- try (PreparedStatement preparedStatement = dbConnection.prepareStatement(query)) {
+ try (PreparedStatement preparedStatement = dbConnection.prepareStatement(query))
+ {
preparedStatement.setString(1, guildId);
preparedStatement.setString(2, channelId);
preparedStatement.setString(3, messageId);
@@ -163,36 +182,42 @@ public class DatabaseSource {
preparedStatement.executeUpdate();
return true;
- } catch (SQLException e) {
+ } catch (SQLException e)
+ {
logException(e);
}
return false;
}
- public boolean isUserTrackedFor(String userId, String messageId) {
+ public boolean isUserTrackedFor(String userId, String messageId)
+ {
String trackedUserId = getTrackedReplyUserId(messageId);
if (trackedUserId == null) return false;
return userId.equals(trackedUserId);
}
- public ChannelType getTrackedMessageChannelType(String messageId) {
+ public ChannelType getTrackedMessageChannelType(String messageId)
+ {
String query = """
SELECT channel_type
FROM command_runners
WHERE message_id = ?;
""";
- try (PreparedStatement preparedStatement = dbConnection.prepareStatement(query)) {
+ try (PreparedStatement preparedStatement = dbConnection.prepareStatement(query))
+ {
preparedStatement.setString(1, messageId);
ResultSet resultSet = preparedStatement.executeQuery();
if (resultSet.isClosed()) return null;
- while (resultSet.next()) {
+ while (resultSet.next())
+ {
String channelTypeName = resultSet.getString("channel_type");
return ChannelType.valueOf(channelTypeName);
}
- } catch (SQLException e) {
+ } catch (SQLException e)
+ {
logException(e);
}
@@ -200,37 +225,44 @@ public class DatabaseSource {
}
- public String getTrackedReplyUserId(String messageId) {
+ public String getTrackedReplyUserId(String messageId)
+ {
String query = """
SELECT user_id
FROM command_runners
WHERE message_id = ?;
""";
- try (PreparedStatement preparedStatement = dbConnection.prepareStatement(query)) {
+ try (PreparedStatement preparedStatement = dbConnection.prepareStatement(query))
+ {
preparedStatement.setString(1, messageId);
ResultSet resultSet = preparedStatement.executeQuery();
if (resultSet.isClosed()) return null;
- while (resultSet.next()) {
+ while (resultSet.next())
+ {
return resultSet.getString("user_id");
}
- } catch (SQLException e) {
+ } catch (SQLException e)
+ {
logException(e);
}
return null;
}
- public boolean queueDisabling(Message message) {
+ public boolean queueDisabling(Message message)
+ {
String messageId = message.getId();
String channelId = message.getChannel().getId();
String guildId;
ChannelType channelType = message.getChannelType();
- if (!(channelType.isGuild())) {
+ if (!(channelType.isGuild()))
+ {
guildId = "PRIVATE";
- } else {
+ } else
+ {
guildId = message.getGuild().getId();
}
@@ -245,7 +277,8 @@ public class DatabaseSource {
(?, ?, ?, ?);
""";
- try (PreparedStatement preparedStatement = dbConnection.prepareStatement(query)) {
+ try (PreparedStatement preparedStatement = dbConnection.prepareStatement(query))
+ {
preparedStatement.setString(1, guildId);
preparedStatement.setString(2, channelId);
preparedStatement.setString(3, messageId);
@@ -254,14 +287,16 @@ public class DatabaseSource {
preparedStatement.executeUpdate();
return true;
- } catch (SQLException e) {
+ } catch (SQLException e)
+ {
logException(e);
}
return false;
}
- public List getQueuedExpiringMessages() {
+ public List getQueuedExpiringMessages()
+ {
List messages = new ArrayList<>();
String query = """
@@ -269,44 +304,54 @@ public class DatabaseSource {
FROM pending_disabled_messages;
""";
- try (Statement statement = dbConnection.createStatement()) {
+ try (Statement statement = dbConnection.createStatement())
+ {
ResultSet resultSet = statement.executeQuery(query);
if (resultSet.isClosed()) return messages;
- while (resultSet.next()) {
+ while (resultSet.next())
+ {
messages.add(resultSet.getString("message_id"));
}
- } catch (SQLException e) {
+ } catch (SQLException e)
+ {
logException(e);
}
return messages;
}
- public boolean untrackExpiredMessage(String messageId) {
+ public boolean untrackExpiredMessage(String messageId)
+ {
String query = "DELETE FROM pending_disabled_messages WHERE message_id = ?;";
- try (PreparedStatement preparedStatement = dbConnection.prepareStatement(query)) {
+ try (PreparedStatement preparedStatement = dbConnection.prepareStatement(query))
+ {
preparedStatement.setString(1, messageId);
preparedStatement.execute();
- } catch (SQLException e) {
+ } catch (SQLException e)
+ {
logException(e);
return false;
}
query = "DELETE FROM command_runners WHERE message_id = ?;";
- try (PreparedStatement preparedStatement = dbConnection.prepareStatement(query)) {
+ try (PreparedStatement preparedStatement = dbConnection.prepareStatement(query))
+ {
preparedStatement.setString(1, messageId);
preparedStatement.execute();
- } catch (SQLException e) {
+ } catch (SQLException e)
+ {
logException(e);
return false;
}
query = "DELETE FROM urban_dictionary WHERE message_id = ?;";
- try (PreparedStatement preparedStatement = dbConnection.prepareStatement(query)) {
+ try (PreparedStatement preparedStatement = dbConnection.prepareStatement(query))
+ {
preparedStatement.setString(1, messageId);
preparedStatement.execute();
- } catch (SQLException e) {
+ } catch (SQLException e)
+ {
logException(e);
return false;
}
@@ -314,66 +359,78 @@ public class DatabaseSource {
return true;
}
- public String getQueuedExpiringMessageExpiryDate(String messageId) {
+ public String getQueuedExpiringMessageExpiryDate(String messageId)
+ {
String query = """
SELECT expiry_timestamp
FROM pending_disabled_messages
WHERE message_id = ?;
""";
- try (PreparedStatement preparedStatement = dbConnection.prepareStatement(query)) {
+ try (PreparedStatement preparedStatement = dbConnection.prepareStatement(query))
+ {
preparedStatement.setString(1, messageId);
ResultSet resultSet = preparedStatement.executeQuery();
if (resultSet.isClosed()) return null;
- while (resultSet.next()) {
+ while (resultSet.next())
+ {
return resultSet.getString("expiry_timestamp");
}
- } catch (SQLException e) {
+ } catch (SQLException e)
+ {
logException(e);
}
return null;
}
- public String getQueuedExpiringMessageChannel(String messageId) {
+ public String getQueuedExpiringMessageChannel(String messageId)
+ {
String query = """
SELECT channel_id
FROM pending_disabled_messages
WHERE message_id = ?;
""";
- try (PreparedStatement preparedStatement = dbConnection.prepareStatement(query)) {
+ try (PreparedStatement preparedStatement = dbConnection.prepareStatement(query))
+ {
preparedStatement.setString(1, messageId);
ResultSet resultSet = preparedStatement.executeQuery();
if (resultSet.isClosed()) return null;
- while (resultSet.next()) {
+ while (resultSet.next())
+ {
return resultSet.getString("channel_id");
}
- } catch (SQLException e) {
+ } catch (SQLException e)
+ {
logException(e);
}
return null;
}
- public String getQueuedExpiringMessageGuild(String messageId) {
+ public String getQueuedExpiringMessageGuild(String messageId)
+ {
String query = """
SELECT guild_id
FROM pending_disabled_messages
WHERE message_id = ?;
""";
- try (PreparedStatement preparedStatement = dbConnection.prepareStatement(query)) {
+ try (PreparedStatement preparedStatement = dbConnection.prepareStatement(query))
+ {
preparedStatement.setString(1, messageId);
ResultSet resultSet = preparedStatement.executeQuery();
if (resultSet.isClosed()) return null;
- while (resultSet.next()) {
+ while (resultSet.next())
+ {
return resultSet.getString("guild_id");
}
- } catch (SQLException e) {
+ } catch (SQLException e)
+ {
logException(e);
}
@@ -382,7 +439,8 @@ public class DatabaseSource {
public boolean trackUrban(String meanings, String examples,
String contributors, String dates,
- Message message, String term) {
+ Message message, String term)
+ {
String query = """
INSERT INTO urban_dictionary
@@ -390,7 +448,8 @@ public class DatabaseSource {
(?, ?, ?, ?, ?, ?, ?);
""";
- try (PreparedStatement preparedStatement = dbConnection.prepareStatement(query)) {
+ try (PreparedStatement preparedStatement = dbConnection.prepareStatement(query))
+ {
preparedStatement.setString(1, message.getId());
preparedStatement.setInt(2, 0);
preparedStatement.setString(3, meanings);
@@ -402,167 +461,196 @@ public class DatabaseSource {
preparedStatement.executeUpdate();
return true;
- } catch (SQLException e) {
+ } catch (SQLException e)
+ {
logException(e);
}
return false;
}
- public int getUrbanPage(String messageId) {
+ public int getUrbanPage(String messageId)
+ {
String query = """
SELECT page
FROM urban_dictionary
WHERE message_id = ?;
""";
- try (PreparedStatement preparedStatement = dbConnection.prepareStatement(query)) {
+ try (PreparedStatement preparedStatement = dbConnection.prepareStatement(query))
+ {
preparedStatement.setString(1, messageId);
ResultSet resultSet = preparedStatement.executeQuery();
if (resultSet.isClosed()) return 0;
- while (resultSet.next()) {
+ while (resultSet.next())
+ {
return resultSet.getInt("page");
}
- } catch (SQLException e) {
+ } catch (SQLException e)
+ {
logException(e);
}
return 0;
}
- public String getUrbanMeanings(String messageId) {
+ public String getUrbanMeanings(String messageId)
+ {
String query = """
SELECT meanings
FROM urban_dictionary
WHERE message_id = ?;
""";
- try (PreparedStatement preparedStatement = dbConnection.prepareStatement(query)) {
+ try (PreparedStatement preparedStatement = dbConnection.prepareStatement(query))
+ {
preparedStatement.setString(1, messageId);
ResultSet resultSet = preparedStatement.executeQuery();
if (resultSet.isClosed()) return null;
- while (resultSet.next()) {
+ while (resultSet.next())
+ {
return resultSet.getString("meanings");
}
- } catch (SQLException e) {
+ } catch (SQLException e)
+ {
logException(e);
}
return null;
}
- public String getUrbanExamples(String messageId) {
+ public String getUrbanExamples(String messageId)
+ {
String query = """
SELECT examples
FROM urban_dictionary
WHERE message_id = ?;
""";
- try (PreparedStatement preparedStatement = dbConnection.prepareStatement(query)) {
+ try (PreparedStatement preparedStatement = dbConnection.prepareStatement(query))
+ {
preparedStatement.setString(1, messageId);
ResultSet resultSet = preparedStatement.executeQuery();
if (resultSet.isClosed()) return null;
- while (resultSet.next()) {
+ while (resultSet.next())
+ {
return resultSet.getString("examples");
}
- } catch (SQLException e) {
+ } catch (SQLException e)
+ {
logException(e);
}
return null;
}
- public String getUrbanContributors(String messageId) {
+ public String getUrbanContributors(String messageId)
+ {
String query = """
SELECT contributors
FROM urban_dictionary
WHERE message_id = ?;
""";
- try (PreparedStatement preparedStatement = dbConnection.prepareStatement(query)) {
+ try (PreparedStatement preparedStatement = dbConnection.prepareStatement(query))
+ {
preparedStatement.setString(1, messageId);
ResultSet resultSet = preparedStatement.executeQuery();
if (resultSet.isClosed()) return null;
- while (resultSet.next()) {
+ while (resultSet.next())
+ {
return resultSet.getString("contributors");
}
- } catch (SQLException e) {
+ } catch (SQLException e)
+ {
logException(e);
}
return null;
}
- public String getUrbanDates(String messageId) {
+ public String getUrbanDates(String messageId)
+ {
String query = """
SELECT dates
FROM urban_dictionary
WHERE message_id = ?;
""";
- try (PreparedStatement preparedStatement = dbConnection.prepareStatement(query)) {
+ try (PreparedStatement preparedStatement = dbConnection.prepareStatement(query))
+ {
preparedStatement.setString(1, messageId);
ResultSet resultSet = preparedStatement.executeQuery();
if (resultSet.isClosed()) return null;
- while (resultSet.next()) {
+ while (resultSet.next())
+ {
return resultSet.getString("dates");
}
- } catch (SQLException e) {
+ } catch (SQLException e)
+ {
logException(e);
}
return null;
}
- public String getUrbanTerm(String messageId) {
+ public String getUrbanTerm(String messageId)
+ {
String query = """
SELECT term
FROM urban_dictionary
WHERE message_id = ?;
""";
- try (PreparedStatement preparedStatement = dbConnection.prepareStatement(query)) {
+ try (PreparedStatement preparedStatement = dbConnection.prepareStatement(query))
+ {
preparedStatement.setString(1, messageId);
ResultSet resultSet = preparedStatement.executeQuery();
if (resultSet.isClosed()) return null;
- while (resultSet.next()) {
+ while (resultSet.next())
+ {
return resultSet.getString("term");
}
- } catch (SQLException e) {
+ } catch (SQLException e)
+ {
logException(e);
}
return null;
}
- public boolean setUrbanPage(String messageId, int page) {
+ public boolean setUrbanPage(String messageId, int page)
+ {
String query = """
UPDATE urban_dictionary
SET page = ?
WHERE message_id = ?;
""";
- try (PreparedStatement preparedStatement = dbConnection.prepareStatement(query)) {
+ try (PreparedStatement preparedStatement = dbConnection.prepareStatement(query))
+ {
preparedStatement.setInt(1, page);
preparedStatement.setString(2, messageId);
preparedStatement.executeUpdate();
return true;
- } catch (SQLException e) {
+ } catch (SQLException e)
+ {
logException(e);
}
return false;
}
- public boolean resetExpiryTimestamp(String messageId) {
+ public boolean resetExpiryTimestamp(String messageId)
+ {
LocalDateTime expiryTime = LocalDateTime.now().plusSeconds(Cache.getExpiryTimeSeconds());
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(Cache.getExpiryTimestampFormat());
@@ -574,14 +662,16 @@ public class DatabaseSource {
WHERE message_id = ?;
""";
- try (PreparedStatement preparedStatement = dbConnection.prepareStatement(query)) {
+ try (PreparedStatement preparedStatement = dbConnection.prepareStatement(query))
+ {
preparedStatement.setString(1, expiryTimeFormatted);
preparedStatement.setString(2, messageId);
preparedStatement.executeUpdate();
return true;
- } catch (SQLException e) {
+ } catch (SQLException e)
+ {
logException(e);
}
diff --git a/src/main/java/wtf/beatrice/hidekobot/datasources/PropertiesSource.java b/src/main/java/wtf/beatrice/hidekobot/datasources/PropertiesSource.java
index b035b92..3193538 100644
--- a/src/main/java/wtf/beatrice/hidekobot/datasources/PropertiesSource.java
+++ b/src/main/java/wtf/beatrice/hidekobot/datasources/PropertiesSource.java
@@ -25,8 +25,8 @@ public class PropertiesSource
{
properties.load(internalPropertiesStream);
- }
- catch (IOException e) {
+ } catch (IOException e)
+ {
LOGGER.error(e.getMessage());
HidekoBot.shutdown();
return;
@@ -34,5 +34,7 @@ public class PropertiesSource
}
public String getProperty(String property)
- { return properties == null ? "" : properties.getProperty(property); }
+ {
+ return properties == null ? "" : properties.getProperty(property);
+ }
}
diff --git a/src/main/java/wtf/beatrice/hidekobot/listeners/ButtonInteractionListener.java b/src/main/java/wtf/beatrice/hidekobot/listeners/ButtonInteractionListener.java
index 928f826..22c057b 100644
--- a/src/main/java/wtf/beatrice/hidekobot/listeners/ButtonInteractionListener.java
+++ b/src/main/java/wtf/beatrice/hidekobot/listeners/ButtonInteractionListener.java
@@ -18,7 +18,8 @@ public class ButtonInteractionListener extends ListenerAdapter
public void onButtonInteraction(ButtonInteractionEvent event)
{
- switch (event.getComponentId().toLowerCase()) {
+ switch (event.getComponentId().toLowerCase())
+ {
// coinflip
case "coinflip_reflip" -> CoinFlip.buttonReFlip(event);
diff --git a/src/main/java/wtf/beatrice/hidekobot/listeners/MessageCommandListener.java b/src/main/java/wtf/beatrice/hidekobot/listeners/MessageCommandListener.java
index e047046..ea105c4 100644
--- a/src/main/java/wtf/beatrice/hidekobot/listeners/MessageCommandListener.java
+++ b/src/main/java/wtf/beatrice/hidekobot/listeners/MessageCommandListener.java
@@ -38,14 +38,16 @@ public class MessageCommandListener extends ListenerAdapter
public MessageCommand getRegisteredCommand(String label)
{
- for(Map.Entry, MessageCommand> entry : registeredCommands.entrySet())
+ for (Map.Entry, MessageCommand> entry : registeredCommands.entrySet())
{
LinkedList aliases = entry.getKey();
- for(String currentAlias : aliases)
+ for (String currentAlias : aliases)
{
- if(label.equals(currentAlias))
- { return entry.getValue(); }
+ if (label.equals(currentAlias))
+ {
+ return entry.getValue();
+ }
}
}
@@ -53,19 +55,21 @@ public class MessageCommandListener extends ListenerAdapter
}
public LinkedList getRegisteredCommands()
- { return new LinkedList<>(registeredCommands.values()); }
+ {
+ return new LinkedList<>(registeredCommands.values());
+ }
@Override
public void onMessageReceived(@NotNull MessageReceivedEvent event)
{
// check if a bot is sending this message, and ignore it
- if(event.getAuthor().isBot()) return;
+ if (event.getAuthor().isBot()) return;
// warning: we are getting the RAW value of the message content, not the DISPLAY value!
String eventMessage = event.getMessage().getContentRaw();
// check if the sent message matches the bot activation regex (prefix, name, ...)
- if(!eventMessage.toLowerCase().matches("(?s)" + COMMAND_REGEX + ".*"))
+ if (!eventMessage.toLowerCase().matches("(?s)" + COMMAND_REGEX + ".*"))
return;
// generate args from the string
@@ -77,7 +81,7 @@ public class MessageCommandListener extends ListenerAdapter
// and that element is the whole string passed as a single argument, which would be empty in this case
// (or contain text in other cases like "string split ," if the passed text doesn't contain any comma ->
// it will be the whole text as a single element.
- if(argsString.isEmpty())
+ if (argsString.isEmpty())
{
event.getMessage()
.reply("Hello there! ✨ Type `" + Cache.getBotPrefix() + " help` to get started!")
@@ -92,7 +96,7 @@ public class MessageCommandListener extends ListenerAdapter
String commandLabel = argsRaw[0];
MessageCommand commandObject = getRegisteredCommand(commandLabel);
- if(commandObject == null)
+ if (commandObject == null)
{
/* temporarily disabled because when people talk about the bot, it replies with this spammy message.
@@ -107,13 +111,13 @@ public class MessageCommandListener extends ListenerAdapter
// permissions check
List requiredPermissions = commandObject.getPermissions();
- if(requiredPermissions != null && !requiredPermissions.isEmpty())
+ if (requiredPermissions != null && !requiredPermissions.isEmpty())
{
- if(channelType.isGuild()) //todo: what about forum post
+ if (channelType.isGuild()) //todo: what about forum post
{
Member member = event.getMember();
GuildChannel channel = event.getGuildChannel(); //todo: what about forum post
- if(member != null && !member.hasPermission(channel, requiredPermissions))
+ if (member != null && !member.hasPermission(channel, requiredPermissions))
{
event.getMessage()
.reply("You do not have permissions to run this command!")
@@ -126,15 +130,14 @@ public class MessageCommandListener extends ListenerAdapter
}
String[] commandArgs;
- if(commandObject.passRawArgs())
+ if (commandObject.passRawArgs())
{
// remove first argument, which is the command label
argsString = argsString.replaceAll("^[\\S]+\\s*", "");
// pass all other arguments as a single argument as the first array element
commandArgs = new String[]{argsString};
- }
- else
+ } else
{
// copy all split arguments to the array, except from the command label
commandArgs = Arrays.copyOfRange(argsRaw, 1, argsRaw.length);
diff --git a/src/main/java/wtf/beatrice/hidekobot/listeners/MessageLogger.java b/src/main/java/wtf/beatrice/hidekobot/listeners/MessageLogger.java
index a86b79c..e747150 100644
--- a/src/main/java/wtf/beatrice/hidekobot/listeners/MessageLogger.java
+++ b/src/main/java/wtf/beatrice/hidekobot/listeners/MessageLogger.java
@@ -25,7 +25,7 @@ public class MessageLogger extends ListenerAdapter
String userName = event.getAuthor().getAsTag();
String message = event.getMessage().getContentDisplay();
- if(event.getChannel() instanceof TextChannel channel)
+ if (event.getChannel() instanceof TextChannel channel)
{
String guildName = channel.getGuild().getName();
String channelName = event.getChannel().getName();
@@ -33,8 +33,7 @@ public class MessageLogger extends ListenerAdapter
toLog = GUILD_MESSAGE_LOG_FORMAT
.replace("%guild%", guildName)
.replace("%channel%", channelName);
- }
- else if(event.getChannel() instanceof PrivateChannel)
+ } else if (event.getChannel() instanceof PrivateChannel)
{
toLog = DIRECT_MESSAGE_LOG_FORMAT;
}
@@ -45,9 +44,9 @@ public class MessageLogger extends ListenerAdapter
LOGGER.info(toLog);
- if(!event.getMessage().getAttachments().isEmpty())
+ if (!event.getMessage().getAttachments().isEmpty())
{
- for(Message.Attachment atch : event.getMessage().getAttachments())
+ for (Message.Attachment atch : event.getMessage().getAttachments())
{
LOGGER.info(atch.getUrl());
}
diff --git a/src/main/java/wtf/beatrice/hidekobot/listeners/SelectMenuInteractionListener.java b/src/main/java/wtf/beatrice/hidekobot/listeners/SelectMenuInteractionListener.java
index 6a2c1f8..2afc5c8 100644
--- a/src/main/java/wtf/beatrice/hidekobot/listeners/SelectMenuInteractionListener.java
+++ b/src/main/java/wtf/beatrice/hidekobot/listeners/SelectMenuInteractionListener.java
@@ -14,7 +14,8 @@ public class SelectMenuInteractionListener extends ListenerAdapter
@Override
public void onStringSelectInteraction(StringSelectInteractionEvent event)
{
- switch (event.getComponentId().toLowerCase()) {
+ switch (event.getComponentId().toLowerCase())
+ {
// trivia
case "trivia_categories" -> Trivia.handleMenuSelection(event);
diff --git a/src/main/java/wtf/beatrice/hidekobot/listeners/SlashCommandCompletionListener.java b/src/main/java/wtf/beatrice/hidekobot/listeners/SlashCommandCompletionListener.java
index 85943c5..ee5f97e 100644
--- a/src/main/java/wtf/beatrice/hidekobot/listeners/SlashCommandCompletionListener.java
+++ b/src/main/java/wtf/beatrice/hidekobot/listeners/SlashCommandCompletionListener.java
@@ -21,16 +21,21 @@ public class SlashCommandCompletionListener extends ListenerAdapter
}
public SlashArgumentsCompleter getRegisteredCompleter(String label)
- { return registeredCompleters.get(label); }
+ {
+ return registeredCompleters.get(label);
+ }
public LinkedList getRegisteredCompleters()
- { return new LinkedList<>(registeredCompleters.values()); }
+ {
+ return new LinkedList<>(registeredCompleters.values());
+ }
+
@Override
public void onCommandAutoCompleteInteraction(CommandAutoCompleteInteractionEvent event)
{
String commandName = event.getName().toLowerCase();
SlashArgumentsCompleter completer = registeredCompleters.get(commandName);
- if(completer == null) return;
+ if (completer == null) return;
// not running in a thread because nothing heavy should be done here...
completer.runCompletion(event);
diff --git a/src/main/java/wtf/beatrice/hidekobot/listeners/SlashCommandListener.java b/src/main/java/wtf/beatrice/hidekobot/listeners/SlashCommandListener.java
index fd86e1f..bae8d78 100644
--- a/src/main/java/wtf/beatrice/hidekobot/listeners/SlashCommandListener.java
+++ b/src/main/java/wtf/beatrice/hidekobot/listeners/SlashCommandListener.java
@@ -21,17 +21,21 @@ public class SlashCommandListener extends ListenerAdapter
}
public SlashCommand getRegisteredCommand(String label)
- { return registeredCommands.get(label); }
+ {
+ return registeredCommands.get(label);
+ }
public LinkedList getRegisteredCommands()
- { return new LinkedList<>(registeredCommands.values()); }
+ {
+ return new LinkedList<>(registeredCommands.values());
+ }
@Override
public void onSlashCommandInteraction(@NotNull SlashCommandInteractionEvent event)
{
String commandName = event.getName().toLowerCase();
SlashCommand command = registeredCommands.get(commandName);
- if(command == null) return;
+ if (command == null) return;
// finally run the command, in a new thread to avoid locking the main one.
diff --git a/src/main/java/wtf/beatrice/hidekobot/objects/MessageResponse.java b/src/main/java/wtf/beatrice/hidekobot/objects/MessageResponse.java
index 2bc4e00..85f36ef 100644
--- a/src/main/java/wtf/beatrice/hidekobot/objects/MessageResponse.java
+++ b/src/main/java/wtf/beatrice/hidekobot/objects/MessageResponse.java
@@ -9,10 +9,12 @@ import java.util.Objects;
public record MessageResponse(@Nullable String content,
@Nullable MessageEmbed embed,
- @Nullable ItemComponent... components) {
+ @Nullable ItemComponent... components)
+{
@Override
- public boolean equals(Object o) {
+ public boolean equals(Object o)
+ {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
MessageResponse response = (MessageResponse) o;
@@ -22,14 +24,16 @@ public record MessageResponse(@Nullable String content,
}
@Override
- public int hashCode() {
+ public int hashCode()
+ {
int result = Objects.hash(content, embed);
result = 31 * result + Arrays.hashCode(components);
return result;
}
@Override
- public String toString() {
+ public String toString()
+ {
return "MessageResponse{" +
"content=" + content +
", embed=" + embed +
diff --git a/src/main/java/wtf/beatrice/hidekobot/objects/commands/CommandCategory.java b/src/main/java/wtf/beatrice/hidekobot/objects/commands/CommandCategory.java
index 8867f69..c1a1c3f 100644
--- a/src/main/java/wtf/beatrice/hidekobot/objects/commands/CommandCategory.java
+++ b/src/main/java/wtf/beatrice/hidekobot/objects/commands/CommandCategory.java
@@ -9,10 +9,14 @@ public enum CommandCategory
;
private String emoji;
+
CommandCategory(String emoji)
{
this.emoji = emoji;
}
- public String getEmoji() { return emoji; }
+ public String getEmoji()
+ {
+ return emoji;
+ }
}
diff --git a/src/main/java/wtf/beatrice/hidekobot/objects/commands/MessageCommand.java b/src/main/java/wtf/beatrice/hidekobot/objects/commands/MessageCommand.java
index 4088447..dae7f8e 100644
--- a/src/main/java/wtf/beatrice/hidekobot/objects/commands/MessageCommand.java
+++ b/src/main/java/wtf/beatrice/hidekobot/objects/commands/MessageCommand.java
@@ -70,12 +70,10 @@ public interface MessageCommand
*
* @param event the received message event. It should not be used for parsing message contents data as
* the arguments already account for it in a better way.
- *
* @param label the command label that was used, taken from all available command aliases.
- *
- * @param args a pre-formatted list of arguments, excluding the bot prefix and the command name.
- * This is useful because command logic won't have to change in case the bot prefix is changed,
- * removed, or we switch to another method of triggering commands (ping, trigger words, ...).
+ * @param args a pre-formatted list of arguments, excluding the bot prefix and the command name.
+ * This is useful because command logic won't have to change in case the bot prefix is changed,
+ * removed, or we switch to another method of triggering commands (ping, trigger words, ...).
*/
void runCommand(MessageReceivedEvent event, String label, String[] args);
}
diff --git a/src/main/java/wtf/beatrice/hidekobot/objects/commands/SlashArgumentsCompleter.java b/src/main/java/wtf/beatrice/hidekobot/objects/commands/SlashArgumentsCompleter.java
index b03091a..31f08d2 100644
--- a/src/main/java/wtf/beatrice/hidekobot/objects/commands/SlashArgumentsCompleter.java
+++ b/src/main/java/wtf/beatrice/hidekobot/objects/commands/SlashArgumentsCompleter.java
@@ -12,6 +12,7 @@ public interface SlashArgumentsCompleter
* @return the command object.
*/
SlashCommand getCommand();
+
/**
* Run the argument-completion logic by parsing the event and replying accordingly.
*
diff --git a/src/main/java/wtf/beatrice/hidekobot/objects/commands/SlashArgumentsCompleterImpl.java b/src/main/java/wtf/beatrice/hidekobot/objects/commands/SlashArgumentsCompleterImpl.java
index b16715d..b3100a2 100644
--- a/src/main/java/wtf/beatrice/hidekobot/objects/commands/SlashArgumentsCompleterImpl.java
+++ b/src/main/java/wtf/beatrice/hidekobot/objects/commands/SlashArgumentsCompleterImpl.java
@@ -6,13 +6,16 @@ import org.jetbrains.annotations.NotNull;
public class SlashArgumentsCompleterImpl implements SlashArgumentsCompleter
{
private final SlashCommand parentCommand;
+
public SlashArgumentsCompleterImpl(SlashCommand parentCommand)
{
this.parentCommand = parentCommand;
}
public SlashCommand getCommand()
- { return parentCommand; }
+ {
+ return parentCommand;
+ }
public void runCompletion(@NotNull CommandAutoCompleteInteractionEvent event)
{
diff --git a/src/main/java/wtf/beatrice/hidekobot/objects/commands/SlashCommand.java b/src/main/java/wtf/beatrice/hidekobot/objects/commands/SlashCommand.java
index dd1e855..7b027fc 100644
--- a/src/main/java/wtf/beatrice/hidekobot/objects/commands/SlashCommand.java
+++ b/src/main/java/wtf/beatrice/hidekobot/objects/commands/SlashCommand.java
@@ -21,6 +21,7 @@ public interface SlashCommand
* @return the command data object.
*/
CommandData getSlashCommandData();
+
/**
* Run the command logic by parsing the event and replying accordingly.
*
diff --git a/src/main/java/wtf/beatrice/hidekobot/objects/commands/SlashCommandImpl.java b/src/main/java/wtf/beatrice/hidekobot/objects/commands/SlashCommandImpl.java
index 92bc070..ac1a5ae 100644
--- a/src/main/java/wtf/beatrice/hidekobot/objects/commands/SlashCommandImpl.java
+++ b/src/main/java/wtf/beatrice/hidekobot/objects/commands/SlashCommandImpl.java
@@ -8,17 +8,20 @@ public class SlashCommandImpl implements SlashCommand
{
@Override
- public String getCommandName() {
+ public String getCommandName()
+ {
return getSlashCommandData().getName();
}
@Override
- public CommandData getSlashCommandData() {
+ public CommandData getSlashCommandData()
+ {
return null;
}
@Override
- public void runSlashCommand(@NotNull SlashCommandInteractionEvent event) {
+ public void runSlashCommand(@NotNull SlashCommandInteractionEvent event)
+ {
event.reply("Base command implementation").queue();
}
}
diff --git a/src/main/java/wtf/beatrice/hidekobot/objects/comparators/MessageCommandAliasesComparator.java b/src/main/java/wtf/beatrice/hidekobot/objects/comparators/MessageCommandAliasesComparator.java
index 6510b19..7c82955 100644
--- a/src/main/java/wtf/beatrice/hidekobot/objects/comparators/MessageCommandAliasesComparator.java
+++ b/src/main/java/wtf/beatrice/hidekobot/objects/comparators/MessageCommandAliasesComparator.java
@@ -6,13 +6,15 @@ import java.util.LinkedList;
/**
* This class gets two linked lists, and compares their first value alphabetically.
*/
-public class MessageCommandAliasesComparator implements Comparator> {
+public class MessageCommandAliasesComparator implements Comparator>
+{
@Override
- public int compare(LinkedList linkedList, LinkedList t1) {
+ public int compare(LinkedList linkedList, LinkedList t1)
+ {
- if(linkedList.isEmpty()) return 0;
- if(t1.isEmpty()) return 0;
+ if (linkedList.isEmpty()) return 0;
+ if (t1.isEmpty()) return 0;
return linkedList.get(0).compareTo(t1.get(0));
}
diff --git a/src/main/java/wtf/beatrice/hidekobot/objects/comparators/TriviaCategoryComparator.java b/src/main/java/wtf/beatrice/hidekobot/objects/comparators/TriviaCategoryComparator.java
index 3e77fea..214ba9b 100644
--- a/src/main/java/wtf/beatrice/hidekobot/objects/comparators/TriviaCategoryComparator.java
+++ b/src/main/java/wtf/beatrice/hidekobot/objects/comparators/TriviaCategoryComparator.java
@@ -7,10 +7,12 @@ import java.util.Comparator;
/**
* This class gets two trivia categories, and compares them by their name.
*/
-public class TriviaCategoryComparator implements Comparator {
+public class TriviaCategoryComparator implements Comparator
+{
@Override
- public int compare(TriviaCategory o1, TriviaCategory o2) {
+ public int compare(TriviaCategory o1, TriviaCategory o2)
+ {
return CharSequence.compare(o1.categoryName(), o2.categoryName());
}
}
diff --git a/src/main/java/wtf/beatrice/hidekobot/objects/comparators/TriviaScoreComparator.java b/src/main/java/wtf/beatrice/hidekobot/objects/comparators/TriviaScoreComparator.java
index f2f85ef..76fde40 100644
--- a/src/main/java/wtf/beatrice/hidekobot/objects/comparators/TriviaScoreComparator.java
+++ b/src/main/java/wtf/beatrice/hidekobot/objects/comparators/TriviaScoreComparator.java
@@ -7,10 +7,12 @@ import java.util.Comparator;
/**
* This class gets two trivia scores, and compares their score.
*/
-public class TriviaScoreComparator implements Comparator {
+public class TriviaScoreComparator implements Comparator
+{
@Override
- public int compare(TriviaScore o1, TriviaScore o2) {
+ public int compare(TriviaScore o1, TriviaScore o2)
+ {
return Integer.compare(o2.getScore(), o1.getScore()); // inverted, because higher number should come first
}
}
diff --git a/src/main/java/wtf/beatrice/hidekobot/objects/fun/TriviaCategory.java b/src/main/java/wtf/beatrice/hidekobot/objects/fun/TriviaCategory.java
index e44ac72..21d8c30 100644
--- a/src/main/java/wtf/beatrice/hidekobot/objects/fun/TriviaCategory.java
+++ b/src/main/java/wtf/beatrice/hidekobot/objects/fun/TriviaCategory.java
@@ -1,5 +1,6 @@
package wtf.beatrice.hidekobot.objects.fun;
-public record TriviaCategory(String categoryName, int categoryId) {
+public record TriviaCategory(String categoryName, int categoryId)
+{
}
diff --git a/src/main/java/wtf/beatrice/hidekobot/objects/fun/TriviaQuestion.java b/src/main/java/wtf/beatrice/hidekobot/objects/fun/TriviaQuestion.java
index 0d7952a..356b112 100644
--- a/src/main/java/wtf/beatrice/hidekobot/objects/fun/TriviaQuestion.java
+++ b/src/main/java/wtf/beatrice/hidekobot/objects/fun/TriviaQuestion.java
@@ -3,6 +3,7 @@ package wtf.beatrice.hidekobot.objects.fun;
import java.util.List;
public record TriviaQuestion(String question, String correctAnswer,
- List wrongAnswers) {
+ List wrongAnswers)
+{
}
diff --git a/src/main/java/wtf/beatrice/hidekobot/objects/fun/TriviaScore.java b/src/main/java/wtf/beatrice/hidekobot/objects/fun/TriviaScore.java
index 16f3578..c6fae29 100644
--- a/src/main/java/wtf/beatrice/hidekobot/objects/fun/TriviaScore.java
+++ b/src/main/java/wtf/beatrice/hidekobot/objects/fun/TriviaScore.java
@@ -18,9 +18,15 @@ public class TriviaScore
score += add;
}
- public int getScore() { return score; }
+ public int getScore()
+ {
+ return score;
+ }
- public User getUser() { return user; }
+ public User getUser()
+ {
+ return user;
+ }
@Override
public String toString()
diff --git a/src/main/java/wtf/beatrice/hidekobot/runnables/ExpiredMessageTask.java b/src/main/java/wtf/beatrice/hidekobot/runnables/ExpiredMessageTask.java
index b1f8948..2882332 100644
--- a/src/main/java/wtf/beatrice/hidekobot/runnables/ExpiredMessageTask.java
+++ b/src/main/java/wtf/beatrice/hidekobot/runnables/ExpiredMessageTask.java
@@ -10,7 +10,8 @@ import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.List;
-public class ExpiredMessageTask implements Runnable {
+public class ExpiredMessageTask implements Runnable
+{
private final DateTimeFormatter formatter;
private static final Logger LOGGER = LoggerFactory.getLogger(ExpiredMessageTask.class);
@@ -26,23 +27,24 @@ public class ExpiredMessageTask implements Runnable {
@Override
- public void run() {
+ public void run()
+ {
databaseSource = Cache.getDatabaseSource();
- if(databaseSource == null) return;
+ if (databaseSource == null) return;
List expiringMessages = Cache.getDatabaseSource().getQueuedExpiringMessages();
- if(expiringMessages == null || expiringMessages.isEmpty()) return;
+ if (expiringMessages == null || expiringMessages.isEmpty()) return;
LocalDateTime now = LocalDateTime.now();
- for(String messageId : expiringMessages)
+ for (String messageId : expiringMessages)
{
- if(Cache.isVerbose()) LOGGER.info("expired check: {}", messageId);
+ if (Cache.isVerbose()) LOGGER.info("expired check: {}", messageId);
String expiryTimestamp = databaseSource.getQueuedExpiringMessageExpiryDate(messageId);
- if(expiryTimestamp == null || expiryTimestamp.isEmpty()) // if missing timestamp
+ if (expiryTimestamp == null || expiryTimestamp.isEmpty()) // if missing timestamp
{
// count it as already expired
databaseSource.untrackExpiredMessage(messageId);
@@ -52,9 +54,9 @@ public class ExpiredMessageTask implements Runnable {
LocalDateTime expiryDate = LocalDateTime.parse(expiryTimestamp, formatter);
- if(now.isAfter(expiryDate))
+ if (now.isAfter(expiryDate))
{
- if(Cache.isVerbose()) LOGGER.info("expired: {}", messageId);
+ if (Cache.isVerbose()) LOGGER.info("expired: {}", messageId);
CommandUtil.disableExpired(messageId);
}
}
diff --git a/src/main/java/wtf/beatrice/hidekobot/runnables/HeartBeatTask.java b/src/main/java/wtf/beatrice/hidekobot/runnables/HeartBeatTask.java
index 58d3e72..2aa0e22 100644
--- a/src/main/java/wtf/beatrice/hidekobot/runnables/HeartBeatTask.java
+++ b/src/main/java/wtf/beatrice/hidekobot/runnables/HeartBeatTask.java
@@ -16,9 +16,10 @@ public class HeartBeatTask implements Runnable
public void run()
{
String urlString = Cache.getFullHeartBeatLink();
- if(urlString == null || urlString.isEmpty()) return;
+ if (urlString == null || urlString.isEmpty()) return;
- try {
+ try
+ {
URL heartbeatUrl = new URL(urlString);
@@ -28,17 +29,17 @@ public class HeartBeatTask implements Runnable
connection.setReadTimeout(5000);
int responseCode = connection.getResponseCode();
- if(200 <= responseCode && responseCode < 300)
+ if (200 <= responseCode && responseCode < 300)
{
// only log ok response codes when verbosity is enabled
- if(Cache.isVerbose()) LOGGER.info("Heartbeat response code: {}", responseCode);
- }
- else
+ if (Cache.isVerbose()) LOGGER.info("Heartbeat response code: {}", responseCode);
+ } else
{
LOGGER.error("Heartbeat returned problematic response code: {}", responseCode);
}
- } catch (IOException e) {
+ } catch (IOException e)
+ {
LOGGER.error("Error while trying to push heartbeat", e);
}
diff --git a/src/main/java/wtf/beatrice/hidekobot/runnables/RandomOrgSeedTask.java b/src/main/java/wtf/beatrice/hidekobot/runnables/RandomOrgSeedTask.java
index 60d1996..035a2c0 100644
--- a/src/main/java/wtf/beatrice/hidekobot/runnables/RandomOrgSeedTask.java
+++ b/src/main/java/wtf/beatrice/hidekobot/runnables/RandomOrgSeedTask.java
@@ -20,11 +20,11 @@ public class RandomOrgSeedTask implements Runnable
@Override
public void run()
{
- if(RandomUtil.isRandomOrgKeyValid())
+ if (RandomUtil.isRandomOrgKeyValid())
{
- if(Cache.isVerbose()) LOGGER.info("Updating Random seed from random.org...");
+ if (Cache.isVerbose()) LOGGER.info("Updating Random seed from random.org...");
RandomUtil.initRandomOrg();
- if(Cache.isVerbose()) LOGGER.info("Random.org seed updated!");
+ if (Cache.isVerbose()) LOGGER.info("Random.org seed updated!");
}
}
-}
\ No newline at end of file
+}
diff --git a/src/main/java/wtf/beatrice/hidekobot/runnables/StatusUpdateTask.java b/src/main/java/wtf/beatrice/hidekobot/runnables/StatusUpdateTask.java
index 7f4671a..6c5dce4 100644
--- a/src/main/java/wtf/beatrice/hidekobot/runnables/StatusUpdateTask.java
+++ b/src/main/java/wtf/beatrice/hidekobot/runnables/StatusUpdateTask.java
@@ -22,7 +22,8 @@ public class StatusUpdateTask implements Runnable
);
@Override
- public void run() {
+ public void run()
+ {
int randomPos = RandomUtil.getRandomNumber(0, statuses.size() - 1);
String status = statuses.get(randomPos) + " | " + Cache.getBotPrefix() + " help";
HidekoBot.getAPI().getPresence().setActivity(Activity.playing(status));
diff --git a/src/main/java/wtf/beatrice/hidekobot/runnables/TriviaTask.java b/src/main/java/wtf/beatrice/hidekobot/runnables/TriviaTask.java
index 82382fb..2a0be8a 100644
--- a/src/main/java/wtf/beatrice/hidekobot/runnables/TriviaTask.java
+++ b/src/main/java/wtf/beatrice/hidekobot/runnables/TriviaTask.java
@@ -52,12 +52,12 @@ public class TriviaTask implements Runnable
public void run()
{
- if(previousMessage != null)
+ if (previousMessage != null)
{
// todo: we shouldn't use this method, since it messes with the database... look at coin reflip
CommandUtil.disableExpired(previousMessage.getId());
- String previousCorrectAnswer = questions.get(iteration-1).correctAnswer();
+ String previousCorrectAnswer = questions.get(iteration - 1).correctAnswer();
// we need this to be thread-locking to avoid getting out of sync with the rest of the trivia features
previousMessage.reply("The correct answer was: **" + previousCorrectAnswer + "**!").complete();
@@ -67,7 +67,7 @@ public class TriviaTask implements Runnable
Trivia.channelAndWhoResponded.put(previousMessage.getChannel().getId(), new ArrayList<>());
}
- if(iteration >= questions.size())
+ if (iteration >= questions.size())
{
String scoreboardText = "\uD83D\uDC23 Trivia session is over!";
@@ -77,28 +77,30 @@ public class TriviaTask implements Runnable
StringBuilder othersBuilder = new StringBuilder();
LinkedList triviaScores = Trivia.channelAndScores.get(channel.getId());
- if(triviaScores == null) triviaScores = new LinkedList<>();
+ if (triviaScores == null) triviaScores = new LinkedList<>();
else triviaScores.sort(new TriviaScoreComparator());
int pos = 0;
Integer previousScore = null;
- for(TriviaScore triviaScore : triviaScores)
+ for (TriviaScore triviaScore : triviaScores)
{
- if(pos > 10) break; // cap at top 10
+ if (pos > 10) break; // cap at top 10
String user = triviaScore.getUser().getAsMention();
int score = triviaScore.getScore();
- if(previousScore == null)
+ if (previousScore == null)
{
previousScore = score;
topScore = score;
pos = 1;
- } else {
- if(score != previousScore) pos++;
+ } else
+ {
+ if (score != previousScore) pos++;
}
- if(pos == 1) winners.add(user);
- else {
+ if (pos == 1) winners.add(user);
+ else
+ {
othersBuilder.append("\n").append(pos)
.append(" | ").append(user)
.append(": ").append(score).append(" points");
@@ -106,14 +108,15 @@ public class TriviaTask implements Runnable
}
StringBuilder winnersBuilder = new StringBuilder();
- for(int i = 0; i < winners.size(); i++)
+ for (int i = 0; i < winners.size(); i++)
{
String winner = winners.get(i);
winnersBuilder.append(winner);
- if(i + 1 != winners.size())
+ if (i + 1 != winners.size())
{
winnersBuilder.append(", "); // separate with comma except on last run
- } else {
+ } else
+ {
winnersBuilder.append(": ").append(topScore).append(" points \uD83C\uDF89");
}
}
@@ -127,10 +130,10 @@ public class TriviaTask implements Runnable
EmbedBuilder scoreboardBuilder = new EmbedBuilder();
scoreboardBuilder.setColor(Cache.getBotColor());
scoreboardBuilder.setTitle("\uD83C\uDF1F Trivia Scoreboard");
- if(!winnersString.isEmpty()) scoreboardBuilder.addField(winnersTitle, winnersString, false);
+ if (!winnersString.isEmpty()) scoreboardBuilder.addField(winnersTitle, winnersString, false);
else scoreboardBuilder.addField("\uD83D\uDE22 Sad Trivia",
"No one played \uD83D\uDE2D", false);
- if(!othersString.isEmpty()) scoreboardBuilder.addField("☁️ Others", othersString, false);
+ if (!othersString.isEmpty()) scoreboardBuilder.addField("☁️ Others", othersString, false);
channel.sendMessage(scoreboardText).addEmbeds(scoreboardBuilder.build()).queue();
@@ -153,7 +156,7 @@ public class TriviaTask implements Runnable
answerButtons.add(correctAnswerButton);
int i = 0; // we need to add a number because buttons can't have the same id
- for(String wrongAnswer : currentTriviaQuestion.wrongAnswers())
+ for (String wrongAnswer : currentTriviaQuestion.wrongAnswers())
{
i++;
Button wrongAnswerButton = Button.primary("trivia_wrong_" + i, wrongAnswer);
@@ -166,9 +169,9 @@ public class TriviaTask implements Runnable
"\uD83D\uDFE2", "\uD83D\uDFE1", "\uD83D\uDFE4", "\uD83D\uDFE3", "\uD83D\uDFE0");
// add emojis to buttons
- for(int emojiPos = 0; emojiPos < buttonEmojis.size(); emojiPos++)
+ for (int emojiPos = 0; emojiPos < buttonEmojis.size(); emojiPos++)
{
- if(emojiPos == answerButtons.size()) break;
+ if (emojiPos == answerButtons.size()) break;
String emoji = buttonEmojis.get(emojiPos);
Button button = answerButtons.get(emojiPos);
@@ -180,7 +183,7 @@ public class TriviaTask implements Runnable
embedBuilder.setColor(Cache.getBotColor());
embedBuilder.setTitle("\uD83C\uDFB2 Trivia - " + category.categoryName() +
- " (" + (iteration+1) + "/" + questions.size() + ")");
+ " (" + (iteration + 1) + "/" + questions.size() + ")");
embedBuilder.addField("❓ Question", currentTriviaQuestion.question(), false);
diff --git a/src/main/java/wtf/beatrice/hidekobot/util/CommandUtil.java b/src/main/java/wtf/beatrice/hidekobot/util/CommandUtil.java
index ace8534..bb321f2 100644
--- a/src/main/java/wtf/beatrice/hidekobot/util/CommandUtil.java
+++ b/src/main/java/wtf/beatrice/hidekobot/util/CommandUtil.java
@@ -27,7 +27,8 @@ public class CommandUtil
private static final Logger LOGGER = LoggerFactory.getLogger(CommandUtil.class);
- private CommandUtil() {
+ private CommandUtil()
+ {
throw new IllegalStateException("Utility class");
}
@@ -40,7 +41,8 @@ public class CommandUtil
public static void delete(ButtonInteractionEvent event)
{
// check if the user interacting is the same one who ran the command
- if (!(Cache.getDatabaseSource().isUserTrackedFor(event.getUser().getId(), event.getMessageId()))) {
+ if (!(Cache.getDatabaseSource().isUserTrackedFor(event.getUser().getId(), event.getMessageId())))
+ {
event.reply("❌ You did not run this command!").setEphemeral(true).queue();
return;
}
@@ -63,8 +65,10 @@ public class CommandUtil
// populate commands list from registered commands
List allCommands = new ArrayList<>();
- for(SlashCommand cmd : Cache.getSlashCommandListener().getRegisteredCommands())
- { allCommands.add(cmd.getSlashCommandData()); }
+ for (SlashCommand cmd : Cache.getSlashCommandListener().getRegisteredCommands())
+ {
+ allCommands.add(cmd.getSlashCommandData());
+ }
JDA jdaInstance = HidekoBot.getAPI();
@@ -73,22 +77,22 @@ public class CommandUtil
boolean update = false;
- if(force)
+ if (force)
{
update = true;
} else
{
// for each command that we have already registered...
- for(Command currRegCmd : registeredCommands)
+ for (Command currRegCmd : registeredCommands)
{
boolean found = false;
// iterate through all "recognized" commands
- for(CommandData cmdData : allCommands)
+ for (CommandData cmdData : allCommands)
{
// if we find the same command...
- if(cmdData.getName().equals(currRegCmd.getName()))
+ if (cmdData.getName().equals(currRegCmd.getName()))
{
// quit the loop since we found it.
found = true;
@@ -98,7 +102,7 @@ public class CommandUtil
// if no match was found, we need to send an updated command list because
// an old command was probably removed.
- if(!found)
+ if (!found)
{
update = true;
@@ -108,18 +112,18 @@ public class CommandUtil
}
// if an update is not already queued...
- if(!update)
+ if (!update)
{
// for each "recognized" valid command
- for(CommandData currCmdData : allCommands)
+ for (CommandData currCmdData : allCommands)
{
boolean found = false;
// iterate through all already registered commands.
- for(Command cmd : registeredCommands)
+ for (Command cmd : registeredCommands)
{
// if this command was already registered...
- if(cmd.getName().equals(currCmdData.getName()))
+ if (cmd.getName().equals(currCmdData.getName()))
{
// quit the loop since we found a match.
found = true;
@@ -129,7 +133,7 @@ public class CommandUtil
// if no match was found, we need to send an updated command list because
// a new command was probably added.
- if(!found)
+ if (!found)
{
update = true;
@@ -142,7 +146,7 @@ public class CommandUtil
LOGGER.info("Found {} commands.", registeredCommands.size());
- if(update)
+ if (update)
{
// send updated command list.
jdaInstance.updateCommands().addCommands(allCommands).queue();
@@ -169,18 +173,18 @@ public class CommandUtil
MessageChannel textChannel = null;
// this should never happen, but only message channels are supported.
- if(!msgChannelType.isMessage())
+ if (!msgChannelType.isMessage())
{
databaseSource.untrackExpiredMessage(messageId);
return;
}
// if this is a DM
- if(!(msgChannelType.isGuild()))
+ if (!(msgChannelType.isGuild()))
{
String userId = databaseSource.getTrackedReplyUserId(messageId);
User user = userId == null ? null : HidekoBot.getAPI().retrieveUserById(userId).complete();
- if(user == null)
+ if (user == null)
{
// if user is not found, consider it expired
// (deleted profile, or blocked the bot)
@@ -189,12 +193,11 @@ public class CommandUtil
}
textChannel = user.openPrivateChannel().complete();
- }
- else
+ } else
{
String guildId = databaseSource.getQueuedExpiringMessageGuild(messageId);
Guild guild = guildId == null ? null : HidekoBot.getAPI().getGuildById(guildId);
- if(guild == null)
+ if (guild == null)
{
// if guild is not found, consider it expired
// (server was deleted or bot was kicked)
@@ -204,7 +207,7 @@ public class CommandUtil
textChannel = guild.getTextChannelById(channelId);
}
- if(textChannel == null)
+ if (textChannel == null)
{
// if channel is not found, count it as expired
// (channel was deleted or bot permissions restricted)
@@ -215,11 +218,11 @@ public class CommandUtil
RestAction retrieveAction = textChannel.retrieveMessageById(messageId);
- if(Cache.isVerbose()) LOGGER.info("cleaning up: {}", messageId);
+ if (Cache.isVerbose()) LOGGER.info("cleaning up: {}", messageId);
retrieveAction.queue(
message -> {
- if(message == null)
+ if (message == null)
{
databaseSource.untrackExpiredMessage(messageId);
return;
diff --git a/src/main/java/wtf/beatrice/hidekobot/util/FormatUtil.java b/src/main/java/wtf/beatrice/hidekobot/util/FormatUtil.java
index 1661ac2..e7e3a6d 100644
--- a/src/main/java/wtf/beatrice/hidekobot/util/FormatUtil.java
+++ b/src/main/java/wtf/beatrice/hidekobot/util/FormatUtil.java
@@ -12,20 +12,21 @@ import java.util.Arrays;
public class FormatUtil
{
- private FormatUtil() {
+ private FormatUtil()
+ {
throw new IllegalStateException("Utility class");
}
// cosmetic string to print on startup.
private static final String LOGO = """
- \s
- ██╗░░██╗██╗██████╗░███████╗██╗░░██╗░█████╗░
- ██║░░██║██║██╔══██╗██╔════╝██║░██╔╝██╔══██╗
- ███████║██║██║░░██║█████╗░░█████═╝░██║░░██║
- ██╔══██║██║██║░░██║██╔══╝░░██╔═██╗░██║░░██║
- ██║░░██║██║██████╔╝███████╗██║░╚██╗╚█████╔╝
- ╚═╝░░╚═╝╚═╝╚═════╝░╚══════╝╚═╝░░╚═╝░╚════╝░
- \s""";
+ \s
+ ██╗░░██╗██╗██████╗░███████╗██╗░░██╗░█████╗░
+ ██║░░██║██║██╔══██╗██╔════╝██║░██╔╝██╔══██╗
+ ███████║██║██║░░██║█████╗░░█████═╝░██║░░██║
+ ██╔══██║██║██║░░██║██╔══╝░░██╔═██╗░██║░░██║
+ ██║░░██║██║██████╔╝███████╗██║░╚██╗╚█████╔╝
+ ╚═╝░░╚═╝╚═╝╚═════╝░╚══════╝╚═╝░░╚═╝░╚════╝░
+ \s""";
/**
@@ -60,21 +61,25 @@ public class FormatUtil
*
* @return the formatted String
*/
- public static String getNiceDuration(Duration duration) {
+ public static String getNiceDuration(Duration duration)
+ {
long days = duration.toDays();
long hours = duration.toHoursPart();
long minutes = duration.toMinutesPart();
long seconds = duration.toSecondsPart();
StringBuilder sb = new StringBuilder();
- if (days > 0) {
+ if (days > 0)
+ {
sb.append(days).append("d ");
sb.append(hours).append("h ");
sb.append(minutes).append("m ");
- } else if (hours > 0) {
+ } else if (hours > 0)
+ {
sb.append(hours).append("h ");
sb.append(minutes).append("m ");
- } else if (minutes > 0) {
+ } else if (minutes > 0)
+ {
sb.append(minutes).append("m ");
}
sb.append(seconds).append("s");
@@ -93,7 +98,7 @@ public class FormatUtil
public static Duration parseDuration(String duration)
{
// sanitize a bit to avoid cluttering with garbled strings
- if(duration.length() > 16) duration = duration.substring(0, 16);
+ if (duration.length() > 16) duration = duration.substring(0, 16);
duration = duration.replaceAll("[^\\w]", ""); //only keep digits and word characters
duration = duration.toLowerCase();
@@ -105,7 +110,7 @@ public class FormatUtil
{1,10} is used to limit the size of the input to parse, to avoid stack overflows.
no one should be typing more than 10 arguments, or more than 10 digits for a single argument anyway.
*/
- if(!duration.matches("(\\d{1,10}[a-zA-Z]{1,10}){1,10}"))
+ if (!duration.matches("(\\d{1,10}[a-zA-Z]{1,10}){1,10}"))
return null;
String[] durationTimes = duration.split("[a-zA-Z]+");
@@ -116,7 +121,7 @@ public class FormatUtil
Duration fullDuration = Duration.ZERO;
- for(int i = 0; i < durationTimes.length; i++)
+ for (int i = 0; i < durationTimes.length; i++)
{
String durationTimeStr = durationTimes[i];
String durationUnitStr = durationUnits[i];
@@ -124,7 +129,7 @@ public class FormatUtil
int durationValue = Integer.parseInt(durationTimeStr);
TemporalUnit unit = parseTimeUnit(durationUnitStr);
- if(unit != null)
+ if (unit != null)
fullDuration = fullDuration.plus(durationValue, unit);
else return null; // if we failed finding the time unit, instantly quit with failed parsing.
}
diff --git a/src/main/java/wtf/beatrice/hidekobot/util/Logger.java b/src/main/java/wtf/beatrice/hidekobot/util/Logger.java
index fcb435e..0afeb36 100644
--- a/src/main/java/wtf/beatrice/hidekobot/util/Logger.java
+++ b/src/main/java/wtf/beatrice/hidekobot/util/Logger.java
@@ -44,13 +44,14 @@ public class Logger
* Logs a message to console, after delaying it.
*
* @param message the message to log
- * @param delay the time to wait before logging, in seconds
+ * @param delay the time to wait before logging, in seconds
*/
public void log(String message, int delay)
{
// create a new scheduled executor with an anonymous runnable...
//... after waiting seconds.
- try (ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor()) {
+ try (ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor())
+ {
executor.schedule(() -> log(message), delay, TimeUnit.SECONDS);
}
diff --git a/src/main/java/wtf/beatrice/hidekobot/util/RandomUtil.java b/src/main/java/wtf/beatrice/hidekobot/util/RandomUtil.java
index e3369a1..6971dd7 100644
--- a/src/main/java/wtf/beatrice/hidekobot/util/RandomUtil.java
+++ b/src/main/java/wtf/beatrice/hidekobot/util/RandomUtil.java
@@ -10,7 +10,8 @@ import java.util.Random;
public class RandomUtil
{
- private RandomUtil() {
+ private RandomUtil()
+ {
throw new IllegalStateException("Utility class");
}
@@ -27,8 +28,8 @@ public class RandomUtil
*/
public static int getRandomNumber(int min, int max)
{
- if(min == max) return min; // dumbass
- if(min > max) // swap em
+ if (min == max) return min; // dumbass
+ if (min > max) // swap em
{
min = min - max;
max = min + max;
@@ -47,7 +48,8 @@ public class RandomUtil
}
- public static Random getRandom() {
+ public static Random getRandom()
+ {
return randomInstance;
}
diff --git a/src/main/java/wtf/beatrice/hidekobot/util/SerializationUtil.java b/src/main/java/wtf/beatrice/hidekobot/util/SerializationUtil.java
index 9324485..86d7736 100644
--- a/src/main/java/wtf/beatrice/hidekobot/util/SerializationUtil.java
+++ b/src/main/java/wtf/beatrice/hidekobot/util/SerializationUtil.java
@@ -10,33 +10,38 @@ import java.util.List;
public class SerializationUtil
{
- private SerializationUtil() {
+ private SerializationUtil()
+ {
throw new IllegalStateException("Utility class");
}
- public static String serializeBase64(List dataList) {
+ public static String serializeBase64(List dataList)
+ {
try (ByteArrayOutputStream bo = new ByteArrayOutputStream();
- ObjectOutputStream so = new ObjectOutputStream(bo)) {
+ ObjectOutputStream so = new ObjectOutputStream(bo))
+ {
so.writeObject(dataList);
so.flush();
return Base64.getEncoder().encodeToString(bo.toByteArray());
- }
- catch (IOException e) {
+ } catch (IOException e)
+ {
throw new SerializationException("Error during serialization", e);
}
}
- public static LinkedList deserializeBase64(String dataStr) {
+ public static LinkedList deserializeBase64(String dataStr)
+ {
byte[] b = Base64.getDecoder().decode(dataStr);
ByteArrayInputStream bi = new ByteArrayInputStream(b);
ObjectInputStream si;
- try {
+ try
+ {
si = new ObjectInputStream(bi);
return LinkedList.class.cast(si.readObject());
- }
- catch (IOException | ClassNotFoundException e) {
+ } catch (IOException | ClassNotFoundException e)
+ {
throw new SerializationException("Error during deserialization", e);
}
}