This commit is contained in:
parent
e396ce6417
commit
f74ae43673
6
pom.xml
6
pom.xml
@ -35,7 +35,11 @@
|
|||||||
<artifactId>sqlite-jdbc</artifactId>
|
<artifactId>sqlite-jdbc</artifactId>
|
||||||
<version>3.39.4.1</version>
|
<version>3.39.4.1</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.yaml</groupId>
|
||||||
|
<artifactId>snakeyaml</artifactId>
|
||||||
|
<version>1.33</version>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
|
@ -70,7 +70,7 @@ public class HidekoBot
|
|||||||
|
|
||||||
// find the bot's user/application id
|
// find the bot's user/application id
|
||||||
String botUserId = jda.getSelfUser().getId();
|
String botUserId = jda.getSelfUser().getId();
|
||||||
Configuration.setBotApplicationId(botUserId);
|
Cache.setBotApplicationId(botUserId);
|
||||||
|
|
||||||
// store if we have to force refresh commands despite no apparent changes.
|
// store if we have to force refresh commands despite no apparent changes.
|
||||||
boolean forceUpdateCommands = false;
|
boolean forceUpdateCommands = false;
|
||||||
@ -84,12 +84,12 @@ public class HidekoBot
|
|||||||
{
|
{
|
||||||
String arg = argsList.get(i);
|
String arg = argsList.get(i);
|
||||||
|
|
||||||
if(arg.equals("verbose")) Configuration.setVerbose(true);
|
if(arg.equals("verbose")) Cache.setVerbose(true);
|
||||||
if(arg.equals("refresh")) forceUpdateCommands = true;
|
if(arg.equals("refresh")) forceUpdateCommands = true;
|
||||||
if(arg.startsWith("heartbeat="))
|
if(arg.startsWith("heartbeat="))
|
||||||
{
|
{
|
||||||
String apiKey = arg.replaceAll(".*=", ""); //remove the "heartbeat=" part
|
String apiKey = arg.replaceAll(".*=", ""); //remove the "heartbeat=" part
|
||||||
Configuration.setHeartBeatApiKey(apiKey);
|
Cache.setHeartBeatApiKey(apiKey);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -117,7 +117,7 @@ public class HidekoBot
|
|||||||
if(dbManager.connect() && dbManager.initDb())
|
if(dbManager.connect() && dbManager.initDb())
|
||||||
{
|
{
|
||||||
logger.log("Database connection initialized!");
|
logger.log("Database connection initialized!");
|
||||||
Configuration.setDatabaseManagerInstance(dbManager);
|
Cache.setDatabaseManagerInstance(dbManager);
|
||||||
|
|
||||||
// load data here...
|
// load data here...
|
||||||
|
|
||||||
@ -139,15 +139,15 @@ public class HidekoBot
|
|||||||
Signal.handle(new Signal("INT"), signal -> shutdown());
|
Signal.handle(new Signal("INT"), signal -> shutdown());
|
||||||
|
|
||||||
// set startup time.
|
// set startup time.
|
||||||
Configuration.setStartupTime(LocalDateTime.now());
|
Cache.setStartupTime(LocalDateTime.now());
|
||||||
|
|
||||||
// print the bot logo.
|
// print the bot logo.
|
||||||
logger.log("\n\n" + logger.getLogo() + "\nv" + Configuration.getBotVersion() + " - bot is ready!\n", 2);
|
logger.log("\n\n" + logger.getLogo() + "\nv" + Cache.getBotVersion() + " - bot is ready!\n", 2);
|
||||||
|
|
||||||
|
|
||||||
// log the invite-link to console so noob users can just click on it.
|
// log the invite-link to console so noob users can just click on it.
|
||||||
logger.log("Bot User ID: " + botUserId, 3);
|
logger.log("Bot User ID: " + botUserId, 3);
|
||||||
logger.log("Invite Link: " + Configuration.getInviteUrl(), 4);
|
logger.log("Invite Link: " + Cache.getInviteUrl(), 4);
|
||||||
|
|
||||||
}
|
}
|
||||||
public static JDA getAPI()
|
public static JDA getAPI()
|
||||||
|
@ -3,7 +3,7 @@ package wtf.beatrice.hidekobot.commands.completer;
|
|||||||
import net.dv8tion.jda.api.events.interaction.command.CommandAutoCompleteInteractionEvent;
|
import net.dv8tion.jda.api.events.interaction.command.CommandAutoCompleteInteractionEvent;
|
||||||
import net.dv8tion.jda.api.interactions.commands.Command;
|
import net.dv8tion.jda.api.interactions.commands.Command;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import wtf.beatrice.hidekobot.Configuration;
|
import wtf.beatrice.hidekobot.Cache;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -18,7 +18,7 @@ public class AvatarCompleter
|
|||||||
|
|
||||||
List<Command.Choice> options = new ArrayList<>();
|
List<Command.Choice> options = new ArrayList<>();
|
||||||
|
|
||||||
for(int res : Configuration.getSupportedAvatarResolutions())
|
for(int res : Cache.getSupportedAvatarResolutions())
|
||||||
{
|
{
|
||||||
String resString = String.valueOf(res);
|
String resString = String.valueOf(res);
|
||||||
String userInput = event.getFocusedOption().getValue();
|
String userInput = event.getFocusedOption().getValue();
|
||||||
|
@ -5,7 +5,7 @@ import net.dv8tion.jda.api.entities.User;
|
|||||||
import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent;
|
import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent;
|
||||||
import net.dv8tion.jda.api.interactions.commands.OptionMapping;
|
import net.dv8tion.jda.api.interactions.commands.OptionMapping;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import wtf.beatrice.hidekobot.Configuration;
|
import wtf.beatrice.hidekobot.Cache;
|
||||||
|
|
||||||
public class AvatarCommand
|
public class AvatarCommand
|
||||||
{
|
{
|
||||||
@ -18,7 +18,7 @@ public class AvatarCommand
|
|||||||
User user;
|
User user;
|
||||||
int resolution;
|
int resolution;
|
||||||
|
|
||||||
int[] acceptedSizes = Configuration.getSupportedAvatarResolutions();
|
int[] acceptedSizes = Cache.getSupportedAvatarResolutions();
|
||||||
|
|
||||||
|
|
||||||
OptionMapping userArg = event.getOption("user");
|
OptionMapping userArg = event.getOption("user");
|
||||||
@ -54,7 +54,7 @@ public class AvatarCommand
|
|||||||
|
|
||||||
// embed processing
|
// embed processing
|
||||||
{
|
{
|
||||||
embedBuilder.setColor(Configuration.getBotColor());
|
embedBuilder.setColor(Cache.getBotColor());
|
||||||
embedBuilder.setTitle("Profile picture");
|
embedBuilder.setTitle("Profile picture");
|
||||||
|
|
||||||
embedBuilder.addField("User", "<@" + user.getId() + ">", false);
|
embedBuilder.addField("User", "<@" + user.getId() + ">", false);
|
||||||
|
@ -4,7 +4,7 @@ import net.dv8tion.jda.api.EmbedBuilder;
|
|||||||
import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent;
|
import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent;
|
||||||
import net.dv8tion.jda.api.interactions.commands.Command;
|
import net.dv8tion.jda.api.interactions.commands.Command;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import wtf.beatrice.hidekobot.Configuration;
|
import wtf.beatrice.hidekobot.Cache;
|
||||||
import wtf.beatrice.hidekobot.HidekoBot;
|
import wtf.beatrice.hidekobot.HidekoBot;
|
||||||
import wtf.beatrice.hidekobot.utils.FormatUtil;
|
import wtf.beatrice.hidekobot.utils.FormatUtil;
|
||||||
|
|
||||||
@ -20,14 +20,14 @@ public class BotInfoCommand
|
|||||||
// defer reply because this might take a moment
|
// defer reply because this might take a moment
|
||||||
event.deferReply().queue();
|
event.deferReply().queue();
|
||||||
|
|
||||||
List<Command> registeredCommands = Configuration.getRegisteredCommands();
|
List<Command> registeredCommands = Cache.getRegisteredCommands();
|
||||||
|
|
||||||
EmbedBuilder embedBuilder = new EmbedBuilder();
|
EmbedBuilder embedBuilder = new EmbedBuilder();
|
||||||
|
|
||||||
// embed processing
|
// embed processing
|
||||||
{
|
{
|
||||||
embedBuilder.setColor(Configuration.getBotColor());
|
embedBuilder.setColor(Cache.getBotColor());
|
||||||
embedBuilder.setTitle(Configuration.getBotName());
|
embedBuilder.setTitle(Cache.getBotName());
|
||||||
|
|
||||||
// thumbnail
|
// thumbnail
|
||||||
String botAvatarUrl = HidekoBot.getAPI().getSelfUser().getAvatarUrl();
|
String botAvatarUrl = HidekoBot.getAPI().getSelfUser().getAvatarUrl();
|
||||||
@ -53,7 +53,7 @@ public class BotInfoCommand
|
|||||||
embedBuilder.addField("Commands", commandsListBuilder.toString(), false);
|
embedBuilder.addField("Commands", commandsListBuilder.toString(), false);
|
||||||
|
|
||||||
// version field
|
// version field
|
||||||
embedBuilder.addField("Version", "v" + Configuration.getBotVersion(), true);
|
embedBuilder.addField("Version", "v" + Cache.getBotVersion(), true);
|
||||||
|
|
||||||
// jvm version field
|
// jvm version field
|
||||||
String jvmVersion = ManagementFactory.getRuntimeMXBean().getVmVersion();
|
String jvmVersion = ManagementFactory.getRuntimeMXBean().getVmVersion();
|
||||||
@ -68,7 +68,7 @@ public class BotInfoCommand
|
|||||||
embedBuilder.addField("RAM Usage", ramMBFormatter.format(usedRamMB) + " MB", true);
|
embedBuilder.addField("RAM Usage", ramMBFormatter.format(usedRamMB) + " MB", true);
|
||||||
|
|
||||||
// developer field
|
// developer field
|
||||||
String developerMention = "<@" + Configuration.getBotMaintainerId() + ">";
|
String developerMention = "<@" + Cache.getBotMaintainerId() + ">";
|
||||||
embedBuilder.addField("Maintainer", developerMention, true);
|
embedBuilder.addField("Maintainer", developerMention, true);
|
||||||
|
|
||||||
// uptime field
|
// uptime field
|
||||||
|
@ -12,7 +12,7 @@ import net.dv8tion.jda.api.interactions.commands.OptionMapping;
|
|||||||
import net.dv8tion.jda.api.interactions.components.buttons.Button;
|
import net.dv8tion.jda.api.interactions.components.buttons.Button;
|
||||||
import net.dv8tion.jda.api.requests.restaction.WebhookMessageEditAction;
|
import net.dv8tion.jda.api.requests.restaction.WebhookMessageEditAction;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import wtf.beatrice.hidekobot.Configuration;
|
import wtf.beatrice.hidekobot.Cache;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -165,8 +165,8 @@ public class ClearChatCommand
|
|||||||
.setActionRow(dismissButton)
|
.setActionRow(dismissButton)
|
||||||
.complete();
|
.complete();
|
||||||
|
|
||||||
Configuration.getDatabaseManager().queueDisabling(message);
|
Cache.getDatabaseManager().queueDisabling(message);
|
||||||
Configuration.getDatabaseManager().trackRanCommandReply(message, event.getUser());
|
Cache.getDatabaseManager().trackRanCommandReply(message, event.getUser());
|
||||||
|
|
||||||
}
|
}
|
||||||
}).start();
|
}).start();
|
||||||
@ -176,7 +176,7 @@ public class ClearChatCommand
|
|||||||
public void dismissMessage(ButtonInteractionEvent event)
|
public void dismissMessage(ButtonInteractionEvent event)
|
||||||
{
|
{
|
||||||
|
|
||||||
if(!(Configuration.getDatabaseManager().isUserTrackedFor(event.getUser().getId(), event.getMessageId())))
|
if(!(Cache.getDatabaseManager().isUserTrackedFor(event.getUser().getId(), event.getMessageId())))
|
||||||
{
|
{
|
||||||
event.reply("❌ You did not run this command!").setEphemeral(true).queue();
|
event.reply("❌ You did not run this command!").setEphemeral(true).queue();
|
||||||
} else
|
} else
|
||||||
|
@ -8,7 +8,7 @@ import net.dv8tion.jda.api.events.interaction.component.ButtonInteractionEvent;
|
|||||||
import net.dv8tion.jda.api.interactions.components.ActionRow;
|
import net.dv8tion.jda.api.interactions.components.ActionRow;
|
||||||
import net.dv8tion.jda.api.interactions.components.buttons.Button;
|
import net.dv8tion.jda.api.interactions.components.buttons.Button;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import wtf.beatrice.hidekobot.Configuration;
|
import wtf.beatrice.hidekobot.Cache;
|
||||||
import wtf.beatrice.hidekobot.utils.RandomUtil;
|
import wtf.beatrice.hidekobot.utils.RandomUtil;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -38,7 +38,7 @@ public class CoinFlipCommand
|
|||||||
public void buttonReFlip(ButtonInteractionEvent event)
|
public void buttonReFlip(ButtonInteractionEvent event)
|
||||||
{
|
{
|
||||||
// check if the user interacting is the same one who ran the command
|
// check if the user interacting is the same one who ran the command
|
||||||
if(!(Configuration.getDatabaseManager().isUserTrackedFor(event.getUser().getId(), event.getMessageId())))
|
if(!(Cache.getDatabaseManager().isUserTrackedFor(event.getUser().getId(), event.getMessageId())))
|
||||||
{
|
{
|
||||||
event.reply("❌ You did not run this command!").setEphemeral(true).queue();
|
event.reply("❌ You did not run this command!").setEphemeral(true).queue();
|
||||||
return;
|
return;
|
||||||
@ -63,8 +63,8 @@ public class CoinFlipCommand
|
|||||||
{
|
{
|
||||||
String replyMessageId = replyMessage.getId();
|
String replyMessageId = replyMessage.getId();
|
||||||
|
|
||||||
Configuration.getDatabaseManager().queueDisabling(replyMessage);
|
Cache.getDatabaseManager().queueDisabling(replyMessage);
|
||||||
Configuration.getDatabaseManager().trackRanCommandReply(replyMessage, user);
|
Cache.getDatabaseManager().trackRanCommandReply(replyMessage, user);
|
||||||
}
|
}
|
||||||
|
|
||||||
private String genRandom()
|
private String genRandom()
|
||||||
|
@ -2,7 +2,7 @@ package wtf.beatrice.hidekobot.commands.slash;
|
|||||||
|
|
||||||
import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent;
|
import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import wtf.beatrice.hidekobot.Configuration;
|
import wtf.beatrice.hidekobot.Cache;
|
||||||
import wtf.beatrice.hidekobot.HidekoBot;
|
import wtf.beatrice.hidekobot.HidekoBot;
|
||||||
|
|
||||||
import java.util.concurrent.Executors;
|
import java.util.concurrent.Executors;
|
||||||
@ -13,7 +13,7 @@ public class DieCommand
|
|||||||
|
|
||||||
public void runSlashCommand(@NotNull SlashCommandInteractionEvent event)
|
public void runSlashCommand(@NotNull SlashCommandInteractionEvent event)
|
||||||
{
|
{
|
||||||
if(Configuration.getBotOwnerId() != event.getMember().getIdLong())
|
if(Cache.getBotOwnerId() != event.getMember().getIdLong())
|
||||||
{
|
{
|
||||||
event.reply("Sorry, only the bot owner can run this command!").setEphemeral(true).queue();
|
event.reply("Sorry, only the bot owner can run this command!").setEphemeral(true).queue();
|
||||||
} else {
|
} else {
|
||||||
|
@ -3,7 +3,7 @@ package wtf.beatrice.hidekobot.commands.slash;
|
|||||||
import net.dv8tion.jda.api.EmbedBuilder;
|
import net.dv8tion.jda.api.EmbedBuilder;
|
||||||
import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent;
|
import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import wtf.beatrice.hidekobot.Configuration;
|
import wtf.beatrice.hidekobot.Cache;
|
||||||
|
|
||||||
public class HelpCommand
|
public class HelpCommand
|
||||||
{
|
{
|
||||||
@ -17,7 +17,7 @@ public class HelpCommand
|
|||||||
|
|
||||||
// embed processing
|
// embed processing
|
||||||
{
|
{
|
||||||
embedBuilder.setColor(Configuration.getBotColor());
|
embedBuilder.setColor(Cache.getBotColor());
|
||||||
embedBuilder.setTitle("Help");
|
embedBuilder.setTitle("Help");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -9,7 +9,7 @@ import net.dv8tion.jda.api.interactions.components.buttons.Button;
|
|||||||
import net.dv8tion.jda.api.requests.restaction.WebhookMessageEditAction;
|
import net.dv8tion.jda.api.requests.restaction.WebhookMessageEditAction;
|
||||||
import net.dv8tion.jda.api.requests.restaction.interactions.ReplyCallbackAction;
|
import net.dv8tion.jda.api.requests.restaction.interactions.ReplyCallbackAction;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import wtf.beatrice.hidekobot.Configuration;
|
import wtf.beatrice.hidekobot.Cache;
|
||||||
import wtf.beatrice.hidekobot.HidekoBot;
|
import wtf.beatrice.hidekobot.HidekoBot;
|
||||||
|
|
||||||
public class InviteCommand
|
public class InviteCommand
|
||||||
@ -29,17 +29,17 @@ public class InviteCommand
|
|||||||
|
|
||||||
//embed processing
|
//embed processing
|
||||||
{
|
{
|
||||||
embedBuilder.setColor(Configuration.getBotColor());
|
embedBuilder.setColor(Cache.getBotColor());
|
||||||
String avatarUrl = HidekoBot.getAPI().getSelfUser().getAvatarUrl();
|
String avatarUrl = HidekoBot.getAPI().getSelfUser().getAvatarUrl();
|
||||||
if(avatarUrl != null) embedBuilder.setThumbnail(avatarUrl);
|
if(avatarUrl != null) embedBuilder.setThumbnail(avatarUrl);
|
||||||
embedBuilder.setTitle("Invite");
|
embedBuilder.setTitle("Invite");
|
||||||
embedBuilder.appendDescription("Click on the button below to invite " +
|
embedBuilder.appendDescription("Click on the button below to invite " +
|
||||||
Configuration.getBotName() +
|
Cache.getBotName() +
|
||||||
" to your server!");
|
" to your server!");
|
||||||
}
|
}
|
||||||
|
|
||||||
String inviteUrl = Configuration.getInviteUrl();
|
String inviteUrl = Cache.getInviteUrl();
|
||||||
Button inviteButton = Button.link(inviteUrl, "Invite " + Configuration.getBotName())
|
Button inviteButton = Button.link(inviteUrl, "Invite " + Cache.getBotName())
|
||||||
.withEmoji(Emoji.fromUnicode("\uD83C\uDF1F"));
|
.withEmoji(Emoji.fromUnicode("\uD83C\uDF1F"));
|
||||||
|
|
||||||
WebhookMessageEditAction<Message> reply =
|
WebhookMessageEditAction<Message> reply =
|
||||||
|
@ -3,7 +3,7 @@ package wtf.beatrice.hidekobot.database;
|
|||||||
import net.dv8tion.jda.api.entities.Message;
|
import net.dv8tion.jda.api.entities.Message;
|
||||||
import net.dv8tion.jda.api.entities.User;
|
import net.dv8tion.jda.api.entities.User;
|
||||||
import net.dv8tion.jda.api.entities.channel.ChannelType;
|
import net.dv8tion.jda.api.entities.channel.ChannelType;
|
||||||
import wtf.beatrice.hidekobot.Configuration;
|
import wtf.beatrice.hidekobot.Cache;
|
||||||
import wtf.beatrice.hidekobot.utils.Logger;
|
import wtf.beatrice.hidekobot.utils.Logger;
|
||||||
|
|
||||||
import java.sql.*;
|
import java.sql.*;
|
||||||
@ -83,6 +83,8 @@ public class DatabaseManager
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
//todo: javadocs
|
||||||
|
|
||||||
public boolean initDb()
|
public boolean initDb()
|
||||||
{
|
{
|
||||||
List<String> newTables = new ArrayList<>();
|
List<String> newTables = new ArrayList<>();
|
||||||
@ -225,9 +227,9 @@ public class DatabaseManager
|
|||||||
guildId = message.getGuild().getId();
|
guildId = message.getGuild().getId();
|
||||||
}
|
}
|
||||||
|
|
||||||
LocalDateTime expiryTime = LocalDateTime.now().plusSeconds(Configuration.getExpiryTimeSeconds());
|
LocalDateTime expiryTime = LocalDateTime.now().plusSeconds(Cache.getExpiryTimeSeconds());
|
||||||
|
|
||||||
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(Configuration.getExpiryTimestampFormat());
|
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(Cache.getExpiryTimestampFormat());
|
||||||
String expiryTimeFormatted = dateTimeFormatter.format(expiryTime);
|
String expiryTimeFormatted = dateTimeFormatter.format(expiryTime);
|
||||||
|
|
||||||
String query = "INSERT INTO pending_disabled_messages " +
|
String query = "INSERT INTO pending_disabled_messages " +
|
||||||
|
@ -4,7 +4,7 @@ import net.dv8tion.jda.api.entities.channel.middleman.MessageChannel;
|
|||||||
import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
|
import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
|
||||||
import net.dv8tion.jda.api.hooks.ListenerAdapter;
|
import net.dv8tion.jda.api.hooks.ListenerAdapter;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import wtf.beatrice.hidekobot.Configuration;
|
import wtf.beatrice.hidekobot.Cache;
|
||||||
import wtf.beatrice.hidekobot.utils.Logger;
|
import wtf.beatrice.hidekobot.utils.Logger;
|
||||||
|
|
||||||
public class MessageListener extends ListenerAdapter
|
public class MessageListener extends ListenerAdapter
|
||||||
@ -35,12 +35,12 @@ public class MessageListener extends ListenerAdapter
|
|||||||
{
|
{
|
||||||
MessageChannel channel = event.getChannel();
|
MessageChannel channel = event.getChannel();
|
||||||
|
|
||||||
boolean verbose = Configuration.isVerbose();
|
boolean verbose = Cache.isVerbose();
|
||||||
|
|
||||||
String msg = verbose ? "off" : "on";
|
String msg = verbose ? "off" : "on";
|
||||||
msg = "Turning verbosity " + msg + "!";
|
msg = "Turning verbosity " + msg + "!";
|
||||||
|
|
||||||
Configuration.setVerbose(!verbose);
|
Cache.setVerbose(!verbose);
|
||||||
|
|
||||||
channel.sendMessage(msg).queue();
|
channel.sendMessage(msg).queue();
|
||||||
logger.log(msg);
|
logger.log(msg);
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package wtf.beatrice.hidekobot.runnables;
|
package wtf.beatrice.hidekobot.runnables;
|
||||||
|
|
||||||
import net.dv8tion.jda.api.JDA;
|
import net.dv8tion.jda.api.JDA;
|
||||||
import wtf.beatrice.hidekobot.Configuration;
|
import wtf.beatrice.hidekobot.Cache;
|
||||||
import wtf.beatrice.hidekobot.HidekoBot;
|
import wtf.beatrice.hidekobot.HidekoBot;
|
||||||
import wtf.beatrice.hidekobot.utils.Logger;
|
import wtf.beatrice.hidekobot.utils.Logger;
|
||||||
|
|
||||||
@ -16,10 +16,10 @@ public class CommandsUpdateTask implements Runnable {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
if(Configuration.isVerbose()) logger.log("Refreshing commands cache...");
|
if(Cache.isVerbose()) logger.log("Refreshing commands cache...");
|
||||||
JDA instance = HidekoBot.getAPI();
|
JDA instance = HidekoBot.getAPI();
|
||||||
if(instance == null) return;
|
if(instance == null) return;
|
||||||
Configuration.setRegisteredCommands(instance.retrieveCommands().complete());
|
Cache.setRegisteredCommands(instance.retrieveCommands().complete());
|
||||||
if(Configuration.isVerbose()) logger.log("Commands cache refreshed!");
|
if(Cache.isVerbose()) logger.log("Commands cache refreshed!");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,7 @@ import net.dv8tion.jda.api.entities.channel.ChannelType;
|
|||||||
import net.dv8tion.jda.api.entities.channel.middleman.MessageChannel;
|
import net.dv8tion.jda.api.entities.channel.middleman.MessageChannel;
|
||||||
import net.dv8tion.jda.api.interactions.components.LayoutComponent;
|
import net.dv8tion.jda.api.interactions.components.LayoutComponent;
|
||||||
import net.dv8tion.jda.api.requests.RestAction;
|
import net.dv8tion.jda.api.requests.RestAction;
|
||||||
import wtf.beatrice.hidekobot.Configuration;
|
import wtf.beatrice.hidekobot.Cache;
|
||||||
import wtf.beatrice.hidekobot.HidekoBot;
|
import wtf.beatrice.hidekobot.HidekoBot;
|
||||||
import wtf.beatrice.hidekobot.database.DatabaseManager;
|
import wtf.beatrice.hidekobot.database.DatabaseManager;
|
||||||
import wtf.beatrice.hidekobot.utils.Logger;
|
import wtf.beatrice.hidekobot.utils.Logger;
|
||||||
@ -26,9 +26,9 @@ public class ExpiredMessageTask implements Runnable {
|
|||||||
|
|
||||||
public ExpiredMessageTask()
|
public ExpiredMessageTask()
|
||||||
{
|
{
|
||||||
String format = Configuration.getExpiryTimestampFormat();
|
String format = Cache.getExpiryTimestampFormat();
|
||||||
formatter = DateTimeFormatter.ofPattern(format);
|
formatter = DateTimeFormatter.ofPattern(format);
|
||||||
databaseManager = Configuration.getDatabaseManager();
|
databaseManager = Cache.getDatabaseManager();
|
||||||
logger = new Logger(getClass());
|
logger = new Logger(getClass());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -36,10 +36,10 @@ public class ExpiredMessageTask implements Runnable {
|
|||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
|
|
||||||
databaseManager = Configuration.getDatabaseManager();
|
databaseManager = Cache.getDatabaseManager();
|
||||||
if(databaseManager == null) return;
|
if(databaseManager == null) return;
|
||||||
|
|
||||||
List<String> expiringMessages = Configuration.getDatabaseManager().getQueuedExpiringMessages();
|
List<String> expiringMessages = Cache.getDatabaseManager().getQueuedExpiringMessages();
|
||||||
if(expiringMessages == null || expiringMessages.isEmpty()) return;
|
if(expiringMessages == null || expiringMessages.isEmpty()) return;
|
||||||
|
|
||||||
LocalDateTime now = LocalDateTime.now();
|
LocalDateTime now = LocalDateTime.now();
|
||||||
@ -47,7 +47,7 @@ public class ExpiredMessageTask implements Runnable {
|
|||||||
for(String messageId : expiringMessages)
|
for(String messageId : expiringMessages)
|
||||||
{
|
{
|
||||||
|
|
||||||
if(Configuration.isVerbose()) logger.log("expired check: " + messageId);
|
if(Cache.isVerbose()) logger.log("expired check: " + messageId);
|
||||||
|
|
||||||
String expiryTimestamp = databaseManager.getQueuedExpiringMessageExpiryDate(messageId);
|
String expiryTimestamp = databaseManager.getQueuedExpiringMessageExpiryDate(messageId);
|
||||||
if(expiryTimestamp == null || expiryTimestamp.equals("")) // if missing timestamp
|
if(expiryTimestamp == null || expiryTimestamp.equals("")) // if missing timestamp
|
||||||
@ -62,7 +62,7 @@ public class ExpiredMessageTask implements Runnable {
|
|||||||
LocalDateTime expiryDate = LocalDateTime.parse(expiryTimestamp, formatter);
|
LocalDateTime expiryDate = LocalDateTime.parse(expiryTimestamp, formatter);
|
||||||
if(now.isAfter(expiryDate))
|
if(now.isAfter(expiryDate))
|
||||||
{
|
{
|
||||||
if(Configuration.isVerbose()) logger.log("expired: " + messageId);
|
if(Cache.isVerbose()) logger.log("expired: " + messageId);
|
||||||
disableExpired(messageId);
|
disableExpired(messageId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -127,7 +127,7 @@ public class ExpiredMessageTask implements Runnable {
|
|||||||
RestAction<Message> retrieveAction = textChannel.retrieveMessageById(messageId);
|
RestAction<Message> retrieveAction = textChannel.retrieveMessageById(messageId);
|
||||||
|
|
||||||
|
|
||||||
if(Configuration.isVerbose()) logger.log("cleaning up: " + messageId);
|
if(Cache.isVerbose()) logger.log("cleaning up: " + messageId);
|
||||||
|
|
||||||
retrieveAction.queue(
|
retrieveAction.queue(
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package wtf.beatrice.hidekobot.runnables;
|
package wtf.beatrice.hidekobot.runnables;
|
||||||
|
|
||||||
import wtf.beatrice.hidekobot.Configuration;
|
import wtf.beatrice.hidekobot.Cache;
|
||||||
import wtf.beatrice.hidekobot.utils.Logger;
|
import wtf.beatrice.hidekobot.utils.Logger;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
@ -21,10 +21,10 @@ public class HeartBeatTask implements Runnable
|
|||||||
@Override
|
@Override
|
||||||
public void run()
|
public void run()
|
||||||
{
|
{
|
||||||
String apiKey = Configuration.getHeartBeatApiKey();
|
String apiKey = Cache.getHeartBeatApiKey();
|
||||||
if(apiKey == null || apiKey.isEmpty()) return;
|
if(apiKey == null || apiKey.isEmpty()) return;
|
||||||
|
|
||||||
String urlString = Configuration.getFullHeartBeatLink();
|
String urlString = Cache.getFullHeartBeatLink();
|
||||||
try {
|
try {
|
||||||
|
|
||||||
URL heartbeatUrl = new URL(urlString);
|
URL heartbeatUrl = new URL(urlString);
|
||||||
@ -38,7 +38,7 @@ public class HeartBeatTask implements Runnable
|
|||||||
if(200 <= responseCode && responseCode < 300)
|
if(200 <= responseCode && responseCode < 300)
|
||||||
{
|
{
|
||||||
// only log ok response codes when verbosity is enabled
|
// only log ok response codes when verbosity is enabled
|
||||||
if(Configuration.isVerbose()) logger.log("Heartbeat response code: " + responseCode);
|
if(Cache.isVerbose()) logger.log("Heartbeat response code: " + responseCode);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package wtf.beatrice.hidekobot.utils;
|
package wtf.beatrice.hidekobot.utils;
|
||||||
|
|
||||||
import wtf.beatrice.hidekobot.Configuration;
|
import wtf.beatrice.hidekobot.Cache;
|
||||||
|
|
||||||
import java.time.Duration;
|
import java.time.Duration;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
@ -18,7 +18,7 @@ public class FormatUtil
|
|||||||
public static String getNiceUptime()
|
public static String getNiceUptime()
|
||||||
{
|
{
|
||||||
LocalDateTime now = LocalDateTime.now();
|
LocalDateTime now = LocalDateTime.now();
|
||||||
long uptimeSeconds = ChronoUnit.SECONDS.between(Configuration.getStartupTime(), now);
|
long uptimeSeconds = ChronoUnit.SECONDS.between(Cache.getStartupTime(), now);
|
||||||
Duration uptime = Duration.ofSeconds(uptimeSeconds);
|
Duration uptime = Duration.ofSeconds(uptimeSeconds);
|
||||||
long seconds = uptime.toSecondsPart();
|
long seconds = uptime.toSecondsPart();
|
||||||
long minutes = uptime.toMinutesPart();
|
long minutes = uptime.toMinutesPart();
|
||||||
|
@ -7,7 +7,7 @@ import net.dv8tion.jda.api.interactions.commands.DefaultMemberPermissions;
|
|||||||
import net.dv8tion.jda.api.interactions.commands.OptionType;
|
import net.dv8tion.jda.api.interactions.commands.OptionType;
|
||||||
import net.dv8tion.jda.api.interactions.commands.build.CommandData;
|
import net.dv8tion.jda.api.interactions.commands.build.CommandData;
|
||||||
import net.dv8tion.jda.api.interactions.commands.build.Commands;
|
import net.dv8tion.jda.api.interactions.commands.build.Commands;
|
||||||
import wtf.beatrice.hidekobot.Configuration;
|
import wtf.beatrice.hidekobot.Cache;
|
||||||
import wtf.beatrice.hidekobot.HidekoBot;
|
import wtf.beatrice.hidekobot.HidekoBot;
|
||||||
import wtf.beatrice.hidekobot.listeners.MessageListener;
|
import wtf.beatrice.hidekobot.listeners.MessageListener;
|
||||||
|
|
||||||
@ -128,6 +128,6 @@ public class SlashCommandUtil
|
|||||||
// note that if this is the first time the bot runs after updating commands,
|
// note that if this is the first time the bot runs after updating commands,
|
||||||
// this will probably still return the previous configuration because the discord api
|
// this will probably still return the previous configuration because the discord api
|
||||||
// needs to propagate. this is why we also set up a command updater task (ExpiredMessageTask).
|
// needs to propagate. this is why we also set up a command updater task (ExpiredMessageTask).
|
||||||
Configuration.setRegisteredCommands(jdaInstance.retrieveCommands().complete());
|
Cache.setRegisteredCommands(jdaInstance.retrieveCommands().complete());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,8 +1,4 @@
|
|||||||
bot-settings:
|
bot-token: 'MTAxMjUzNzI5MTMwODI4NjAyMw.GWeNuh.00000000000000000000000000000000000000'
|
||||||
bot-token: 'paste-token-here'
|
bot-owner-id: '000000000000000000'
|
||||||
bot-owner-id: 'paste_your_user_id_here'
|
|
||||||
bot-color: 'PINK'
|
bot-color: 'PINK'
|
||||||
system-settings:
|
heartbeat-link: 'https://your-heartbeat-api.com/api/push/apikey?status=up&msg=OK&ping='
|
||||||
heartbeat:
|
|
||||||
enabled: false
|
|
||||||
link: 'https://your-heartbeat-api.com/api/push/apikey?status=up&msg=OK&ping='
|
|
Loading…
Reference in New Issue
Block a user