From f76c0efa75d916c15bd3298134d1f6ae3a1c6f9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Sun, 28 Mar 2021 15:22:12 +0100 Subject: [PATCH 001/121] Renaming user settings internally --- src/main/java/io/paradaux/friendlybot/FriendlyBot.java | 3 +-- .../friendlybot/commands/utility/ClearColorCommand.java | 4 ++-- .../friendlybot/commands/utility/SetColorCommand.java | 5 ++--- .../{SettingsManager.java => UserSettingsManager.java} | 8 ++++---- 4 files changed, 9 insertions(+), 11 deletions(-) rename src/main/java/io/paradaux/friendlybot/managers/{SettingsManager.java => UserSettingsManager.java} (92%) diff --git a/src/main/java/io/paradaux/friendlybot/FriendlyBot.java b/src/main/java/io/paradaux/friendlybot/FriendlyBot.java index 322be6c9..01a257b0 100644 --- a/src/main/java/io/paradaux/friendlybot/FriendlyBot.java +++ b/src/main/java/io/paradaux/friendlybot/FriendlyBot.java @@ -28,7 +28,6 @@ import io.paradaux.friendlybot.managers.*; import io.paradaux.friendlybot.utils.API; import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; -import net.dv8tion.jda.api.utils.concurrent.Task; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -69,7 +68,7 @@ public static void main(String[] args) { PermissionManager permissionManager = new PermissionManager(logger); RoleManager roleManager = new RoleManager(logger, mongoManager); DiscordBotManager discordBotManager = new DiscordBotManager(config, logger, permissionManager, mongoManager, roleManager); - SettingsManager settingsManager = new SettingsManager(logger, mongoManager); + UserSettingsManager settingsManager = new UserSettingsManager(logger, mongoManager); TagManager tagManager = new TagManager(config, logger, mongoManager); AuditManager auditManager = new AuditManager(config, logger); MailGunManager mailGunManager = new MailGunManager(config, logger); diff --git a/src/main/java/io/paradaux/friendlybot/commands/utility/ClearColorCommand.java b/src/main/java/io/paradaux/friendlybot/commands/utility/ClearColorCommand.java index 68aee3ac..f47d49a7 100644 --- a/src/main/java/io/paradaux/friendlybot/commands/utility/ClearColorCommand.java +++ b/src/main/java/io/paradaux/friendlybot/commands/utility/ClearColorCommand.java @@ -1,7 +1,7 @@ package io.paradaux.friendlybot.commands.utility; import com.jagrosh.jdautilities.command.CommandEvent; -import io.paradaux.friendlybot.managers.SettingsManager; +import io.paradaux.friendlybot.managers.UserSettingsManager; import io.paradaux.friendlybot.utils.NumberUtils; import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.utils.models.database.UserSettingsEntry; @@ -28,7 +28,7 @@ protected void execute(CommandEvent event) { final Message message = event.getMessage(); final Guild guild = event.getGuild(); - SettingsManager settings = SettingsManager.getInstance(); + UserSettingsManager settings = UserSettingsManager.getInstance(); UserSettingsEntry entry = settings.getProfileById(guild.getId(), event.getAuthor().getId()); if (entry.getCustomColorRole() == null) { diff --git a/src/main/java/io/paradaux/friendlybot/commands/utility/SetColorCommand.java b/src/main/java/io/paradaux/friendlybot/commands/utility/SetColorCommand.java index 1ccf7e35..69666ad0 100644 --- a/src/main/java/io/paradaux/friendlybot/commands/utility/SetColorCommand.java +++ b/src/main/java/io/paradaux/friendlybot/commands/utility/SetColorCommand.java @@ -1,9 +1,8 @@ package io.paradaux.friendlybot.commands.utility; import com.jagrosh.jdautilities.command.CommandEvent; -import io.paradaux.friendlybot.managers.MongoManager; import io.paradaux.friendlybot.managers.RoleManager; -import io.paradaux.friendlybot.managers.SettingsManager; +import io.paradaux.friendlybot.managers.UserSettingsManager; import io.paradaux.friendlybot.utils.NumberUtils; import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.utils.models.database.UserSettingsEntry; @@ -58,7 +57,7 @@ protected void execute(CommandEvent event) { return; } - SettingsManager settings = SettingsManager.getInstance(); + UserSettingsManager settings = UserSettingsManager.getInstance(); UserSettingsEntry entry = settings.getProfileById(guild.getId(), event.getAuthor().getId()); if (entry.getLastSetColor() != null && !settings.hasCooldownElapsed(entry)) { message.reply("You must wait until your cooldown expires before running this command again.").queue(); diff --git a/src/main/java/io/paradaux/friendlybot/managers/SettingsManager.java b/src/main/java/io/paradaux/friendlybot/managers/UserSettingsManager.java similarity index 92% rename from src/main/java/io/paradaux/friendlybot/managers/SettingsManager.java rename to src/main/java/io/paradaux/friendlybot/managers/UserSettingsManager.java index 222a8b96..18b3026b 100644 --- a/src/main/java/io/paradaux/friendlybot/managers/SettingsManager.java +++ b/src/main/java/io/paradaux/friendlybot/managers/UserSettingsManager.java @@ -12,24 +12,24 @@ import java.util.Date; import java.util.List; -public class SettingsManager { +public class UserSettingsManager { private static final short COOLDOWN = 3; - private static SettingsManager instance; + private static UserSettingsManager instance; private final Logger logger; private final MongoCollection settings; - public SettingsManager(Logger logger, MongoManager mongo) { + public UserSettingsManager(Logger logger, MongoManager mongo) { this.logger = logger; instance = this; logger.info("Initialising: Settings Manager"); settings = mongo.getUserSettings(); } - public static SettingsManager getInstance() { + public static UserSettingsManager getInstance() { if (instance == null) { throw new ManagerNotReadyException(); } From 9f6285e028f172b727d92f32376da78495589583 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Sun, 28 Mar 2021 15:23:13 +0100 Subject: [PATCH 002/121] Thought on moving permissions to guild settings entry --- .../friendlybot/utils/models/database/GuildSettingsEntry.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/java/io/paradaux/friendlybot/utils/models/database/GuildSettingsEntry.java b/src/main/java/io/paradaux/friendlybot/utils/models/database/GuildSettingsEntry.java index 8f151943..cc7dc561 100644 --- a/src/main/java/io/paradaux/friendlybot/utils/models/database/GuildSettingsEntry.java +++ b/src/main/java/io/paradaux/friendlybot/utils/models/database/GuildSettingsEntry.java @@ -1,6 +1,7 @@ package io.paradaux.friendlybot.utils.models.database; import java.io.Serializable; +import java.util.HashMap; public class GuildSettingsEntry implements Serializable { @@ -15,6 +16,9 @@ public class GuildSettingsEntry implements Serializable { private String modmailOutputChannel; private String messageLogChannel; + private HashMap moderators; + private HashMap administrators; + public GuildSettingsEntry() { } From 29b7a6f526e1fa6715346dde7b1784c8cf8837c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Tue, 30 Mar 2021 05:50:05 +0100 Subject: [PATCH 003/121] Guild Settings progress --- .../managers/GuildSettingsManager.java | 68 +++++++++++++++++++ .../managers/UserSettingsManager.java | 2 +- .../models/database/GuildSettingsEntry.java | 20 ++++++ 3 files changed, 89 insertions(+), 1 deletion(-) create mode 100644 src/main/java/io/paradaux/friendlybot/managers/GuildSettingsManager.java diff --git a/src/main/java/io/paradaux/friendlybot/managers/GuildSettingsManager.java b/src/main/java/io/paradaux/friendlybot/managers/GuildSettingsManager.java new file mode 100644 index 00000000..649724c5 --- /dev/null +++ b/src/main/java/io/paradaux/friendlybot/managers/GuildSettingsManager.java @@ -0,0 +1,68 @@ +package io.paradaux.friendlybot.managers; + +import com.mongodb.client.MongoCollection; +import com.mongodb.client.model.Filters; +import io.paradaux.friendlybot.utils.models.database.GuildSettingsEntry; +import io.paradaux.friendlybot.utils.models.exceptions.ManagerNotReadyException; +import org.slf4j.Logger; + +import java.util.HashMap; + +public class GuildSettingsManager { + + private static final HashMap cachedGuilds = new HashMap<>(); + private static GuildSettingsManager instance; + + private final MongoCollection guilds; + private final Logger logger; + + public GuildSettingsManager(Logger logger, MongoManager mongo) { + logger.info("Initialising: Guild Settings Manager"); + this.logger = logger; + this.guilds = mongo.getGuildSettings(); + instance = this; + } + + public static GuildSettingsManager getInstance() { + if (instance == null) { + throw new ManagerNotReadyException(); + } + + return instance; + } + + public GuildSettingsEntry getGuild(String guildId) { + // Check if it's cached + GuildSettingsEntry guild = cachedGuilds.get(guildId); + + // If it's not cached try to pull it from the database + if (guild == null) { + guild = guilds.find(Filters.eq("guild_id", guildId)).first(); + cachedGuilds.put(guildId, guild); + } + + // if it's not in the database create a new profile. + if (guild == null) { + guild = createNewProfile(guildId); + cachedGuilds.put(guildId, guild); + } + + return guild; + } + + public GuildSettingsEntry createNewProfile(String guildId) { + GuildSettingsEntry entry = new GuildSettingsEntry() + .setGuildId(guildId); + guilds.insertOne(entry); + return entry; + } + + public void updateProfile(GuildSettingsEntry entry) { + guilds.findOneAndReplace(Filters.eq("guild_id", entry.getGuildId()), entry); + } + + public void removeProfile(String guildId) { + guilds.findOneAndDelete(Filters.eq("guild_id", guildId)); + } + +} diff --git a/src/main/java/io/paradaux/friendlybot/managers/UserSettingsManager.java b/src/main/java/io/paradaux/friendlybot/managers/UserSettingsManager.java index 18b3026b..632f4cf1 100644 --- a/src/main/java/io/paradaux/friendlybot/managers/UserSettingsManager.java +++ b/src/main/java/io/paradaux/friendlybot/managers/UserSettingsManager.java @@ -25,7 +25,7 @@ public class UserSettingsManager { public UserSettingsManager(Logger logger, MongoManager mongo) { this.logger = logger; instance = this; - logger.info("Initialising: Settings Manager"); + logger.info("Initialising: User Settings Manager"); settings = mongo.getUserSettings(); } diff --git a/src/main/java/io/paradaux/friendlybot/utils/models/database/GuildSettingsEntry.java b/src/main/java/io/paradaux/friendlybot/utils/models/database/GuildSettingsEntry.java index cc7dc561..99196989 100644 --- a/src/main/java/io/paradaux/friendlybot/utils/models/database/GuildSettingsEntry.java +++ b/src/main/java/io/paradaux/friendlybot/utils/models/database/GuildSettingsEntry.java @@ -1,5 +1,7 @@ package io.paradaux.friendlybot.utils.models.database; +import org.bson.codecs.pojo.annotations.BsonProperty; + import java.io.Serializable; import java.util.HashMap; @@ -7,16 +9,34 @@ public class GuildSettingsEntry implements Serializable { protected static final long serialVersionUID = 1L; + @BsonProperty(value = "guild_id") private String guildId; + + @BsonProperty(value = "verification_role_id") private String verificationRoleId; + + @BsonProperty(value = "verification_input_channel") private String verificationInputChannel; + + @BsonProperty(value = "mod_audit_log_channel") private String privateAuditLogChannel; + + @BsonProperty(value = "audit_log_channel") private String publicAuditLogChannel; + + @BsonProperty(value = "modmail_input_channel") private String modmailInputChannel; + + @BsonProperty(value = "modmail_output_channel") private String modmailOutputChannel; + + @BsonProperty(value = "message_log_channel") private String messageLogChannel; + @BsonProperty(value = "moderators") private HashMap moderators; + + @BsonProperty(value = "administrators") private HashMap administrators; public GuildSettingsEntry() { From 4fe83b9b31acf4b9dbb1fb501b94c5e0686f9660 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Tue, 30 Mar 2021 06:06:20 +0100 Subject: [PATCH 004/121] Ensure messages expire, so we're not holding on to them longer than necessary --- .../io/paradaux/friendlybot/managers/MongoManager.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/main/java/io/paradaux/friendlybot/managers/MongoManager.java b/src/main/java/io/paradaux/friendlybot/managers/MongoManager.java index 0e2f0b7e..26929e41 100644 --- a/src/main/java/io/paradaux/friendlybot/managers/MongoManager.java +++ b/src/main/java/io/paradaux/friendlybot/managers/MongoManager.java @@ -30,6 +30,8 @@ import com.mongodb.client.*; import com.mongodb.client.model.Filters; import com.mongodb.client.model.FindOneAndUpdateOptions; +import com.mongodb.client.model.IndexOptions; +import com.mongodb.client.model.Indexes; import com.mongodb.client.model.ReturnDocument; import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.utils.models.database.*; @@ -44,6 +46,7 @@ import javax.annotation.CheckReturnValue; import javax.annotation.Nullable; import java.util.Date; +import java.util.concurrent.TimeUnit; import static org.bson.codecs.configuration.CodecRegistries.fromProviders; import static org.bson.codecs.configuration.CodecRegistries.fromRegistries; @@ -121,6 +124,12 @@ public MongoManager(ConfigurationEntry config, Logger logger) { guilds = dataBase.getCollection("guildsettings", GuildSettingsEntry.class); stats = dataBase.getCollection("stats", BotStats.class); + loggedMessages.createIndex(Indexes.ascending("date_sent"), + new IndexOptions().expireAfter(1L, TimeUnit.DAYS)); + + logger.info("Ensuring we're not storing any messages that should have expired."); + loggedMessages.countDocuments(); + instance = this; } From 8b8c491d46414b2102357a4388c60625aad67ad3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Tue, 30 Mar 2021 06:06:40 +0100 Subject: [PATCH 005/121] Registering new manager --- .../java/io/paradaux/friendlybot/FriendlyBot.java | 6 +++++- .../friendlybot/managers/DiscordBotManager.java | 15 +++++++++------ .../managers/GuildSettingsManager.java | 1 + .../friendlybot/managers/BotControllerTest.java | 2 +- 4 files changed, 16 insertions(+), 8 deletions(-) diff --git a/src/main/java/io/paradaux/friendlybot/FriendlyBot.java b/src/main/java/io/paradaux/friendlybot/FriendlyBot.java index 01a257b0..3631877c 100644 --- a/src/main/java/io/paradaux/friendlybot/FriendlyBot.java +++ b/src/main/java/io/paradaux/friendlybot/FriendlyBot.java @@ -67,8 +67,9 @@ public static void main(String[] args) { MongoManager mongoManager = new MongoManager(config, logger); PermissionManager permissionManager = new PermissionManager(logger); RoleManager roleManager = new RoleManager(logger, mongoManager); - DiscordBotManager discordBotManager = new DiscordBotManager(config, logger, permissionManager, mongoManager, roleManager); UserSettingsManager settingsManager = new UserSettingsManager(logger, mongoManager); + GuildSettingsManager guildSettingsManager = new GuildSettingsManager(logger, mongoManager); + DiscordBotManager discordBotManager = new DiscordBotManager(config, logger, permissionManager, mongoManager, roleManager, guildSettingsManager); TagManager tagManager = new TagManager(config, logger, mongoManager); AuditManager auditManager = new AuditManager(config, logger); MailGunManager mailGunManager = new MailGunManager(config, logger); @@ -92,5 +93,8 @@ public static void main(String[] args) { })); // TODO unban scheduler + // TODO update API + // TODO Sentry integration + } } diff --git a/src/main/java/io/paradaux/friendlybot/managers/DiscordBotManager.java b/src/main/java/io/paradaux/friendlybot/managers/DiscordBotManager.java index 636a4b4b..d7361a67 100644 --- a/src/main/java/io/paradaux/friendlybot/managers/DiscordBotManager.java +++ b/src/main/java/io/paradaux/friendlybot/managers/DiscordBotManager.java @@ -69,14 +69,17 @@ public class DiscordBotManager { private final JDA client; private final EventWaiter eventWaiter; private final RoleManager roles; + private final GuildSettingsManager guilds; - public DiscordBotManager(ConfigurationEntry config, Logger logger, PermissionManager permissionManager, MongoManager mongo, RoleManager roles) { + public DiscordBotManager(ConfigurationEntry config, Logger logger, PermissionManager permissionManager, MongoManager mongo, + RoleManager roles, GuildSettingsManager guilds) { this.config = config; this.logger = logger; this.permissionManager = permissionManager; this.mongo = mongo; this.eventWaiter = new EventWaiter(); this.roles = roles; + this.guilds = guilds; logger.info("Initialising: Discord Bot Manager"); logger.info("Attempting to login"); @@ -182,16 +185,16 @@ public JDA login(String token) throws LoginException { new AlotListener(config, logger), new DotCommandsListener(config, logger), new InsultListener(config, logger), - new GuildJoinLog(config, logger), - new GuildLeaveLog(config, logger), + new GuildJoinLog(config, logger, guilds), + new GuildLeaveLog(config, logger, guilds), new ModMailChannelListener(config, logger), new ModMailPrivateMessageListener(logger), new VerificationCodeReceivedListener(config, logger), new VerificationEmailReceivedListener(config, logger), new ReadyListener(logger), - new MessageDeleteLog(config, logger, mongo), - new MessageLog(config, logger, mongo), - new UpdatedMessageLog(config, logger, mongo), + new MessageDeleteLog(config, logger, mongo, guilds), + new MessageLog(config, logger, mongo, guilds), + new UpdatedMessageLog(config, logger, mongo, guilds), new LongMessageListener(config, logger), new TagListener(config, logger), new VotePinListener(logger) diff --git a/src/main/java/io/paradaux/friendlybot/managers/GuildSettingsManager.java b/src/main/java/io/paradaux/friendlybot/managers/GuildSettingsManager.java index 649724c5..f7bd1e0d 100644 --- a/src/main/java/io/paradaux/friendlybot/managers/GuildSettingsManager.java +++ b/src/main/java/io/paradaux/friendlybot/managers/GuildSettingsManager.java @@ -51,6 +51,7 @@ public GuildSettingsEntry getGuild(String guildId) { } public GuildSettingsEntry createNewProfile(String guildId) { + logger.info("Creating a guild profile for {}", guildId); GuildSettingsEntry entry = new GuildSettingsEntry() .setGuildId(guildId); guilds.insertOne(entry); diff --git a/src/test/java/io/paradaux/friendlybot/managers/BotControllerTest.java b/src/test/java/io/paradaux/friendlybot/managers/BotControllerTest.java index 87545825..7236ed25 100644 --- a/src/test/java/io/paradaux/friendlybot/managers/BotControllerTest.java +++ b/src/test/java/io/paradaux/friendlybot/managers/BotControllerTest.java @@ -40,7 +40,7 @@ static void setUp() { ConfigManager configurationController; ConfigurationEntry config = new ConfigurationEntry(); - DiscordBotManager controller = new DiscordBotManager(config, logger, null, null, null); + DiscordBotManager controller = new DiscordBotManager(config, logger, null, null, null, null); } } \ No newline at end of file From a21ceebce1610bfde1c2b6bb3ccfb59b96640a9c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Tue, 30 Mar 2021 06:17:20 +0100 Subject: [PATCH 006/121] Fix audit logging to be guild specific --- .../commands/staff/technician/SetupCommand.java | 2 ++ .../listeners/logging/MessageDeleteLog.java | 12 +++++++++++- .../friendlybot/listeners/logging/MessageLog.java | 12 +++++++++++- .../listeners/logging/UpdatedMessageLog.java | 5 ++++- .../listeners/logging/audit/GuildJoinLog.java | 14 ++++++++++++-- .../listeners/logging/audit/GuildLeaveLog.java | 14 ++++++++++++-- 6 files changed, 52 insertions(+), 7 deletions(-) create mode 100644 src/main/java/io/paradaux/friendlybot/commands/staff/technician/SetupCommand.java diff --git a/src/main/java/io/paradaux/friendlybot/commands/staff/technician/SetupCommand.java b/src/main/java/io/paradaux/friendlybot/commands/staff/technician/SetupCommand.java new file mode 100644 index 00000000..b35c50b4 --- /dev/null +++ b/src/main/java/io/paradaux/friendlybot/commands/staff/technician/SetupCommand.java @@ -0,0 +1,2 @@ +package io.paradaux.friendlybot.commands.staff.technician;public class SetupCommand { +} diff --git a/src/main/java/io/paradaux/friendlybot/listeners/logging/MessageDeleteLog.java b/src/main/java/io/paradaux/friendlybot/listeners/logging/MessageDeleteLog.java index 2e11d1e0..22553220 100644 --- a/src/main/java/io/paradaux/friendlybot/listeners/logging/MessageDeleteLog.java +++ b/src/main/java/io/paradaux/friendlybot/listeners/logging/MessageDeleteLog.java @@ -26,8 +26,10 @@ package io.paradaux.friendlybot.listeners.logging; import io.paradaux.friendlybot.managers.DiscordBotManager; +import io.paradaux.friendlybot.managers.GuildSettingsManager; import io.paradaux.friendlybot.managers.MongoManager; import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.utils.models.database.GuildSettingsEntry; import io.paradaux.friendlybot.utils.models.database.MessageEntry; import io.paradaux.friendlybot.utils.models.types.DiscordEventListener; import net.dv8tion.jda.api.EmbedBuilder; @@ -40,16 +42,24 @@ public class MessageDeleteLog extends DiscordEventListener { private final MongoManager mongo; + private final GuildSettingsManager guilds; - public MessageDeleteLog(ConfigurationEntry config, Logger logger, MongoManager mongo) { + public MessageDeleteLog(ConfigurationEntry config, Logger logger, MongoManager mongo, GuildSettingsManager guilds) { super(config, logger); this.mongo = mongo; + this.guilds = guilds; } @Override public void onGuildMessageDelete(@NotNull GuildMessageDeleteEvent event) { TextChannel messageLogChannel = DiscordBotManager.getInstance().getChannel(getConfig().getMessageLogChannel()); + GuildSettingsEntry guild = guilds.getGuild(event.getGuild().getId()); + + if (guild.getMessageLogChannel() == null || guild.getMessageLogChannel().isEmpty()) { + return; + } + MessageEntry entry = mongo.getLoggedMessage(event.getMessageId()); if (entry == null) { diff --git a/src/main/java/io/paradaux/friendlybot/listeners/logging/MessageLog.java b/src/main/java/io/paradaux/friendlybot/listeners/logging/MessageLog.java index 0432ed1c..0e880cf6 100644 --- a/src/main/java/io/paradaux/friendlybot/listeners/logging/MessageLog.java +++ b/src/main/java/io/paradaux/friendlybot/listeners/logging/MessageLog.java @@ -26,8 +26,10 @@ package io.paradaux.friendlybot.listeners.logging; import io.paradaux.friendlybot.managers.DiscordBotManager; +import io.paradaux.friendlybot.managers.GuildSettingsManager; import io.paradaux.friendlybot.managers.MongoManager; import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.utils.models.database.GuildSettingsEntry; import io.paradaux.friendlybot.utils.models.database.MessageEntry; import io.paradaux.friendlybot.utils.models.types.DiscordEventListener; import net.dv8tion.jda.api.EmbedBuilder; @@ -41,10 +43,12 @@ public class MessageLog extends DiscordEventListener { private final MongoManager mongo; + private final GuildSettingsManager guilds; - public MessageLog(ConfigurationEntry config, Logger logger, MongoManager mongo) { + public MessageLog(ConfigurationEntry config, Logger logger, MongoManager mongo, GuildSettingsManager guilds) { super(config, logger); this.mongo = mongo; + this.guilds = guilds; } @Override @@ -55,6 +59,12 @@ public void onMessageReceived(@NotNull MessageReceivedEvent event) { TextChannel messageLogChannel = DiscordBotManager.getInstance().getChannel(getConfig().getMessageLogChannel()); + GuildSettingsEntry guild = guilds.getGuild(event.getGuild().getId()); + + if (guild.getMessageLogChannel() == null || guild.getMessageLogChannel().isEmpty()) { + return; + } + MessageEntry entry = new MessageEntry() .setAuthorId(event.getAuthor().getId()) .setMessageId(event.getMessageId()) diff --git a/src/main/java/io/paradaux/friendlybot/listeners/logging/UpdatedMessageLog.java b/src/main/java/io/paradaux/friendlybot/listeners/logging/UpdatedMessageLog.java index 86888618..c39107b5 100644 --- a/src/main/java/io/paradaux/friendlybot/listeners/logging/UpdatedMessageLog.java +++ b/src/main/java/io/paradaux/friendlybot/listeners/logging/UpdatedMessageLog.java @@ -26,6 +26,7 @@ package io.paradaux.friendlybot.listeners.logging; import io.paradaux.friendlybot.managers.DiscordBotManager; +import io.paradaux.friendlybot.managers.GuildSettingsManager; import io.paradaux.friendlybot.managers.MongoManager; import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.utils.models.database.MessageEntry; @@ -40,10 +41,12 @@ public class UpdatedMessageLog extends DiscordEventListener { private final MongoManager mongo; + private final GuildSettingsManager guilds; - public UpdatedMessageLog(ConfigurationEntry config, Logger logger, MongoManager mongo) { + public UpdatedMessageLog(ConfigurationEntry config, Logger logger, MongoManager mongo, GuildSettingsManager guilds) { super(config, logger); this.mongo = mongo; + this.guilds = guilds; } @Override diff --git a/src/main/java/io/paradaux/friendlybot/listeners/logging/audit/GuildJoinLog.java b/src/main/java/io/paradaux/friendlybot/listeners/logging/audit/GuildJoinLog.java index 2427b8b4..78086dba 100644 --- a/src/main/java/io/paradaux/friendlybot/listeners/logging/audit/GuildJoinLog.java +++ b/src/main/java/io/paradaux/friendlybot/listeners/logging/audit/GuildJoinLog.java @@ -26,7 +26,9 @@ package io.paradaux.friendlybot.listeners.logging.audit; import io.paradaux.friendlybot.managers.DiscordBotManager; +import io.paradaux.friendlybot.managers.GuildSettingsManager; import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.utils.models.database.GuildSettingsEntry; import io.paradaux.friendlybot.utils.models.types.DiscordEventListener; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.events.guild.member.GuildMemberJoinEvent; @@ -35,19 +37,27 @@ public class GuildJoinLog extends DiscordEventListener { - public GuildJoinLog(ConfigurationEntry config, Logger logger) { + private final GuildSettingsManager guilds; + public GuildJoinLog(ConfigurationEntry config, Logger logger, GuildSettingsManager guilds) { super(config, logger); + this.guilds = guilds; } @Override public void onGuildMemberJoin(@NotNull GuildMemberJoinEvent event) { + GuildSettingsEntry guild = guilds.getGuild(event.getGuild().getId()); + + if (guild.getPublicAuditLogChannel() == null || guild.getPublicAuditLogChannel().isEmpty()) { + return; + } + var user = event.getUser(); var embed = new EmbedBuilder() .setTitle(user.getAsTag() + " has joined the guild.") .setColor(0x00cc99) .build(); - DiscordBotManager.getInstance().getChannel(getConfig().getPublicAuditLogChannelId()).sendMessage(embed).queue(); + DiscordBotManager.getInstance().getChannel(guild.getPublicAuditLogChannel()).sendMessage(embed).queue(); } } diff --git a/src/main/java/io/paradaux/friendlybot/listeners/logging/audit/GuildLeaveLog.java b/src/main/java/io/paradaux/friendlybot/listeners/logging/audit/GuildLeaveLog.java index 9a7030ff..bd24a942 100644 --- a/src/main/java/io/paradaux/friendlybot/listeners/logging/audit/GuildLeaveLog.java +++ b/src/main/java/io/paradaux/friendlybot/listeners/logging/audit/GuildLeaveLog.java @@ -26,7 +26,9 @@ package io.paradaux.friendlybot.listeners.logging.audit; import io.paradaux.friendlybot.managers.DiscordBotManager; +import io.paradaux.friendlybot.managers.GuildSettingsManager; import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.utils.models.database.GuildSettingsEntry; import io.paradaux.friendlybot.utils.models.types.DiscordEventListener; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.events.guild.member.GuildMemberRemoveEvent; @@ -35,20 +37,28 @@ public class GuildLeaveLog extends DiscordEventListener { - public GuildLeaveLog(ConfigurationEntry config, Logger logger) { + private final GuildSettingsManager guilds; + public GuildLeaveLog(ConfigurationEntry config, Logger logger, GuildSettingsManager guilds) { super(config, logger); + this.guilds = guilds; } @Override public void onGuildMemberRemove(@NotNull GuildMemberRemoveEvent event) { + GuildSettingsEntry guild = guilds.getGuild(event.getGuild().getId()); + + if (guild.getPublicAuditLogChannel() == null || guild.getPublicAuditLogChannel().isEmpty()) { + return; + } + var user = event.getUser(); var embed = new EmbedBuilder() .setTitle(user.getAsTag() + " has left the guild.") .setColor(0xff5050) .build(); - DiscordBotManager.getInstance().getChannel(getConfig().getPublicAuditLogChannelId()).sendMessage(embed).queue(); + DiscordBotManager.getInstance().getChannel(guild.getPublicAuditLogChannel()).sendMessage(embed).queue(); } } From 1596723175f6eb05d293dce43d7fb5950aacab09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Tue, 30 Mar 2021 06:20:55 +0100 Subject: [PATCH 007/121] Add permission check to announcement command to prevent abuse --- .../commands/staff/moderation/AnnouncementCommand.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/AnnouncementCommand.java b/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/AnnouncementCommand.java index 297a32cd..1c4ff98a 100644 --- a/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/AnnouncementCommand.java +++ b/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/AnnouncementCommand.java @@ -26,6 +26,11 @@ public AnnouncementCommand(ConfigurationEntry config, Logger logger, PermissionM @Override protected void execute(CommandEvent event) { + + if (!isStaff(event.getGuild(), event.getAuthor().getId())) { + return; + } + event.reply("Beginning to build an announcement."); EmbedBuilder builder = new EmbedBuilder(); From 3a03bd6c531ae515cb633788bfc156ca8277a4df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Tue, 30 Mar 2021 06:22:33 +0100 Subject: [PATCH 008/121] Remove command which has been waiting for impl for too long --- .../staff/moderation/TimeOutCommand.java | 50 ------------------- 1 file changed, 50 deletions(-) delete mode 100644 src/main/java/io/paradaux/friendlybot/commands/staff/moderation/TimeOutCommand.java diff --git a/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/TimeOutCommand.java b/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/TimeOutCommand.java deleted file mode 100644 index 1dec77f5..00000000 --- a/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/TimeOutCommand.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2021 Rían Errity - * io.paradaux.friendlybot.commands.staff.moderation.TimeOutCommand : 31/01/2021, 01:27 - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package io.paradaux.friendlybot.commands.staff.moderation; - -import com.jagrosh.jdautilities.command.CommandEvent; -import io.paradaux.friendlybot.managers.PermissionManager; -import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.utils.models.types.PrivilegedCommand; -import org.slf4j.Logger; - -public class TimeOutCommand extends PrivilegedCommand { - - public TimeOutCommand(ConfigurationEntry config, Logger logger, PermissionManager permissionManager) { - super(config, logger, permissionManager); - this.name = "timeout"; - this.aliases = new String[]{"to", "quarantine"}; - this.help = "Prevents a user from sending messages for a period of time."; - } - - @Override - protected void execute(CommandEvent event) { - - event.getChannel().sendMessage("TimeOut is not implemented yet. " - + "Coming soon").queue(); - - } -} From 244c04d35801137af9ca26a170d98aece57931d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Tue, 30 Mar 2021 06:32:05 +0100 Subject: [PATCH 009/121] DM command implemented --- .../commands/staff/technician/DmCommand.java | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/src/main/java/io/paradaux/friendlybot/commands/staff/technician/DmCommand.java b/src/main/java/io/paradaux/friendlybot/commands/staff/technician/DmCommand.java index acf9f826..38d0b1d9 100644 --- a/src/main/java/io/paradaux/friendlybot/commands/staff/technician/DmCommand.java +++ b/src/main/java/io/paradaux/friendlybot/commands/staff/technician/DmCommand.java @@ -29,6 +29,8 @@ import io.paradaux.friendlybot.managers.PermissionManager; import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.utils.models.types.PrivilegedCommand; +import net.dv8tion.jda.api.entities.Member; +import net.dv8tion.jda.api.entities.User; import org.slf4j.Logger; public class DmCommand extends PrivilegedCommand { @@ -43,6 +45,32 @@ public DmCommand(ConfigurationEntry config, Logger logger, PermissionManager per @Override protected void execute(CommandEvent event) { // TODO Command stub + + if (!isStaff(event.getGuild(), event.getAuthor().getId())) { + respondNoPermission(event.getMessage(), "Moderator"); + return; + } + + String[] args = getArgs(event.getArgs()); + + if (args.length < 3) { + respondSyntaxError(event.getMessage(), ";dm "); + return; + } + + User target = parseTarget(event.getMessage(), args[0]); + + if (target == null) { + respondSyntaxError(event.getMessage(), ";dm "); + return; + } + + target.openPrivateChannel().queue((channel) -> { + String message = parseSentance(1, args); + channel.sendMessage(message).queue(); + event.getChannel().sendMessage("Sent `" + message + "` to target: " + target.getAsTag()).queue(); + }); + } } From de32dc3412b15366a9e0388af9b9ef7b836450ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Tue, 30 Mar 2021 06:34:59 +0100 Subject: [PATCH 010/121] Start moving permissions to per-server rather than global --- .../commands/staff/moderation/BanCommand.java | 4 ++-- .../staff/moderation/CiteCommand.java | 2 +- .../staff/moderation/KickCommand.java | 4 ++-- .../staff/moderation/LookupCommand.java | 2 +- .../staff/moderation/PruneCommand.java | 2 +- .../staff/moderation/PunishmentCommand.java | 2 +- .../staff/moderation/RespondCommand.java | 2 +- .../staff/moderation/TempBanCommand.java | 2 +- .../staff/moderation/TicketCommand.java | 2 +- .../staff/moderation/WarnCommand.java | 2 +- .../staff/technician/SetupCommand.java | 20 ++++++++++++++++++- .../commands/utility/TagCommand.java | 2 +- .../commands/utility/UserInfoCommand.java | 2 +- .../managers/DiscordBotManager.java | 1 - .../utils/models/types/PrivilegedCommand.java | 19 ++++++++++++++++-- 15 files changed, 50 insertions(+), 18 deletions(-) diff --git a/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/BanCommand.java b/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/BanCommand.java index a33d129f..9703e148 100644 --- a/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/BanCommand.java +++ b/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/BanCommand.java @@ -64,7 +64,7 @@ protected void execute(CommandEvent event) { String[] args = getArgs(event.getArgs()); String authorID = event.getAuthor().getId(); - if (!isStaff(authorID)) { + if (!isStaff(event.getGuild(), authorID)) { respondNoPermission(message, "[Moderator, Administrator]"); return; } @@ -81,7 +81,7 @@ protected void execute(CommandEvent event) { return; } - if (isStaff(target.getId())) { + if (isStaff(event.getGuild(), target.getId())) { message.getChannel().sendMessage("You cannot ban a staff member.").queue(); return; } diff --git a/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/CiteCommand.java b/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/CiteCommand.java index c3c0d25c..a840cb18 100644 --- a/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/CiteCommand.java +++ b/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/CiteCommand.java @@ -50,7 +50,7 @@ protected void execute(CommandEvent event) { String[] args = getArgs(event.getArgs()); String authorID = event.getAuthor().getId(); - if (!isStaff(authorID)) { + if (!isStaff(event.getGuild(), authorID)) { respondNoPermission(message, "[Moderator, Administrator]"); return; } diff --git a/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/KickCommand.java b/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/KickCommand.java index 194ac126..349d6ba3 100644 --- a/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/KickCommand.java +++ b/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/KickCommand.java @@ -68,7 +68,7 @@ protected void execute(CommandEvent event) { String[] args = getArgs(event.getArgs()); String authorID = event.getAuthor().getId(); - if (!isStaff(authorID)) { + if (!isStaff(event.getGuild(), authorID)) { respondNoPermission(message, "[Moderator, Administrator]"); return; } @@ -84,7 +84,7 @@ protected void execute(CommandEvent event) { return; } - if (isStaff(target.getId())) { + if (isStaff(event.getGuild(), target.getId())) { message.getChannel().sendMessage("You cannot ban a staff member.").queue(); return; } diff --git a/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/LookupCommand.java b/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/LookupCommand.java index d6de2ee3..1819adb7 100644 --- a/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/LookupCommand.java +++ b/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/LookupCommand.java @@ -56,7 +56,7 @@ protected void execute(CommandEvent event) { String[] args = getArgs(event.getArgs()); String authorID = event.getAuthor().getId(); - if (!isStaff(authorID)) { + if (!isStaff(event.getGuild(), authorID)) { respondNoPermission(message, "[Moderator, Administrator]"); return; } diff --git a/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/PruneCommand.java b/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/PruneCommand.java index 28455070..0f03db52 100644 --- a/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/PruneCommand.java +++ b/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/PruneCommand.java @@ -48,7 +48,7 @@ protected void execute(CommandEvent event) { String[] args = getArgs(event.getArgs()); String authorID = event.getAuthor().getId(); - if (!isStaff(authorID)) { + if (!isStaff(event.getGuild(), authorID)) { respondNoPermission(message, "[Moderator, Administrator]"); return; } diff --git a/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/PunishmentCommand.java b/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/PunishmentCommand.java index a55563ae..a27c3281 100644 --- a/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/PunishmentCommand.java +++ b/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/PunishmentCommand.java @@ -33,7 +33,7 @@ protected void execute(CommandEvent event) { Message message = event.getMessage(); String[] args = getArgs(event.getArgs()); - if (!isStaff(event.getAuthor().getId())) { + if (!isStaff(event.getGuild(), event.getAuthor().getId())) { respondNoPermission(message, "[Moderator, Administrator]"); return; } diff --git a/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/RespondCommand.java b/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/RespondCommand.java index e6b898c2..9196f388 100644 --- a/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/RespondCommand.java +++ b/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/RespondCommand.java @@ -58,7 +58,7 @@ protected void execute(CommandEvent event) { String[] args = getArgs(event.getArgs()); String authorID = event.getAuthor().getId(); - if (!isStaff(authorID)) { + if (!isStaff(event.getGuild(), authorID)) { respondNoPermission(message, "[Moderator, Administrator]"); return; } diff --git a/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/TempBanCommand.java b/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/TempBanCommand.java index 4bafb923..2e4384be 100644 --- a/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/TempBanCommand.java +++ b/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/TempBanCommand.java @@ -62,7 +62,7 @@ protected void execute(CommandEvent event) { Message message = event.getMessage(); String[] args = getArgs(event.getArgs()); - if (!isStaff(staff.getId())) { + if (!isStaff(event.getGuild(), staff.getId())) { respondNoPermission(message, "[Moderator, Administrator]"); return; } diff --git a/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/TicketCommand.java b/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/TicketCommand.java index 65d9581f..e8f0b1ae 100644 --- a/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/TicketCommand.java +++ b/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/TicketCommand.java @@ -61,7 +61,7 @@ protected void execute(CommandEvent event) { String ticketNumber; - if (!isStaff(message.getAuthor().getId())) { + if (!isStaff(event.getGuild(), message.getAuthor().getId())) { respondNoPermission(message, "[Moderator, Administrator]"); return; } diff --git a/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/WarnCommand.java b/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/WarnCommand.java index 1da296d3..b1c0019b 100644 --- a/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/WarnCommand.java +++ b/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/WarnCommand.java @@ -70,7 +70,7 @@ protected void execute(CommandEvent event) { String[] args = getArgs(event.getArgs()); String authorID = event.getAuthor().getId(); - if (!isStaff(authorID)) { + if (!isStaff(event.getGuild(), authorID)) { respondNoPermission(message, "[Moderator, Administrator]"); return; } diff --git a/src/main/java/io/paradaux/friendlybot/commands/staff/technician/SetupCommand.java b/src/main/java/io/paradaux/friendlybot/commands/staff/technician/SetupCommand.java index b35c50b4..7394f682 100644 --- a/src/main/java/io/paradaux/friendlybot/commands/staff/technician/SetupCommand.java +++ b/src/main/java/io/paradaux/friendlybot/commands/staff/technician/SetupCommand.java @@ -1,2 +1,20 @@ -package io.paradaux.friendlybot.commands.staff.technician;public class SetupCommand { +package io.paradaux.friendlybot.commands.staff.technician; + +import com.jagrosh.jdautilities.command.CommandEvent; +import io.paradaux.friendlybot.managers.PermissionManager; +import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.utils.models.types.PrivilegedCommand; +import org.slf4j.Logger; + +public class SetupCommand extends PrivilegedCommand { + + public SetupCommand(ConfigurationEntry config, Logger logger, PermissionManager permissionManager) { + super(config, logger, permissionManager); + } + + @Override + protected void execute(CommandEvent event) { + + } + } diff --git a/src/main/java/io/paradaux/friendlybot/commands/utility/TagCommand.java b/src/main/java/io/paradaux/friendlybot/commands/utility/TagCommand.java index 56b27c0d..da1b4d0f 100644 --- a/src/main/java/io/paradaux/friendlybot/commands/utility/TagCommand.java +++ b/src/main/java/io/paradaux/friendlybot/commands/utility/TagCommand.java @@ -111,7 +111,7 @@ protected void execute(CommandEvent event) { return; } - if (!(entry.getDiscordId().equals(event.getAuthor().getId()) || isStaff(event.getAuthor().getId()))) { + if (!(entry.getDiscordId().equals(event.getAuthor().getId()) || isStaff(event.getGuild(), event.getAuthor().getId()))) { // Not staff, not the owner. MessageEmbed embed = new EmbedBuilder() .setColor(0xeb5132) diff --git a/src/main/java/io/paradaux/friendlybot/commands/utility/UserInfoCommand.java b/src/main/java/io/paradaux/friendlybot/commands/utility/UserInfoCommand.java index d9b0fd51..b342be65 100644 --- a/src/main/java/io/paradaux/friendlybot/commands/utility/UserInfoCommand.java +++ b/src/main/java/io/paradaux/friendlybot/commands/utility/UserInfoCommand.java @@ -52,7 +52,7 @@ protected void execute(CommandEvent event) { Member member; String argument = event.getArgs(); System.out.println(argument); - if (!argument.isEmpty() && isStaff(event.getAuthor().getId())) { + if (!argument.isEmpty() && isStaff(event.getGuild(), event.getAuthor().getId())) { member = retrieveMember(event.getGuild(), parseTarget(event.getMessage(), getArgs(argument)[0])); if (member == null) { diff --git a/src/main/java/io/paradaux/friendlybot/managers/DiscordBotManager.java b/src/main/java/io/paradaux/friendlybot/managers/DiscordBotManager.java index d7361a67..d9e8ec98 100644 --- a/src/main/java/io/paradaux/friendlybot/managers/DiscordBotManager.java +++ b/src/main/java/io/paradaux/friendlybot/managers/DiscordBotManager.java @@ -135,7 +135,6 @@ private CommandClient createCommandClient() { new RespondCommand(config, logger, permissionManager, mongo), new TempBanCommand(config, logger, permissionManager, mongo), new TicketCommand(config, logger, permissionManager), - new TimeOutCommand(config, logger, permissionManager), new WarnCommand(config, logger, permissionManager), // Technician Commands. diff --git a/src/main/java/io/paradaux/friendlybot/utils/models/types/PrivilegedCommand.java b/src/main/java/io/paradaux/friendlybot/utils/models/types/PrivilegedCommand.java index e1e697d9..79580885 100644 --- a/src/main/java/io/paradaux/friendlybot/utils/models/types/PrivilegedCommand.java +++ b/src/main/java/io/paradaux/friendlybot/utils/models/types/PrivilegedCommand.java @@ -25,9 +25,13 @@ package io.paradaux.friendlybot.utils.models.types; +import io.paradaux.friendlybot.managers.DiscordBotManager; import io.paradaux.friendlybot.managers.PermissionManager; import io.paradaux.friendlybot.utils.embeds.notices.NoPermissionEmbed; import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; +import net.dv8tion.jda.api.Permission; +import net.dv8tion.jda.api.entities.Guild; +import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Message; import org.slf4j.Logger; @@ -52,7 +56,7 @@ public PrivilegedCommand(Logger logger, PermissionManager permissionManager) { /** * Returns true if the provided user is a member of staff. * */ - public boolean isStaff(String discordID) { + public boolean isStaff(Guild guild, String discordID) { PermissionManager permissionManager = getPermissionManager(); if (permissionManager == null) { @@ -61,7 +65,18 @@ public boolean isStaff(String discordID) { return getPermissionManager().isAdmin(discordID) || permissionManager.isMod(discordID) - || permissionManager.isTechnician(discordID); + || permissionManager.isTechnician(discordID) + || isAdmin(guild, discordID); + } + + public boolean isAdmin(Guild guild, String discordId) { + Member member = retrieveMember(guild, discordId); + + if (member == null) { + return false; + } + + return member.getPermissions().contains(Permission.ADMINISTRATOR); } /** From c0a0ea159b1265a607d85ec86dd600b921a92efd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Tue, 30 Mar 2021 06:37:54 +0100 Subject: [PATCH 011/121] Remove obsolete debug outputs --- .../commands/utility/UserInfoCommand.java | 2 +- .../friendlybot/managers/MailGunManager.java | 22 +------------------ .../friendlybot/managers/MongoManager.java | 1 - 3 files changed, 2 insertions(+), 23 deletions(-) diff --git a/src/main/java/io/paradaux/friendlybot/commands/utility/UserInfoCommand.java b/src/main/java/io/paradaux/friendlybot/commands/utility/UserInfoCommand.java index b342be65..e0d66cd4 100644 --- a/src/main/java/io/paradaux/friendlybot/commands/utility/UserInfoCommand.java +++ b/src/main/java/io/paradaux/friendlybot/commands/utility/UserInfoCommand.java @@ -51,7 +51,7 @@ public UserInfoCommand(ConfigurationEntry config, Logger logger, PermissionManag protected void execute(CommandEvent event) { Member member; String argument = event.getArgs(); - System.out.println(argument); + if (!argument.isEmpty() && isStaff(event.getGuild(), event.getAuthor().getId())) { member = retrieveMember(event.getGuild(), parseTarget(event.getMessage(), getArgs(argument)[0])); diff --git a/src/main/java/io/paradaux/friendlybot/managers/MailGunManager.java b/src/main/java/io/paradaux/friendlybot/managers/MailGunManager.java index 7d0c71d2..2f950167 100644 --- a/src/main/java/io/paradaux/friendlybot/managers/MailGunManager.java +++ b/src/main/java/io/paradaux/friendlybot/managers/MailGunManager.java @@ -79,28 +79,8 @@ public void sendEmail(String recipient, String tag, String code) { .addHeader("Authorization", "Basic " + StringUtils.basicAuth("api", config.getMailGunApplicationKey())) .build(); - HttpUtils.sendAsync(client, request).thenAccept((response) -> { - - if (response.body() == null) { - throw new VerificationException("No response received."); - } - - try (Reader reader = response.body().charStream()) { - int charInt; - StringBuilder strBuilder = new StringBuilder(); - while ((charInt = reader.read()) != -1) { - strBuilder.append((char) charInt); - } - - System.out.println(strBuilder.toString()); - } catch (IOException ok) { - logger.error("Error occurred whilst interacting with mailgun."); - throw new VerificationException(); - } - - }).join(); + HttpUtils.sendAsync(client, request).thenAccept((response) -> logger.info("Sending a verification email for " + tag)).join(); } - } \ No newline at end of file diff --git a/src/main/java/io/paradaux/friendlybot/managers/MongoManager.java b/src/main/java/io/paradaux/friendlybot/managers/MongoManager.java index 26929e41..c35897bf 100644 --- a/src/main/java/io/paradaux/friendlybot/managers/MongoManager.java +++ b/src/main/java/io/paradaux/friendlybot/managers/MongoManager.java @@ -343,7 +343,6 @@ public void addRescindment(RescindmentEntry entry) { } public void updateStats(int userCount, int guildCount) { - System.out.printf("userCOunt: " + userCount + " guildCount" + guildCount); stats.findOneAndUpdate(new Document(), new Document() .append("user_count", userCount) .append("guild_count", guildCount)); From 79921f07edd61aafef0301c0a44484f455cd8e3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Tue, 30 Mar 2021 08:04:14 +0100 Subject: [PATCH 012/121] Planning out setupcommand --- .../staff/technician/SetupCommand.java | 45 ++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-) diff --git a/src/main/java/io/paradaux/friendlybot/commands/staff/technician/SetupCommand.java b/src/main/java/io/paradaux/friendlybot/commands/staff/technician/SetupCommand.java index 7394f682..ec99e28a 100644 --- a/src/main/java/io/paradaux/friendlybot/commands/staff/technician/SetupCommand.java +++ b/src/main/java/io/paradaux/friendlybot/commands/staff/technician/SetupCommand.java @@ -1,20 +1,63 @@ package io.paradaux.friendlybot.commands.staff.technician; import com.jagrosh.jdautilities.command.CommandEvent; +import com.jagrosh.jdautilities.commons.waiter.EventWaiter; import io.paradaux.friendlybot.managers.PermissionManager; import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.utils.models.types.PrivilegedCommand; +import net.dv8tion.jda.api.EmbedBuilder; +import net.dv8tion.jda.api.entities.Message; +import net.dv8tion.jda.api.events.message.MessageReceivedEvent; import org.slf4j.Logger; public class SetupCommand extends PrivilegedCommand { - public SetupCommand(ConfigurationEntry config, Logger logger, PermissionManager permissionManager) { + private final EventWaiter waiter; + + public SetupCommand(ConfigurationEntry config, Logger logger, PermissionManager permissionManager, EventWaiter waiter) { super(config, logger, permissionManager); + this.waiter = waiter; + this.name = "setup"; + this.help = "Configures guild settings"; } @Override protected void execute(CommandEvent event) { + if (!isStaff(event.getGuild(), event.getAuthor().getId())) { + return; + } + + event.reply("Beginning to configure this guild."); + + EmbedBuilder builder = new EmbedBuilder(); + + event.getChannel().sendMessage("Please set the title.").queue(message -> waiter.waitForEvent(MessageReceivedEvent.class, + messageEvent -> sameOrigin(event.getMessage(), messageEvent.getMessage()), messageEvent -> { + + // Going to use roles + // Going to use modmail + // Going to use email verification + // Going to use color roles + + + + + })); + } + + + public boolean getBoolean(String message) { + + } + + + + public boolean sameOrigin(Message message1, Message message2) { + if (!message1.getChannel().getId().equals(message2.getChannel().getId())) { + return false; + } + return message1.getAuthor().getId().equals(message2.getAuthor().getId()); } } From a184d81e8e371fb7783b51b8e4ae5c4e5525434a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Wed, 31 Mar 2021 13:46:55 +0100 Subject: [PATCH 013/121] Parse Boolean from text util --- .../paradaux/friendlybot/utils/StringUtils.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/main/java/io/paradaux/friendlybot/utils/StringUtils.java b/src/main/java/io/paradaux/friendlybot/utils/StringUtils.java index e6b41347..d09067aa 100644 --- a/src/main/java/io/paradaux/friendlybot/utils/StringUtils.java +++ b/src/main/java/io/paradaux/friendlybot/utils/StringUtils.java @@ -29,6 +29,7 @@ import java.net.URLEncoder; import java.nio.charset.StandardCharsets; import java.util.Base64; +import java.util.Locale; import java.util.Random; import java.util.regex.Pattern; @@ -153,4 +154,20 @@ public static String toStrikeOut(String str) { public static String headingToShortCardinalDirection(double heading) { return SHORTHAND_CARDINAL_DIRECTIONS[(int) Math.round(((heading % 360)/45))]; } + + /** + * Parses a boolean from human input, whether that be "yes" or "no" or "true" and "false." + * */ + public static boolean parseBoolean(String str) { + str = str.toLowerCase(); + if (str.contains("yes") || str.contains("true")) { + return true; + } + + if (str.contains("no") || str.contains("false")) { + return false; + } + + throw new IllegalArgumentException("Argument did not contain boolean value."); + } } From b288f51fdeb29d1b48e102e0af302a893ce46190 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Sun, 25 Apr 2021 00:44:04 +0100 Subject: [PATCH 014/121] WIP commad to onboard new guilds --- .../staff/technician/SetupCommand.java | 36 +++++++++++++------ 1 file changed, 26 insertions(+), 10 deletions(-) diff --git a/src/main/java/io/paradaux/friendlybot/commands/staff/technician/SetupCommand.java b/src/main/java/io/paradaux/friendlybot/commands/staff/technician/SetupCommand.java index ec99e28a..a97e867f 100644 --- a/src/main/java/io/paradaux/friendlybot/commands/staff/technician/SetupCommand.java +++ b/src/main/java/io/paradaux/friendlybot/commands/staff/technician/SetupCommand.java @@ -3,6 +3,8 @@ import com.jagrosh.jdautilities.command.CommandEvent; import com.jagrosh.jdautilities.commons.waiter.EventWaiter; import io.paradaux.friendlybot.managers.PermissionManager; +import io.paradaux.friendlybot.managers.RoleManager; +import io.paradaux.friendlybot.utils.StringUtils; import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.utils.models.types.PrivilegedCommand; import net.dv8tion.jda.api.EmbedBuilder; @@ -31,25 +33,39 @@ protected void execute(CommandEvent event) { EmbedBuilder builder = new EmbedBuilder(); - event.getChannel().sendMessage("Please set the title.").queue(message -> waiter.waitForEvent(MessageReceivedEvent.class, + event.getChannel().sendMessage("Are you going to use the custom color roles? (yes, no)").queue(message -> waiter.waitForEvent(MessageReceivedEvent.class, messageEvent -> sameOrigin(event.getMessage(), messageEvent.getMessage()), messageEvent -> { + boolean usingColorRoles = StringUtils.parseBoolean(messageEvent.getMessage().getContentRaw()); - // Going to use roles - // Going to use modmail - // Going to use email verification - // Going to use color roles + if (usingColorRoles) { + messageEvent.getChannel().sendMessage("Creating a roll called `Color Roles Begin Here`. Please move this role above where you would like color roles to be put. **N.B**: This has to be below the bot's highest role.)"); + RoleManager.getInstance().setupColorRolePivot(event.getGuild()); + } + event.getChannel().sendMessage("Are you going to use Email Verification? (yes, no)").queue(message2 -> waiter.waitForEvent(MessageReceivedEvent.class, + messageEvent2 -> sameOrigin(event.getMessage(), messageEvent.getMessage()), messageEvent2 -> { + boolean usingEmail = StringUtils.parseBoolean(messageEvent.getMessage().getContentRaw()); + event.getChannel().sendMessage("Are you going to use the ModMail ? (yes, no)").queue(message3 -> waiter.waitForEvent(MessageReceivedEvent.class, + messageEvent3 -> sameOrigin(event.getMessage(), messageEvent.getMessage()), messageEvent3 -> { + boolean usingModMail = StringUtils.parseBoolean(messageEvent.getMessage().getContentRaw()); + event.getChannel().sendMessage("Are you going to use the custom color roles? (yes, no)").queue(message4 -> waiter.waitForEvent(MessageReceivedEvent.class, + messageEvent4 -> sameOrigin(event.getMessage(), messageEvent.getMessage()), messageEvent4 -> { + })); - })); - } + })); + })); - public boolean getBoolean(String message) { - - } + // Going to use roles + // Going to use modmail + // Going to use email verification + + + })); + } public boolean sameOrigin(Message message1, Message message2) { From d38bce34b9ece6e4818f26d12dbba9402aaa60f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Sun, 25 Apr 2021 00:44:38 +0100 Subject: [PATCH 015/121] WIP system to dynamically create discord voice channels as demand needs --- .../listeners/rooms/RoomJoinListener.java | 42 +++++++++++++++++++ .../listeners/rooms/RoomLeaveListener.java | 25 +++++++++++ 2 files changed, 67 insertions(+) create mode 100644 src/main/java/io/paradaux/friendlybot/listeners/rooms/RoomJoinListener.java create mode 100644 src/main/java/io/paradaux/friendlybot/listeners/rooms/RoomLeaveListener.java diff --git a/src/main/java/io/paradaux/friendlybot/listeners/rooms/RoomJoinListener.java b/src/main/java/io/paradaux/friendlybot/listeners/rooms/RoomJoinListener.java new file mode 100644 index 00000000..c89a8db8 --- /dev/null +++ b/src/main/java/io/paradaux/friendlybot/listeners/rooms/RoomJoinListener.java @@ -0,0 +1,42 @@ +package io.paradaux.friendlybot.listeners.rooms; + +import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.utils.models.types.DiscordEventListener; +import net.dv8tion.jda.api.entities.Guild; +import net.dv8tion.jda.api.entities.VoiceChannel; +import net.dv8tion.jda.api.events.guild.voice.GuildVoiceJoinEvent; +import org.slf4j.Logger; + +public class RoomJoinListener extends DiscordEventListener { + + public RoomJoinListener(ConfigurationEntry config, Logger logger) { + super(config, logger); + } + + public void onGuildVoiceJoinEvent(GuildVoiceJoinEvent event) { + if (!event.getChannelJoined().getName().startsWith("Room")) { + return; + } + + if (event.getChannelJoined().getMembers().size() == 1) { + Guild guild = event.getGuild(); + guild.createVoiceChannel("Room " + getLastRoomNumber(guild), event.getChannelJoined().getParent()).queue(); + // Create a new room + } + + } + + public int getLastRoomNumber(Guild guild) { + int i = 0; + int lastFound = 0; + for (VoiceChannel channel : guild.getVoiceChannels()) { + if (channel.getName().contains("Room " + i)) { + lastFound = i; + } + i++; + } + + return lastFound; + } + +} diff --git a/src/main/java/io/paradaux/friendlybot/listeners/rooms/RoomLeaveListener.java b/src/main/java/io/paradaux/friendlybot/listeners/rooms/RoomLeaveListener.java new file mode 100644 index 00000000..33ab5c21 --- /dev/null +++ b/src/main/java/io/paradaux/friendlybot/listeners/rooms/RoomLeaveListener.java @@ -0,0 +1,25 @@ +package io.paradaux.friendlybot.listeners.rooms; + +import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.utils.models.types.DiscordEventListener; +import net.dv8tion.jda.api.events.guild.voice.GuildVoiceLeaveEvent; +import org.slf4j.Logger; + +public class RoomLeaveListener extends DiscordEventListener { + + public RoomLeaveListener(ConfigurationEntry config, Logger logger) { + super(config, logger); + } + + public void onGuildVoiceLeaveEvent(GuildVoiceLeaveEvent event) { + if (!event.getChannelLeft().getName().startsWith("Room")) { + return; + } + + if (event.getChannelLeft().getMembers().size() == 0 && !event.getChannelLeft().getName().equals("Room 1")) { + // Delete the room + } + + } + +} From 46af3c8ef5a591b3e47f4ccc89700a7e09fc0ea6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Sun, 25 Apr 2021 00:44:54 +0100 Subject: [PATCH 016/121] Make rolemanager more generic --- .../friendlybot/managers/RoleManager.java | 34 ++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/src/main/java/io/paradaux/friendlybot/managers/RoleManager.java b/src/main/java/io/paradaux/friendlybot/managers/RoleManager.java index b3f55f66..f7f55858 100644 --- a/src/main/java/io/paradaux/friendlybot/managers/RoleManager.java +++ b/src/main/java/io/paradaux/friendlybot/managers/RoleManager.java @@ -2,9 +2,14 @@ import io.paradaux.friendlybot.utils.models.exceptions.ManagerNotReadyException; import net.dv8tion.jda.api.entities.Guild; +import net.dv8tion.jda.api.entities.Member; +import net.dv8tion.jda.api.entities.Role; import net.dv8tion.jda.api.requests.restaction.RoleAction; import org.slf4j.Logger; +import javax.annotation.Nullable; +import java.util.List; + public class RoleManager { private static RoleManager instance; @@ -27,6 +32,11 @@ public static RoleManager getInstance() { return instance; } + public void setupColorRolePivot(Guild guild) { + Role highestRole = getHighestFrom(guild.getSelfMember()); + guild.createRole().setName("Color Roles Begin Here").queue((role -> guild.modifyRolePositions().selectPosition(role).moveTo(role.getPosition() - 1).queue())); + } + public boolean checkForConflicts(Guild guild, String name) { return DiscordBotManager.getInstance().getRolesByName(guild.getId(), name).size() != 0; } @@ -40,7 +50,29 @@ public RoleAction createRole(Guild guild, String color) { .setColor(Integer.parseInt(color, 16)) .setMentionable(false) .setName(color); - } + /** + * Determines the highest role (i.e the role displayed when the user speaks) of the member provided. + * */ + @Nullable + public Role getHighestFrom(Member member) { + if (member == null) { + return null; + } + + List roles = member.getRoles(); + + if (roles.isEmpty()) { + return null; + } + + return roles.stream().min((first, second) -> { + if (first.getPosition() == second.getPosition()) { + return 0; + } + + return first.getPosition() > second.getPosition() ? -1 : 1; + }).get(); + } } From ef34db0ed26f12c0cf1409d046ad0399d5222c58 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Sun, 25 Apr 2021 00:45:01 +0100 Subject: [PATCH 017/121] Register setup command --- .../io/paradaux/friendlybot/managers/DiscordBotManager.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/io/paradaux/friendlybot/managers/DiscordBotManager.java b/src/main/java/io/paradaux/friendlybot/managers/DiscordBotManager.java index d9e8ec98..c169fee5 100644 --- a/src/main/java/io/paradaux/friendlybot/managers/DiscordBotManager.java +++ b/src/main/java/io/paradaux/friendlybot/managers/DiscordBotManager.java @@ -62,6 +62,7 @@ public class DiscordBotManager { // Singleton Instance private static DiscordBotManager instance = null; + private final ConfigurationEntry config; private final Logger logger; private final PermissionManager permissionManager; @@ -142,6 +143,7 @@ private CommandClient createCommandClient() { new PermissionsCommand(config, logger, permissionManager), new SayCommand(config, logger, permissionManager), new SendEmbedCommand(config, logger, permissionManager), + new SetupCommand(config, logger, permissionManager, eventWaiter), new VerificationCommand(config, logger, permissionManager), // Utility Commands From b6573d97b033d32988de1a7fe256aef532429669 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Wed, 9 Jun 2021 20:42:43 +0100 Subject: [PATCH 018/121] Near-final GuildSettingsManager including cache --- .../managers/GuildSettingsManager.java | 28 +++++++++++++++---- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/src/main/java/io/paradaux/friendlybot/managers/GuildSettingsManager.java b/src/main/java/io/paradaux/friendlybot/managers/GuildSettingsManager.java index f7bd1e0d..dbfdd32a 100644 --- a/src/main/java/io/paradaux/friendlybot/managers/GuildSettingsManager.java +++ b/src/main/java/io/paradaux/friendlybot/managers/GuildSettingsManager.java @@ -27,6 +27,7 @@ public static GuildSettingsManager getInstance() { if (instance == null) { throw new ManagerNotReadyException(); } + instance.logger.info("Getting an instance of GuildSettingsManager..."); return instance; } @@ -35,34 +36,51 @@ public GuildSettingsEntry getGuild(String guildId) { // Check if it's cached GuildSettingsEntry guild = cachedGuilds.get(guildId); - // If it's not cached try to pull it from the database - if (guild == null) { - guild = guilds.find(Filters.eq("guild_id", guildId)).first(); - cachedGuilds.put(guildId, guild); + if (guild != null) { + return guild; } + // If it's not cached try to pull it from the database + logger.info("Guild did not exist in the cache"); + guild = guilds.find(Filters.eq("guild_id", guildId)).first(); + // if it's not in the database create a new profile. if (guild == null) { guild = createNewProfile(guildId); - cachedGuilds.put(guildId, guild); } + // Load the guild into the cache + cachedGuilds.put(guildId, guild); + + // Return the guild after it has been loaded into the cache return guild; } public GuildSettingsEntry createNewProfile(String guildId) { logger.info("Creating a guild profile for {}", guildId); + + // Create an empty guild with just the ID GuildSettingsEntry entry = new GuildSettingsEntry() .setGuildId(guildId); + + // Insert the newly created guild back into the database. guilds.insertOne(entry); return entry; } public void updateProfile(GuildSettingsEntry entry) { + // Updates it in the cache + cachedGuilds.put(entry.getGuildId(), entry); + + // Updates it in the database guilds.findOneAndReplace(Filters.eq("guild_id", entry.getGuildId()), entry); } public void removeProfile(String guildId) { + // Removes a guild from the cache + cachedGuilds.remove(guildId); + + // Removes a guild from the database guilds.findOneAndDelete(Filters.eq("guild_id", guildId)); } From bf89b8ce04df04a6cda78bcf7a4bb1ce90e9fab3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Wed, 9 Jun 2021 20:42:55 +0100 Subject: [PATCH 019/121] Charmander Command completed --- .../commands/fun/CharmanderCommand.java | 48 +++++++++++++++++++ .../managers/DiscordBotManager.java | 1 + 2 files changed, 49 insertions(+) create mode 100644 src/main/java/io/paradaux/friendlybot/commands/fun/CharmanderCommand.java diff --git a/src/main/java/io/paradaux/friendlybot/commands/fun/CharmanderCommand.java b/src/main/java/io/paradaux/friendlybot/commands/fun/CharmanderCommand.java new file mode 100644 index 00000000..1ed761c6 --- /dev/null +++ b/src/main/java/io/paradaux/friendlybot/commands/fun/CharmanderCommand.java @@ -0,0 +1,48 @@ +package io.paradaux.friendlybot.commands.fun; + +import com.jagrosh.jdautilities.command.CommandEvent; +import io.paradaux.friendlybot.utils.NumberUtils; +import io.paradaux.friendlybot.utils.RandomUtils; +import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.utils.models.types.BaseCommand; +import io.paradaux.http.HttpApi; +import net.dv8tion.jda.api.EmbedBuilder; +import org.slf4j.Logger; + +import java.net.http.HttpRequest; +import java.net.http.HttpResponse; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +public class CharmanderCommand extends BaseCommand { + + private static final String CHARMANDER_API = "https://cdn.paradaux.io/static/charmander/"; + private static final List gifs = new ArrayList<>(); + private final RandomUtils random; + + static { + Collections.addAll(gifs, 26); + } + + public CharmanderCommand(ConfigurationEntry config, Logger logger) { + super(config, logger); + this.name = "charmander"; + this.aliases = new String[]{"charm"}; + this.help = "Cute charmander pics!"; + this.random = new RandomUtils(); + } + + @Override + protected void execute(CommandEvent event) { + int id = random.pickRandomNumber(1, 31); + + EmbedBuilder builder = new EmbedBuilder() + .setImage(CHARMANDER_API + id + (gifs.contains(id) ? ".gif" : ".jpg")) + .setColor(NumberUtils.randomColor()) + .setFooter("For " + event.getAuthor().getName() + " Charmander ID: " + id); + + event.getMessage().getChannel().sendMessage(builder.build()).queue(); + } + +} diff --git a/src/main/java/io/paradaux/friendlybot/managers/DiscordBotManager.java b/src/main/java/io/paradaux/friendlybot/managers/DiscordBotManager.java index c169fee5..a0da047d 100644 --- a/src/main/java/io/paradaux/friendlybot/managers/DiscordBotManager.java +++ b/src/main/java/io/paradaux/friendlybot/managers/DiscordBotManager.java @@ -114,6 +114,7 @@ private CommandClient createCommandClient() { .addCommands( // Fun Commands new CatCommand(config, logger), + new CharmanderCommand(config, logger), new CoinFlipCommand(config, logger), new DogCommand(config, logger), new EightBallCommand(config, logger), From 56598a27d77f577e3ab992d4e7f1b137225d5e54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Wed, 9 Jun 2021 20:43:00 +0100 Subject: [PATCH 020/121] Remove WIP task manager --- src/main/java/io/paradaux/friendlybot/FriendlyBot.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/io/paradaux/friendlybot/FriendlyBot.java b/src/main/java/io/paradaux/friendlybot/FriendlyBot.java index 3631877c..30b1668f 100644 --- a/src/main/java/io/paradaux/friendlybot/FriendlyBot.java +++ b/src/main/java/io/paradaux/friendlybot/FriendlyBot.java @@ -31,6 +31,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.util.List; + /** * CSBot is the main (executable) class for the project. * It provides a set of lazy dependency injection instances @@ -74,7 +76,6 @@ public static void main(String[] args) { AuditManager auditManager = new AuditManager(config, logger); MailGunManager mailGunManager = new MailGunManager(config, logger); VerificationManager verificationManager = new VerificationManager(config, logger, mongoManager, mailGunManager); - TaskManager taskManager = new TaskManager(); api = API.builder() .setLogger(logger) From 77e324ff476aa9cd4d8a506144a5dde1ff5d119a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Wed, 9 Jun 2021 21:43:33 +0100 Subject: [PATCH 021/121] Update amount of charmanders in the API --- .../friendlybot/commands/fun/CharmanderCommand.java | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/main/java/io/paradaux/friendlybot/commands/fun/CharmanderCommand.java b/src/main/java/io/paradaux/friendlybot/commands/fun/CharmanderCommand.java index 1ed761c6..859ae61d 100644 --- a/src/main/java/io/paradaux/friendlybot/commands/fun/CharmanderCommand.java +++ b/src/main/java/io/paradaux/friendlybot/commands/fun/CharmanderCommand.java @@ -5,12 +5,9 @@ import io.paradaux.friendlybot.utils.RandomUtils; import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.utils.models.types.BaseCommand; -import io.paradaux.http.HttpApi; import net.dv8tion.jda.api.EmbedBuilder; import org.slf4j.Logger; -import java.net.http.HttpRequest; -import java.net.http.HttpResponse; import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -18,11 +15,12 @@ public class CharmanderCommand extends BaseCommand { private static final String CHARMANDER_API = "https://cdn.paradaux.io/static/charmander/"; - private static final List gifs = new ArrayList<>(); + private static final int CHARMANDER_COUNT = 38; + private static final List GIFS = new ArrayList<>(); private final RandomUtils random; static { - Collections.addAll(gifs, 26); + Collections.addAll(GIFS, 26); } public CharmanderCommand(ConfigurationEntry config, Logger logger) { @@ -35,10 +33,10 @@ public CharmanderCommand(ConfigurationEntry config, Logger logger) { @Override protected void execute(CommandEvent event) { - int id = random.pickRandomNumber(1, 31); + int id = random.pickRandomNumber(1, CHARMANDER_COUNT); EmbedBuilder builder = new EmbedBuilder() - .setImage(CHARMANDER_API + id + (gifs.contains(id) ? ".gif" : ".jpg")) + .setImage(CHARMANDER_API + id + (GIFS.contains(id) ? ".gif" : ".jpg")) .setColor(NumberUtils.randomColor()) .setFooter("For " + event.getAuthor().getName() + " Charmander ID: " + id); From 871e55c61118888ca62f1849be86a45e756272b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Thu, 10 Jun 2021 00:57:00 +0100 Subject: [PATCH 022/121] Finished placeholder setup command --- .../staff/technician/SetupCommand.java | 90 +++++++++---------- 1 file changed, 42 insertions(+), 48 deletions(-) diff --git a/src/main/java/io/paradaux/friendlybot/commands/staff/technician/SetupCommand.java b/src/main/java/io/paradaux/friendlybot/commands/staff/technician/SetupCommand.java index a97e867f..48600f5a 100644 --- a/src/main/java/io/paradaux/friendlybot/commands/staff/technician/SetupCommand.java +++ b/src/main/java/io/paradaux/friendlybot/commands/staff/technician/SetupCommand.java @@ -2,78 +2,72 @@ import com.jagrosh.jdautilities.command.CommandEvent; import com.jagrosh.jdautilities.commons.waiter.EventWaiter; +import io.paradaux.friendlybot.managers.GuildSettingsManager; import io.paradaux.friendlybot.managers.PermissionManager; -import io.paradaux.friendlybot.managers.RoleManager; -import io.paradaux.friendlybot.utils.StringUtils; import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.utils.models.database.GuildSettingsEntry; import io.paradaux.friendlybot.utils.models.types.PrivilegedCommand; -import net.dv8tion.jda.api.EmbedBuilder; +import net.dv8tion.jda.api.Permission; +import net.dv8tion.jda.api.entities.Guild; import net.dv8tion.jda.api.entities.Message; -import net.dv8tion.jda.api.events.message.MessageReceivedEvent; +import net.dv8tion.jda.api.entities.PermissionOverride; +import net.dv8tion.jda.api.entities.TextChannel; import org.slf4j.Logger; public class SetupCommand extends PrivilegedCommand { private final EventWaiter waiter; + private final GuildSettingsManager guilds; public SetupCommand(ConfigurationEntry config, Logger logger, PermissionManager permissionManager, EventWaiter waiter) { super(config, logger, permissionManager); this.waiter = waiter; this.name = "setup"; this.help = "Configures guild settings"; + this.guilds = GuildSettingsManager.getInstance(); } @Override protected void execute(CommandEvent event) { + + Guild guild = event.getGuild(); + if (!isStaff(event.getGuild(), event.getAuthor().getId())) { return; } - event.reply("Beginning to configure this guild."); - - EmbedBuilder builder = new EmbedBuilder(); - - event.getChannel().sendMessage("Are you going to use the custom color roles? (yes, no)").queue(message -> waiter.waitForEvent(MessageReceivedEvent.class, - messageEvent -> sameOrigin(event.getMessage(), messageEvent.getMessage()), messageEvent -> { - boolean usingColorRoles = StringUtils.parseBoolean(messageEvent.getMessage().getContentRaw()); - - if (usingColorRoles) { - messageEvent.getChannel().sendMessage("Creating a roll called `Color Roles Begin Here`. Please move this role above where you would like color roles to be put. **N.B**: This has to be below the bot's highest role.)"); - RoleManager.getInstance().setupColorRolePivot(event.getGuild()); - } - event.getChannel().sendMessage("Are you going to use Email Verification? (yes, no)").queue(message2 -> waiter.waitForEvent(MessageReceivedEvent.class, - messageEvent2 -> sameOrigin(event.getMessage(), messageEvent.getMessage()), messageEvent2 -> { - boolean usingEmail = StringUtils.parseBoolean(messageEvent.getMessage().getContentRaw()); - event.getChannel().sendMessage("Are you going to use the ModMail ? (yes, no)").queue(message3 -> waiter.waitForEvent(MessageReceivedEvent.class, - messageEvent3 -> sameOrigin(event.getMessage(), messageEvent.getMessage()), messageEvent3 -> { - boolean usingModMail = StringUtils.parseBoolean(messageEvent.getMessage().getContentRaw()); - - event.getChannel().sendMessage("Are you going to use the custom color roles? (yes, no)").queue(message4 -> waiter.waitForEvent(MessageReceivedEvent.class, - messageEvent4 -> sameOrigin(event.getMessage(), messageEvent.getMessage()), messageEvent4 -> { - - })); - - - })); - - })); - - - // Going to use roles - // Going to use modmail - // Going to use email verification - - - })); - } - - - public boolean sameOrigin(Message message1, Message message2) { - if (!message1.getChannel().getId().equals(message2.getChannel().getId())) { - return false; + if (guilds.guildExists(guild.getId())) { + event.reply("This guild has already been setup."); + return; } - return message1.getAuthor().getId().equals(message2.getAuthor().getId()); + event.reply("Beginning to configure this guild."); + event.reply("This will create several channels which you can move around or rename, but they must remain the same channels"); + + guild.createCategory("FriendlyBot Administration").queue((category) -> { + // Make it so it isn't visible to the public + category.createPermissionOverride(guild.getPublicRole()).setDeny(Permission.MESSAGE_READ).queue((action) -> { + // Create the feature channels + category.createTextChannel("modmail").queue((modmail) -> { + category.createTextChannel("modmail-output").queue((modmailOutput) -> { + category.createTextChannel("auditlog").queue((auditlog) -> { + category.createTextChannel("auditlog-private").queue((auditlogPrivate) -> { + category.createTextChannel("message-logs").queue((messageLogs) -> { + GuildSettingsEntry guildEntry = guilds.createNewProfile(guild.getId()) + .setModmailInputChannel(modmail.getId()) + .setModmailOutputChannel(modmailOutput.getId()) + .setPublicAuditLogChannel(auditlog.getId()) + .setPrivateAuditLogChannel(auditlogPrivate.getId()) + .setMessageLogChannel(messageLogs.getId()); + + guilds.updateProfile(guildEntry); + event.reply("Setup complete. Do not delete these channels. All channels are under FriendlyBot Administration and cannot be seen by anyone except Server Administrators."); + }); + }); + }); + }); + }); + }); + }); } - } From f6d0e369c7555ad239833001c0e9d63002f5ef1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Thu, 10 Jun 2021 00:57:16 +0100 Subject: [PATCH 023/121] Switched to chew's fork of JDA Utils, updated JDA --- pom.xml | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/pom.xml b/pom.xml index 224547fb..5e710131 100644 --- a/pom.xml +++ b/pom.xml @@ -110,12 +110,9 @@ - - false - - jcenter - jcenter-bintray - https://jcenter.bintray.com + dv8tion + m2-dv8tion + https://m2.dv8tion.net/releases @@ -127,13 +124,19 @@ paradaux https://repo.paradaux.io/releases + + + chew-m2 + https://m2.chew.pro/releases + + net.dv8tion JDA - 4.2.0_247 + 4.2.1_267 club.minnced @@ -145,11 +148,11 @@ - com.jagrosh - jda-utilities - 3.0.5 - pom + pw.chew + jda-chewtils + 1.20 compile + pom From 8657d7fda4ebec05ca718d0d1e422ef88da706d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Thu, 10 Jun 2021 00:59:43 +0100 Subject: [PATCH 024/121] Make message logs per-server --- .../friendlybot/listeners/logging/MessageDeleteLog.java | 2 +- .../friendlybot/listeners/logging/MessageLog.java | 5 ++++- .../friendlybot/listeners/logging/UpdatedMessageLog.java | 9 ++++++++- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/main/java/io/paradaux/friendlybot/listeners/logging/MessageDeleteLog.java b/src/main/java/io/paradaux/friendlybot/listeners/logging/MessageDeleteLog.java index 22553220..188d5a42 100644 --- a/src/main/java/io/paradaux/friendlybot/listeners/logging/MessageDeleteLog.java +++ b/src/main/java/io/paradaux/friendlybot/listeners/logging/MessageDeleteLog.java @@ -52,7 +52,6 @@ public MessageDeleteLog(ConfigurationEntry config, Logger logger, MongoManager m @Override public void onGuildMessageDelete(@NotNull GuildMessageDeleteEvent event) { - TextChannel messageLogChannel = DiscordBotManager.getInstance().getChannel(getConfig().getMessageLogChannel()); GuildSettingsEntry guild = guilds.getGuild(event.getGuild().getId()); @@ -60,6 +59,7 @@ public void onGuildMessageDelete(@NotNull GuildMessageDeleteEvent event) { return; } + TextChannel messageLogChannel = DiscordBotManager.getInstance().getChannel(guild.getMessageLogChannel()); MessageEntry entry = mongo.getLoggedMessage(event.getMessageId()); if (entry == null) { diff --git a/src/main/java/io/paradaux/friendlybot/listeners/logging/MessageLog.java b/src/main/java/io/paradaux/friendlybot/listeners/logging/MessageLog.java index 0e880cf6..ce4453a5 100644 --- a/src/main/java/io/paradaux/friendlybot/listeners/logging/MessageLog.java +++ b/src/main/java/io/paradaux/friendlybot/listeners/logging/MessageLog.java @@ -57,7 +57,9 @@ public void onMessageReceived(@NotNull MessageReceivedEvent event) { return; } - TextChannel messageLogChannel = DiscordBotManager.getInstance().getChannel(getConfig().getMessageLogChannel()); + if (event.getMessage().getContentRaw().startsWith(";")) { + return; + } GuildSettingsEntry guild = guilds.getGuild(event.getGuild().getId()); @@ -65,6 +67,7 @@ public void onMessageReceived(@NotNull MessageReceivedEvent event) { return; } + TextChannel messageLogChannel = DiscordBotManager.getInstance().getChannel(guild.getMessageLogChannel()); MessageEntry entry = new MessageEntry() .setAuthorId(event.getAuthor().getId()) .setMessageId(event.getMessageId()) diff --git a/src/main/java/io/paradaux/friendlybot/listeners/logging/UpdatedMessageLog.java b/src/main/java/io/paradaux/friendlybot/listeners/logging/UpdatedMessageLog.java index c39107b5..bf891b59 100644 --- a/src/main/java/io/paradaux/friendlybot/listeners/logging/UpdatedMessageLog.java +++ b/src/main/java/io/paradaux/friendlybot/listeners/logging/UpdatedMessageLog.java @@ -29,6 +29,7 @@ import io.paradaux.friendlybot.managers.GuildSettingsManager; import io.paradaux.friendlybot.managers.MongoManager; import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.utils.models.database.GuildSettingsEntry; import io.paradaux.friendlybot.utils.models.database.MessageEntry; import io.paradaux.friendlybot.utils.models.types.DiscordEventListener; import net.dv8tion.jda.api.EmbedBuilder; @@ -55,7 +56,13 @@ public void onGuildMessageUpdate(@NotNull GuildMessageUpdateEvent event) { return; } - TextChannel messageLogChannel = DiscordBotManager.getInstance().getChannel(getConfig().getMessageLogChannel()); + GuildSettingsEntry guild = guilds.getGuild(event.getGuild().getId()); + + if (guild.getMessageLogChannel() == null || guild.getMessageLogChannel().isEmpty()) { + return; + } + + TextChannel messageLogChannel = DiscordBotManager.getInstance().getChannel(guild.getMessageLogChannel()); MessageEntry entry = mongo.getLoggedMessage(event.getMessageId()); From 7dedd040f5a2056dae10bc66b22a2f49fb6a289d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Thu, 10 Jun 2021 00:59:57 +0100 Subject: [PATCH 025/121] Add guildExists --- .../managers/GuildSettingsManager.java | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/main/java/io/paradaux/friendlybot/managers/GuildSettingsManager.java b/src/main/java/io/paradaux/friendlybot/managers/GuildSettingsManager.java index dbfdd32a..d0db45d9 100644 --- a/src/main/java/io/paradaux/friendlybot/managers/GuildSettingsManager.java +++ b/src/main/java/io/paradaux/friendlybot/managers/GuildSettingsManager.java @@ -73,7 +73,24 @@ public void updateProfile(GuildSettingsEntry entry) { cachedGuilds.put(entry.getGuildId(), entry); // Updates it in the database - guilds.findOneAndReplace(Filters.eq("guild_id", entry.getGuildId()), entry); + if (!guildExists(entry.getGuildId())) { + guilds.insertOne(entry); + } else { + guilds.findOneAndReplace(Filters.eq("guild_id", entry.getGuildId()), entry); + } + } + + public boolean guildExists(String guildId) { + // Checks first to see if it's in the cache + GuildSettingsEntry entry = cachedGuilds.get(guildId); + + // If it isn't, check the database + if (entry == null) { + entry = guilds.find(Filters.eq("guild_id", guildId)).first(); + } + + // Return whether or not we found it. + return entry != null; } public void removeProfile(String guildId) { From f326c3f046a85b9b546f62e08b9026ff5a1771c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Thu, 10 Jun 2021 14:59:14 +0100 Subject: [PATCH 026/121] Remove unimplemented private message listener --- .../modmail/ModMailChannelListener.java | 4 -- .../ModMailPrivateMessageListener.java | 58 ------------------- .../managers/DiscordBotManager.java | 4 -- 3 files changed, 66 deletions(-) delete mode 100644 src/main/java/io/paradaux/friendlybot/listeners/modmail/ModMailPrivateMessageListener.java diff --git a/src/main/java/io/paradaux/friendlybot/listeners/modmail/ModMailChannelListener.java b/src/main/java/io/paradaux/friendlybot/listeners/modmail/ModMailChannelListener.java index 1d893046..929ca4ff 100644 --- a/src/main/java/io/paradaux/friendlybot/listeners/modmail/ModMailChannelListener.java +++ b/src/main/java/io/paradaux/friendlybot/listeners/modmail/ModMailChannelListener.java @@ -55,10 +55,6 @@ public ModMailChannelListener(ConfigurationEntry config, Logger logger) { public void onMessageReceived(@NotNull MessageReceivedEvent event) { Message message = event.getMessage(); - if (message.getChannelType() == ChannelType.PRIVATE) { - return; - } - if (!message.getChannel().getId().equals(getConfig().getModMailInputChannel())) { return; } diff --git a/src/main/java/io/paradaux/friendlybot/listeners/modmail/ModMailPrivateMessageListener.java b/src/main/java/io/paradaux/friendlybot/listeners/modmail/ModMailPrivateMessageListener.java deleted file mode 100644 index 0e55fd43..00000000 --- a/src/main/java/io/paradaux/friendlybot/listeners/modmail/ModMailPrivateMessageListener.java +++ /dev/null @@ -1,58 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2021 Rían Errity - * io.paradaux.friendlybot.listeners.modmail.ModMailPrivateMessageListener : 31/01/2021, 01:26 - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package io.paradaux.friendlybot.listeners.modmail; - -import io.paradaux.friendlybot.FriendlyBot; -import io.paradaux.friendlybot.utils.models.types.DiscordEventListener; -import net.dv8tion.jda.api.entities.Message; -import net.dv8tion.jda.api.events.message.priv.PrivateMessageReceivedEvent; -import org.jetbrains.annotations.NotNull; -import org.slf4j.Logger; - -/** - * PrivateMessageReceivedListener listens to the VerificationCodes sent to the bot privately, - * parses them and sets the user as verified if approrpriate. - * - * @author Rían Errity - * @version Last Modified for 0.1.0-SNAPSHOT - * @since 1/11/2020 DD/MM/YY - * @see FriendlyBot - * */ - - -public class ModMailPrivateMessageListener extends DiscordEventListener { - - public ModMailPrivateMessageListener(Logger logger) { - super(logger); - } - - @Override - public void onPrivateMessageReceived(@NotNull PrivateMessageReceivedEvent event) { - Message message = event.getMessage(); - // TODO implement - } - -} diff --git a/src/main/java/io/paradaux/friendlybot/managers/DiscordBotManager.java b/src/main/java/io/paradaux/friendlybot/managers/DiscordBotManager.java index a0da047d..fa7585b8 100644 --- a/src/main/java/io/paradaux/friendlybot/managers/DiscordBotManager.java +++ b/src/main/java/io/paradaux/friendlybot/managers/DiscordBotManager.java @@ -39,7 +39,6 @@ import io.paradaux.friendlybot.listeners.logging.audit.GuildJoinLog; import io.paradaux.friendlybot.listeners.logging.audit.GuildLeaveLog; import io.paradaux.friendlybot.listeners.modmail.ModMailChannelListener; -import io.paradaux.friendlybot.listeners.modmail.ModMailPrivateMessageListener; import io.paradaux.friendlybot.listeners.utility.LongMessageListener; import io.paradaux.friendlybot.listeners.verification.VerificationCodeReceivedListener; import io.paradaux.friendlybot.listeners.verification.VerificationEmailReceivedListener; @@ -190,7 +189,6 @@ public JDA login(String token) throws LoginException { new GuildJoinLog(config, logger, guilds), new GuildLeaveLog(config, logger, guilds), new ModMailChannelListener(config, logger), - new ModMailPrivateMessageListener(logger), new VerificationCodeReceivedListener(config, logger), new VerificationEmailReceivedListener(config, logger), new ReadyListener(logger), @@ -258,8 +256,6 @@ public List getRolesByName(String guildId, String roleName) { return getGuild(guildId).getRolesByName(roleName, true); } - - @Nonnull @CheckReturnValue public User getUser(String userId) { From bab82456d87ada464a2cf9934887068cbad1adb6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Thu, 10 Jun 2021 15:36:59 +0100 Subject: [PATCH 027/121] Moving counter to per-server --- .../models/database/GuildSettingsEntry.java | 26 ++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/src/main/java/io/paradaux/friendlybot/utils/models/database/GuildSettingsEntry.java b/src/main/java/io/paradaux/friendlybot/utils/models/database/GuildSettingsEntry.java index 99196989..4181fc13 100644 --- a/src/main/java/io/paradaux/friendlybot/utils/models/database/GuildSettingsEntry.java +++ b/src/main/java/io/paradaux/friendlybot/utils/models/database/GuildSettingsEntry.java @@ -1,5 +1,6 @@ package io.paradaux.friendlybot.utils.models.database; +import io.paradaux.friendlybot.managers.GuildSettingsManager; import org.bson.codecs.pojo.annotations.BsonProperty; import java.io.Serializable; @@ -39,13 +40,20 @@ public class GuildSettingsEntry implements Serializable { @BsonProperty(value = "administrators") private HashMap administrators; + @BsonProperty(value = "last_incident_id") + private Integer lastIncidentId; + + @BsonProperty(value = "last_ticket_id") + private Integer lastTicketId; + public GuildSettingsEntry() { } public GuildSettingsEntry(String guildId, String verificationRoleId, String verificationInputChannel, String privateAuditLogChannel, String publicAuditLogChannel, String modmailInputChannel, String modmailOutputChannel, - String messageLogChannel) { + String messageLogChannel, HashMap moderators, HashMap administrators, + Integer lastIncidentId, Integer lastTicketId) { this.guildId = guildId; this.verificationRoleId = verificationRoleId; this.verificationInputChannel = verificationInputChannel; @@ -54,8 +62,24 @@ public GuildSettingsEntry(String guildId, String verificationRoleId, String veri this.modmailInputChannel = modmailInputChannel; this.modmailOutputChannel = modmailOutputChannel; this.messageLogChannel = messageLogChannel; + this.moderators = moderators; + this.administrators = administrators; + this.lastIncidentId = lastIncidentId; + this.lastTicketId = lastTicketId; + } + + public Integer getTicketId() { + GuildSettingsManager.getInstance().incrementTicketNumber(this.guildId); + return this.lastTicketId++; } + public Integer getIncidentId() { + GuildSettingsManager.getInstance().incrementIncidentId(this.guildId); + return this.lastIncidentId++; + } + + // Dumb Getters and Setters + public GuildSettingsEntry setGuildId(String guildId) { this.guildId = guildId; return this; From 50cf3e819847ad3761724e1832b5bb1c7cf64708 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Thu, 10 Jun 2021 15:55:05 +0100 Subject: [PATCH 028/121] WIP Punishment manager to centralize punishment code --- .../managers/PunishmentManager.java | 95 +++++++++++++++++++ .../utils/models/database/CounterEntry.java | 68 ------------- 2 files changed, 95 insertions(+), 68 deletions(-) create mode 100644 src/main/java/io/paradaux/friendlybot/managers/PunishmentManager.java delete mode 100644 src/main/java/io/paradaux/friendlybot/utils/models/database/CounterEntry.java diff --git a/src/main/java/io/paradaux/friendlybot/managers/PunishmentManager.java b/src/main/java/io/paradaux/friendlybot/managers/PunishmentManager.java new file mode 100644 index 00000000..327f73c3 --- /dev/null +++ b/src/main/java/io/paradaux/friendlybot/managers/PunishmentManager.java @@ -0,0 +1,95 @@ +package io.paradaux.friendlybot.managers; + +import io.paradaux.friendlybot.utils.TimeUtils; +import io.paradaux.friendlybot.utils.models.database.GuildSettingsEntry; +import io.paradaux.friendlybot.utils.models.database.TempBanEntry; +import io.paradaux.friendlybot.utils.models.exceptions.ManagerNotReadyException; +import io.paradaux.friendlybot.utils.models.types.ModerationAction; +import net.dv8tion.jda.api.EmbedBuilder; +import net.dv8tion.jda.api.entities.Guild; +import net.dv8tion.jda.api.entities.Member; +import net.dv8tion.jda.api.entities.MessageEmbed; +import net.dv8tion.jda.api.entities.TextChannel; + +import java.util.Date; + +public class PunishmentManager { + + private static PunishmentManager instance; + private final GuildSettingsManager guilds; + private final MongoManager mongo; + + public PunishmentManager() { + this.guilds = GuildSettingsManager.getInstance(); + this.mongo = MongoManager.getInstance(); + instance = this; + } + + public static PunishmentManager getInstance() { + if (instance == null) { + throw new ManagerNotReadyException(); + } + + return instance; + } + + public void tempBanUser(Guild guild, Member target, Member staff, String time, String reason) { + GuildSettingsEntry settings = guilds.getGuild(guild.getId()); + + long period = TimeUtils.getTime(time); + Date expiry = new Date(System.currentTimeMillis() + period); + + TempBanEntry entry = new TempBanEntry() + .setIncidentId(String.valueOf(settings.getIncidentId())) + .setUserTag(target.getUser().getAsTag()) + .setUserId(target.getId()) + .setStaffTag(staff.getUser().getAsTag()) + .setStaffId(staff.getId()) + .setReason(reason) + .setTimestamp(new Date()) + .setExpiry(expiry); + + mongo.addTempBanEntry(entry); + + MessageEmbed publicAudit = new EmbedBuilder() + .setColor(0xeb5132) + .setTitle(target.getAsTag() + " has been temporarily banned.") + .setDescription("**Reason**: " + entry.getReason() + "\n**Period**: " + TimeUtils.millisecondsToDisplay(period)) + .setFooter("Incident ID: " + entry.getIncidentId() + ". For more information, reach out to the moderation team via mod-mail.") + .setTimestamp(new Date().toInstant()) + .build(); + + TextChannel channel = DiscordBotManager.getInstance().getChannel(getConfig().getPublicAuditLogChannelId()); + channel.sendMessage(publicAudit).queue(); + event.getChannel().sendMessage(publicAudit).queue(); + AuditManager.getInstance().log(ModerationAction.TEMP_BAN, target, staff, entry.getReason(), entry.getIncidentId()); + + target.openPrivateChannel().queue((privateChannel) -> { + MessageEmbed banNotification = new EmbedBuilder() + .setColor(0xeb5132) + .setTitle("You have been temporarily banned.") + .setDescription("**Reason**: " + entry.getReason() + "\n**Period**: " + TimeUtils.millisecondsToDisplay(period)) + .setFooter("Incident ID: " + entry.getIncidentId() + ". For more information, reach out to a member of the moderation team.") + .setTimestamp(new Date().toInstant()) + .build(); + + privateChannel.sendMessage(banNotification).queue((message2) -> { + message.getGuild().ban(target, 0).queue(); + }); + + }); + } + + public void banUser(Guild guild, Member user, String reason) { + GuildSettingsEntry settings = guilds.getGuild(guild.getId()); + } + + public void kickUser(Guild guild, Member user, String reason) { + GuildSettingsEntry settings = guilds.getGuild(guild.getId()); + } + + public void warnUser(Guild guild, Member user, String reason) { + GuildSettingsEntry settings = guilds.getGuild(guild.getId()); + } + +} diff --git a/src/main/java/io/paradaux/friendlybot/utils/models/database/CounterEntry.java b/src/main/java/io/paradaux/friendlybot/utils/models/database/CounterEntry.java deleted file mode 100644 index 0b694fa1..00000000 --- a/src/main/java/io/paradaux/friendlybot/utils/models/database/CounterEntry.java +++ /dev/null @@ -1,68 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2021 Rían Errity - * io.paradaux.friendlybot.utils.models.database.CounterEntry : 31/01/2021, 01:26 - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package io.paradaux.friendlybot.utils.models.database; - -import org.bson.codecs.pojo.annotations.BsonProperty; - -import java.io.Serializable; - -public class CounterEntry implements Serializable { - - protected static final long serialVersionUID = 1L; - - @BsonProperty(value = "last_incident_id") - private long lastIncidentID; - - @BsonProperty(value = "last_ticket_number") - private long lastTickerNumber; - - public CounterEntry(Long lastIncidentID, Long lastTickerNumber) { - this.lastIncidentID = lastIncidentID; - this.lastTickerNumber = lastTickerNumber; - } - - public CounterEntry() { - - } - - public Long getLastIncidentID() { - return lastIncidentID; - } - - public Long getLastTickerNumber() { - return lastTickerNumber; - } - - public CounterEntry setLastIncidentID(Long lastIncidentID) { - this.lastIncidentID = lastIncidentID; - return this; - } - - public CounterEntry setLastTickerNumber(Long lastTickerNumber) { - this.lastTickerNumber = lastTickerNumber; - return this; - } -} From 6d74cc50603f8ffea8467b23671f993b11aa2aac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Thu, 10 Jun 2021 16:10:20 +0100 Subject: [PATCH 029/121] Move punishment commands to use new manager class --- .../commands/staff/moderation/BanCommand.java | 32 +++------- .../staff/moderation/KickCommand.java | 59 +++---------------- .../staff/moderation/TempBanCommand.java | 52 +++------------- .../staff/moderation/WarnCommand.java | 50 ++-------------- 4 files changed, 27 insertions(+), 166 deletions(-) diff --git a/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/BanCommand.java b/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/BanCommand.java index 9703e148..119f0fa0 100644 --- a/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/BanCommand.java +++ b/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/BanCommand.java @@ -30,11 +30,13 @@ import io.paradaux.friendlybot.managers.AuditManager; import io.paradaux.friendlybot.managers.MongoManager; import io.paradaux.friendlybot.managers.PermissionManager; +import io.paradaux.friendlybot.managers.PunishmentManager; import io.paradaux.friendlybot.utils.embeds.moderation.BannedEmbed; import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.utils.models.database.BanEntry; import io.paradaux.friendlybot.utils.models.types.ModerationAction; import io.paradaux.friendlybot.utils.models.types.PrivilegedCommand; +import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Message; import net.dv8tion.jda.api.entities.User; import org.slf4j.Logger; @@ -50,10 +52,13 @@ public class BanCommand extends PrivilegedCommand { + private final PunishmentManager punishments; + public BanCommand(ConfigurationEntry config, Logger logger, PermissionManager permissionManager) { super(config, logger, permissionManager); this.name = "ban"; this.help = "Bans the specified user"; + this.punishments = PunishmentManager.getInstance(); } @Override @@ -74,7 +79,7 @@ protected void execute(CommandEvent event) { return; } - User target = parseTarget(message, args[0]); + Member target = retrieveMember(event.getGuild(), args[0]); if (target == null) { message.getChannel().sendMessage("You did not specify a (valid) target.").queue(); @@ -86,29 +91,6 @@ protected void execute(CommandEvent event) { return; } - String incidentID = mongo.getNextIncidentID(); - String reason = parseSentance(1, args); - - BanEntry entry = new BanEntry() - .setIncidentID(incidentID) - .setReason(reason) - .setStaffID(authorID) - .setStaffTag(event.getAuthor().getAsTag()) - .setUserID(target.getId()) - .setUserTag(target.getAsTag()); - - mongo.addBanEntry(entry); - AuditManager.getInstance().log(ModerationAction.BAN, target, - event.getAuthor(), reason, incidentID); - - message.getChannel().sendMessage("Incident ID: " + incidentID - + "\nReason: " + reason).queue(); - - BannedEmbed embed = new BannedEmbed(reason, incidentID); - target.openPrivateChannel().queue((channel) -> channel.sendMessage(embed.getEmbed()) - .queue()); - - message.getGuild().ban(target, 0).queue(); - + punishments.banUser(event.getGuild(), target, event.getMember(), parseSentance(1, args)); } } diff --git a/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/KickCommand.java b/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/KickCommand.java index 349d6ba3..560f1e8c 100644 --- a/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/KickCommand.java +++ b/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/KickCommand.java @@ -31,6 +31,7 @@ import io.paradaux.friendlybot.managers.DiscordBotManager; import io.paradaux.friendlybot.managers.MongoManager; import io.paradaux.friendlybot.managers.PermissionManager; +import io.paradaux.friendlybot.managers.PunishmentManager; import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.utils.models.database.KickEntry; import io.paradaux.friendlybot.utils.models.types.ModerationAction; @@ -55,10 +56,13 @@ public class KickCommand extends PrivilegedCommand { + private final PunishmentManager punishments; + public KickCommand(ConfigurationEntry config, Logger logger, PermissionManager permissionManager) { super(config, logger, permissionManager); this.name = "kick"; this.help = "Kicks the specified user"; + this.punishments = PunishmentManager.getInstance(); } @Override @@ -72,12 +76,13 @@ protected void execute(CommandEvent event) { respondNoPermission(message, "[Moderator, Administrator]"); return; } + if (args.length < 2) { respondSyntaxError(message, ";kick "); return; } - User target = parseTarget(message, args[0]); + Member target = retrieveMember(event.getGuild(), args[0]); if (target == null) { message.getChannel().sendMessage("You did not specify a (valid) target.").queue(); @@ -89,56 +94,6 @@ protected void execute(CommandEvent event) { return; } - MongoManager mongo = MongoManager.getInstance(); - - String incidentID = mongo.getNextIncidentID(); - String reason = parseSentance(1, args); - - KickEntry entry = new KickEntry() - .setIncidentID(incidentID) - .setReason(reason) - .setStaffID(authorID) - .setStaffTag(event.getAuthor().getAsTag()) - .setUserID(target.getId()) - .setUserTag(target.getAsTag()); - - mongo.addKickEntry(entry); - - AuditManager.getInstance().log(ModerationAction.KICK, target, - event.getAuthor(), reason, incidentID); - - MessageEmbed publicAudit = new EmbedBuilder() - .setColor(0xffff99) - .setTitle(target.getAsTag() + " has been kicked.") - .setDescription("**Reason**: " + reason) - .setFooter("Incident ID: " + incidentID + ". For more information, reach out to the moderation team via mod-mail.") - .setTimestamp(new Date().toInstant()) - .build(); - - DiscordBotManager.getInstance().getChannel(getConfig().getPublicAuditLogChannelId()).sendMessage(publicAudit).queue(); - message.getChannel().sendMessage(publicAudit).queue(); - - target.openPrivateChannel().queue((channel) -> { - MessageEmbed kickNotification = new EmbedBuilder() - .setColor(0xffff99) - .setTitle("You have been kicked.") - .setDescription("**Reason**: " + reason) - .setFooter("Incident ID: " + incidentID + ". For more information, reach out to the moderation team via mod-mail.") - .setTimestamp(new Date().toInstant()) - .build(); - - channel.sendMessage(kickNotification).queue(); - - Member targetMember = retrieveMember(message.getGuild(), target); - - if (targetMember == null) { - message.getChannel().sendMessage("The user specified is not a member of this discord") - .queue(); - return; - } - - targetMember.kick(reason).queue(); - }); - + punishments.kickUser(event.getGuild(), target, event.getMember(), parseSentance(1, args)); } } \ No newline at end of file diff --git a/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/TempBanCommand.java b/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/TempBanCommand.java index 2e4384be..d1edbc9a 100644 --- a/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/TempBanCommand.java +++ b/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/TempBanCommand.java @@ -30,12 +30,14 @@ import io.paradaux.friendlybot.managers.DiscordBotManager; import io.paradaux.friendlybot.managers.MongoManager; import io.paradaux.friendlybot.managers.PermissionManager; +import io.paradaux.friendlybot.managers.PunishmentManager; import io.paradaux.friendlybot.utils.TimeUtils; import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.utils.models.database.TempBanEntry; import io.paradaux.friendlybot.utils.models.types.ModerationAction; import io.paradaux.friendlybot.utils.models.types.PrivilegedCommand; import net.dv8tion.jda.api.EmbedBuilder; +import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Message; import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.TextChannel; @@ -47,18 +49,20 @@ public class TempBanCommand extends PrivilegedCommand { private final MongoManager mongo; + private final PunishmentManager punishments; public TempBanCommand(ConfigurationEntry config, Logger logger, PermissionManager permissionManager, MongoManager mongo) { super(config, logger, permissionManager); this.mongo = mongo; this.name = "tempban"; this.help = "Temporarily bans a user."; + this.punishments = PunishmentManager.getInstance(); } @Override protected void execute(CommandEvent event) { - User staff = event.getAuthor(); + Member staff = event.getMember(); Message message = event.getMessage(); String[] args = getArgs(event.getArgs()); @@ -72,55 +76,13 @@ protected void execute(CommandEvent event) { return; } - User target = parseTarget(message, args[0]); + Member target = retrieveMember(event.getGuild(), args[0]); if (target == null) { message.reply("User does not exist.").queue(); return; } - long period = TimeUtils.getTime(args[1]); - Date expiry = new Date(System.currentTimeMillis() + period); - - TempBanEntry entry = new TempBanEntry() - .setIncidentId(mongo.getNextIncidentID()) - .setUserTag(target.getAsTag()) - .setUserId(target.getId()) - .setStaffTag(staff.getAsTag()) - .setStaffId(staff.getId()) - .setReason(parseSentance(2, args)) - .setTimestamp(new Date()) - .setExpiry(expiry); - - mongo.addTempBanEntry(entry); - - MessageEmbed publicAudit = new EmbedBuilder() - .setColor(0xeb5132) - .setTitle(target.getAsTag() + " has been temporarily banned.") - .setDescription("**Reason**: " + entry.getReason() + "\n**Period**: " + TimeUtils.millisecondsToDisplay(period)) - .setFooter("Incident ID: " + entry.getIncidentId() + ". For more information, reach out to the moderation team via mod-mail.") - .setTimestamp(new Date().toInstant()) - .build(); - - TextChannel channel = DiscordBotManager.getInstance().getChannel(getConfig().getPublicAuditLogChannelId()); - channel.sendMessage(publicAudit).queue(); - event.getChannel().sendMessage(publicAudit).queue(); - AuditManager.getInstance().log(ModerationAction.TEMP_BAN, target, staff, entry.getReason(), entry.getIncidentId()); - - target.openPrivateChannel().queue((privateChannel) -> { - MessageEmbed banNotification = new EmbedBuilder() - .setColor(0xeb5132) - .setTitle("You have been temporarily banned.") - .setDescription("**Reason**: " + entry.getReason() + "\n**Period**: " + TimeUtils.millisecondsToDisplay(period)) - .setFooter("Incident ID: " + entry.getIncidentId() + ". For more information, reach out to a member of the moderation team.") - .setTimestamp(new Date().toInstant()) - .build(); - - privateChannel.sendMessage(banNotification).queue((message2) -> { - message.getGuild().ban(target, 0).queue(); - }); - - }); - + punishments.tempBanUser(event.getGuild(), target, event.getMember(), args[1], parseSentance(2, args)); } } diff --git a/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/WarnCommand.java b/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/WarnCommand.java index b1c0019b..2d6f6627 100644 --- a/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/WarnCommand.java +++ b/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/WarnCommand.java @@ -31,11 +31,13 @@ import io.paradaux.friendlybot.managers.DiscordBotManager; import io.paradaux.friendlybot.managers.MongoManager; import io.paradaux.friendlybot.managers.PermissionManager; +import io.paradaux.friendlybot.managers.PunishmentManager; import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.utils.models.database.WarningEntry; import io.paradaux.friendlybot.utils.models.types.ModerationAction; import io.paradaux.friendlybot.utils.models.types.PrivilegedCommand; import net.dv8tion.jda.api.EmbedBuilder; +import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Message; import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; @@ -54,13 +56,14 @@ public class WarnCommand extends PrivilegedCommand { - // Dependencies + private final PunishmentManager punishments; public WarnCommand(ConfigurationEntry config, Logger logger, PermissionManager permissionManager) { super(config, logger, permissionManager); this.name = "warn"; this.aliases = new String[]{"w"}; this.help = "Warns the specified user"; + this.punishments = PunishmentManager.getInstance(); } @Override @@ -80,54 +83,13 @@ protected void execute(CommandEvent event) { return; } - User target = parseTarget(message, args[0]); + Member target = retrieveMember(event.getGuild(), args[0]); if (target == null) { message.getChannel().sendMessage("You did not specify a (valid) target.").queue(); return; } - MongoManager mongo = MongoManager.getInstance(); - - String incidentID = mongo.getNextIncidentID(); - String reason = parseSentance(1, args); - - WarningEntry entry = new WarningEntry() - .setIncidentID(incidentID) - .setReason(reason) - .setStaffID(authorID) - .setStaffTag(event.getAuthor().getAsTag()) - .setUserID(target.getId()) - .setUserTag(target.getAsTag()) - .setTimestamp(new Date()); - - mongo.addWarnEntry(entry); - - AuditManager.getInstance().log(ModerationAction.WARN, target, - event.getAuthor(), reason, incidentID); - - MessageEmbed publicAudit = new EmbedBuilder() - .setColor(0x33cccc) - .setTitle(target.getAsTag() + " has been warned.") - .setDescription("**Reason**: " + reason + "\n**N.B**: Receiving a second warning is an automatic temporary ban.") - .setFooter("Incident ID: " + incidentID + ". For more information, reach out to the moderation team via mod-mail.") - .setTimestamp(new Date().toInstant()) - .build(); - - DiscordBotManager.getInstance().getChannel(getConfig().getPublicAuditLogChannelId()).sendMessage(publicAudit).queue(); - message.getChannel().sendMessage(publicAudit).queue(); - - target.openPrivateChannel().queue((channel) -> { - MessageEmbed warnNotification = new EmbedBuilder() - .setColor(0x33cccc) - .setTitle("You have been warned.") - .setDescription("**Reason**: " + reason + "\n**N.B**: Receiving a second warning is an automatic temporary ban.") - .setFooter("Incident ID: " + incidentID + ". For more information, reach out to the moderation team via mod-mail.") - .setTimestamp(new Date().toInstant()) - .build(); - - channel.sendMessage(warnNotification).queue(); - }); - + punishments.warnUser(event.getGuild(), target, event.getMember(), parseSentance(1, args)); } } \ No newline at end of file From d74bb578374373fc1ca0f49b0ca6f0d3f0073d93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Thu, 10 Jun 2021 17:32:25 +0100 Subject: [PATCH 030/121] Pass in channel to punishment manager --- .../friendlybot/commands/staff/moderation/BanCommand.java | 2 +- .../friendlybot/commands/staff/moderation/KickCommand.java | 2 +- .../friendlybot/commands/staff/moderation/TempBanCommand.java | 2 +- .../friendlybot/commands/staff/moderation/WarnCommand.java | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/BanCommand.java b/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/BanCommand.java index 119f0fa0..9c9a6be3 100644 --- a/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/BanCommand.java +++ b/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/BanCommand.java @@ -91,6 +91,6 @@ protected void execute(CommandEvent event) { return; } - punishments.banUser(event.getGuild(), target, event.getMember(), parseSentance(1, args)); + punishments.banUser(event.getGuild(), target, event.getMember(), event.getTextChannel(), parseSentance(1, args)); } } diff --git a/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/KickCommand.java b/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/KickCommand.java index 560f1e8c..dd91368c 100644 --- a/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/KickCommand.java +++ b/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/KickCommand.java @@ -94,6 +94,6 @@ protected void execute(CommandEvent event) { return; } - punishments.kickUser(event.getGuild(), target, event.getMember(), parseSentance(1, args)); + punishments.kickUser(event.getGuild(), target, event.getMember(), event.getTextChannel(), parseSentance(1, args)); } } \ No newline at end of file diff --git a/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/TempBanCommand.java b/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/TempBanCommand.java index d1edbc9a..fa147ac1 100644 --- a/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/TempBanCommand.java +++ b/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/TempBanCommand.java @@ -83,6 +83,6 @@ protected void execute(CommandEvent event) { return; } - punishments.tempBanUser(event.getGuild(), target, event.getMember(), args[1], parseSentance(2, args)); + punishments.tempBanUser(event.getGuild(), target, event.getMember(), event.getTextChannel(), args[1], parseSentance(2, args)); } } diff --git a/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/WarnCommand.java b/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/WarnCommand.java index 2d6f6627..2015baf1 100644 --- a/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/WarnCommand.java +++ b/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/WarnCommand.java @@ -90,6 +90,6 @@ protected void execute(CommandEvent event) { return; } - punishments.warnUser(event.getGuild(), target, event.getMember(), parseSentance(1, args)); + punishments.warnUser(event.getGuild(), target, event.getMember(), event.getTextChannel(), parseSentance(1, args)); } } \ No newline at end of file From 88a38763d35eff5fc89b9a0190a092c3473e55cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Thu, 10 Jun 2021 17:32:36 +0100 Subject: [PATCH 031/121] Fixed errors, made it server-specific --- .../managers/PunishmentManager.java | 134 +++++++++++++++--- 1 file changed, 116 insertions(+), 18 deletions(-) diff --git a/src/main/java/io/paradaux/friendlybot/managers/PunishmentManager.java b/src/main/java/io/paradaux/friendlybot/managers/PunishmentManager.java index 327f73c3..167fc4f8 100644 --- a/src/main/java/io/paradaux/friendlybot/managers/PunishmentManager.java +++ b/src/main/java/io/paradaux/friendlybot/managers/PunishmentManager.java @@ -1,8 +1,12 @@ package io.paradaux.friendlybot.managers; import io.paradaux.friendlybot.utils.TimeUtils; +import io.paradaux.friendlybot.utils.embeds.moderation.BannedEmbed; +import io.paradaux.friendlybot.utils.models.database.BanEntry; import io.paradaux.friendlybot.utils.models.database.GuildSettingsEntry; +import io.paradaux.friendlybot.utils.models.database.KickEntry; import io.paradaux.friendlybot.utils.models.database.TempBanEntry; +import io.paradaux.friendlybot.utils.models.database.WarningEntry; import io.paradaux.friendlybot.utils.models.exceptions.ManagerNotReadyException; import io.paradaux.friendlybot.utils.models.types.ModerationAction; import net.dv8tion.jda.api.EmbedBuilder; @@ -33,7 +37,7 @@ public static PunishmentManager getInstance() { return instance; } - public void tempBanUser(Guild guild, Member target, Member staff, String time, String reason) { + public void tempBanUser(Guild guild, Member target, Member staff, TextChannel channel, String time, String reason) { GuildSettingsEntry settings = guilds.getGuild(guild.getId()); long period = TimeUtils.getTime(time); @@ -51,20 +55,11 @@ public void tempBanUser(Guild guild, Member target, Member staff, String time, S mongo.addTempBanEntry(entry); - MessageEmbed publicAudit = new EmbedBuilder() - .setColor(0xeb5132) - .setTitle(target.getAsTag() + " has been temporarily banned.") - .setDescription("**Reason**: " + entry.getReason() + "\n**Period**: " + TimeUtils.millisecondsToDisplay(period)) - .setFooter("Incident ID: " + entry.getIncidentId() + ". For more information, reach out to the moderation team via mod-mail.") - .setTimestamp(new Date().toInstant()) - .build(); + TextChannel publicAuditLog = DiscordBotManager.getInstance().getChannel(settings.getPublicAuditLogChannel()); + AuditManager.getInstance().log(ModerationAction.TEMP_BAN, target.getUser(), staff.getUser(), entry.getReason(), entry.getIncidentId()); + publicAuditLog.sendMessage(this.publicAuditPunishmentEmbed()).queue(); - TextChannel channel = DiscordBotManager.getInstance().getChannel(getConfig().getPublicAuditLogChannelId()); - channel.sendMessage(publicAudit).queue(); - event.getChannel().sendMessage(publicAudit).queue(); - AuditManager.getInstance().log(ModerationAction.TEMP_BAN, target, staff, entry.getReason(), entry.getIncidentId()); - - target.openPrivateChannel().queue((privateChannel) -> { + target.getUser().openPrivateChannel().queue((privateChannel) -> { MessageEmbed banNotification = new EmbedBuilder() .setColor(0xeb5132) .setTitle("You have been temporarily banned.") @@ -74,22 +69,125 @@ public void tempBanUser(Guild guild, Member target, Member staff, String time, S .build(); privateChannel.sendMessage(banNotification).queue((message2) -> { - message.getGuild().ban(target, 0).queue(); + guild.ban(target, 0).queue(); }); }); } - public void banUser(Guild guild, Member user, String reason) { + public void banUser(Guild guild, Member target, Member staff, TextChannel channel, String reason) { GuildSettingsEntry settings = guilds.getGuild(guild.getId()); + + String incidentID = String.valueOf(settings.getIncidentId()); + + BanEntry entry = new BanEntry() + .setIncidentID(incidentID) + .setReason(reason) + .setStaffID(staff.getId()) + .setStaffTag(staff.getUser().getAsTag()) + .setUserID(target.getId()) + .setUserTag(target.getUser().getAsTag()); + + mongo.addBanEntry(entry); + AuditManager.getInstance().log(ModerationAction.BAN, target.getUser(), staff.getUser(), reason, incidentID); + + BannedEmbed embed = new BannedEmbed(reason, incidentID); + target.getUser().openPrivateChannel().queue((privateChannel) -> privateChannel.sendMessage(embed.getEmbed()).queue()); + + guild.ban(target, 0).queue(); } - public void kickUser(Guild guild, Member user, String reason) { + public void kickUser(Guild guild, Member target, Member staff, TextChannel channel, String reason) { GuildSettingsEntry settings = guilds.getGuild(guild.getId()); + + MongoManager mongo = MongoManager.getInstance(); + + String incidentID = String.valueOf(settings.getIncidentId()); + + KickEntry entry = new KickEntry() + .setIncidentID(incidentID) + .setReason(reason) + .setStaffID(staff.getId()) + .setStaffTag(staff.getUser().getAsTag()) + .setUserID(target.getId()) + .setUserTag(target.getUser().getAsTag()); + + mongo.addKickEntry(entry); + + AuditManager.getInstance().log(ModerationAction.KICK, target.getUser(), staff.getUser(), reason, incidentID); + + DiscordBotManager.getInstance().getChannel(settings.getPublicAuditLogChannel()).sendMessage(this.publicAuditPunishmentEmbed()).queue(); + + target.getUser().openPrivateChannel().queue((privateChannel ) -> { + MessageEmbed kickNotification = new EmbedBuilder() + .setColor(0xffff99) + .setTitle("You have been kicked.") + .setDescription("**Reason**: " + reason) + .setFooter("Incident ID: " + incidentID + ". For more information, reach out to the moderation team via mod-mail.") + .setTimestamp(new Date().toInstant()) + .build(); + + privateChannel.sendMessage(kickNotification).queue(); + + target.kick(reason).queue(); + }); } - public void warnUser(Guild guild, Member user, String reason) { + public void warnUser(Guild guild, Member target, Member staff, TextChannel channel, String reason) { GuildSettingsEntry settings = guilds.getGuild(guild.getId()); + + MongoManager mongo = MongoManager.getInstance(); + + String incidentID = String.valueOf(settings.getIncidentId()); + + WarningEntry entry = new WarningEntry() + .setIncidentID(incidentID) + .setReason(reason) + .setStaffID(staff.getId()) + .setStaffTag(staff.getUser().getAsTag()) + .setUserID(target.getId()) + .setUserTag(target.getUser().getAsTag()) + .setTimestamp(new Date()); + + mongo.addWarnEntry(entry); + + AuditManager.getInstance().log(ModerationAction.WARN, target.getUser(), staff.getUser(), reason, incidentID); + + DiscordBotManager.getInstance().getChannel(settings.getPublicAuditLogChannel()).sendMessage(this.publicAuditPunishmentEmbed()).queue(); + + target.getUser().openPrivateChannel().queue((privateChannel) -> { + MessageEmbed warnNotification = new EmbedBuilder() + .setColor(0x33cccc) + .setTitle("You have been warned.") + .setDescription("**Reason**: " + reason + "\n**N.B**: Receiving a second warning is an automatic temporary ban.") + .setFooter("Incident ID: " + incidentID + ". For more information, reach out to the moderation team via mod-mail.") + .setTimestamp(new Date().toInstant()) + .build(); + + channel.sendMessage(warnNotification).queue(); + }); } + private MessageEmbed sameChannelPunishmentEmbed() { + // TODO + return null; + } + + private MessageEmbed privateAuditPunishmentEmbed() { + // TODO + return null; + } + + private MessageEmbed publicAuditPunishmentEmbed() { + //User target, ModerationAction action, String reason +// return new EmbedBuilder() +// .setColor(0xeb5132) +// .setTitle(target.getUser().getAsTag() + " has been temporarily banned.") +// .setDescription("**Reason**: " + entry.getReason() + "\n**Period**: " + TimeUtils.millisecondsToDisplay(period)) +// .setFooter("Incident ID: " + entry.getIncidentId() + ". For more information, reach out to the moderation team via mod-mail.") +// .setTimestamp(new Date().toInstant()) +// .build(); + // TODO + return null; + } } From 4517d13b30203a786b17cc662c526104b681b4ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Thu, 10 Jun 2021 17:32:55 +0100 Subject: [PATCH 032/121] Moved incident and ticket IDs to a per-server basis --- .../modmail/ModMailChannelListener.java | 13 +++++-- .../managers/GuildSettingsManager.java | 15 ++++++++ .../friendlybot/managers/MongoManager.java | 35 ------------------- 3 files changed, 26 insertions(+), 37 deletions(-) diff --git a/src/main/java/io/paradaux/friendlybot/listeners/modmail/ModMailChannelListener.java b/src/main/java/io/paradaux/friendlybot/listeners/modmail/ModMailChannelListener.java index 929ca4ff..188d409a 100644 --- a/src/main/java/io/paradaux/friendlybot/listeners/modmail/ModMailChannelListener.java +++ b/src/main/java/io/paradaux/friendlybot/listeners/modmail/ModMailChannelListener.java @@ -26,16 +26,19 @@ package io.paradaux.friendlybot.listeners.modmail; import io.paradaux.friendlybot.managers.DiscordBotManager; +import io.paradaux.friendlybot.managers.GuildSettingsManager; import io.paradaux.friendlybot.managers.MongoManager; import io.paradaux.friendlybot.utils.embeds.modmail.ModMailReceivedEmbed; import io.paradaux.friendlybot.utils.embeds.modmail.ModMailSentEmbed; import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.utils.models.database.GuildSettingsEntry; import io.paradaux.friendlybot.utils.models.database.ModMailEntry; import io.paradaux.friendlybot.utils.models.enums.TicketStatus; import io.paradaux.friendlybot.utils.models.interfaces.Embed; import io.paradaux.friendlybot.utils.models.types.DiscordEventListener; import net.dv8tion.jda.api.entities.ChannelType; import net.dv8tion.jda.api.entities.Message; +import net.dv8tion.jda.api.entities.TextChannel; import net.dv8tion.jda.api.events.message.MessageReceivedEvent; import org.jetbrains.annotations.NotNull; import org.slf4j.Logger; @@ -55,7 +58,13 @@ public ModMailChannelListener(ConfigurationEntry config, Logger logger) { public void onMessageReceived(@NotNull MessageReceivedEvent event) { Message message = event.getMessage(); - if (!message.getChannel().getId().equals(getConfig().getModMailInputChannel())) { + GuildSettingsEntry guild = GuildSettingsManager.getInstance().getGuild(event.getGuild().getId()); + + if (guild.getMessageLogChannel() == null || guild.getMessageLogChannel().isEmpty()) { + return; + } + + if (!message.getChannel().getId().equals(guild.getModmailInputChannel())) { return; } @@ -81,7 +90,7 @@ public void onMessageReceived(@NotNull MessageReceivedEvent event) { issue, ticketNumber, incidentID); ModMailSentEmbed sentEmbed = new ModMailSentEmbed(ticketNumber, issue); - receivedEmbed.sendEmbed(DiscordBotManager.getInstance().getChannel(getConfig().getModMailOutputChannel())); + receivedEmbed.sendEmbed(DiscordBotManager.getInstance().getChannel(guild.getModmailOutputChannel())); event.getAuthor().openPrivateChannel().queue((privateChannel) -> privateChannel .sendMessage(sentEmbed.getEmbed()).queue()); diff --git a/src/main/java/io/paradaux/friendlybot/managers/GuildSettingsManager.java b/src/main/java/io/paradaux/friendlybot/managers/GuildSettingsManager.java index d0db45d9..695616c0 100644 --- a/src/main/java/io/paradaux/friendlybot/managers/GuildSettingsManager.java +++ b/src/main/java/io/paradaux/friendlybot/managers/GuildSettingsManager.java @@ -2,14 +2,18 @@ import com.mongodb.client.MongoCollection; import com.mongodb.client.model.Filters; +import com.mongodb.client.model.FindOneAndUpdateOptions; import io.paradaux.friendlybot.utils.models.database.GuildSettingsEntry; import io.paradaux.friendlybot.utils.models.exceptions.ManagerNotReadyException; +import org.bson.Document; import org.slf4j.Logger; import java.util.HashMap; public class GuildSettingsManager { + private static final FindOneAndUpdateOptions INCREMENT_OPTIONS = new FindOneAndUpdateOptions().upsert(true); + private static final HashMap cachedGuilds = new HashMap<>(); private static GuildSettingsManager instance; @@ -101,4 +105,15 @@ public void removeProfile(String guildId) { guilds.findOneAndDelete(Filters.eq("guild_id", guildId)); } + public void incrementIncidentId(String guildId) { + incrementField(guildId, "last_incident_id"); + } + + public void incrementTicketNumber(String guildId) { + incrementField(guildId, "last_ticket_number"); + } + + private void incrementField(String guildId, String field) { + guilds.findOneAndUpdate(new Document("guild_id", guildId), new Document("$inc", new Document(field, 1L)), INCREMENT_OPTIONS); + } } diff --git a/src/main/java/io/paradaux/friendlybot/managers/MongoManager.java b/src/main/java/io/paradaux/friendlybot/managers/MongoManager.java index c35897bf..e4aa234d 100644 --- a/src/main/java/io/paradaux/friendlybot/managers/MongoManager.java +++ b/src/main/java/io/paradaux/friendlybot/managers/MongoManager.java @@ -63,7 +63,6 @@ public class MongoManager { private final MongoCollection pendingVerification; private final MongoCollection verification; - private final MongoCollection counterCollection; private final MongoCollection auditLog; private final MongoCollection warnings; private final MongoCollection modmail; @@ -109,7 +108,6 @@ public MongoManager(ConfigurationEntry config, Logger logger) { pendingVerification = dataBase.getCollection("pendingVerification", PendingVerificationEntry.class); verification = dataBase.getCollection("verification", VerificationEntry.class); - counterCollection = dataBase.getCollection("counter", CounterEntry.class); auditLog = dataBase.getCollection("auditlog", AuditLogEntry.class); warnings = dataBase.getCollection("warnings", WarningEntry.class); modmail = dataBase.getCollection("modmail", ModMailEntry.class); @@ -157,39 +155,6 @@ public MongoCollection getTags() { return tags; } - public String getNextIncidentID() { - CounterEntry result = incrementCounter("last_incident_id"); - return Long.toString(result.getLastIncidentID() + 1); - } - - public String getNextTicketNumber() { - CounterEntry result = incrementCounter("last_ticket_number"); - return Long.toString(result.getLastIncidentID() + 1); - } - - @CheckReturnValue - @Nullable - public CounterEntry incrementCounter(String field) { - Document query = new Document("_id", new ObjectId("5fb6895ba9dc2abc3eec8c4a")); - - Document increment = new Document(field, 1L); - Document update = new Document("$inc", increment); - - FindOneAndUpdateOptions options = new FindOneAndUpdateOptions() - .returnDocument(ReturnDocument.AFTER) - .upsert(true); - - CounterEntry result = counterCollection.findOneAndUpdate(query, update, options); - - if (result == null) { - result = new CounterEntry() - .setLastIncidentID(0L) - .setLastTickerNumber(0L); - } - - return result; - } - public void addPendingVerificationUser(String discordID, String guildID, String verificationCode) { PendingVerificationEntry pendingVerificationEntry = new PendingVerificationEntry() From 0b21a0048358aed18dcc7f8d7efd759a7b986b47 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Thu, 10 Jun 2021 17:48:57 +0100 Subject: [PATCH 033/121] Remove half-baked delwarning system --- .../staff/moderation/PunishmentCommand.java | 102 ------------------ .../managers/PunishmentManager.java | 48 +++++++++ 2 files changed, 48 insertions(+), 102 deletions(-) delete mode 100644 src/main/java/io/paradaux/friendlybot/commands/staff/moderation/PunishmentCommand.java diff --git a/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/PunishmentCommand.java b/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/PunishmentCommand.java deleted file mode 100644 index a27c3281..00000000 --- a/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/PunishmentCommand.java +++ /dev/null @@ -1,102 +0,0 @@ -package io.paradaux.friendlybot.commands.staff.moderation; - -import com.jagrosh.jdautilities.command.CommandEvent; -import io.paradaux.friendlybot.managers.DiscordBotManager; -import io.paradaux.friendlybot.managers.MongoManager; -import io.paradaux.friendlybot.managers.PermissionManager; -import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.utils.models.database.RescindmentEntry; -import io.paradaux.friendlybot.utils.models.database.WarningEntry; -import io.paradaux.friendlybot.utils.models.types.ModerationAction; -import io.paradaux.friendlybot.utils.models.types.PrivilegedCommand; -import net.dv8tion.jda.api.EmbedBuilder; -import net.dv8tion.jda.api.entities.Message; -import net.dv8tion.jda.api.entities.MessageEmbed; -import net.dv8tion.jda.api.entities.User; -import org.slf4j.Logger; - -import java.util.Date; - -public class PunishmentCommand extends PrivilegedCommand { - - private final MongoManager mongo; - - public PunishmentCommand(ConfigurationEntry config, Logger logger, PermissionManager permissionManager, MongoManager mongo) { - super(config, logger, permissionManager); - this.mongo = mongo; - this.name = "punishment"; - this.help = "Utility for managing previously logged infractions."; - } - - @Override - protected void execute(CommandEvent event) { - Message message = event.getMessage(); - String[] args = getArgs(event.getArgs()); - - if (!isStaff(event.getGuild(), event.getAuthor().getId())) { - respondNoPermission(message, "[Moderator, Administrator]"); - return; - } - - if (args.length < 3) { - respondSyntaxError(message, ";punishment "); - return; - } - - switch (args[0]) { - - case "delwarn": { - WarningEntry entry = mongo.getWarningEntry(args[1]); - - if (entry == null) { - message.reply("This warning does not exist."); - return; - } - - mongo.deleteWarning(args[1]); - String incidentId = mongo.getNextIncidentID(); - - RescindmentEntry rescindment = new RescindmentEntry() - .setAction(ModerationAction.WARN) - .setIncidentId(incidentId) - .setIncidentIdOfPunishment(entry.getIncidentID()) - .setUserTag(entry.getUserTag()) - .setUserId(entry.getUserID()) - .setStaffTag(message.getAuthor().getAsTag()) - .setStaffId(message.getAuthor().getId()) - .setReason(parseSentance(2, args)) - .setTimeOfPunishment(entry.getTimestamp()) - .setTimeOfRescindment(new Date()); - - mongo.addRescindment(rescindment); - - MessageEmbed publicAudit = new EmbedBuilder() - .setColor(0x34eb9b) - .setTitle("Punishment Rescinded. | Warning of " + entry.getUserTag()) - .setDescription(rescindment.getReason()) - .setFooter("Punishment ID: " + args[1] + " Incident ID: " + incidentId) - .setTimestamp(new Date().toInstant()) - .build(); - - DiscordBotManager.getInstance().getChannel(getConfig().getPublicAuditLogChannelId()).sendMessage(publicAudit).queue(); - message.getChannel().sendMessage(publicAudit).queue(); - - User target = DiscordBotManager.getInstance().getUser(entry.getUserID()); - - target.openPrivateChannel().queue((channel) -> { - MessageEmbed rescindmentNotification = new EmbedBuilder() - .setColor(0x33cccc) - .setTitle("A warning levied against you has been taken back..") - .setDescription("** Original Reason**: " + entry.getReason() + "\n" + rescindment.getReason()) - .setFooter("Punishment ID: " + args[1] + " Incident ID: " + incidentId) - .setTimestamp(new Date().toInstant()) - .build(); - - channel.sendMessage(rescindmentNotification).queue(); - }); - } - - } - - } -} diff --git a/src/main/java/io/paradaux/friendlybot/managers/PunishmentManager.java b/src/main/java/io/paradaux/friendlybot/managers/PunishmentManager.java index 167fc4f8..bc197567 100644 --- a/src/main/java/io/paradaux/friendlybot/managers/PunishmentManager.java +++ b/src/main/java/io/paradaux/friendlybot/managers/PunishmentManager.java @@ -5,6 +5,7 @@ import io.paradaux.friendlybot.utils.models.database.BanEntry; import io.paradaux.friendlybot.utils.models.database.GuildSettingsEntry; import io.paradaux.friendlybot.utils.models.database.KickEntry; +import io.paradaux.friendlybot.utils.models.database.RescindmentEntry; import io.paradaux.friendlybot.utils.models.database.TempBanEntry; import io.paradaux.friendlybot.utils.models.database.WarningEntry; import io.paradaux.friendlybot.utils.models.exceptions.ManagerNotReadyException; @@ -14,6 +15,7 @@ import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.TextChannel; +import net.dv8tion.jda.api.entities.User; import java.util.Date; @@ -190,4 +192,50 @@ private MessageEmbed publicAuditPunishmentEmbed() { // TODO return null; } + + public void deleteWarning(Guild guild, Member staff, String warningId, String reason) { + GuildSettingsEntry settings = guilds.getGuild(guild.getId()); + + WarningEntry entry = mongo.getWarningEntry(warningId); + mongo.deleteWarning(warningId); + String incidentId = String.valueOf(settings.getIncidentId()); + + RescindmentEntry rescindment = new RescindmentEntry() + .setAction(ModerationAction.WARN) + .setIncidentId(incidentId) + .setIncidentIdOfPunishment(entry.getIncidentID()) + .setUserTag(entry.getUserTag()) + .setUserId(entry.getUserID()) + .setStaffTag(staff.getUser().getAsTag()) + .setStaffId(staff.getId()) + .setReason(reason) + .setTimeOfPunishment(entry.getTimestamp()) + .setTimeOfRescindment(new Date()); + + mongo.addRescindment(rescindment); + + MessageEmbed publicAudit = new EmbedBuilder() + .setColor(0x34eb9b) + .setTitle("Punishment Rescinded. | Warning of " + entry.getUserTag()) + .setDescription(rescindment.getReason()) + .setFooter("Punishment ID: " + entry.getIncidentID() + " Incident ID: " + incidentId) + .setTimestamp(new Date().toInstant()) + .build(); + + DiscordBotManager.getInstance().getChannel(settings.getPublicAuditLogChannel()).sendMessage(publicAudit).queue(); + + User target = DiscordBotManager.getInstance().getUser(entry.getUserID()); + + target.openPrivateChannel().queue((channel) -> { + MessageEmbed rescindmentNotification = new EmbedBuilder() + .setColor(0x33cccc) + .setTitle("A warning levied against you has been taken back..") + .setDescription("** Original Reason**: " + entry.getReason() + "\n" + rescindment.getReason()) + .setFooter("Punishment ID: " + entry.getIncidentID() + " Incident ID: " + incidentId) + .setTimestamp(new Date().toInstant()) + .build(); + + channel.sendMessage(rescindmentNotification).queue(); + }); + } } From 3a4a0a82924b0a21fcbd4728b9eaeda80346940f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Thu, 10 Jun 2021 17:49:18 +0100 Subject: [PATCH 034/121] deregister defunct punishment command --- .../java/io/paradaux/friendlybot/managers/DiscordBotManager.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/io/paradaux/friendlybot/managers/DiscordBotManager.java b/src/main/java/io/paradaux/friendlybot/managers/DiscordBotManager.java index fa7585b8..be1a89d2 100644 --- a/src/main/java/io/paradaux/friendlybot/managers/DiscordBotManager.java +++ b/src/main/java/io/paradaux/friendlybot/managers/DiscordBotManager.java @@ -132,7 +132,6 @@ private CommandClient createCommandClient() { new KickCommand(config, logger, permissionManager), new LookupCommand(config, logger, permissionManager), new PruneCommand(config, logger, permissionManager), - new PunishmentCommand(config, logger, permissionManager, mongo), new RespondCommand(config, logger, permissionManager, mongo), new TempBanCommand(config, logger, permissionManager, mongo), new TicketCommand(config, logger, permissionManager), From 5dd44583eaa478da9ccf62504526309c8c907389 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Thu, 10 Jun 2021 17:55:09 +0100 Subject: [PATCH 035/121] Register permission manager --- src/main/java/io/paradaux/friendlybot/FriendlyBot.java | 3 ++- .../friendlybot/listeners/modmail/ModMailChannelListener.java | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main/java/io/paradaux/friendlybot/FriendlyBot.java b/src/main/java/io/paradaux/friendlybot/FriendlyBot.java index 30b1668f..d7807513 100644 --- a/src/main/java/io/paradaux/friendlybot/FriendlyBot.java +++ b/src/main/java/io/paradaux/friendlybot/FriendlyBot.java @@ -71,12 +71,13 @@ public static void main(String[] args) { RoleManager roleManager = new RoleManager(logger, mongoManager); UserSettingsManager settingsManager = new UserSettingsManager(logger, mongoManager); GuildSettingsManager guildSettingsManager = new GuildSettingsManager(logger, mongoManager); + PunishmentManager punishmentManager = new PunishmentManager(); DiscordBotManager discordBotManager = new DiscordBotManager(config, logger, permissionManager, mongoManager, roleManager, guildSettingsManager); TagManager tagManager = new TagManager(config, logger, mongoManager); AuditManager auditManager = new AuditManager(config, logger); MailGunManager mailGunManager = new MailGunManager(config, logger); VerificationManager verificationManager = new VerificationManager(config, logger, mongoManager, mailGunManager); - + api = API.builder() .setLogger(logger) .setIoManager(ioManager) diff --git a/src/main/java/io/paradaux/friendlybot/listeners/modmail/ModMailChannelListener.java b/src/main/java/io/paradaux/friendlybot/listeners/modmail/ModMailChannelListener.java index 188d409a..8c2b214b 100644 --- a/src/main/java/io/paradaux/friendlybot/listeners/modmail/ModMailChannelListener.java +++ b/src/main/java/io/paradaux/friendlybot/listeners/modmail/ModMailChannelListener.java @@ -73,8 +73,8 @@ public void onMessageReceived(@NotNull MessageReceivedEvent event) { String userId = event.getAuthor().getId(); String userTag = event.getAuthor().getAsTag(); String issue = message.getContentRaw(); - String ticketNumber = mongo.getNextTicketNumber(); - String incidentID = mongo.getNextIncidentID(); + String ticketNumber = String.valueOf(guild.getTicketId()); + String incidentID = String.valueOf(guild.getIncidentId()); ModMailEntry entry = new ModMailEntry() .setIssue(issue) From 8f8f70718cbb05bfe68aff13d5a9393bdb30b68a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Sat, 12 Jun 2021 10:33:55 +0100 Subject: [PATCH 036/121] Make per-server field in each database entry --- .../utils/models/database/AuditLogEntry.java | 34 +++++++----------- .../utils/models/database/BanEntry.java | 16 ++++++++- .../models/database/GuildSettingsEntry.java | 36 +++++++++++++++++++ .../utils/models/database/KickEntry.java | 16 +++++++-- .../utils/models/database/MessageEntry.java | 22 ++++++++++++ .../utils/models/database/ModMailEntry.java | 17 +++++++-- .../models/database/ModMailResponse.java | 22 ++++++++++-- .../database/PendingVerificationEntry.java | 15 +++++--- .../models/database/RescindmentEntry.java | 17 +++++++-- .../utils/models/database/TagEntry.java | 14 ++++---- .../utils/models/database/TempBanEntry.java | 18 ++++++++-- .../models/database/VerificationEntry.java | 6 ++-- .../utils/models/database/WarningEntry.java | 17 +++++++-- 13 files changed, 201 insertions(+), 49 deletions(-) diff --git a/src/main/java/io/paradaux/friendlybot/utils/models/database/AuditLogEntry.java b/src/main/java/io/paradaux/friendlybot/utils/models/database/AuditLogEntry.java index c38ab423..5d9c8278 100644 --- a/src/main/java/io/paradaux/friendlybot/utils/models/database/AuditLogEntry.java +++ b/src/main/java/io/paradaux/friendlybot/utils/models/database/AuditLogEntry.java @@ -35,6 +35,9 @@ public class AuditLogEntry implements Serializable { protected static final long serialVersionUID = 1L; + @BsonProperty(value="guild_id") + private String guildId; + @BsonProperty(value = "action") private ModerationAction action; @@ -63,19 +66,9 @@ public AuditLogEntry() { } - public AuditLogEntry(ModerationAction action, String incidentID, String userTag, - String userID, String reason, Date timestamp) { - this.action = action; - this.incidentID = incidentID; - this.userTag = userTag; - this.userID = userID; - this.reason = reason; - this.timestamp = timestamp; - } - - public AuditLogEntry(ModerationAction action, String incidentID, String userTag, - String userID, String staffTag, String staffID, String reason, - Date timestamp) { + public AuditLogEntry(String guildId, ModerationAction action, String incidentID, String userTag, String userID, String staffTag, + String staffID, String reason, Date timestamp) { + this.guildId = guildId; this.action = action; this.incidentID = incidentID; this.userTag = userTag; @@ -86,14 +79,9 @@ public AuditLogEntry(ModerationAction action, String incidentID, String userTag, this.timestamp = timestamp; } - public AuditLogEntry(ModerationAction action, String incidentID, String userTag, - String userID, String reason) { - this.action = action; - this.incidentID = incidentID; - this.userTag = userTag; - this.userID = userID; - this.reason = reason; - this.timestamp = new Date(); + public AuditLogEntry setGuildId(String guildId) { + this.guildId = guildId; + return this; } public AuditLogEntry setAction(ModerationAction action) { @@ -136,6 +124,10 @@ public AuditLogEntry setStaffID(String staffID) { return this; } + public String getGuildId() { + return guildId; + } + public String getUserTag() { return userTag; } diff --git a/src/main/java/io/paradaux/friendlybot/utils/models/database/BanEntry.java b/src/main/java/io/paradaux/friendlybot/utils/models/database/BanEntry.java index aa305ed4..0b04e7a9 100644 --- a/src/main/java/io/paradaux/friendlybot/utils/models/database/BanEntry.java +++ b/src/main/java/io/paradaux/friendlybot/utils/models/database/BanEntry.java @@ -34,6 +34,9 @@ public class BanEntry implements Serializable { protected static final long serialVersionUID = 1L; + @BsonProperty(value="guild_id") + private String guildId; + @BsonProperty(value = "incident_id") private String incidentID; @@ -59,7 +62,9 @@ public BanEntry() { } - public BanEntry(String incidentID, String userTag, String userID, String staffTag, String staffID, String reason, Date timestamp) { + public BanEntry(String guildId, String incidentID, String userTag, String userID, String staffTag, String staffID, String reason, + Date timestamp) { + this.guildId = guildId; this.incidentID = incidentID; this.userTag = userTag; this.userID = userID; @@ -69,6 +74,10 @@ public BanEntry(String incidentID, String userTag, String userID, String staffTa this.timestamp = timestamp; } + public String getGuildId() { + return guildId; + } + public String getUserTag() { return userTag; } @@ -97,6 +106,11 @@ public Date getTimestamp() { return timestamp; } + public BanEntry setGuildId(String guildId) { + this.guildId = guildId; + return this; + } + public BanEntry setIncidentID(String incidentID) { this.incidentID = incidentID; return this; diff --git a/src/main/java/io/paradaux/friendlybot/utils/models/database/GuildSettingsEntry.java b/src/main/java/io/paradaux/friendlybot/utils/models/database/GuildSettingsEntry.java index 4181fc13..77374a1c 100644 --- a/src/main/java/io/paradaux/friendlybot/utils/models/database/GuildSettingsEntry.java +++ b/src/main/java/io/paradaux/friendlybot/utils/models/database/GuildSettingsEntry.java @@ -120,6 +120,26 @@ public GuildSettingsEntry setMessageLogChannel(String messageLogChannel) { return this; } + public GuildSettingsEntry setModerators(HashMap moderators) { + this.moderators = moderators; + return this; + } + + public GuildSettingsEntry setAdministrators(HashMap administrators) { + this.administrators = administrators; + return this; + } + + public GuildSettingsEntry setLastIncidentId(Integer lastIncidentId) { + this.lastIncidentId = lastIncidentId; + return this; + } + + public GuildSettingsEntry setLastTicketId(Integer lastTicketId) { + this.lastTicketId = lastTicketId; + return this; + } + public static long getSerialVersionUID() { return serialVersionUID; } @@ -155,4 +175,20 @@ public String getModmailOutputChannel() { public String getMessageLogChannel() { return messageLogChannel; } + + public HashMap getModerators() { + return moderators; + } + + public HashMap getAdministrators() { + return administrators; + } + + public Integer getLastIncidentId() { + return lastIncidentId; + } + + public Integer getLastTicketId() { + return lastTicketId; + } } diff --git a/src/main/java/io/paradaux/friendlybot/utils/models/database/KickEntry.java b/src/main/java/io/paradaux/friendlybot/utils/models/database/KickEntry.java index dcb06643..c63dc6a2 100644 --- a/src/main/java/io/paradaux/friendlybot/utils/models/database/KickEntry.java +++ b/src/main/java/io/paradaux/friendlybot/utils/models/database/KickEntry.java @@ -34,6 +34,9 @@ public class KickEntry implements Serializable { protected static final long serialVersionUID = 1L; + @BsonProperty(value="guild_id") + private String guildId; + @BsonProperty(value = "incident_id") private String incidentID; @@ -59,8 +62,9 @@ public KickEntry() { } - public KickEntry(String incidentID, String userTag, String userID, String staffTag, - String staffID, String reason, Date timestamp) { + public KickEntry(String guildId, String incidentID, String userTag, String userID, String staffTag, String staffID, String reason, + Date timestamp) { + this.guildId = guildId; this.incidentID = incidentID; this.userTag = userTag; this.userID = userID; @@ -70,6 +74,10 @@ public KickEntry(String incidentID, String userTag, String userID, String staffT this.timestamp = timestamp; } + public String getGuildId() { + return guildId; + } + public String getIncidentID() { return incidentID; } @@ -133,4 +141,8 @@ public KickEntry setTimestamp(Date timestamp) { return this; } + public KickEntry setGuildId(String guildId) { + this.guildId = guildId; + return this; + } } diff --git a/src/main/java/io/paradaux/friendlybot/utils/models/database/MessageEntry.java b/src/main/java/io/paradaux/friendlybot/utils/models/database/MessageEntry.java index 62b0d400..e1bea965 100644 --- a/src/main/java/io/paradaux/friendlybot/utils/models/database/MessageEntry.java +++ b/src/main/java/io/paradaux/friendlybot/utils/models/database/MessageEntry.java @@ -34,6 +34,9 @@ public class MessageEntry implements Serializable { protected static final long serialVersionUID = 1L; + @BsonProperty(value="guild_id") + private String guildId; + @BsonProperty(value = "author_id") private String authorId; @@ -56,6 +59,16 @@ public MessageEntry() { } + public MessageEntry(String guildId, String authorId, String messageId, String content, String channel, String newContent, Date date) { + this.guildId = guildId; + this.authorId = authorId; + this.messageId = messageId; + this.content = content; + this.channel = channel; + this.newContent = newContent; + this.date = date; + } + public MessageEntry(String authorId, String messageId, String content, String channel, String newContent, Date date) { this.authorId = authorId; this.messageId = messageId; @@ -65,6 +78,11 @@ public MessageEntry(String authorId, String messageId, String content, String ch this.date = date; } + public MessageEntry setGuildId(String guildId) { + this.guildId = guildId; + return this; + } + public MessageEntry setAuthorId(String authorId) { this.authorId = authorId; return this; @@ -95,6 +113,10 @@ public MessageEntry setNewContent(String newContent) { return this; } + public String getGuildId() { + return guildId; + } + public String getAuthorId() { return authorId; } diff --git a/src/main/java/io/paradaux/friendlybot/utils/models/database/ModMailEntry.java b/src/main/java/io/paradaux/friendlybot/utils/models/database/ModMailEntry.java index 9a901633..8ebca3cc 100644 --- a/src/main/java/io/paradaux/friendlybot/utils/models/database/ModMailEntry.java +++ b/src/main/java/io/paradaux/friendlybot/utils/models/database/ModMailEntry.java @@ -36,6 +36,9 @@ public class ModMailEntry implements Serializable { protected static final long serialVersionUID = 1L; + @BsonProperty(value="guild_id") + private String guildId; + @BsonProperty(value = "ticket_number") private String ticketNumber; @@ -67,8 +70,9 @@ public ModMailEntry() { } - public ModMailEntry(String ticketNumber, TicketStatus status, String userTag, String userID, String modmailMethod, String issue, - Date timeOpened, Date lastResponded, List responses) { + public ModMailEntry(String guildId, String ticketNumber, TicketStatus status, String userTag, String userID, String modmailMethod, + String issue, Date timeOpened, Date lastResponded, List responses) { + this.guildId = guildId; this.ticketNumber = ticketNumber; this.status = status; this.userTag = userTag; @@ -80,6 +84,10 @@ public ModMailEntry(String ticketNumber, TicketStatus status, String userTag, St this.responses = responses; } + public String getGuildId() { + return guildId; + } + public String getTicketNumber() { return ticketNumber; } @@ -116,6 +124,11 @@ public List getResponses() { return responses; } + public ModMailEntry setGuildId(String guildId) { + this.guildId = guildId; + return this; + } + public ModMailEntry setTicketNumber(String ticketNumber) { this.ticketNumber = ticketNumber; return this; diff --git a/src/main/java/io/paradaux/friendlybot/utils/models/database/ModMailResponse.java b/src/main/java/io/paradaux/friendlybot/utils/models/database/ModMailResponse.java index 7d3d63a2..3c02ff48 100644 --- a/src/main/java/io/paradaux/friendlybot/utils/models/database/ModMailResponse.java +++ b/src/main/java/io/paradaux/friendlybot/utils/models/database/ModMailResponse.java @@ -25,16 +25,25 @@ package io.paradaux.friendlybot.utils.models.database; +import org.bson.codecs.pojo.annotations.BsonProperty; + import java.io.Serializable; public class ModMailResponse implements Serializable { protected static final long serialVersionUID = 1L; + @BsonProperty(value="guild_id") + private String guildId; + + @BsonProperty(value="author_id") private String authorId; + + @BsonProperty(value="message") private String message; - - public ModMailResponse(String authorId, String message) { + + public ModMailResponse(String guildId, String authorId, String message) { + this.guildId = guildId; this.authorId = authorId; this.message = message; } @@ -43,6 +52,10 @@ public ModMailResponse() { } + public String getGuildId() { + return guildId; + } + public String getAuthorId() { return authorId; } @@ -51,6 +64,11 @@ public String getMessage() { return message; } + public ModMailResponse setGuildId(String guildId) { + this.guildId = guildId; + return this; + } + public ModMailResponse setAuthorId(String authorId) { this.authorId = authorId; return this; diff --git a/src/main/java/io/paradaux/friendlybot/utils/models/database/PendingVerificationEntry.java b/src/main/java/io/paradaux/friendlybot/utils/models/database/PendingVerificationEntry.java index 5777ca52..0d23f8aa 100644 --- a/src/main/java/io/paradaux/friendlybot/utils/models/database/PendingVerificationEntry.java +++ b/src/main/java/io/paradaux/friendlybot/utils/models/database/PendingVerificationEntry.java @@ -33,12 +33,12 @@ public class PendingVerificationEntry implements Serializable { protected static final long serialVersionUID = 1L; - @BsonProperty(value = "discord_id") - private String discordID; - @BsonProperty(value = "guild_id") private String guildID; + @BsonProperty(value = "discord_id") + private String discordID; + @BsonProperty(value = "verification_id") private String verificationCode; @@ -46,12 +46,16 @@ public PendingVerificationEntry() { } - public PendingVerificationEntry(String discordID, String guildID, String verificationCode) { - this.discordID = discordID; + public PendingVerificationEntry(String guildID, String discordID, String verificationCode) { this.guildID = guildID; + this.discordID = discordID; this.verificationCode = verificationCode; } + public static long getSerialVersionUID() { + return serialVersionUID; + } + public String getDiscordID() { return discordID; } @@ -78,4 +82,5 @@ public PendingVerificationEntry setVerificationCode(String verificationCode) { this.verificationCode = verificationCode; return this; } + } diff --git a/src/main/java/io/paradaux/friendlybot/utils/models/database/RescindmentEntry.java b/src/main/java/io/paradaux/friendlybot/utils/models/database/RescindmentEntry.java index 7f861593..96521919 100644 --- a/src/main/java/io/paradaux/friendlybot/utils/models/database/RescindmentEntry.java +++ b/src/main/java/io/paradaux/friendlybot/utils/models/database/RescindmentEntry.java @@ -10,6 +10,9 @@ public class RescindmentEntry implements Serializable { protected static final long serialVersionUID = 1L; + @BsonProperty(value = "guild_id") + private String guildID; + @BsonProperty(value = "action") private ModerationAction action; @@ -44,8 +47,9 @@ public RescindmentEntry() { } - public RescindmentEntry(ModerationAction action, String incidentId, String incidentIdOfPunishment, String userTag, String userId, - String staffTag, String staffId, String reason, Date timeOfPunishment, Date timeOfRescindment) { + public RescindmentEntry(String guildID, ModerationAction action, String incidentId, String incidentIdOfPunishment, String userTag, + String userId, String staffTag, String staffId, String reason, Date timeOfPunishment, Date timeOfRescindment) { + this.guildID = guildID; this.action = action; this.incidentId = incidentId; this.incidentIdOfPunishment = incidentIdOfPunishment; @@ -58,6 +62,10 @@ public RescindmentEntry(ModerationAction action, String incidentId, String incid this.timeOfRescindment = timeOfRescindment; } + public String getGuildID() { + return guildID; + } + public ModerationAction getAction() { return action; } @@ -147,4 +155,9 @@ public RescindmentEntry setTimeOfRescindment(Date timeOfRescindment) { this.timeOfRescindment = timeOfRescindment; return this; } + + public RescindmentEntry setGuildID(String guildID) { + this.guildID = guildID; + return this; + } } diff --git a/src/main/java/io/paradaux/friendlybot/utils/models/database/TagEntry.java b/src/main/java/io/paradaux/friendlybot/utils/models/database/TagEntry.java index 75c464f6..3fcf8798 100644 --- a/src/main/java/io/paradaux/friendlybot/utils/models/database/TagEntry.java +++ b/src/main/java/io/paradaux/friendlybot/utils/models/database/TagEntry.java @@ -35,7 +35,7 @@ public class TagEntry implements Serializable { protected static final long serialVersionUID = 2L; @BsonProperty(value = "guild_id") - private String guild; + private String guildId; @BsonProperty(value = "discord_id") private String discordId; @@ -56,8 +56,8 @@ public TagEntry() { } - public TagEntry(String guild, String discordId, String id, String content, Date timeCreated, boolean isDotCommand) { - this.guild = guild; + public TagEntry(String guildId, String discordId, String id, String content, Date timeCreated, boolean isDotCommand) { + this.guildId = guildId; this.discordId = discordId; this.id = id; this.content = content; @@ -65,8 +65,8 @@ public TagEntry(String guild, String discordId, String id, String content, Date this.isDotCommand = isDotCommand; } - public String getGuild() { - return guild; + public String getGuildId() { + return guildId; } public String getDiscordId() { @@ -89,8 +89,8 @@ public boolean isDotCommand() { return isDotCommand; } - public TagEntry setGuild(String guild) { - this.guild = guild; + public TagEntry setGuildId(String guildId) { + this.guildId = guildId; return this; } diff --git a/src/main/java/io/paradaux/friendlybot/utils/models/database/TempBanEntry.java b/src/main/java/io/paradaux/friendlybot/utils/models/database/TempBanEntry.java index 9dc37687..53a92adf 100644 --- a/src/main/java/io/paradaux/friendlybot/utils/models/database/TempBanEntry.java +++ b/src/main/java/io/paradaux/friendlybot/utils/models/database/TempBanEntry.java @@ -34,6 +34,9 @@ public class TempBanEntry implements Serializable { protected static final long serialVersionUID = 1L; + @BsonProperty(value = "guild_id") + private String guildID; + @BsonProperty(value = "incident_id") private String incidentId; @@ -62,8 +65,9 @@ public TempBanEntry() { } - public TempBanEntry(String incidentId, String userTag, String userId, String staffTag, String staffId, String reason, Date timestamp, - Date expiry) { + public TempBanEntry(String guildID, String incidentId, String userTag, String userId, String staffTag, String staffId, String reason, + Date timestamp, Date expiry) { + this.guildID = guildID; this.incidentId = incidentId; this.userTag = userTag; this.userId = userId; @@ -74,6 +78,10 @@ public TempBanEntry(String incidentId, String userTag, String userId, String sta this.expiry = expiry; } + public String getGuildID() { + return guildID; + } + public String getIncidentId() { return incidentId; } @@ -145,4 +153,10 @@ public TempBanEntry setExpiry(Date expiry) { this.expiry = expiry; return this; } + + public TempBanEntry setGuildID(String guildID) { + this.guildID = guildID; + return this; + } + } diff --git a/src/main/java/io/paradaux/friendlybot/utils/models/database/VerificationEntry.java b/src/main/java/io/paradaux/friendlybot/utils/models/database/VerificationEntry.java index cce19aec..09a1a7a9 100644 --- a/src/main/java/io/paradaux/friendlybot/utils/models/database/VerificationEntry.java +++ b/src/main/java/io/paradaux/friendlybot/utils/models/database/VerificationEntry.java @@ -34,12 +34,12 @@ public class VerificationEntry implements Serializable { protected static final long serialVersionUID = 1L; - @BsonProperty(value = "discord_id") - private String discordID; - @BsonProperty(value = "guild_id") private String guildID; + @BsonProperty(value = "discord_id") + private String discordID; + @BsonProperty(value = "date_verified") private Date dateVerified; diff --git a/src/main/java/io/paradaux/friendlybot/utils/models/database/WarningEntry.java b/src/main/java/io/paradaux/friendlybot/utils/models/database/WarningEntry.java index 076759cf..f87a1354 100644 --- a/src/main/java/io/paradaux/friendlybot/utils/models/database/WarningEntry.java +++ b/src/main/java/io/paradaux/friendlybot/utils/models/database/WarningEntry.java @@ -34,6 +34,9 @@ public class WarningEntry implements Serializable { protected static final long serialVersionUID = 1L; + @BsonProperty(value = "guild_id") + private String guildID; + @BsonProperty(value = "incident_id") private String incidentID; @@ -59,8 +62,9 @@ public WarningEntry() { } - public WarningEntry(String incidentID, String userTag, String userID, String staffTag, - String staffID, String reason, Date timestamp) { + public WarningEntry(String guildID, String incidentID, String userTag, String userID, String staffTag, String staffID, String reason, + Date timestamp) { + this.guildID = guildID; this.incidentID = incidentID; this.userTag = userTag; this.userID = userID; @@ -70,6 +74,10 @@ public WarningEntry(String incidentID, String userTag, String userID, String sta this.timestamp = timestamp; } + public String getGuildID() { + return guildID; + } + public String getIncidentID() { return incidentID; } @@ -98,6 +106,11 @@ public Date getTimestamp() { return timestamp; } + public WarningEntry setGuildID(String guildID) { + this.guildID = guildID; + return this; + } + public WarningEntry setIncidentID(String incidentID) { this.incidentID = incidentID; return this; From f73ef007e8fc90b07607285c47c908e20a09ae63 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Sat, 12 Jun 2021 10:34:15 +0100 Subject: [PATCH 037/121] Update reference to tag entry --- .../io/paradaux/friendlybot/commands/utility/TagCommand.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/io/paradaux/friendlybot/commands/utility/TagCommand.java b/src/main/java/io/paradaux/friendlybot/commands/utility/TagCommand.java index da1b4d0f..16976b11 100644 --- a/src/main/java/io/paradaux/friendlybot/commands/utility/TagCommand.java +++ b/src/main/java/io/paradaux/friendlybot/commands/utility/TagCommand.java @@ -86,7 +86,7 @@ protected void execute(CommandEvent event) { .setId(args[1].toLowerCase(Locale.ROOT)) .setContent(parseSentance(2, args)) .setDiscordId(event.getAuthor().getId()) - .setGuild(event.getGuild().getId()) + .setGuildId(event.getGuild().getId()) .setTimeCreated(new Date()); tags.addTag(entry); From 0f1dc1525560cf902cf99b914014c68acc378d1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Sat, 12 Jun 2021 10:52:08 +0100 Subject: [PATCH 038/121] GuildId reference fix --- .../java/io/paradaux/friendlybot/managers/TagManager.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/io/paradaux/friendlybot/managers/TagManager.java b/src/main/java/io/paradaux/friendlybot/managers/TagManager.java index de13f959..bcdc1e7d 100644 --- a/src/main/java/io/paradaux/friendlybot/managers/TagManager.java +++ b/src/main/java/io/paradaux/friendlybot/managers/TagManager.java @@ -39,7 +39,7 @@ public void addTag(TagEntry entry) { } public void removeTag(TagEntry entry) { - tags.findOneAndDelete(getTagSearchQueryById(entry.getGuild(), entry.getId())); + tags.findOneAndDelete(getTagSearchQueryById(entry.getGuildId(), entry.getId())); } public TagEntry getTagById(String guildId, String tagName) { @@ -55,7 +55,7 @@ public FindIterable getTags(String guildId) { } public void updateTag(TagEntry entry) { - tags.findOneAndReplace(getTagSearchQueryById(entry.getGuild(), entry.getId()), entry); + tags.findOneAndReplace(getTagSearchQueryById(entry.getGuildId(), entry.getId()), entry); } private Document getTagSearchQueryById(String guildId, String tagName) { From 892c9c00ff4335aae8186eae647d5e1f01d85f9e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 20 Jul 2021 23:05:06 +0000 Subject: [PATCH 039/121] Bump slf4j-api from 1.7.30 to 1.7.32 Bumps [slf4j-api](https://github.com/qos-ch/slf4j) from 1.7.30 to 1.7.32. - [Release notes](https://github.com/qos-ch/slf4j/releases) - [Commits](https://github.com/qos-ch/slf4j/commits) --- updated-dependencies: - dependency-name: org.slf4j:slf4j-api dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 5e710131..421f2b0d 100644 --- a/pom.xml +++ b/pom.xml @@ -158,7 +158,7 @@ org.slf4j slf4j-api - 1.7.30 + 1.7.32 jar compile From 05907ac060a93c7ca8558c639f2f583a70532f66 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 20 Jul 2021 23:05:19 +0000 Subject: [PATCH 040/121] Bump slf4j-log4j12 from 1.7.30 to 1.7.32 Bumps [slf4j-log4j12](https://github.com/qos-ch/slf4j) from 1.7.30 to 1.7.32. - [Release notes](https://github.com/qos-ch/slf4j/releases) - [Commits](https://github.com/qos-ch/slf4j/commits) --- updated-dependencies: - dependency-name: org.slf4j:slf4j-log4j12 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 5e710131..41bc7760 100644 --- a/pom.xml +++ b/pom.xml @@ -166,7 +166,7 @@ org.slf4j slf4j-log4j12 - 1.7.30 + 1.7.32 jar compile From b8fc665ce8d4d21c1f5cacf2ade834da1d6e4239 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 30 Jul 2021 23:05:36 +0000 Subject: [PATCH 041/121] Bump JDA from 4.2.1_267 to 4.3.0_300 Bumps JDA from 4.2.1_267 to 4.3.0_300. --- updated-dependencies: - dependency-name: net.dv8tion:JDA dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 5e710131..9c3d4019 100644 --- a/pom.xml +++ b/pom.xml @@ -136,7 +136,7 @@ net.dv8tion JDA - 4.2.1_267 + 4.3.0_300 club.minnced From 6000122a8b8b02f106b99c66b0b98dfcaba95f6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Sun, 1 Aug 2021 14:19:23 +0100 Subject: [PATCH 042/121] New object-based approach for handling cached guilds --- .../managers/PermissionManager.java | 5 +++- .../paradaux/friendlybot/models/FGuild.java | 23 +++++++++++++++++++ .../friendlybot/models/FGuildSetting.java | 7 ++++++ 3 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 src/main/java/io/paradaux/friendlybot/models/FGuild.java create mode 100644 src/main/java/io/paradaux/friendlybot/models/FGuildSetting.java diff --git a/src/main/java/io/paradaux/friendlybot/managers/PermissionManager.java b/src/main/java/io/paradaux/friendlybot/managers/PermissionManager.java index 554a4f15..e88079b7 100644 --- a/src/main/java/io/paradaux/friendlybot/managers/PermissionManager.java +++ b/src/main/java/io/paradaux/friendlybot/managers/PermissionManager.java @@ -41,8 +41,11 @@ public class PermissionManager { private PermissionEntry permissions; private final Logger logger; - public PermissionManager(Logger logger) { + private final GuildSettingsManager guilds; + + public PermissionManager(Logger logger, GuildSettingsManager guilds) { this.logger = logger; + this.guilds = guilds; logger.info("Initialising: Permission Manager"); diff --git a/src/main/java/io/paradaux/friendlybot/models/FGuild.java b/src/main/java/io/paradaux/friendlybot/models/FGuild.java new file mode 100644 index 00000000..e37fadb9 --- /dev/null +++ b/src/main/java/io/paradaux/friendlybot/models/FGuild.java @@ -0,0 +1,23 @@ +package io.paradaux.friendlybot.models; + +import io.paradaux.friendlybot.utils.models.database.GuildSettingsEntry; +import net.dv8tion.jda.api.entities.Guild; + +public class FGuild { + + private final Guild guild; + private final GuildSettingsEntry settings; + + public FGuild(Guild guild, GuildSettingsEntry settings) { + this.guild = guild; + this.settings = settings; + } + + public Guild getGuild() { + return guild; + } + + public GuildSettingsEntry getSettings() { + return settings; + } +} diff --git a/src/main/java/io/paradaux/friendlybot/models/FGuildSetting.java b/src/main/java/io/paradaux/friendlybot/models/FGuildSetting.java new file mode 100644 index 00000000..a3e5d3dd --- /dev/null +++ b/src/main/java/io/paradaux/friendlybot/models/FGuildSetting.java @@ -0,0 +1,7 @@ +package io.paradaux.friendlybot.models; + +public enum FGuildSetting { + + + +} From 3dfbada135c333c6cb56d8df3e176cb75e2c7bbc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Sun, 1 Aug 2021 14:31:19 +0100 Subject: [PATCH 043/121] Add codefactor badge --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e99c21c3..a13089db 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,6 @@ # FriendlyBot ![Build](https://github.com/ParadauxIO/FriendlyBot/workflows/Build/badge.svg?branch=main) +[![CodeFactor](https://www.codefactor.io/repository/github/paradauxio/friendlybot/badge)](https://www.codefactor.io/repository/github/paradauxio/friendlybot) ![Version](https://img.shields.io/badge/version-1.0.0-009999) ![License](https://img.shields.io/github/license/ParadauxIO/FriendlyBot) From 486467ec50696312705dfa8167475623ab5235db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Sun, 1 Aug 2021 15:02:47 +0100 Subject: [PATCH 044/121] Remove unicode escape --- .../java/io/paradaux/friendlybot/listeners/VotePinListener.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/io/paradaux/friendlybot/listeners/VotePinListener.java b/src/main/java/io/paradaux/friendlybot/listeners/VotePinListener.java index d9591fc4..a36c3431 100644 --- a/src/main/java/io/paradaux/friendlybot/listeners/VotePinListener.java +++ b/src/main/java/io/paradaux/friendlybot/listeners/VotePinListener.java @@ -9,7 +9,7 @@ public class VotePinListener extends DiscordEventListener { private static final int PIN_THRESHOLD = 4; - private static final String PIN_EMOJI = "\uD83D\uDCCC"; + private static final String PIN_EMOJI = "📌"; private final Logger logger; From 1dbdac101c7a233f820573e942b3ed89c3a87d52 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Sun, 1 Aug 2021 15:05:23 +0100 Subject: [PATCH 045/121] It compiles! (again, oops) --- src/main/java/io/paradaux/friendlybot/FriendlyBot.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/io/paradaux/friendlybot/FriendlyBot.java b/src/main/java/io/paradaux/friendlybot/FriendlyBot.java index d7807513..3ba386a2 100644 --- a/src/main/java/io/paradaux/friendlybot/FriendlyBot.java +++ b/src/main/java/io/paradaux/friendlybot/FriendlyBot.java @@ -67,10 +67,11 @@ public static void main(String[] args) { ConfigurationEntry config = configManager.getConfig(); MongoManager mongoManager = new MongoManager(config, logger); - PermissionManager permissionManager = new PermissionManager(logger); + GuildSettingsManager guildSettingsManager = new GuildSettingsManager(logger, mongoManager); + PermissionManager permissionManager = new PermissionManager(logger, guildSettingsManager); RoleManager roleManager = new RoleManager(logger, mongoManager); UserSettingsManager settingsManager = new UserSettingsManager(logger, mongoManager); - GuildSettingsManager guildSettingsManager = new GuildSettingsManager(logger, mongoManager); + PunishmentManager punishmentManager = new PunishmentManager(); DiscordBotManager discordBotManager = new DiscordBotManager(config, logger, permissionManager, mongoManager, roleManager, guildSettingsManager); TagManager tagManager = new TagManager(config, logger, mongoManager); From f15cf255800af34dd04d063884fab86844e2fe1f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Sun, 1 Aug 2021 15:05:59 +0100 Subject: [PATCH 046/121] Bump version to 2.0 ahead of the rewrite --- pom.xml | 2 +- src/main/java/io/paradaux/friendlybot/FriendlyBot.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 5515bff5..f670c767 100644 --- a/pom.xml +++ b/pom.xml @@ -31,7 +31,7 @@ io.paradaux friendlybot - 1.0.0 + 2.0.0 UTF-8 diff --git a/src/main/java/io/paradaux/friendlybot/FriendlyBot.java b/src/main/java/io/paradaux/friendlybot/FriendlyBot.java index 3ba386a2..936139bf 100644 --- a/src/main/java/io/paradaux/friendlybot/FriendlyBot.java +++ b/src/main/java/io/paradaux/friendlybot/FriendlyBot.java @@ -58,7 +58,7 @@ public static API getApi() { public static void main(String[] args) { Logger logger = LoggerFactory.getLogger("io.paradaux.friendlybot"); - logger.info("CSBot v1.0.0 - Maintained by Rían Errity "); + logger.info("FriendlyBot v2.0 - Maintained by Rían Errity "); logger.info("Initialising Controllers. This may take some time..."); IOManager ioManager = new IOManager(logger); From fc5597b6457bd0dd60ce07bd8721eaaea0b048de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Sun, 1 Aug 2021 22:33:56 +0100 Subject: [PATCH 047/121] Add ebean unit testing DB --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index 200f86b4..b797f1b6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,6 @@ +# Unit testing +friendlybot.mv.db + # Runtime stuff /*.json src/test/resources/img* From 229b44d0d997b1f404fc58d78000e6acbfcf26eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Sun, 1 Aug 2021 22:34:09 +0100 Subject: [PATCH 048/121] Removing duplicate files --- LICENSE | 21 --------------------- Placeholders.md | 0 2 files changed, 21 deletions(-) delete mode 100644 LICENSE delete mode 100644 Placeholders.md diff --git a/LICENSE b/LICENSE deleted file mode 100644 index d2f6ba3c..00000000 --- a/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2021 Rían Errity - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/Placeholders.md b/Placeholders.md deleted file mode 100644 index e69de29b..00000000 From 4bde4de7379c12fc0471c4cca9d3f8c8238697b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Sun, 1 Aug 2021 22:34:17 +0100 Subject: [PATCH 049/121] Add EBean --- pom.xml | 52 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 51 insertions(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index f670c767..020240ab 100644 --- a/pom.xml +++ b/pom.xml @@ -92,6 +92,37 @@ + + + + io.repaint.maven + tiles-maven-plugin + 2.19 + true + + + + io.ebean.tile:enhancement:12.8.0 + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.8.1 + + + + io.ebean + querybean-generator + 12.8.0 + + + + + @@ -191,7 +222,7 @@ test - + org.mongodb mongo-java-driver 3.12.8 @@ -208,5 +239,24 @@ + + + io.ebean + ebean + 12.10.0 + + + + io.ebean + ebean-test + 12.10.0 + test + + + + com.h2database + h2 + 1.4.196 + \ No newline at end of file From a9038ce1e0677c169fde9ba345a3daed01e3022a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Sun, 1 Aug 2021 22:34:27 +0100 Subject: [PATCH 050/121] WIP GuildCache --- .../friendlybot/core/cache/GuildCache.java | 65 +++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 src/main/java/io/paradaux/friendlybot/core/cache/GuildCache.java diff --git a/src/main/java/io/paradaux/friendlybot/core/cache/GuildCache.java b/src/main/java/io/paradaux/friendlybot/core/cache/GuildCache.java new file mode 100644 index 00000000..6dd16bb8 --- /dev/null +++ b/src/main/java/io/paradaux/friendlybot/core/cache/GuildCache.java @@ -0,0 +1,65 @@ +package io.paradaux.friendlybot.core.cache; + +import io.paradaux.friendlybot.managers.GuildSettingsManager; +import io.paradaux.friendlybot.models.FGuild; +import io.paradaux.friendlybot.utils.models.database.GuildSettingsEntry; +import net.dv8tion.jda.api.JDA; +import net.dv8tion.jda.api.entities.Guild; +import org.jetbrains.annotations.NotNull; + +import java.util.HashMap; +import java.util.Map; + +public class GuildCache { + + /** + * Map of Guild IDs (Snowflake) to FGuild objects. + * */ + private final Map guilds = new HashMap<>(); + private final JDA client; + + public GuildCache(JDA client) { + this.client = client; + } + + public boolean isCached(String id) { + return guilds.containsKey(id); + } + + /** + * Returns an FGuild, directly from the cache if available, otherwise it's grabbed from the database/client. + * */ + @NotNull + public FGuild getGuild(String id) { + // If the guild is cached + if (isCached(id)) { + return guilds.get(id); + } + + return resetGuild(id); + } + + /** + * Returns an FGuild, skipping the cache. + * */ + @NotNull + public FGuild retrieveGuild(String id) { + GuildSettingsEntry entry = GuildSettingsManager.getInstance().getGuild(id); + + Guild guild = client.getGuildById(id); + if (guild == null) { + throw new IllegalArgumentException("The provided guild does not exist."); + } + + return new FGuild(guild, entry); + } + + /** + * Resets the version in the cache. + * */ + public FGuild resetGuild(String id) { + FGuild guild = retrieveGuild(id); + guilds.put(id, guild); + return guild; + } +} From 8bad52de2e885b15ebd0d4a2354a38d268a1e99b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Sun, 1 Aug 2021 22:44:05 +0100 Subject: [PATCH 051/121] WIP Migrating Locale System from other project --- .../friendlybot/locale/LocaleLogger.java | 40 +++++++++++++++++++ .../friendlybot/locale/LocaleManager.java | 39 ++++++++++++++++++ 2 files changed, 79 insertions(+) create mode 100644 src/main/java/io/paradaux/friendlybot/locale/LocaleLogger.java create mode 100644 src/main/java/io/paradaux/friendlybot/locale/LocaleManager.java diff --git a/src/main/java/io/paradaux/friendlybot/locale/LocaleLogger.java b/src/main/java/io/paradaux/friendlybot/locale/LocaleLogger.java new file mode 100644 index 00000000..8b38d6c9 --- /dev/null +++ b/src/main/java/io/paradaux/friendlybot/locale/LocaleLogger.java @@ -0,0 +1,40 @@ +package io.paradaux.friendlybot.locale; + +import org.slf4j.Logger; + +/** + * A wrapper on top of SLF4J which allows for the logging of system messages using locale entries to provide easier internationalisation. + * @author Rían Errity + * */ +public class LocaleLogger { + + private static Logger logger; + private static boolean debug; + + public LocaleLogger(Logger logger, boolean debug) { + LocaleLogger.logger = logger; + LocaleLogger.debug = debug; + } + + public static void toggleDebug() { + debug = !debug; + } + + public static void info(String str, String... args) { + logger.info(LocaleManager.get(str), (Object[]) args); + } + + public static void warn(String str, String... args) { + logger.warn(LocaleManager.get(str), (Object[]) args); + } + + public static void debug(String str, String... args) { + if (debug) { + logger.debug(LocaleManager.get(str), (Object[]) args); + } + } + + public static void error(String str, String... args) { + logger.error(str, (Object[]) args); + } +} diff --git a/src/main/java/io/paradaux/friendlybot/locale/LocaleManager.java b/src/main/java/io/paradaux/friendlybot/locale/LocaleManager.java new file mode 100644 index 00000000..b0f2b5b5 --- /dev/null +++ b/src/main/java/io/paradaux/friendlybot/locale/LocaleManager.java @@ -0,0 +1,39 @@ +package io.paradaux.friendlybot.locale; + +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.util.PropertyResourceBundle; +import java.util.ResourceBundle; + +/** + * Utility to loading and holding singleton instances of the ResourceBundle which serves as the locale/internationalisation system for the + * plugin. + * @author Rían Errity + * */ +public class LocaleManager { + + private static final File locale = new File(""); + + private static ResourceBundle bundle; + + public LocaleManager() { + if (!locale.exists()) { + + } + + try (FileInputStream fis = new FileInputStream(locale)) { + bundle = new PropertyResourceBundle(fis); + } catch (IOException e) { + e.printStackTrace(); + } + } + + public static String get(String key) { + if (!bundle.containsKey(key)) { + return key; + } + + return bundle.getString(key); + } +} \ No newline at end of file From 820541c45f8868f8d7dfe2554cd630728fd6c3d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Sun, 1 Aug 2021 22:47:21 +0100 Subject: [PATCH 052/121] Changing package structure --- .../io/paradaux/friendlybot/FriendlyBot.java | 6 ++-- .../{ => core}/locale/LocaleLogger.java | 2 +- .../{ => core}/locale/LocaleManager.java | 2 +- .../friendlybot/{ => core}/utils/API.java | 4 +-- .../{ => core}/utils/HttpUtils.java | 2 +- .../{ => core}/utils/ImageUtils.java | 2 +- .../{ => core}/utils/NumberUtils.java | 2 +- .../{ => core}/utils/RandomUtils.java | 2 +- .../{ => core}/utils/StringUtils.java | 3 +- .../{ => core}/utils/TimeUtils.java | 2 +- .../utils/embeds/AuditLogEmbed.java | 8 ++--- .../utils/embeds/PoliticsRulesEmbed.java | 6 ++-- .../{ => core}/utils/embeds/RulesEmbed.java | 6 ++-- .../utils/embeds/command/UserInfoEmbed.java | 6 ++-- .../utils/embeds/moderation/BannedEmbed.java | 6 ++-- .../moderation/ChatFilterTriggeredEmbed.java | 8 ++--- .../embeds/moderation/CiteRuleEmbed.java | 6 ++-- .../utils/embeds/moderation/KickedEmbed.java | 6 ++-- .../embeds/moderation/TimedOutEmbed.java | 4 +-- .../utils/embeds/moderation/WarningEmbed.java | 4 +-- .../embeds/modmail/ModMailReceivedEmbed.java | 6 ++-- .../embeds/modmail/ModMailSentEmbed.java | 6 ++-- .../embeds/notices/ModMailNoticeEmbed.java | 6 ++-- .../embeds/notices/NoPermissionEmbed.java | 6 ++-- .../notices/RulesAcceptanceNoticeEmbed.java | 6 ++-- .../embeds/notices/SyntaxErrorEmbed.java | 6 ++-- .../notices/VerificationNoticeEmbed.java | 4 +-- .../embeds/roleselection/ClassEmbed.java | 4 +-- .../embeds/roleselection/CourseEmbed.java | 4 +-- .../embeds/roleselection/InterestsEmbed.java | 4 +-- .../roleselection/PoliticsOptionEmbed.java | 4 +-- .../embeds/roleselection/PronounEmbed.java | 4 +-- .../utils/embeds/roleselection/YearEmbed.java | 4 +-- .../configuration/ConfigurationEntry.java | 2 +- .../models/configuration/PermissionEntry.java | 2 +- .../utils/models/database/AuditLogEntry.java | 4 +-- .../utils/models/database/BanEntry.java | 2 +- .../utils/models/database/BotStats.java | 2 +- .../models/database/GuildSettingsEntry.java | 2 +- .../utils/models/database/KickEntry.java | 2 +- .../utils/models/database/MessageEntry.java | 2 +- .../utils/models/database/ModMailEntry.java | 4 +-- .../models/database/ModMailResponse.java | 2 +- .../database/PendingVerificationEntry.java | 2 +- .../models/database/RescindmentEntry.java | 4 +-- .../utils/models/database/TagEntry.java | 2 +- .../utils/models/database/TempBanEntry.java | 2 +- .../models/database/UserSettingsEntry.java | 2 +- .../models/database/VerificationEntry.java | 2 +- .../utils/models/database/WarningEntry.java | 2 +- .../utils/models/enums/EmbedColour.java | 2 +- .../core/utils/models/enums/TicketStatus.java | 5 +++ .../exceptions/ManagerNotReadyException.java | 2 +- .../exceptions/NoSuchResourceException.java | 2 +- .../exceptions/NoSuchUserException.java | 2 +- .../exceptions/VerificationException.java | 2 +- .../utils/models/interfaces/Embed.java | 2 +- .../utils/models/types/BaseCommand.java | 8 ++--- .../models/types/DiscordEventListener.java | 4 +-- .../utils/models/types/ModerationAction.java | 2 +- .../utils/models/types/PrivilegedCommand.java | 7 ++-- .../commands/fun/CatCommand.java | 8 ++--- .../commands/fun/CharmanderCommand.java | 10 +++--- .../commands/fun/CoinFlipCommand.java | 10 +++--- .../commands/fun/DogCommand.java | 8 ++--- .../commands/fun/EightBallCommand.java | 10 +++--- .../commands/fun/InspireCommand.java | 8 ++--- .../commands/fun/LmgtfyCommand.java | 6 ++-- .../commands/fun/MemeCommand.java | 12 +++---- .../commands/fun/MonkeCommand.java | 12 +++---- .../commands/fun/MonkeyCommand.java | 8 ++--- .../commands/fun/XKCDCommand.java | 8 ++--- .../commands/fun/YodaifyCommand.java | 10 +++--- .../staff/moderation/AnnouncementCommand.java | 6 ++-- .../commands/staff/moderation/BanCommand.java | 11 ++----- .../staff/moderation/CiteCommand.java | 10 +++--- .../staff/moderation/KickCommand.java | 16 ++-------- .../staff/moderation/LookupCommand.java | 18 +++++------ .../staff/moderation/PruneCommand.java | 6 ++-- .../staff/moderation/RespondCommand.java | 12 +++---- .../staff/moderation/TempBanCommand.java | 17 ++-------- .../staff/moderation/TicketCommand.java | 16 +++++----- .../staff/moderation/WarnCommand.java | 16 ++-------- .../commands/staff/technician/DmCommand.java | 7 ++-- .../staff/technician/PermissionsCommand.java | 8 ++--- .../commands/staff/technician/SayCommand.java | 6 ++-- .../staff/technician/SendEmbedCommand.java | 24 +++++++------- .../staff/technician/SetupCommand.java | 11 +++---- .../staff/technician/VerificationCommand.java | 8 ++--- .../commands/utility/ClearColorCommand.java | 10 +++--- .../commands/utility/CommandsCommand.java | 8 ++--- .../commands/utility/GithubCommand.java | 6 ++-- .../commands/utility/GoogleCommand.java | 8 ++--- .../commands/utility/InviteCommand.java | 4 +-- .../commands/utility/MemeImagesCommand.java | 10 +++--- .../commands/utility/PingCommand.java | 4 +-- .../commands/utility/RandomColorCommand.java | 10 +++--- .../commands/utility/ServerInfoCommand.java | 6 ++-- .../commands/utility/SetColorCommand.java | 10 +++--- .../commands/utility/StrikeCommand.java | 10 +++--- .../commands/utility/TagCommand.java | 15 ++++----- .../commands/utility/TagsCommand.java | 6 ++-- .../commands/utility/UserInfoCommand.java | 12 +++---- .../commands/utility/WeatherCommand.java | 10 +++--- .../commands/utility/WolframAlphaCommand.java | 8 ++--- .../{ => discord}/listeners/AlotListener.java | 6 ++-- .../listeners/DotCommandsListener.java | 8 ++--- .../listeners/InsultListener.java | 6 ++-- .../listeners/ReadyListener.java | 4 +-- .../{ => discord}/listeners/TagListener.java | 10 +++--- .../listeners/VotePinListener.java | 4 +-- .../listeners/logging/MessageDeleteLog.java | 10 +++--- .../listeners/logging/MessageLog.java | 10 +++--- .../listeners/logging/UpdatedMessageLog.java | 10 +++--- .../listeners/logging/audit/GuildJoinLog.java | 8 ++--- .../logging/audit/GuildLeaveLog.java | 8 ++--- .../modmail/ModMailChannelListener.java | 20 ++++++------ .../listeners/rooms/RoomJoinListener.java | 6 ++-- .../listeners/rooms/RoomLeaveListener.java | 6 ++-- .../utility/LongMessageListener.java | 6 ++-- .../VerificationCodeReceivedListener.java | 8 ++--- .../VerificationEmailReceivedListener.java | 10 +++--- .../friendlybot/managers/AuditManager.java | 10 +++--- .../friendlybot/managers/ConfigManager.java | 4 +-- .../managers/DiscordBotManager.java | 32 +++++++++---------- .../friendlybot/managers/GuildManager.java | 2 +- .../managers/GuildSettingsManager.java | 4 +-- .../friendlybot/managers/IOManager.java | 8 ++--- .../friendlybot/managers/MailGunManager.java | 12 +++---- .../friendlybot/managers/MongoManager.java | 11 +++---- .../managers/PermissionManager.java | 4 +-- .../managers/PunishmentManager.java | 20 ++++++------ .../friendlybot/managers/RoleManager.java | 2 +- .../friendlybot/managers/TagManager.java | 6 ++-- .../friendlybot/managers/TaskManager.java | 3 +- .../managers/UserSettingsManager.java | 6 ++-- .../managers/VerificationManager.java | 10 +++--- .../paradaux/friendlybot/models/FGuild.java | 2 +- .../utils/models/enums/TicketStatus.java | 5 --- src/main/resources/log4j.properties | 2 +- .../{ => core}/utils/EmbedParserTest.java | 6 ++-- .../{ => core}/utils/TimeUtilsTest.java | 2 +- .../utils/models/StringUtilsTest.java | 4 +-- .../utility/WolframAlphaCommandTest.java | 4 +-- .../managers/BotControllerTest.java | 2 +- .../friendlybot/scripts/ModifyProdDb.java | 5 ++- 146 files changed, 457 insertions(+), 517 deletions(-) rename src/main/java/io/paradaux/friendlybot/{ => core}/locale/LocaleLogger.java (95%) rename src/main/java/io/paradaux/friendlybot/{ => core}/locale/LocaleManager.java (95%) rename src/main/java/io/paradaux/friendlybot/{ => core}/utils/API.java (97%) rename src/main/java/io/paradaux/friendlybot/{ => core}/utils/HttpUtils.java (97%) rename src/main/java/io/paradaux/friendlybot/{ => core}/utils/ImageUtils.java (94%) rename src/main/java/io/paradaux/friendlybot/{ => core}/utils/NumberUtils.java (97%) rename src/main/java/io/paradaux/friendlybot/{ => core}/utils/RandomUtils.java (98%) rename src/main/java/io/paradaux/friendlybot/{ => core}/utils/StringUtils.java (98%) rename src/main/java/io/paradaux/friendlybot/{ => core}/utils/TimeUtils.java (99%) rename src/main/java/io/paradaux/friendlybot/{ => core}/utils/embeds/AuditLogEmbed.java (92%) rename src/main/java/io/paradaux/friendlybot/{ => core}/utils/embeds/PoliticsRulesEmbed.java (95%) rename src/main/java/io/paradaux/friendlybot/{ => core}/utils/embeds/RulesEmbed.java (96%) rename src/main/java/io/paradaux/friendlybot/{ => core}/utils/embeds/command/UserInfoEmbed.java (92%) rename src/main/java/io/paradaux/friendlybot/{ => core}/utils/embeds/moderation/BannedEmbed.java (92%) rename src/main/java/io/paradaux/friendlybot/{ => core}/utils/embeds/moderation/ChatFilterTriggeredEmbed.java (90%) rename src/main/java/io/paradaux/friendlybot/{ => core}/utils/embeds/moderation/CiteRuleEmbed.java (96%) rename src/main/java/io/paradaux/friendlybot/{ => core}/utils/embeds/moderation/KickedEmbed.java (92%) rename src/main/java/io/paradaux/friendlybot/{ => core}/utils/embeds/moderation/TimedOutEmbed.java (93%) rename src/main/java/io/paradaux/friendlybot/{ => core}/utils/embeds/moderation/WarningEmbed.java (94%) rename src/main/java/io/paradaux/friendlybot/{ => core}/utils/embeds/modmail/ModMailReceivedEmbed.java (93%) rename src/main/java/io/paradaux/friendlybot/{ => core}/utils/embeds/modmail/ModMailSentEmbed.java (92%) rename src/main/java/io/paradaux/friendlybot/{ => core}/utils/embeds/notices/ModMailNoticeEmbed.java (92%) rename src/main/java/io/paradaux/friendlybot/{ => core}/utils/embeds/notices/NoPermissionEmbed.java (91%) rename src/main/java/io/paradaux/friendlybot/{ => core}/utils/embeds/notices/RulesAcceptanceNoticeEmbed.java (90%) rename src/main/java/io/paradaux/friendlybot/{ => core}/utils/embeds/notices/SyntaxErrorEmbed.java (91%) rename src/main/java/io/paradaux/friendlybot/{ => core}/utils/embeds/notices/VerificationNoticeEmbed.java (95%) rename src/main/java/io/paradaux/friendlybot/{ => core}/utils/embeds/roleselection/ClassEmbed.java (93%) rename src/main/java/io/paradaux/friendlybot/{ => core}/utils/embeds/roleselection/CourseEmbed.java (93%) rename src/main/java/io/paradaux/friendlybot/{ => core}/utils/embeds/roleselection/InterestsEmbed.java (94%) rename src/main/java/io/paradaux/friendlybot/{ => core}/utils/embeds/roleselection/PoliticsOptionEmbed.java (93%) rename src/main/java/io/paradaux/friendlybot/{ => core}/utils/embeds/roleselection/PronounEmbed.java (94%) rename src/main/java/io/paradaux/friendlybot/{ => core}/utils/embeds/roleselection/YearEmbed.java (93%) rename src/main/java/io/paradaux/friendlybot/{ => core}/utils/models/configuration/ConfigurationEntry.java (99%) rename src/main/java/io/paradaux/friendlybot/{ => core}/utils/models/configuration/PermissionEntry.java (97%) rename src/main/java/io/paradaux/friendlybot/{ => core}/utils/models/database/AuditLogEntry.java (96%) rename src/main/java/io/paradaux/friendlybot/{ => core}/utils/models/database/BanEntry.java (98%) rename src/main/java/io/paradaux/friendlybot/{ => core}/utils/models/database/BotStats.java (95%) rename src/main/java/io/paradaux/friendlybot/{ => core}/utils/models/database/GuildSettingsEntry.java (98%) rename src/main/java/io/paradaux/friendlybot/{ => core}/utils/models/database/KickEntry.java (98%) rename src/main/java/io/paradaux/friendlybot/{ => core}/utils/models/database/MessageEntry.java (98%) rename src/main/java/io/paradaux/friendlybot/{ => core}/utils/models/database/ModMailEntry.java (97%) rename src/main/java/io/paradaux/friendlybot/{ => core}/utils/models/database/ModMailResponse.java (97%) rename src/main/java/io/paradaux/friendlybot/{ => core}/utils/models/database/PendingVerificationEntry.java (97%) rename src/main/java/io/paradaux/friendlybot/{ => core}/utils/models/database/RescindmentEntry.java (96%) rename src/main/java/io/paradaux/friendlybot/{ => core}/utils/models/database/TagEntry.java (98%) rename src/main/java/io/paradaux/friendlybot/{ => core}/utils/models/database/TempBanEntry.java (98%) rename src/main/java/io/paradaux/friendlybot/{ => core}/utils/models/database/UserSettingsEntry.java (98%) rename src/main/java/io/paradaux/friendlybot/{ => core}/utils/models/database/VerificationEntry.java (97%) rename src/main/java/io/paradaux/friendlybot/{ => core}/utils/models/database/WarningEntry.java (98%) rename src/main/java/io/paradaux/friendlybot/{ => core}/utils/models/enums/EmbedColour.java (97%) create mode 100644 src/main/java/io/paradaux/friendlybot/core/utils/models/enums/TicketStatus.java rename src/main/java/io/paradaux/friendlybot/{ => core}/utils/models/exceptions/ManagerNotReadyException.java (96%) rename src/main/java/io/paradaux/friendlybot/{ => core}/utils/models/exceptions/NoSuchResourceException.java (96%) rename src/main/java/io/paradaux/friendlybot/{ => core}/utils/models/exceptions/NoSuchUserException.java (96%) rename src/main/java/io/paradaux/friendlybot/{ => core}/utils/models/exceptions/VerificationException.java (96%) rename src/main/java/io/paradaux/friendlybot/{ => core}/utils/models/interfaces/Embed.java (95%) rename src/main/java/io/paradaux/friendlybot/{ => core}/utils/models/types/BaseCommand.java (95%) rename src/main/java/io/paradaux/friendlybot/{ => core}/utils/models/types/DiscordEventListener.java (92%) rename src/main/java/io/paradaux/friendlybot/{ => core}/utils/models/types/ModerationAction.java (58%) rename src/main/java/io/paradaux/friendlybot/{ => core}/utils/models/types/PrivilegedCommand.java (92%) rename src/main/java/io/paradaux/friendlybot/{ => discord}/commands/fun/CatCommand.java (83%) rename src/main/java/io/paradaux/friendlybot/{ => discord}/commands/fun/CharmanderCommand.java (80%) rename src/main/java/io/paradaux/friendlybot/{ => discord}/commands/fun/CoinFlipCommand.java (85%) rename src/main/java/io/paradaux/friendlybot/{ => discord}/commands/fun/DogCommand.java (82%) rename src/main/java/io/paradaux/friendlybot/{ => discord}/commands/fun/EightBallCommand.java (93%) rename src/main/java/io/paradaux/friendlybot/{ => discord}/commands/fun/InspireCommand.java (90%) rename src/main/java/io/paradaux/friendlybot/{ => discord}/commands/fun/LmgtfyCommand.java (91%) rename src/main/java/io/paradaux/friendlybot/{ => discord}/commands/fun/MemeCommand.java (94%) rename src/main/java/io/paradaux/friendlybot/{ => discord}/commands/fun/MonkeCommand.java (88%) rename src/main/java/io/paradaux/friendlybot/{ => discord}/commands/fun/MonkeyCommand.java (87%) rename src/main/java/io/paradaux/friendlybot/{ => discord}/commands/fun/XKCDCommand.java (93%) rename src/main/java/io/paradaux/friendlybot/{ => discord}/commands/fun/YodaifyCommand.java (93%) rename src/main/java/io/paradaux/friendlybot/{ => discord}/commands/staff/moderation/AnnouncementCommand.java (95%) rename src/main/java/io/paradaux/friendlybot/{ => discord}/commands/staff/moderation/BanCommand.java (86%) rename src/main/java/io/paradaux/friendlybot/{ => discord}/commands/staff/moderation/CiteCommand.java (87%) rename src/main/java/io/paradaux/friendlybot/{ => discord}/commands/staff/moderation/KickCommand.java (82%) rename src/main/java/io/paradaux/friendlybot/{ => discord}/commands/staff/moderation/LookupCommand.java (91%) rename src/main/java/io/paradaux/friendlybot/{ => discord}/commands/staff/moderation/PruneCommand.java (92%) rename src/main/java/io/paradaux/friendlybot/{ => discord}/commands/staff/moderation/RespondCommand.java (91%) rename src/main/java/io/paradaux/friendlybot/{ => discord}/commands/staff/moderation/TempBanCommand.java (80%) rename src/main/java/io/paradaux/friendlybot/{ => discord}/commands/staff/moderation/TicketCommand.java (92%) rename src/main/java/io/paradaux/friendlybot/{ => discord}/commands/staff/moderation/WarnCommand.java (82%) rename src/main/java/io/paradaux/friendlybot/{ => discord}/commands/staff/technician/DmCommand.java (91%) rename src/main/java/io/paradaux/friendlybot/{ => discord}/commands/staff/technician/PermissionsCommand.java (95%) rename src/main/java/io/paradaux/friendlybot/{ => discord}/commands/staff/technician/SayCommand.java (88%) rename src/main/java/io/paradaux/friendlybot/{ => discord}/commands/staff/technician/SendEmbedCommand.java (85%) rename src/main/java/io/paradaux/friendlybot/{ => discord}/commands/staff/technician/SetupCommand.java (88%) rename src/main/java/io/paradaux/friendlybot/{ => discord}/commands/staff/technician/VerificationCommand.java (94%) rename src/main/java/io/paradaux/friendlybot/{ => discord}/commands/utility/ClearColorCommand.java (86%) rename src/main/java/io/paradaux/friendlybot/{ => discord}/commands/utility/CommandsCommand.java (93%) rename src/main/java/io/paradaux/friendlybot/{ => discord}/commands/utility/GithubCommand.java (96%) rename src/main/java/io/paradaux/friendlybot/{ => discord}/commands/utility/GoogleCommand.java (90%) rename src/main/java/io/paradaux/friendlybot/{ => discord}/commands/utility/InviteCommand.java (95%) rename src/main/java/io/paradaux/friendlybot/{ => discord}/commands/utility/MemeImagesCommand.java (92%) rename src/main/java/io/paradaux/friendlybot/{ => discord}/commands/utility/PingCommand.java (93%) rename src/main/java/io/paradaux/friendlybot/{ => discord}/commands/utility/RandomColorCommand.java (86%) rename src/main/java/io/paradaux/friendlybot/{ => discord}/commands/utility/ServerInfoCommand.java (93%) rename src/main/java/io/paradaux/friendlybot/{ => discord}/commands/utility/SetColorCommand.java (92%) rename src/main/java/io/paradaux/friendlybot/{ => discord}/commands/utility/StrikeCommand.java (77%) rename src/main/java/io/paradaux/friendlybot/{ => discord}/commands/utility/TagCommand.java (92%) rename src/main/java/io/paradaux/friendlybot/{ => discord}/commands/utility/TagsCommand.java (82%) rename src/main/java/io/paradaux/friendlybot/{ => discord}/commands/utility/UserInfoCommand.java (89%) rename src/main/java/io/paradaux/friendlybot/{ => discord}/commands/utility/WeatherCommand.java (94%) rename src/main/java/io/paradaux/friendlybot/{ => discord}/commands/utility/WolframAlphaCommand.java (93%) rename src/main/java/io/paradaux/friendlybot/{ => discord}/listeners/AlotListener.java (88%) rename src/main/java/io/paradaux/friendlybot/{ => discord}/listeners/DotCommandsListener.java (90%) rename src/main/java/io/paradaux/friendlybot/{ => discord}/listeners/InsultListener.java (89%) rename src/main/java/io/paradaux/friendlybot/{ => discord}/listeners/ReadyListener.java (94%) rename src/main/java/io/paradaux/friendlybot/{ => discord}/listeners/TagListener.java (90%) rename src/main/java/io/paradaux/friendlybot/{ => discord}/listeners/VotePinListener.java (90%) rename src/main/java/io/paradaux/friendlybot/{ => discord}/listeners/logging/MessageDeleteLog.java (90%) rename src/main/java/io/paradaux/friendlybot/{ => discord}/listeners/logging/MessageLog.java (90%) rename src/main/java/io/paradaux/friendlybot/{ => discord}/listeners/logging/UpdatedMessageLog.java (90%) rename src/main/java/io/paradaux/friendlybot/{ => discord}/listeners/logging/audit/GuildJoinLog.java (88%) rename src/main/java/io/paradaux/friendlybot/{ => discord}/listeners/logging/audit/GuildLeaveLog.java (88%) rename src/main/java/io/paradaux/friendlybot/{ => discord}/listeners/modmail/ModMailChannelListener.java (83%) rename src/main/java/io/paradaux/friendlybot/{ => discord}/listeners/rooms/RoomJoinListener.java (83%) rename src/main/java/io/paradaux/friendlybot/{ => discord}/listeners/rooms/RoomLeaveListener.java (73%) rename src/main/java/io/paradaux/friendlybot/{ => discord}/listeners/utility/LongMessageListener.java (95%) rename src/main/java/io/paradaux/friendlybot/{ => discord}/listeners/verification/VerificationCodeReceivedListener.java (93%) rename src/main/java/io/paradaux/friendlybot/{ => discord}/listeners/verification/VerificationEmailReceivedListener.java (94%) delete mode 100644 src/main/java/io/paradaux/friendlybot/utils/models/enums/TicketStatus.java rename src/test/java/io/paradaux/friendlybot/{ => core}/utils/EmbedParserTest.java (93%) rename src/test/java/io/paradaux/friendlybot/{ => core}/utils/TimeUtilsTest.java (86%) rename src/test/java/io/paradaux/friendlybot/{ => core}/utils/models/StringUtilsTest.java (97%) rename src/test/java/io/paradaux/friendlybot/{ => discord}/commands/utility/WolframAlphaCommandTest.java (97%) diff --git a/src/main/java/io/paradaux/friendlybot/FriendlyBot.java b/src/main/java/io/paradaux/friendlybot/FriendlyBot.java index 936139bf..11e60496 100644 --- a/src/main/java/io/paradaux/friendlybot/FriendlyBot.java +++ b/src/main/java/io/paradaux/friendlybot/FriendlyBot.java @@ -26,13 +26,11 @@ package io.paradaux.friendlybot; import io.paradaux.friendlybot.managers.*; -import io.paradaux.friendlybot.utils.API; -import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.core.utils.API; +import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.util.List; - /** * CSBot is the main (executable) class for the project. * It provides a set of lazy dependency injection instances diff --git a/src/main/java/io/paradaux/friendlybot/locale/LocaleLogger.java b/src/main/java/io/paradaux/friendlybot/core/locale/LocaleLogger.java similarity index 95% rename from src/main/java/io/paradaux/friendlybot/locale/LocaleLogger.java rename to src/main/java/io/paradaux/friendlybot/core/locale/LocaleLogger.java index 8b38d6c9..634c919c 100644 --- a/src/main/java/io/paradaux/friendlybot/locale/LocaleLogger.java +++ b/src/main/java/io/paradaux/friendlybot/core/locale/LocaleLogger.java @@ -1,4 +1,4 @@ -package io.paradaux.friendlybot.locale; +package io.paradaux.friendlybot.core.locale; import org.slf4j.Logger; diff --git a/src/main/java/io/paradaux/friendlybot/locale/LocaleManager.java b/src/main/java/io/paradaux/friendlybot/core/locale/LocaleManager.java similarity index 95% rename from src/main/java/io/paradaux/friendlybot/locale/LocaleManager.java rename to src/main/java/io/paradaux/friendlybot/core/locale/LocaleManager.java index b0f2b5b5..bac21ab4 100644 --- a/src/main/java/io/paradaux/friendlybot/locale/LocaleManager.java +++ b/src/main/java/io/paradaux/friendlybot/core/locale/LocaleManager.java @@ -1,4 +1,4 @@ -package io.paradaux.friendlybot.locale; +package io.paradaux.friendlybot.core.locale; import java.io.File; import java.io.FileInputStream; diff --git a/src/main/java/io/paradaux/friendlybot/utils/API.java b/src/main/java/io/paradaux/friendlybot/core/utils/API.java similarity index 97% rename from src/main/java/io/paradaux/friendlybot/utils/API.java rename to src/main/java/io/paradaux/friendlybot/core/utils/API.java index 32aab7d0..921c9155 100644 --- a/src/main/java/io/paradaux/friendlybot/utils/API.java +++ b/src/main/java/io/paradaux/friendlybot/core/utils/API.java @@ -23,10 +23,10 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.utils; +package io.paradaux.friendlybot.core.utils; import io.paradaux.friendlybot.managers.*; -import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import org.slf4j.Logger; public class API { diff --git a/src/main/java/io/paradaux/friendlybot/utils/HttpUtils.java b/src/main/java/io/paradaux/friendlybot/core/utils/HttpUtils.java similarity index 97% rename from src/main/java/io/paradaux/friendlybot/utils/HttpUtils.java rename to src/main/java/io/paradaux/friendlybot/core/utils/HttpUtils.java index d3d018a7..173d8995 100644 --- a/src/main/java/io/paradaux/friendlybot/utils/HttpUtils.java +++ b/src/main/java/io/paradaux/friendlybot/core/utils/HttpUtils.java @@ -23,7 +23,7 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.utils; +package io.paradaux.friendlybot.core.utils; import okhttp3.OkHttpClient; import okhttp3.Request; diff --git a/src/main/java/io/paradaux/friendlybot/utils/ImageUtils.java b/src/main/java/io/paradaux/friendlybot/core/utils/ImageUtils.java similarity index 94% rename from src/main/java/io/paradaux/friendlybot/utils/ImageUtils.java rename to src/main/java/io/paradaux/friendlybot/core/utils/ImageUtils.java index fe92ddfc..b408b669 100644 --- a/src/main/java/io/paradaux/friendlybot/utils/ImageUtils.java +++ b/src/main/java/io/paradaux/friendlybot/core/utils/ImageUtils.java @@ -1,4 +1,4 @@ -package io.paradaux.friendlybot.utils; +package io.paradaux.friendlybot.core.utils; import javax.imageio.ImageIO; import java.awt.image.BufferedImage; diff --git a/src/main/java/io/paradaux/friendlybot/utils/NumberUtils.java b/src/main/java/io/paradaux/friendlybot/core/utils/NumberUtils.java similarity index 97% rename from src/main/java/io/paradaux/friendlybot/utils/NumberUtils.java rename to src/main/java/io/paradaux/friendlybot/core/utils/NumberUtils.java index c411d078..55a2de1a 100644 --- a/src/main/java/io/paradaux/friendlybot/utils/NumberUtils.java +++ b/src/main/java/io/paradaux/friendlybot/core/utils/NumberUtils.java @@ -23,7 +23,7 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.utils; +package io.paradaux.friendlybot.core.utils; import javax.annotation.CheckReturnValue; diff --git a/src/main/java/io/paradaux/friendlybot/utils/RandomUtils.java b/src/main/java/io/paradaux/friendlybot/core/utils/RandomUtils.java similarity index 98% rename from src/main/java/io/paradaux/friendlybot/utils/RandomUtils.java rename to src/main/java/io/paradaux/friendlybot/core/utils/RandomUtils.java index bcdfb7a7..5f315305 100644 --- a/src/main/java/io/paradaux/friendlybot/utils/RandomUtils.java +++ b/src/main/java/io/paradaux/friendlybot/core/utils/RandomUtils.java @@ -23,7 +23,7 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.utils; +package io.paradaux.friendlybot.core.utils; import com.google.gson.JsonArray; import com.google.gson.JsonElement; diff --git a/src/main/java/io/paradaux/friendlybot/utils/StringUtils.java b/src/main/java/io/paradaux/friendlybot/core/utils/StringUtils.java similarity index 98% rename from src/main/java/io/paradaux/friendlybot/utils/StringUtils.java rename to src/main/java/io/paradaux/friendlybot/core/utils/StringUtils.java index d09067aa..2e130b23 100644 --- a/src/main/java/io/paradaux/friendlybot/utils/StringUtils.java +++ b/src/main/java/io/paradaux/friendlybot/core/utils/StringUtils.java @@ -23,13 +23,12 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.utils; +package io.paradaux.friendlybot.core.utils; import javax.annotation.Nullable; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; import java.util.Base64; -import java.util.Locale; import java.util.Random; import java.util.regex.Pattern; diff --git a/src/main/java/io/paradaux/friendlybot/utils/TimeUtils.java b/src/main/java/io/paradaux/friendlybot/core/utils/TimeUtils.java similarity index 99% rename from src/main/java/io/paradaux/friendlybot/utils/TimeUtils.java rename to src/main/java/io/paradaux/friendlybot/core/utils/TimeUtils.java index 6aeff770..e6ed4490 100644 --- a/src/main/java/io/paradaux/friendlybot/utils/TimeUtils.java +++ b/src/main/java/io/paradaux/friendlybot/core/utils/TimeUtils.java @@ -23,7 +23,7 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.utils; +package io.paradaux.friendlybot.core.utils; import java.time.*; import java.time.format.DateTimeFormatter; diff --git a/src/main/java/io/paradaux/friendlybot/utils/embeds/AuditLogEmbed.java b/src/main/java/io/paradaux/friendlybot/core/utils/embeds/AuditLogEmbed.java similarity index 92% rename from src/main/java/io/paradaux/friendlybot/utils/embeds/AuditLogEmbed.java rename to src/main/java/io/paradaux/friendlybot/core/utils/embeds/AuditLogEmbed.java index 574e3cf2..90f6869f 100644 --- a/src/main/java/io/paradaux/friendlybot/utils/embeds/AuditLogEmbed.java +++ b/src/main/java/io/paradaux/friendlybot/core/utils/embeds/AuditLogEmbed.java @@ -23,11 +23,11 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.utils.embeds; +package io.paradaux.friendlybot.core.utils.embeds; -import io.paradaux.friendlybot.utils.models.enums.EmbedColour; -import io.paradaux.friendlybot.utils.models.interfaces.Embed; -import io.paradaux.friendlybot.utils.models.types.ModerationAction; +import io.paradaux.friendlybot.core.utils.models.enums.EmbedColour; +import io.paradaux.friendlybot.core.utils.models.interfaces.Embed; +import io.paradaux.friendlybot.core.utils.models.types.ModerationAction; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.TextChannel; diff --git a/src/main/java/io/paradaux/friendlybot/utils/embeds/PoliticsRulesEmbed.java b/src/main/java/io/paradaux/friendlybot/core/utils/embeds/PoliticsRulesEmbed.java similarity index 95% rename from src/main/java/io/paradaux/friendlybot/utils/embeds/PoliticsRulesEmbed.java rename to src/main/java/io/paradaux/friendlybot/core/utils/embeds/PoliticsRulesEmbed.java index 34692076..df1ca7c9 100644 --- a/src/main/java/io/paradaux/friendlybot/utils/embeds/PoliticsRulesEmbed.java +++ b/src/main/java/io/paradaux/friendlybot/core/utils/embeds/PoliticsRulesEmbed.java @@ -23,10 +23,10 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.utils.embeds; +package io.paradaux.friendlybot.core.utils.embeds; -import io.paradaux.friendlybot.utils.models.enums.EmbedColour; -import io.paradaux.friendlybot.utils.models.interfaces.Embed; +import io.paradaux.friendlybot.core.utils.models.enums.EmbedColour; +import io.paradaux.friendlybot.core.utils.models.interfaces.Embed; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.TextChannel; diff --git a/src/main/java/io/paradaux/friendlybot/utils/embeds/RulesEmbed.java b/src/main/java/io/paradaux/friendlybot/core/utils/embeds/RulesEmbed.java similarity index 96% rename from src/main/java/io/paradaux/friendlybot/utils/embeds/RulesEmbed.java rename to src/main/java/io/paradaux/friendlybot/core/utils/embeds/RulesEmbed.java index b1a3b508..8d92731d 100644 --- a/src/main/java/io/paradaux/friendlybot/utils/embeds/RulesEmbed.java +++ b/src/main/java/io/paradaux/friendlybot/core/utils/embeds/RulesEmbed.java @@ -23,10 +23,10 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.utils.embeds; +package io.paradaux.friendlybot.core.utils.embeds; -import io.paradaux.friendlybot.utils.models.enums.EmbedColour; -import io.paradaux.friendlybot.utils.models.interfaces.Embed; +import io.paradaux.friendlybot.core.utils.models.enums.EmbedColour; +import io.paradaux.friendlybot.core.utils.models.interfaces.Embed; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.TextChannel; diff --git a/src/main/java/io/paradaux/friendlybot/utils/embeds/command/UserInfoEmbed.java b/src/main/java/io/paradaux/friendlybot/core/utils/embeds/command/UserInfoEmbed.java similarity index 92% rename from src/main/java/io/paradaux/friendlybot/utils/embeds/command/UserInfoEmbed.java rename to src/main/java/io/paradaux/friendlybot/core/utils/embeds/command/UserInfoEmbed.java index 777a5f4f..0e915f18 100644 --- a/src/main/java/io/paradaux/friendlybot/utils/embeds/command/UserInfoEmbed.java +++ b/src/main/java/io/paradaux/friendlybot/core/utils/embeds/command/UserInfoEmbed.java @@ -23,10 +23,10 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.utils.embeds.command; +package io.paradaux.friendlybot.core.utils.embeds.command; -import io.paradaux.friendlybot.utils.models.enums.EmbedColour; -import io.paradaux.friendlybot.utils.models.interfaces.Embed; +import io.paradaux.friendlybot.core.utils.models.enums.EmbedColour; +import io.paradaux.friendlybot.core.utils.models.interfaces.Embed; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.TextChannel; diff --git a/src/main/java/io/paradaux/friendlybot/utils/embeds/moderation/BannedEmbed.java b/src/main/java/io/paradaux/friendlybot/core/utils/embeds/moderation/BannedEmbed.java similarity index 92% rename from src/main/java/io/paradaux/friendlybot/utils/embeds/moderation/BannedEmbed.java rename to src/main/java/io/paradaux/friendlybot/core/utils/embeds/moderation/BannedEmbed.java index cdb312d0..44c47ced 100644 --- a/src/main/java/io/paradaux/friendlybot/utils/embeds/moderation/BannedEmbed.java +++ b/src/main/java/io/paradaux/friendlybot/core/utils/embeds/moderation/BannedEmbed.java @@ -23,10 +23,10 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.utils.embeds.moderation; +package io.paradaux.friendlybot.core.utils.embeds.moderation; -import io.paradaux.friendlybot.utils.models.enums.EmbedColour; -import io.paradaux.friendlybot.utils.models.interfaces.Embed; +import io.paradaux.friendlybot.core.utils.models.enums.EmbedColour; +import io.paradaux.friendlybot.core.utils.models.interfaces.Embed; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.TextChannel; diff --git a/src/main/java/io/paradaux/friendlybot/utils/embeds/moderation/ChatFilterTriggeredEmbed.java b/src/main/java/io/paradaux/friendlybot/core/utils/embeds/moderation/ChatFilterTriggeredEmbed.java similarity index 90% rename from src/main/java/io/paradaux/friendlybot/utils/embeds/moderation/ChatFilterTriggeredEmbed.java rename to src/main/java/io/paradaux/friendlybot/core/utils/embeds/moderation/ChatFilterTriggeredEmbed.java index f4cab77d..2fd9c1e9 100644 --- a/src/main/java/io/paradaux/friendlybot/utils/embeds/moderation/ChatFilterTriggeredEmbed.java +++ b/src/main/java/io/paradaux/friendlybot/core/utils/embeds/moderation/ChatFilterTriggeredEmbed.java @@ -23,11 +23,11 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.utils.embeds.moderation; +package io.paradaux.friendlybot.core.utils.embeds.moderation; -import io.paradaux.friendlybot.utils.models.enums.EmbedColour; -import io.paradaux.friendlybot.utils.models.interfaces.Embed; -import io.paradaux.friendlybot.utils.models.types.ModerationAction; +import io.paradaux.friendlybot.core.utils.models.enums.EmbedColour; +import io.paradaux.friendlybot.core.utils.models.interfaces.Embed; +import io.paradaux.friendlybot.core.utils.models.types.ModerationAction; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.TextChannel; diff --git a/src/main/java/io/paradaux/friendlybot/utils/embeds/moderation/CiteRuleEmbed.java b/src/main/java/io/paradaux/friendlybot/core/utils/embeds/moderation/CiteRuleEmbed.java similarity index 96% rename from src/main/java/io/paradaux/friendlybot/utils/embeds/moderation/CiteRuleEmbed.java rename to src/main/java/io/paradaux/friendlybot/core/utils/embeds/moderation/CiteRuleEmbed.java index f1ce9ee0..0a70b0ea 100644 --- a/src/main/java/io/paradaux/friendlybot/utils/embeds/moderation/CiteRuleEmbed.java +++ b/src/main/java/io/paradaux/friendlybot/core/utils/embeds/moderation/CiteRuleEmbed.java @@ -23,10 +23,10 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.utils.embeds.moderation; +package io.paradaux.friendlybot.core.utils.embeds.moderation; -import io.paradaux.friendlybot.utils.models.enums.EmbedColour; -import io.paradaux.friendlybot.utils.models.interfaces.Embed; +import io.paradaux.friendlybot.core.utils.models.enums.EmbedColour; +import io.paradaux.friendlybot.core.utils.models.interfaces.Embed; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.TextChannel; diff --git a/src/main/java/io/paradaux/friendlybot/utils/embeds/moderation/KickedEmbed.java b/src/main/java/io/paradaux/friendlybot/core/utils/embeds/moderation/KickedEmbed.java similarity index 92% rename from src/main/java/io/paradaux/friendlybot/utils/embeds/moderation/KickedEmbed.java rename to src/main/java/io/paradaux/friendlybot/core/utils/embeds/moderation/KickedEmbed.java index b7b72730..a85ec65f 100644 --- a/src/main/java/io/paradaux/friendlybot/utils/embeds/moderation/KickedEmbed.java +++ b/src/main/java/io/paradaux/friendlybot/core/utils/embeds/moderation/KickedEmbed.java @@ -23,10 +23,10 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.utils.embeds.moderation; +package io.paradaux.friendlybot.core.utils.embeds.moderation; -import io.paradaux.friendlybot.utils.models.enums.EmbedColour; -import io.paradaux.friendlybot.utils.models.interfaces.Embed; +import io.paradaux.friendlybot.core.utils.models.enums.EmbedColour; +import io.paradaux.friendlybot.core.utils.models.interfaces.Embed; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.TextChannel; diff --git a/src/main/java/io/paradaux/friendlybot/utils/embeds/moderation/TimedOutEmbed.java b/src/main/java/io/paradaux/friendlybot/core/utils/embeds/moderation/TimedOutEmbed.java similarity index 93% rename from src/main/java/io/paradaux/friendlybot/utils/embeds/moderation/TimedOutEmbed.java rename to src/main/java/io/paradaux/friendlybot/core/utils/embeds/moderation/TimedOutEmbed.java index 45856bbb..dd649bfa 100644 --- a/src/main/java/io/paradaux/friendlybot/utils/embeds/moderation/TimedOutEmbed.java +++ b/src/main/java/io/paradaux/friendlybot/core/utils/embeds/moderation/TimedOutEmbed.java @@ -23,9 +23,9 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.utils.embeds.moderation; +package io.paradaux.friendlybot.core.utils.embeds.moderation; -import io.paradaux.friendlybot.utils.models.interfaces.Embed; +import io.paradaux.friendlybot.core.utils.models.interfaces.Embed; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.TextChannel; diff --git a/src/main/java/io/paradaux/friendlybot/utils/embeds/moderation/WarningEmbed.java b/src/main/java/io/paradaux/friendlybot/core/utils/embeds/moderation/WarningEmbed.java similarity index 94% rename from src/main/java/io/paradaux/friendlybot/utils/embeds/moderation/WarningEmbed.java rename to src/main/java/io/paradaux/friendlybot/core/utils/embeds/moderation/WarningEmbed.java index 282e175f..d2fd5525 100644 --- a/src/main/java/io/paradaux/friendlybot/utils/embeds/moderation/WarningEmbed.java +++ b/src/main/java/io/paradaux/friendlybot/core/utils/embeds/moderation/WarningEmbed.java @@ -23,9 +23,9 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.utils.embeds.moderation; +package io.paradaux.friendlybot.core.utils.embeds.moderation; -import io.paradaux.friendlybot.utils.models.interfaces.Embed; +import io.paradaux.friendlybot.core.utils.models.interfaces.Embed; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.TextChannel; diff --git a/src/main/java/io/paradaux/friendlybot/utils/embeds/modmail/ModMailReceivedEmbed.java b/src/main/java/io/paradaux/friendlybot/core/utils/embeds/modmail/ModMailReceivedEmbed.java similarity index 93% rename from src/main/java/io/paradaux/friendlybot/utils/embeds/modmail/ModMailReceivedEmbed.java rename to src/main/java/io/paradaux/friendlybot/core/utils/embeds/modmail/ModMailReceivedEmbed.java index daf9fac2..ebdf4066 100644 --- a/src/main/java/io/paradaux/friendlybot/utils/embeds/modmail/ModMailReceivedEmbed.java +++ b/src/main/java/io/paradaux/friendlybot/core/utils/embeds/modmail/ModMailReceivedEmbed.java @@ -23,10 +23,10 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.utils.embeds.modmail; +package io.paradaux.friendlybot.core.utils.embeds.modmail; -import io.paradaux.friendlybot.utils.models.enums.EmbedColour; -import io.paradaux.friendlybot.utils.models.interfaces.Embed; +import io.paradaux.friendlybot.core.utils.models.enums.EmbedColour; +import io.paradaux.friendlybot.core.utils.models.interfaces.Embed; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.TextChannel; diff --git a/src/main/java/io/paradaux/friendlybot/utils/embeds/modmail/ModMailSentEmbed.java b/src/main/java/io/paradaux/friendlybot/core/utils/embeds/modmail/ModMailSentEmbed.java similarity index 92% rename from src/main/java/io/paradaux/friendlybot/utils/embeds/modmail/ModMailSentEmbed.java rename to src/main/java/io/paradaux/friendlybot/core/utils/embeds/modmail/ModMailSentEmbed.java index 8dfb654c..804a6a2e 100644 --- a/src/main/java/io/paradaux/friendlybot/utils/embeds/modmail/ModMailSentEmbed.java +++ b/src/main/java/io/paradaux/friendlybot/core/utils/embeds/modmail/ModMailSentEmbed.java @@ -23,10 +23,10 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.utils.embeds.modmail; +package io.paradaux.friendlybot.core.utils.embeds.modmail; -import io.paradaux.friendlybot.utils.models.enums.EmbedColour; -import io.paradaux.friendlybot.utils.models.interfaces.Embed; +import io.paradaux.friendlybot.core.utils.models.enums.EmbedColour; +import io.paradaux.friendlybot.core.utils.models.interfaces.Embed; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.TextChannel; diff --git a/src/main/java/io/paradaux/friendlybot/utils/embeds/notices/ModMailNoticeEmbed.java b/src/main/java/io/paradaux/friendlybot/core/utils/embeds/notices/ModMailNoticeEmbed.java similarity index 92% rename from src/main/java/io/paradaux/friendlybot/utils/embeds/notices/ModMailNoticeEmbed.java rename to src/main/java/io/paradaux/friendlybot/core/utils/embeds/notices/ModMailNoticeEmbed.java index 7e6ae10a..cbb82174 100644 --- a/src/main/java/io/paradaux/friendlybot/utils/embeds/notices/ModMailNoticeEmbed.java +++ b/src/main/java/io/paradaux/friendlybot/core/utils/embeds/notices/ModMailNoticeEmbed.java @@ -23,10 +23,10 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.utils.embeds.notices; +package io.paradaux.friendlybot.core.utils.embeds.notices; -import io.paradaux.friendlybot.utils.models.enums.EmbedColour; -import io.paradaux.friendlybot.utils.models.interfaces.Embed; +import io.paradaux.friendlybot.core.utils.models.enums.EmbedColour; +import io.paradaux.friendlybot.core.utils.models.interfaces.Embed; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.TextChannel; diff --git a/src/main/java/io/paradaux/friendlybot/utils/embeds/notices/NoPermissionEmbed.java b/src/main/java/io/paradaux/friendlybot/core/utils/embeds/notices/NoPermissionEmbed.java similarity index 91% rename from src/main/java/io/paradaux/friendlybot/utils/embeds/notices/NoPermissionEmbed.java rename to src/main/java/io/paradaux/friendlybot/core/utils/embeds/notices/NoPermissionEmbed.java index 2b474efb..a9474fa7 100644 --- a/src/main/java/io/paradaux/friendlybot/utils/embeds/notices/NoPermissionEmbed.java +++ b/src/main/java/io/paradaux/friendlybot/core/utils/embeds/notices/NoPermissionEmbed.java @@ -23,10 +23,10 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.utils.embeds.notices; +package io.paradaux.friendlybot.core.utils.embeds.notices; -import io.paradaux.friendlybot.utils.models.enums.EmbedColour; -import io.paradaux.friendlybot.utils.models.interfaces.Embed; +import io.paradaux.friendlybot.core.utils.models.enums.EmbedColour; +import io.paradaux.friendlybot.core.utils.models.interfaces.Embed; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.TextChannel; import net.dv8tion.jda.api.entities.User; diff --git a/src/main/java/io/paradaux/friendlybot/utils/embeds/notices/RulesAcceptanceNoticeEmbed.java b/src/main/java/io/paradaux/friendlybot/core/utils/embeds/notices/RulesAcceptanceNoticeEmbed.java similarity index 90% rename from src/main/java/io/paradaux/friendlybot/utils/embeds/notices/RulesAcceptanceNoticeEmbed.java rename to src/main/java/io/paradaux/friendlybot/core/utils/embeds/notices/RulesAcceptanceNoticeEmbed.java index 42cc9c9f..a1f10ff7 100644 --- a/src/main/java/io/paradaux/friendlybot/utils/embeds/notices/RulesAcceptanceNoticeEmbed.java +++ b/src/main/java/io/paradaux/friendlybot/core/utils/embeds/notices/RulesAcceptanceNoticeEmbed.java @@ -23,10 +23,10 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.utils.embeds.notices; +package io.paradaux.friendlybot.core.utils.embeds.notices; -import io.paradaux.friendlybot.utils.models.enums.EmbedColour; -import io.paradaux.friendlybot.utils.models.interfaces.Embed; +import io.paradaux.friendlybot.core.utils.models.enums.EmbedColour; +import io.paradaux.friendlybot.core.utils.models.interfaces.Embed; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.TextChannel; diff --git a/src/main/java/io/paradaux/friendlybot/utils/embeds/notices/SyntaxErrorEmbed.java b/src/main/java/io/paradaux/friendlybot/core/utils/embeds/notices/SyntaxErrorEmbed.java similarity index 91% rename from src/main/java/io/paradaux/friendlybot/utils/embeds/notices/SyntaxErrorEmbed.java rename to src/main/java/io/paradaux/friendlybot/core/utils/embeds/notices/SyntaxErrorEmbed.java index 6ffbfd9e..5b4a6c3b 100644 --- a/src/main/java/io/paradaux/friendlybot/utils/embeds/notices/SyntaxErrorEmbed.java +++ b/src/main/java/io/paradaux/friendlybot/core/utils/embeds/notices/SyntaxErrorEmbed.java @@ -23,10 +23,10 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.utils.embeds.notices; +package io.paradaux.friendlybot.core.utils.embeds.notices; -import io.paradaux.friendlybot.utils.models.enums.EmbedColour; -import io.paradaux.friendlybot.utils.models.interfaces.Embed; +import io.paradaux.friendlybot.core.utils.models.enums.EmbedColour; +import io.paradaux.friendlybot.core.utils.models.interfaces.Embed; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.TextChannel; import net.dv8tion.jda.api.entities.User; diff --git a/src/main/java/io/paradaux/friendlybot/utils/embeds/notices/VerificationNoticeEmbed.java b/src/main/java/io/paradaux/friendlybot/core/utils/embeds/notices/VerificationNoticeEmbed.java similarity index 95% rename from src/main/java/io/paradaux/friendlybot/utils/embeds/notices/VerificationNoticeEmbed.java rename to src/main/java/io/paradaux/friendlybot/core/utils/embeds/notices/VerificationNoticeEmbed.java index 72a3fee4..fcaeed7a 100644 --- a/src/main/java/io/paradaux/friendlybot/utils/embeds/notices/VerificationNoticeEmbed.java +++ b/src/main/java/io/paradaux/friendlybot/core/utils/embeds/notices/VerificationNoticeEmbed.java @@ -23,9 +23,9 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.utils.embeds.notices; +package io.paradaux.friendlybot.core.utils.embeds.notices; -import io.paradaux.friendlybot.utils.models.interfaces.Embed; +import io.paradaux.friendlybot.core.utils.models.interfaces.Embed; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.TextChannel; diff --git a/src/main/java/io/paradaux/friendlybot/utils/embeds/roleselection/ClassEmbed.java b/src/main/java/io/paradaux/friendlybot/core/utils/embeds/roleselection/ClassEmbed.java similarity index 93% rename from src/main/java/io/paradaux/friendlybot/utils/embeds/roleselection/ClassEmbed.java rename to src/main/java/io/paradaux/friendlybot/core/utils/embeds/roleselection/ClassEmbed.java index 8fd74f85..09a23766 100644 --- a/src/main/java/io/paradaux/friendlybot/utils/embeds/roleselection/ClassEmbed.java +++ b/src/main/java/io/paradaux/friendlybot/core/utils/embeds/roleselection/ClassEmbed.java @@ -23,9 +23,9 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.utils.embeds.roleselection; +package io.paradaux.friendlybot.core.utils.embeds.roleselection; -import io.paradaux.friendlybot.utils.models.interfaces.Embed; +import io.paradaux.friendlybot.core.utils.models.interfaces.Embed; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.TextChannel; diff --git a/src/main/java/io/paradaux/friendlybot/utils/embeds/roleselection/CourseEmbed.java b/src/main/java/io/paradaux/friendlybot/core/utils/embeds/roleselection/CourseEmbed.java similarity index 93% rename from src/main/java/io/paradaux/friendlybot/utils/embeds/roleselection/CourseEmbed.java rename to src/main/java/io/paradaux/friendlybot/core/utils/embeds/roleselection/CourseEmbed.java index 3f3f1c7e..93dfde71 100644 --- a/src/main/java/io/paradaux/friendlybot/utils/embeds/roleselection/CourseEmbed.java +++ b/src/main/java/io/paradaux/friendlybot/core/utils/embeds/roleselection/CourseEmbed.java @@ -23,9 +23,9 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.utils.embeds.roleselection; +package io.paradaux.friendlybot.core.utils.embeds.roleselection; -import io.paradaux.friendlybot.utils.models.interfaces.Embed; +import io.paradaux.friendlybot.core.utils.models.interfaces.Embed; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.TextChannel; diff --git a/src/main/java/io/paradaux/friendlybot/utils/embeds/roleselection/InterestsEmbed.java b/src/main/java/io/paradaux/friendlybot/core/utils/embeds/roleselection/InterestsEmbed.java similarity index 94% rename from src/main/java/io/paradaux/friendlybot/utils/embeds/roleselection/InterestsEmbed.java rename to src/main/java/io/paradaux/friendlybot/core/utils/embeds/roleselection/InterestsEmbed.java index c9668ed2..2c26b1e4 100644 --- a/src/main/java/io/paradaux/friendlybot/utils/embeds/roleselection/InterestsEmbed.java +++ b/src/main/java/io/paradaux/friendlybot/core/utils/embeds/roleselection/InterestsEmbed.java @@ -23,9 +23,9 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.utils.embeds.roleselection; +package io.paradaux.friendlybot.core.utils.embeds.roleselection; -import io.paradaux.friendlybot.utils.models.interfaces.Embed; +import io.paradaux.friendlybot.core.utils.models.interfaces.Embed; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.TextChannel; diff --git a/src/main/java/io/paradaux/friendlybot/utils/embeds/roleselection/PoliticsOptionEmbed.java b/src/main/java/io/paradaux/friendlybot/core/utils/embeds/roleselection/PoliticsOptionEmbed.java similarity index 93% rename from src/main/java/io/paradaux/friendlybot/utils/embeds/roleselection/PoliticsOptionEmbed.java rename to src/main/java/io/paradaux/friendlybot/core/utils/embeds/roleselection/PoliticsOptionEmbed.java index 88126e4c..6f8988a0 100644 --- a/src/main/java/io/paradaux/friendlybot/utils/embeds/roleselection/PoliticsOptionEmbed.java +++ b/src/main/java/io/paradaux/friendlybot/core/utils/embeds/roleselection/PoliticsOptionEmbed.java @@ -23,9 +23,9 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.utils.embeds.roleselection; +package io.paradaux.friendlybot.core.utils.embeds.roleselection; -import io.paradaux.friendlybot.utils.models.interfaces.Embed; +import io.paradaux.friendlybot.core.utils.models.interfaces.Embed; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.TextChannel; diff --git a/src/main/java/io/paradaux/friendlybot/utils/embeds/roleselection/PronounEmbed.java b/src/main/java/io/paradaux/friendlybot/core/utils/embeds/roleselection/PronounEmbed.java similarity index 94% rename from src/main/java/io/paradaux/friendlybot/utils/embeds/roleselection/PronounEmbed.java rename to src/main/java/io/paradaux/friendlybot/core/utils/embeds/roleselection/PronounEmbed.java index 3fdd9a6d..f63d4aea 100644 --- a/src/main/java/io/paradaux/friendlybot/utils/embeds/roleselection/PronounEmbed.java +++ b/src/main/java/io/paradaux/friendlybot/core/utils/embeds/roleselection/PronounEmbed.java @@ -23,9 +23,9 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.utils.embeds.roleselection; +package io.paradaux.friendlybot.core.utils.embeds.roleselection; -import io.paradaux.friendlybot.utils.models.interfaces.Embed; +import io.paradaux.friendlybot.core.utils.models.interfaces.Embed; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.TextChannel; diff --git a/src/main/java/io/paradaux/friendlybot/utils/embeds/roleselection/YearEmbed.java b/src/main/java/io/paradaux/friendlybot/core/utils/embeds/roleselection/YearEmbed.java similarity index 93% rename from src/main/java/io/paradaux/friendlybot/utils/embeds/roleselection/YearEmbed.java rename to src/main/java/io/paradaux/friendlybot/core/utils/embeds/roleselection/YearEmbed.java index b47c7e6b..8203405a 100644 --- a/src/main/java/io/paradaux/friendlybot/utils/embeds/roleselection/YearEmbed.java +++ b/src/main/java/io/paradaux/friendlybot/core/utils/embeds/roleselection/YearEmbed.java @@ -23,9 +23,9 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.utils.embeds.roleselection; +package io.paradaux.friendlybot.core.utils.embeds.roleselection; -import io.paradaux.friendlybot.utils.models.interfaces.Embed; +import io.paradaux.friendlybot.core.utils.models.interfaces.Embed; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.TextChannel; diff --git a/src/main/java/io/paradaux/friendlybot/utils/models/configuration/ConfigurationEntry.java b/src/main/java/io/paradaux/friendlybot/core/utils/models/configuration/ConfigurationEntry.java similarity index 99% rename from src/main/java/io/paradaux/friendlybot/utils/models/configuration/ConfigurationEntry.java rename to src/main/java/io/paradaux/friendlybot/core/utils/models/configuration/ConfigurationEntry.java index e39df207..2f29b4f3 100644 --- a/src/main/java/io/paradaux/friendlybot/utils/models/configuration/ConfigurationEntry.java +++ b/src/main/java/io/paradaux/friendlybot/core/utils/models/configuration/ConfigurationEntry.java @@ -23,7 +23,7 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.utils.models.configuration; +package io.paradaux.friendlybot.core.utils.models.configuration; import com.google.gson.annotations.SerializedName; import io.paradaux.friendlybot.managers.ConfigManager; diff --git a/src/main/java/io/paradaux/friendlybot/utils/models/configuration/PermissionEntry.java b/src/main/java/io/paradaux/friendlybot/core/utils/models/configuration/PermissionEntry.java similarity index 97% rename from src/main/java/io/paradaux/friendlybot/utils/models/configuration/PermissionEntry.java rename to src/main/java/io/paradaux/friendlybot/core/utils/models/configuration/PermissionEntry.java index e09afbbb..1748c32c 100644 --- a/src/main/java/io/paradaux/friendlybot/utils/models/configuration/PermissionEntry.java +++ b/src/main/java/io/paradaux/friendlybot/core/utils/models/configuration/PermissionEntry.java @@ -23,7 +23,7 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.utils.models.configuration; +package io.paradaux.friendlybot.core.utils.models.configuration; import com.google.gson.annotations.SerializedName; diff --git a/src/main/java/io/paradaux/friendlybot/utils/models/database/AuditLogEntry.java b/src/main/java/io/paradaux/friendlybot/core/utils/models/database/AuditLogEntry.java similarity index 96% rename from src/main/java/io/paradaux/friendlybot/utils/models/database/AuditLogEntry.java rename to src/main/java/io/paradaux/friendlybot/core/utils/models/database/AuditLogEntry.java index 5d9c8278..7be75860 100644 --- a/src/main/java/io/paradaux/friendlybot/utils/models/database/AuditLogEntry.java +++ b/src/main/java/io/paradaux/friendlybot/core/utils/models/database/AuditLogEntry.java @@ -23,9 +23,9 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.utils.models.database; +package io.paradaux.friendlybot.core.utils.models.database; -import io.paradaux.friendlybot.utils.models.types.ModerationAction; +import io.paradaux.friendlybot.core.utils.models.types.ModerationAction; import org.bson.codecs.pojo.annotations.BsonProperty; import java.io.Serializable; diff --git a/src/main/java/io/paradaux/friendlybot/utils/models/database/BanEntry.java b/src/main/java/io/paradaux/friendlybot/core/utils/models/database/BanEntry.java similarity index 98% rename from src/main/java/io/paradaux/friendlybot/utils/models/database/BanEntry.java rename to src/main/java/io/paradaux/friendlybot/core/utils/models/database/BanEntry.java index 0b04e7a9..a2184b76 100644 --- a/src/main/java/io/paradaux/friendlybot/utils/models/database/BanEntry.java +++ b/src/main/java/io/paradaux/friendlybot/core/utils/models/database/BanEntry.java @@ -23,7 +23,7 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.utils.models.database; +package io.paradaux.friendlybot.core.utils.models.database; import org.bson.codecs.pojo.annotations.BsonProperty; diff --git a/src/main/java/io/paradaux/friendlybot/utils/models/database/BotStats.java b/src/main/java/io/paradaux/friendlybot/core/utils/models/database/BotStats.java similarity index 95% rename from src/main/java/io/paradaux/friendlybot/utils/models/database/BotStats.java rename to src/main/java/io/paradaux/friendlybot/core/utils/models/database/BotStats.java index be98f786..acf36422 100644 --- a/src/main/java/io/paradaux/friendlybot/utils/models/database/BotStats.java +++ b/src/main/java/io/paradaux/friendlybot/core/utils/models/database/BotStats.java @@ -1,4 +1,4 @@ -package io.paradaux.friendlybot.utils.models.database; +package io.paradaux.friendlybot.core.utils.models.database; import org.bson.codecs.pojo.annotations.BsonProperty; diff --git a/src/main/java/io/paradaux/friendlybot/utils/models/database/GuildSettingsEntry.java b/src/main/java/io/paradaux/friendlybot/core/utils/models/database/GuildSettingsEntry.java similarity index 98% rename from src/main/java/io/paradaux/friendlybot/utils/models/database/GuildSettingsEntry.java rename to src/main/java/io/paradaux/friendlybot/core/utils/models/database/GuildSettingsEntry.java index 77374a1c..d6fd29ff 100644 --- a/src/main/java/io/paradaux/friendlybot/utils/models/database/GuildSettingsEntry.java +++ b/src/main/java/io/paradaux/friendlybot/core/utils/models/database/GuildSettingsEntry.java @@ -1,4 +1,4 @@ -package io.paradaux.friendlybot.utils.models.database; +package io.paradaux.friendlybot.core.utils.models.database; import io.paradaux.friendlybot.managers.GuildSettingsManager; import org.bson.codecs.pojo.annotations.BsonProperty; diff --git a/src/main/java/io/paradaux/friendlybot/utils/models/database/KickEntry.java b/src/main/java/io/paradaux/friendlybot/core/utils/models/database/KickEntry.java similarity index 98% rename from src/main/java/io/paradaux/friendlybot/utils/models/database/KickEntry.java rename to src/main/java/io/paradaux/friendlybot/core/utils/models/database/KickEntry.java index c63dc6a2..e9792dde 100644 --- a/src/main/java/io/paradaux/friendlybot/utils/models/database/KickEntry.java +++ b/src/main/java/io/paradaux/friendlybot/core/utils/models/database/KickEntry.java @@ -23,7 +23,7 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.utils.models.database; +package io.paradaux.friendlybot.core.utils.models.database; import org.bson.codecs.pojo.annotations.BsonProperty; diff --git a/src/main/java/io/paradaux/friendlybot/utils/models/database/MessageEntry.java b/src/main/java/io/paradaux/friendlybot/core/utils/models/database/MessageEntry.java similarity index 98% rename from src/main/java/io/paradaux/friendlybot/utils/models/database/MessageEntry.java rename to src/main/java/io/paradaux/friendlybot/core/utils/models/database/MessageEntry.java index e1bea965..a54253d9 100644 --- a/src/main/java/io/paradaux/friendlybot/utils/models/database/MessageEntry.java +++ b/src/main/java/io/paradaux/friendlybot/core/utils/models/database/MessageEntry.java @@ -23,7 +23,7 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.utils.models.database; +package io.paradaux.friendlybot.core.utils.models.database; import org.bson.codecs.pojo.annotations.BsonProperty; diff --git a/src/main/java/io/paradaux/friendlybot/utils/models/database/ModMailEntry.java b/src/main/java/io/paradaux/friendlybot/core/utils/models/database/ModMailEntry.java similarity index 97% rename from src/main/java/io/paradaux/friendlybot/utils/models/database/ModMailEntry.java rename to src/main/java/io/paradaux/friendlybot/core/utils/models/database/ModMailEntry.java index 8ebca3cc..aa8de16b 100644 --- a/src/main/java/io/paradaux/friendlybot/utils/models/database/ModMailEntry.java +++ b/src/main/java/io/paradaux/friendlybot/core/utils/models/database/ModMailEntry.java @@ -23,9 +23,9 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.utils.models.database; +package io.paradaux.friendlybot.core.utils.models.database; -import io.paradaux.friendlybot.utils.models.enums.TicketStatus; +import io.paradaux.friendlybot.core.utils.models.enums.TicketStatus; import org.bson.codecs.pojo.annotations.BsonProperty; import java.io.Serializable; diff --git a/src/main/java/io/paradaux/friendlybot/utils/models/database/ModMailResponse.java b/src/main/java/io/paradaux/friendlybot/core/utils/models/database/ModMailResponse.java similarity index 97% rename from src/main/java/io/paradaux/friendlybot/utils/models/database/ModMailResponse.java rename to src/main/java/io/paradaux/friendlybot/core/utils/models/database/ModMailResponse.java index 3c02ff48..66a58fd1 100644 --- a/src/main/java/io/paradaux/friendlybot/utils/models/database/ModMailResponse.java +++ b/src/main/java/io/paradaux/friendlybot/core/utils/models/database/ModMailResponse.java @@ -23,7 +23,7 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.utils.models.database; +package io.paradaux.friendlybot.core.utils.models.database; import org.bson.codecs.pojo.annotations.BsonProperty; diff --git a/src/main/java/io/paradaux/friendlybot/utils/models/database/PendingVerificationEntry.java b/src/main/java/io/paradaux/friendlybot/core/utils/models/database/PendingVerificationEntry.java similarity index 97% rename from src/main/java/io/paradaux/friendlybot/utils/models/database/PendingVerificationEntry.java rename to src/main/java/io/paradaux/friendlybot/core/utils/models/database/PendingVerificationEntry.java index 0d23f8aa..3abf7511 100644 --- a/src/main/java/io/paradaux/friendlybot/utils/models/database/PendingVerificationEntry.java +++ b/src/main/java/io/paradaux/friendlybot/core/utils/models/database/PendingVerificationEntry.java @@ -23,7 +23,7 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.utils.models.database; +package io.paradaux.friendlybot.core.utils.models.database; import org.bson.codecs.pojo.annotations.BsonProperty; diff --git a/src/main/java/io/paradaux/friendlybot/utils/models/database/RescindmentEntry.java b/src/main/java/io/paradaux/friendlybot/core/utils/models/database/RescindmentEntry.java similarity index 96% rename from src/main/java/io/paradaux/friendlybot/utils/models/database/RescindmentEntry.java rename to src/main/java/io/paradaux/friendlybot/core/utils/models/database/RescindmentEntry.java index 96521919..445b7334 100644 --- a/src/main/java/io/paradaux/friendlybot/utils/models/database/RescindmentEntry.java +++ b/src/main/java/io/paradaux/friendlybot/core/utils/models/database/RescindmentEntry.java @@ -1,6 +1,6 @@ -package io.paradaux.friendlybot.utils.models.database; +package io.paradaux.friendlybot.core.utils.models.database; -import io.paradaux.friendlybot.utils.models.types.ModerationAction; +import io.paradaux.friendlybot.core.utils.models.types.ModerationAction; import org.bson.codecs.pojo.annotations.BsonProperty; import java.io.Serializable; diff --git a/src/main/java/io/paradaux/friendlybot/utils/models/database/TagEntry.java b/src/main/java/io/paradaux/friendlybot/core/utils/models/database/TagEntry.java similarity index 98% rename from src/main/java/io/paradaux/friendlybot/utils/models/database/TagEntry.java rename to src/main/java/io/paradaux/friendlybot/core/utils/models/database/TagEntry.java index 3fcf8798..85991a95 100644 --- a/src/main/java/io/paradaux/friendlybot/utils/models/database/TagEntry.java +++ b/src/main/java/io/paradaux/friendlybot/core/utils/models/database/TagEntry.java @@ -23,7 +23,7 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.utils.models.database; +package io.paradaux.friendlybot.core.utils.models.database; import org.bson.codecs.pojo.annotations.BsonProperty; diff --git a/src/main/java/io/paradaux/friendlybot/utils/models/database/TempBanEntry.java b/src/main/java/io/paradaux/friendlybot/core/utils/models/database/TempBanEntry.java similarity index 98% rename from src/main/java/io/paradaux/friendlybot/utils/models/database/TempBanEntry.java rename to src/main/java/io/paradaux/friendlybot/core/utils/models/database/TempBanEntry.java index 53a92adf..54868807 100644 --- a/src/main/java/io/paradaux/friendlybot/utils/models/database/TempBanEntry.java +++ b/src/main/java/io/paradaux/friendlybot/core/utils/models/database/TempBanEntry.java @@ -23,7 +23,7 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.utils.models.database; +package io.paradaux.friendlybot.core.utils.models.database; import org.bson.codecs.pojo.annotations.BsonProperty; diff --git a/src/main/java/io/paradaux/friendlybot/utils/models/database/UserSettingsEntry.java b/src/main/java/io/paradaux/friendlybot/core/utils/models/database/UserSettingsEntry.java similarity index 98% rename from src/main/java/io/paradaux/friendlybot/utils/models/database/UserSettingsEntry.java rename to src/main/java/io/paradaux/friendlybot/core/utils/models/database/UserSettingsEntry.java index 1b5355fa..ea0ab01d 100644 --- a/src/main/java/io/paradaux/friendlybot/utils/models/database/UserSettingsEntry.java +++ b/src/main/java/io/paradaux/friendlybot/core/utils/models/database/UserSettingsEntry.java @@ -23,7 +23,7 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.utils.models.database; +package io.paradaux.friendlybot.core.utils.models.database; import org.bson.codecs.pojo.annotations.BsonProperty; diff --git a/src/main/java/io/paradaux/friendlybot/utils/models/database/VerificationEntry.java b/src/main/java/io/paradaux/friendlybot/core/utils/models/database/VerificationEntry.java similarity index 97% rename from src/main/java/io/paradaux/friendlybot/utils/models/database/VerificationEntry.java rename to src/main/java/io/paradaux/friendlybot/core/utils/models/database/VerificationEntry.java index 09a1a7a9..fa807b49 100644 --- a/src/main/java/io/paradaux/friendlybot/utils/models/database/VerificationEntry.java +++ b/src/main/java/io/paradaux/friendlybot/core/utils/models/database/VerificationEntry.java @@ -23,7 +23,7 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.utils.models.database; +package io.paradaux.friendlybot.core.utils.models.database; import org.bson.codecs.pojo.annotations.BsonProperty; diff --git a/src/main/java/io/paradaux/friendlybot/utils/models/database/WarningEntry.java b/src/main/java/io/paradaux/friendlybot/core/utils/models/database/WarningEntry.java similarity index 98% rename from src/main/java/io/paradaux/friendlybot/utils/models/database/WarningEntry.java rename to src/main/java/io/paradaux/friendlybot/core/utils/models/database/WarningEntry.java index f87a1354..ae3b468f 100644 --- a/src/main/java/io/paradaux/friendlybot/utils/models/database/WarningEntry.java +++ b/src/main/java/io/paradaux/friendlybot/core/utils/models/database/WarningEntry.java @@ -23,7 +23,7 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.utils.models.database; +package io.paradaux.friendlybot.core.utils.models.database; import org.bson.codecs.pojo.annotations.BsonProperty; diff --git a/src/main/java/io/paradaux/friendlybot/utils/models/enums/EmbedColour.java b/src/main/java/io/paradaux/friendlybot/core/utils/models/enums/EmbedColour.java similarity index 97% rename from src/main/java/io/paradaux/friendlybot/utils/models/enums/EmbedColour.java rename to src/main/java/io/paradaux/friendlybot/core/utils/models/enums/EmbedColour.java index c4506d70..99aa2fd8 100644 --- a/src/main/java/io/paradaux/friendlybot/utils/models/enums/EmbedColour.java +++ b/src/main/java/io/paradaux/friendlybot/core/utils/models/enums/EmbedColour.java @@ -23,7 +23,7 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.utils.models.enums; +package io.paradaux.friendlybot.core.utils.models.enums; import javax.annotation.Nullable; diff --git a/src/main/java/io/paradaux/friendlybot/core/utils/models/enums/TicketStatus.java b/src/main/java/io/paradaux/friendlybot/core/utils/models/enums/TicketStatus.java new file mode 100644 index 00000000..83de3e8a --- /dev/null +++ b/src/main/java/io/paradaux/friendlybot/core/utils/models/enums/TicketStatus.java @@ -0,0 +1,5 @@ +package io.paradaux.friendlybot.core.utils.models.enums; + +public enum TicketStatus { + OPEN, CLOSED +} diff --git a/src/main/java/io/paradaux/friendlybot/utils/models/exceptions/ManagerNotReadyException.java b/src/main/java/io/paradaux/friendlybot/core/utils/models/exceptions/ManagerNotReadyException.java similarity index 96% rename from src/main/java/io/paradaux/friendlybot/utils/models/exceptions/ManagerNotReadyException.java rename to src/main/java/io/paradaux/friendlybot/core/utils/models/exceptions/ManagerNotReadyException.java index f80a0bc3..5697faec 100644 --- a/src/main/java/io/paradaux/friendlybot/utils/models/exceptions/ManagerNotReadyException.java +++ b/src/main/java/io/paradaux/friendlybot/core/utils/models/exceptions/ManagerNotReadyException.java @@ -23,7 +23,7 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.utils.models.exceptions; +package io.paradaux.friendlybot.core.utils.models.exceptions; public class ManagerNotReadyException extends RuntimeException { diff --git a/src/main/java/io/paradaux/friendlybot/utils/models/exceptions/NoSuchResourceException.java b/src/main/java/io/paradaux/friendlybot/core/utils/models/exceptions/NoSuchResourceException.java similarity index 96% rename from src/main/java/io/paradaux/friendlybot/utils/models/exceptions/NoSuchResourceException.java rename to src/main/java/io/paradaux/friendlybot/core/utils/models/exceptions/NoSuchResourceException.java index 479d47d7..c50b9c5c 100644 --- a/src/main/java/io/paradaux/friendlybot/utils/models/exceptions/NoSuchResourceException.java +++ b/src/main/java/io/paradaux/friendlybot/core/utils/models/exceptions/NoSuchResourceException.java @@ -23,7 +23,7 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.utils.models.exceptions; +package io.paradaux.friendlybot.core.utils.models.exceptions; public class NoSuchResourceException extends RuntimeException { diff --git a/src/main/java/io/paradaux/friendlybot/utils/models/exceptions/NoSuchUserException.java b/src/main/java/io/paradaux/friendlybot/core/utils/models/exceptions/NoSuchUserException.java similarity index 96% rename from src/main/java/io/paradaux/friendlybot/utils/models/exceptions/NoSuchUserException.java rename to src/main/java/io/paradaux/friendlybot/core/utils/models/exceptions/NoSuchUserException.java index 0d23d0fa..c713554e 100644 --- a/src/main/java/io/paradaux/friendlybot/utils/models/exceptions/NoSuchUserException.java +++ b/src/main/java/io/paradaux/friendlybot/core/utils/models/exceptions/NoSuchUserException.java @@ -23,7 +23,7 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.utils.models.exceptions; +package io.paradaux.friendlybot.core.utils.models.exceptions; public class NoSuchUserException extends RuntimeException { diff --git a/src/main/java/io/paradaux/friendlybot/utils/models/exceptions/VerificationException.java b/src/main/java/io/paradaux/friendlybot/core/utils/models/exceptions/VerificationException.java similarity index 96% rename from src/main/java/io/paradaux/friendlybot/utils/models/exceptions/VerificationException.java rename to src/main/java/io/paradaux/friendlybot/core/utils/models/exceptions/VerificationException.java index 97e78005..6eec8ee9 100644 --- a/src/main/java/io/paradaux/friendlybot/utils/models/exceptions/VerificationException.java +++ b/src/main/java/io/paradaux/friendlybot/core/utils/models/exceptions/VerificationException.java @@ -23,7 +23,7 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.utils.models.exceptions; +package io.paradaux.friendlybot.core.utils.models.exceptions; public class VerificationException extends RuntimeException { diff --git a/src/main/java/io/paradaux/friendlybot/utils/models/interfaces/Embed.java b/src/main/java/io/paradaux/friendlybot/core/utils/models/interfaces/Embed.java similarity index 95% rename from src/main/java/io/paradaux/friendlybot/utils/models/interfaces/Embed.java rename to src/main/java/io/paradaux/friendlybot/core/utils/models/interfaces/Embed.java index 7c68ee79..9468e9d0 100644 --- a/src/main/java/io/paradaux/friendlybot/utils/models/interfaces/Embed.java +++ b/src/main/java/io/paradaux/friendlybot/core/utils/models/interfaces/Embed.java @@ -23,7 +23,7 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.utils.models.interfaces; +package io.paradaux.friendlybot.core.utils.models.interfaces; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.TextChannel; diff --git a/src/main/java/io/paradaux/friendlybot/utils/models/types/BaseCommand.java b/src/main/java/io/paradaux/friendlybot/core/utils/models/types/BaseCommand.java similarity index 95% rename from src/main/java/io/paradaux/friendlybot/utils/models/types/BaseCommand.java rename to src/main/java/io/paradaux/friendlybot/core/utils/models/types/BaseCommand.java index 301213df..d17138e4 100644 --- a/src/main/java/io/paradaux/friendlybot/utils/models/types/BaseCommand.java +++ b/src/main/java/io/paradaux/friendlybot/core/utils/models/types/BaseCommand.java @@ -23,13 +23,13 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.utils.models.types; +package io.paradaux.friendlybot.core.utils.models.types; import com.jagrosh.jdautilities.command.Command; import io.paradaux.friendlybot.managers.PermissionManager; -import io.paradaux.friendlybot.utils.embeds.notices.SyntaxErrorEmbed; -import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.utils.models.exceptions.NoSuchUserException; +import io.paradaux.friendlybot.core.utils.embeds.notices.SyntaxErrorEmbed; +import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.core.utils.models.exceptions.NoSuchUserException; import net.dv8tion.jda.api.entities.Guild; import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Message; diff --git a/src/main/java/io/paradaux/friendlybot/utils/models/types/DiscordEventListener.java b/src/main/java/io/paradaux/friendlybot/core/utils/models/types/DiscordEventListener.java similarity index 92% rename from src/main/java/io/paradaux/friendlybot/utils/models/types/DiscordEventListener.java rename to src/main/java/io/paradaux/friendlybot/core/utils/models/types/DiscordEventListener.java index 89a27be2..f3726c9c 100644 --- a/src/main/java/io/paradaux/friendlybot/utils/models/types/DiscordEventListener.java +++ b/src/main/java/io/paradaux/friendlybot/core/utils/models/types/DiscordEventListener.java @@ -23,9 +23,9 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.utils.models.types; +package io.paradaux.friendlybot.core.utils.models.types; -import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import net.dv8tion.jda.api.hooks.ListenerAdapter; import org.slf4j.Logger; diff --git a/src/main/java/io/paradaux/friendlybot/utils/models/types/ModerationAction.java b/src/main/java/io/paradaux/friendlybot/core/utils/models/types/ModerationAction.java similarity index 58% rename from src/main/java/io/paradaux/friendlybot/utils/models/types/ModerationAction.java rename to src/main/java/io/paradaux/friendlybot/core/utils/models/types/ModerationAction.java index 84624b45..23846161 100644 --- a/src/main/java/io/paradaux/friendlybot/utils/models/types/ModerationAction.java +++ b/src/main/java/io/paradaux/friendlybot/core/utils/models/types/ModerationAction.java @@ -1,4 +1,4 @@ -package io.paradaux.friendlybot.utils.models.types; +package io.paradaux.friendlybot.core.utils.models.types; public enum ModerationAction { diff --git a/src/main/java/io/paradaux/friendlybot/utils/models/types/PrivilegedCommand.java b/src/main/java/io/paradaux/friendlybot/core/utils/models/types/PrivilegedCommand.java similarity index 92% rename from src/main/java/io/paradaux/friendlybot/utils/models/types/PrivilegedCommand.java rename to src/main/java/io/paradaux/friendlybot/core/utils/models/types/PrivilegedCommand.java index 79580885..76986e05 100644 --- a/src/main/java/io/paradaux/friendlybot/utils/models/types/PrivilegedCommand.java +++ b/src/main/java/io/paradaux/friendlybot/core/utils/models/types/PrivilegedCommand.java @@ -23,12 +23,11 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.utils.models.types; +package io.paradaux.friendlybot.core.utils.models.types; -import io.paradaux.friendlybot.managers.DiscordBotManager; import io.paradaux.friendlybot.managers.PermissionManager; -import io.paradaux.friendlybot.utils.embeds.notices.NoPermissionEmbed; -import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.core.utils.embeds.notices.NoPermissionEmbed; +import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import net.dv8tion.jda.api.Permission; import net.dv8tion.jda.api.entities.Guild; import net.dv8tion.jda.api.entities.Member; diff --git a/src/main/java/io/paradaux/friendlybot/commands/fun/CatCommand.java b/src/main/java/io/paradaux/friendlybot/discord/commands/fun/CatCommand.java similarity index 83% rename from src/main/java/io/paradaux/friendlybot/commands/fun/CatCommand.java rename to src/main/java/io/paradaux/friendlybot/discord/commands/fun/CatCommand.java index 4fbc73e9..120e721c 100644 --- a/src/main/java/io/paradaux/friendlybot/commands/fun/CatCommand.java +++ b/src/main/java/io/paradaux/friendlybot/discord/commands/fun/CatCommand.java @@ -1,9 +1,9 @@ -package io.paradaux.friendlybot.commands.fun; +package io.paradaux.friendlybot.discord.commands.fun; import com.jagrosh.jdautilities.command.CommandEvent; -import io.paradaux.friendlybot.utils.NumberUtils; -import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.utils.models.types.BaseCommand; +import io.paradaux.friendlybot.core.utils.NumberUtils; +import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; import io.paradaux.http.HttpApi; import net.dv8tion.jda.api.EmbedBuilder; import org.json.JSONArray; diff --git a/src/main/java/io/paradaux/friendlybot/commands/fun/CharmanderCommand.java b/src/main/java/io/paradaux/friendlybot/discord/commands/fun/CharmanderCommand.java similarity index 80% rename from src/main/java/io/paradaux/friendlybot/commands/fun/CharmanderCommand.java rename to src/main/java/io/paradaux/friendlybot/discord/commands/fun/CharmanderCommand.java index 859ae61d..d5635c64 100644 --- a/src/main/java/io/paradaux/friendlybot/commands/fun/CharmanderCommand.java +++ b/src/main/java/io/paradaux/friendlybot/discord/commands/fun/CharmanderCommand.java @@ -1,10 +1,10 @@ -package io.paradaux.friendlybot.commands.fun; +package io.paradaux.friendlybot.discord.commands.fun; import com.jagrosh.jdautilities.command.CommandEvent; -import io.paradaux.friendlybot.utils.NumberUtils; -import io.paradaux.friendlybot.utils.RandomUtils; -import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.utils.models.types.BaseCommand; +import io.paradaux.friendlybot.core.utils.NumberUtils; +import io.paradaux.friendlybot.core.utils.RandomUtils; +import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; import net.dv8tion.jda.api.EmbedBuilder; import org.slf4j.Logger; diff --git a/src/main/java/io/paradaux/friendlybot/commands/fun/CoinFlipCommand.java b/src/main/java/io/paradaux/friendlybot/discord/commands/fun/CoinFlipCommand.java similarity index 85% rename from src/main/java/io/paradaux/friendlybot/commands/fun/CoinFlipCommand.java rename to src/main/java/io/paradaux/friendlybot/discord/commands/fun/CoinFlipCommand.java index 53211933..7c25b7b6 100644 --- a/src/main/java/io/paradaux/friendlybot/commands/fun/CoinFlipCommand.java +++ b/src/main/java/io/paradaux/friendlybot/discord/commands/fun/CoinFlipCommand.java @@ -1,10 +1,10 @@ -package io.paradaux.friendlybot.commands.fun; +package io.paradaux.friendlybot.discord.commands.fun; import com.jagrosh.jdautilities.command.CommandEvent; -import io.paradaux.friendlybot.utils.NumberUtils; -import io.paradaux.friendlybot.utils.RandomUtils; -import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.utils.models.types.BaseCommand; +import io.paradaux.friendlybot.core.utils.NumberUtils; +import io.paradaux.friendlybot.core.utils.RandomUtils; +import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.Message; import net.dv8tion.jda.api.entities.MessageEmbed; diff --git a/src/main/java/io/paradaux/friendlybot/commands/fun/DogCommand.java b/src/main/java/io/paradaux/friendlybot/discord/commands/fun/DogCommand.java similarity index 82% rename from src/main/java/io/paradaux/friendlybot/commands/fun/DogCommand.java rename to src/main/java/io/paradaux/friendlybot/discord/commands/fun/DogCommand.java index f55e76ba..f9dad6ef 100644 --- a/src/main/java/io/paradaux/friendlybot/commands/fun/DogCommand.java +++ b/src/main/java/io/paradaux/friendlybot/discord/commands/fun/DogCommand.java @@ -1,9 +1,9 @@ -package io.paradaux.friendlybot.commands.fun; +package io.paradaux.friendlybot.discord.commands.fun; import com.jagrosh.jdautilities.command.CommandEvent; -import io.paradaux.friendlybot.utils.NumberUtils; -import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.utils.models.types.BaseCommand; +import io.paradaux.friendlybot.core.utils.NumberUtils; +import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; import io.paradaux.http.HttpApi; import net.dv8tion.jda.api.EmbedBuilder; import org.json.JSONObject; diff --git a/src/main/java/io/paradaux/friendlybot/commands/fun/EightBallCommand.java b/src/main/java/io/paradaux/friendlybot/discord/commands/fun/EightBallCommand.java similarity index 93% rename from src/main/java/io/paradaux/friendlybot/commands/fun/EightBallCommand.java rename to src/main/java/io/paradaux/friendlybot/discord/commands/fun/EightBallCommand.java index 6dc49a07..f87b991e 100644 --- a/src/main/java/io/paradaux/friendlybot/commands/fun/EightBallCommand.java +++ b/src/main/java/io/paradaux/friendlybot/discord/commands/fun/EightBallCommand.java @@ -23,7 +23,7 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.commands.fun; +package io.paradaux.friendlybot.discord.commands.fun; import com.google.gson.Gson; import com.google.gson.JsonArray; @@ -31,10 +31,10 @@ import com.google.gson.JsonObject; import com.google.gson.stream.JsonReader; import com.jagrosh.jdautilities.command.CommandEvent; -import io.paradaux.friendlybot.utils.NumberUtils; -import io.paradaux.friendlybot.utils.RandomUtils; -import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.utils.models.types.BaseCommand; +import io.paradaux.friendlybot.core.utils.NumberUtils; +import io.paradaux.friendlybot.core.utils.RandomUtils; +import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.Message; import net.dv8tion.jda.api.entities.MessageEmbed; diff --git a/src/main/java/io/paradaux/friendlybot/commands/fun/InspireCommand.java b/src/main/java/io/paradaux/friendlybot/discord/commands/fun/InspireCommand.java similarity index 90% rename from src/main/java/io/paradaux/friendlybot/commands/fun/InspireCommand.java rename to src/main/java/io/paradaux/friendlybot/discord/commands/fun/InspireCommand.java index 16c43e94..4c37f840 100644 --- a/src/main/java/io/paradaux/friendlybot/commands/fun/InspireCommand.java +++ b/src/main/java/io/paradaux/friendlybot/discord/commands/fun/InspireCommand.java @@ -23,12 +23,12 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.commands.fun; +package io.paradaux.friendlybot.discord.commands.fun; import com.jagrosh.jdautilities.command.CommandEvent; -import io.paradaux.friendlybot.utils.NumberUtils; -import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.utils.models.types.BaseCommand; +import io.paradaux.friendlybot.core.utils.NumberUtils; +import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; import io.paradaux.http.HttpApi; import net.dv8tion.jda.api.EmbedBuilder; import org.slf4j.Logger; diff --git a/src/main/java/io/paradaux/friendlybot/commands/fun/LmgtfyCommand.java b/src/main/java/io/paradaux/friendlybot/discord/commands/fun/LmgtfyCommand.java similarity index 91% rename from src/main/java/io/paradaux/friendlybot/commands/fun/LmgtfyCommand.java rename to src/main/java/io/paradaux/friendlybot/discord/commands/fun/LmgtfyCommand.java index 052095d7..79cf447f 100644 --- a/src/main/java/io/paradaux/friendlybot/commands/fun/LmgtfyCommand.java +++ b/src/main/java/io/paradaux/friendlybot/discord/commands/fun/LmgtfyCommand.java @@ -23,11 +23,11 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.commands.fun; +package io.paradaux.friendlybot.discord.commands.fun; import com.jagrosh.jdautilities.command.CommandEvent; -import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.utils.models.types.BaseCommand; +import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.Message; import org.slf4j.Logger; diff --git a/src/main/java/io/paradaux/friendlybot/commands/fun/MemeCommand.java b/src/main/java/io/paradaux/friendlybot/discord/commands/fun/MemeCommand.java similarity index 94% rename from src/main/java/io/paradaux/friendlybot/commands/fun/MemeCommand.java rename to src/main/java/io/paradaux/friendlybot/discord/commands/fun/MemeCommand.java index c1fb5ff5..3113d5eb 100644 --- a/src/main/java/io/paradaux/friendlybot/commands/fun/MemeCommand.java +++ b/src/main/java/io/paradaux/friendlybot/discord/commands/fun/MemeCommand.java @@ -23,14 +23,14 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.commands.fun; +package io.paradaux.friendlybot.discord.commands.fun; import com.jagrosh.jdautilities.command.CommandEvent; -import io.paradaux.friendlybot.utils.HttpUtils; -import io.paradaux.friendlybot.utils.NumberUtils; -import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.utils.models.exceptions.VerificationException; -import io.paradaux.friendlybot.utils.models.types.BaseCommand; +import io.paradaux.friendlybot.core.utils.HttpUtils; +import io.paradaux.friendlybot.core.utils.NumberUtils; +import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.core.utils.models.exceptions.VerificationException; +import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; import io.paradaux.http.HttpApi; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.Message; diff --git a/src/main/java/io/paradaux/friendlybot/commands/fun/MonkeCommand.java b/src/main/java/io/paradaux/friendlybot/discord/commands/fun/MonkeCommand.java similarity index 88% rename from src/main/java/io/paradaux/friendlybot/commands/fun/MonkeCommand.java rename to src/main/java/io/paradaux/friendlybot/discord/commands/fun/MonkeCommand.java index 51381cc6..51bc3de0 100644 --- a/src/main/java/io/paradaux/friendlybot/commands/fun/MonkeCommand.java +++ b/src/main/java/io/paradaux/friendlybot/discord/commands/fun/MonkeCommand.java @@ -1,11 +1,11 @@ -package io.paradaux.friendlybot.commands.fun; +package io.paradaux.friendlybot.discord.commands.fun; import com.jagrosh.jdautilities.command.CommandEvent; -import io.paradaux.friendlybot.utils.HttpUtils; -import io.paradaux.friendlybot.utils.NumberUtils; -import io.paradaux.friendlybot.utils.RandomUtils; -import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.utils.models.types.BaseCommand; +import io.paradaux.friendlybot.core.utils.HttpUtils; +import io.paradaux.friendlybot.core.utils.NumberUtils; +import io.paradaux.friendlybot.core.utils.RandomUtils; +import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.MessageEmbed; import okhttp3.MultipartBody; diff --git a/src/main/java/io/paradaux/friendlybot/commands/fun/MonkeyCommand.java b/src/main/java/io/paradaux/friendlybot/discord/commands/fun/MonkeyCommand.java similarity index 87% rename from src/main/java/io/paradaux/friendlybot/commands/fun/MonkeyCommand.java rename to src/main/java/io/paradaux/friendlybot/discord/commands/fun/MonkeyCommand.java index 5a796f2d..da9ce0ab 100644 --- a/src/main/java/io/paradaux/friendlybot/commands/fun/MonkeyCommand.java +++ b/src/main/java/io/paradaux/friendlybot/discord/commands/fun/MonkeyCommand.java @@ -1,9 +1,9 @@ -package io.paradaux.friendlybot.commands.fun; +package io.paradaux.friendlybot.discord.commands.fun; import com.jagrosh.jdautilities.command.CommandEvent; -import io.paradaux.friendlybot.utils.NumberUtils; -import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.utils.models.types.BaseCommand; +import io.paradaux.friendlybot.core.utils.NumberUtils; +import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; import io.paradaux.http.HttpApi; import net.dv8tion.jda.api.EmbedBuilder; import org.json.JSONObject; diff --git a/src/main/java/io/paradaux/friendlybot/commands/fun/XKCDCommand.java b/src/main/java/io/paradaux/friendlybot/discord/commands/fun/XKCDCommand.java similarity index 93% rename from src/main/java/io/paradaux/friendlybot/commands/fun/XKCDCommand.java rename to src/main/java/io/paradaux/friendlybot/discord/commands/fun/XKCDCommand.java index 02fa9cba..524b61c8 100644 --- a/src/main/java/io/paradaux/friendlybot/commands/fun/XKCDCommand.java +++ b/src/main/java/io/paradaux/friendlybot/discord/commands/fun/XKCDCommand.java @@ -23,12 +23,12 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.commands.fun; +package io.paradaux.friendlybot.discord.commands.fun; import com.jagrosh.jdautilities.command.CommandEvent; -import io.paradaux.friendlybot.utils.NumberUtils; -import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.utils.models.types.BaseCommand; +import io.paradaux.friendlybot.core.utils.NumberUtils; +import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; import io.paradaux.http.HttpApi; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.Message; diff --git a/src/main/java/io/paradaux/friendlybot/commands/fun/YodaifyCommand.java b/src/main/java/io/paradaux/friendlybot/discord/commands/fun/YodaifyCommand.java similarity index 93% rename from src/main/java/io/paradaux/friendlybot/commands/fun/YodaifyCommand.java rename to src/main/java/io/paradaux/friendlybot/discord/commands/fun/YodaifyCommand.java index bf47fcb9..a08402bc 100644 --- a/src/main/java/io/paradaux/friendlybot/commands/fun/YodaifyCommand.java +++ b/src/main/java/io/paradaux/friendlybot/discord/commands/fun/YodaifyCommand.java @@ -23,13 +23,13 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.commands.fun; +package io.paradaux.friendlybot.discord.commands.fun; import com.jagrosh.jdautilities.command.CommandEvent; -import io.paradaux.friendlybot.utils.HttpUtils; -import io.paradaux.friendlybot.utils.NumberUtils; -import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.utils.models.types.BaseCommand; +import io.paradaux.friendlybot.core.utils.HttpUtils; +import io.paradaux.friendlybot.core.utils.NumberUtils; +import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.Message; import net.dv8tion.jda.api.entities.MessageEmbed; diff --git a/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/AnnouncementCommand.java b/src/main/java/io/paradaux/friendlybot/discord/commands/staff/moderation/AnnouncementCommand.java similarity index 95% rename from src/main/java/io/paradaux/friendlybot/commands/staff/moderation/AnnouncementCommand.java rename to src/main/java/io/paradaux/friendlybot/discord/commands/staff/moderation/AnnouncementCommand.java index 1c4ff98a..7fc739db 100644 --- a/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/AnnouncementCommand.java +++ b/src/main/java/io/paradaux/friendlybot/discord/commands/staff/moderation/AnnouncementCommand.java @@ -1,10 +1,10 @@ -package io.paradaux.friendlybot.commands.staff.moderation; +package io.paradaux.friendlybot.discord.commands.staff.moderation; import com.jagrosh.jdautilities.command.CommandEvent; import com.jagrosh.jdautilities.commons.waiter.EventWaiter; import io.paradaux.friendlybot.managers.PermissionManager; -import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.utils.models.types.PrivilegedCommand; +import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.core.utils.models.types.PrivilegedCommand; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.Message; import net.dv8tion.jda.api.events.message.MessageReceivedEvent; diff --git a/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/BanCommand.java b/src/main/java/io/paradaux/friendlybot/discord/commands/staff/moderation/BanCommand.java similarity index 86% rename from src/main/java/io/paradaux/friendlybot/commands/staff/moderation/BanCommand.java rename to src/main/java/io/paradaux/friendlybot/discord/commands/staff/moderation/BanCommand.java index 9c9a6be3..0a126655 100644 --- a/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/BanCommand.java +++ b/src/main/java/io/paradaux/friendlybot/discord/commands/staff/moderation/BanCommand.java @@ -23,22 +23,17 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.commands.staff.moderation; +package io.paradaux.friendlybot.discord.commands.staff.moderation; import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.FriendlyBot; -import io.paradaux.friendlybot.managers.AuditManager; import io.paradaux.friendlybot.managers.MongoManager; import io.paradaux.friendlybot.managers.PermissionManager; import io.paradaux.friendlybot.managers.PunishmentManager; -import io.paradaux.friendlybot.utils.embeds.moderation.BannedEmbed; -import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.utils.models.database.BanEntry; -import io.paradaux.friendlybot.utils.models.types.ModerationAction; -import io.paradaux.friendlybot.utils.models.types.PrivilegedCommand; +import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.core.utils.models.types.PrivilegedCommand; import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Message; -import net.dv8tion.jda.api.entities.User; import org.slf4j.Logger; /** diff --git a/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/CiteCommand.java b/src/main/java/io/paradaux/friendlybot/discord/commands/staff/moderation/CiteCommand.java similarity index 87% rename from src/main/java/io/paradaux/friendlybot/commands/staff/moderation/CiteCommand.java rename to src/main/java/io/paradaux/friendlybot/discord/commands/staff/moderation/CiteCommand.java index a840cb18..811b4869 100644 --- a/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/CiteCommand.java +++ b/src/main/java/io/paradaux/friendlybot/discord/commands/staff/moderation/CiteCommand.java @@ -23,14 +23,14 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.commands.staff.moderation; +package io.paradaux.friendlybot.discord.commands.staff.moderation; import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.managers.PermissionManager; -import io.paradaux.friendlybot.utils.embeds.moderation.CiteRuleEmbed; -import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.utils.models.interfaces.Embed; -import io.paradaux.friendlybot.utils.models.types.PrivilegedCommand; +import io.paradaux.friendlybot.core.utils.embeds.moderation.CiteRuleEmbed; +import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.core.utils.models.interfaces.Embed; +import io.paradaux.friendlybot.core.utils.models.types.PrivilegedCommand; import net.dv8tion.jda.api.entities.Message; import net.dv8tion.jda.api.entities.TextChannel; import org.slf4j.Logger; diff --git a/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/KickCommand.java b/src/main/java/io/paradaux/friendlybot/discord/commands/staff/moderation/KickCommand.java similarity index 82% rename from src/main/java/io/paradaux/friendlybot/commands/staff/moderation/KickCommand.java rename to src/main/java/io/paradaux/friendlybot/discord/commands/staff/moderation/KickCommand.java index dd91368c..4c3a7039 100644 --- a/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/KickCommand.java +++ b/src/main/java/io/paradaux/friendlybot/discord/commands/staff/moderation/KickCommand.java @@ -23,28 +23,18 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.commands.staff.moderation; +package io.paradaux.friendlybot.discord.commands.staff.moderation; import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.FriendlyBot; -import io.paradaux.friendlybot.managers.AuditManager; -import io.paradaux.friendlybot.managers.DiscordBotManager; -import io.paradaux.friendlybot.managers.MongoManager; import io.paradaux.friendlybot.managers.PermissionManager; import io.paradaux.friendlybot.managers.PunishmentManager; -import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.utils.models.database.KickEntry; -import io.paradaux.friendlybot.utils.models.types.ModerationAction; -import io.paradaux.friendlybot.utils.models.types.PrivilegedCommand; -import net.dv8tion.jda.api.EmbedBuilder; +import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.core.utils.models.types.PrivilegedCommand; import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Message; -import net.dv8tion.jda.api.entities.MessageEmbed; -import net.dv8tion.jda.api.entities.User; import org.slf4j.Logger; -import java.util.Date; - /** * This is a command which kicks the specified user. * diff --git a/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/LookupCommand.java b/src/main/java/io/paradaux/friendlybot/discord/commands/staff/moderation/LookupCommand.java similarity index 91% rename from src/main/java/io/paradaux/friendlybot/commands/staff/moderation/LookupCommand.java rename to src/main/java/io/paradaux/friendlybot/discord/commands/staff/moderation/LookupCommand.java index 1819adb7..4d1d9751 100644 --- a/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/LookupCommand.java +++ b/src/main/java/io/paradaux/friendlybot/discord/commands/staff/moderation/LookupCommand.java @@ -23,19 +23,19 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.commands.staff.moderation; +package io.paradaux.friendlybot.discord.commands.staff.moderation; import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.managers.MongoManager; import io.paradaux.friendlybot.managers.PermissionManager; -import io.paradaux.friendlybot.utils.embeds.AuditLogEmbed; -import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.utils.models.database.AuditLogEntry; -import io.paradaux.friendlybot.utils.models.database.BanEntry; -import io.paradaux.friendlybot.utils.models.database.KickEntry; -import io.paradaux.friendlybot.utils.models.database.WarningEntry; -import io.paradaux.friendlybot.utils.models.types.ModerationAction; -import io.paradaux.friendlybot.utils.models.types.PrivilegedCommand; +import io.paradaux.friendlybot.core.utils.embeds.AuditLogEmbed; +import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.core.utils.models.database.AuditLogEntry; +import io.paradaux.friendlybot.core.utils.models.database.BanEntry; +import io.paradaux.friendlybot.core.utils.models.database.KickEntry; +import io.paradaux.friendlybot.core.utils.models.database.WarningEntry; +import io.paradaux.friendlybot.core.utils.models.types.ModerationAction; +import io.paradaux.friendlybot.core.utils.models.types.PrivilegedCommand; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.Message; import net.dv8tion.jda.api.entities.User; diff --git a/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/PruneCommand.java b/src/main/java/io/paradaux/friendlybot/discord/commands/staff/moderation/PruneCommand.java similarity index 92% rename from src/main/java/io/paradaux/friendlybot/commands/staff/moderation/PruneCommand.java rename to src/main/java/io/paradaux/friendlybot/discord/commands/staff/moderation/PruneCommand.java index 0f03db52..190ee0d6 100644 --- a/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/PruneCommand.java +++ b/src/main/java/io/paradaux/friendlybot/discord/commands/staff/moderation/PruneCommand.java @@ -23,12 +23,12 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.commands.staff.moderation; +package io.paradaux.friendlybot.discord.commands.staff.moderation; import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.managers.PermissionManager; -import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.utils.models.types.PrivilegedCommand; +import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.core.utils.models.types.PrivilegedCommand; import net.dv8tion.jda.api.entities.Message; import org.slf4j.Logger; diff --git a/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/RespondCommand.java b/src/main/java/io/paradaux/friendlybot/discord/commands/staff/moderation/RespondCommand.java similarity index 91% rename from src/main/java/io/paradaux/friendlybot/commands/staff/moderation/RespondCommand.java rename to src/main/java/io/paradaux/friendlybot/discord/commands/staff/moderation/RespondCommand.java index 9196f388..c2473a5a 100644 --- a/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/RespondCommand.java +++ b/src/main/java/io/paradaux/friendlybot/discord/commands/staff/moderation/RespondCommand.java @@ -23,16 +23,16 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.commands.staff.moderation; +package io.paradaux.friendlybot.discord.commands.staff.moderation; import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.managers.MongoManager; import io.paradaux.friendlybot.managers.PermissionManager; -import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.utils.models.database.ModMailEntry; -import io.paradaux.friendlybot.utils.models.database.ModMailResponse; -import io.paradaux.friendlybot.utils.models.enums.TicketStatus; -import io.paradaux.friendlybot.utils.models.types.PrivilegedCommand; +import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.core.utils.models.database.ModMailEntry; +import io.paradaux.friendlybot.core.utils.models.database.ModMailResponse; +import io.paradaux.friendlybot.core.utils.models.enums.TicketStatus; +import io.paradaux.friendlybot.core.utils.models.types.PrivilegedCommand; import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Message; import org.slf4j.Logger; diff --git a/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/TempBanCommand.java b/src/main/java/io/paradaux/friendlybot/discord/commands/staff/moderation/TempBanCommand.java similarity index 80% rename from src/main/java/io/paradaux/friendlybot/commands/staff/moderation/TempBanCommand.java rename to src/main/java/io/paradaux/friendlybot/discord/commands/staff/moderation/TempBanCommand.java index fa147ac1..0d5a5caf 100644 --- a/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/TempBanCommand.java +++ b/src/main/java/io/paradaux/friendlybot/discord/commands/staff/moderation/TempBanCommand.java @@ -23,29 +23,18 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.commands.staff.moderation; +package io.paradaux.friendlybot.discord.commands.staff.moderation; import com.jagrosh.jdautilities.command.CommandEvent; -import io.paradaux.friendlybot.managers.AuditManager; -import io.paradaux.friendlybot.managers.DiscordBotManager; import io.paradaux.friendlybot.managers.MongoManager; import io.paradaux.friendlybot.managers.PermissionManager; import io.paradaux.friendlybot.managers.PunishmentManager; -import io.paradaux.friendlybot.utils.TimeUtils; -import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.utils.models.database.TempBanEntry; -import io.paradaux.friendlybot.utils.models.types.ModerationAction; -import io.paradaux.friendlybot.utils.models.types.PrivilegedCommand; -import net.dv8tion.jda.api.EmbedBuilder; +import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.core.utils.models.types.PrivilegedCommand; import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Message; -import net.dv8tion.jda.api.entities.MessageEmbed; -import net.dv8tion.jda.api.entities.TextChannel; -import net.dv8tion.jda.api.entities.User; import org.slf4j.Logger; -import java.util.Date; - public class TempBanCommand extends PrivilegedCommand { private final MongoManager mongo; diff --git a/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/TicketCommand.java b/src/main/java/io/paradaux/friendlybot/discord/commands/staff/moderation/TicketCommand.java similarity index 92% rename from src/main/java/io/paradaux/friendlybot/commands/staff/moderation/TicketCommand.java rename to src/main/java/io/paradaux/friendlybot/discord/commands/staff/moderation/TicketCommand.java index e8f0b1ae..c75c8e89 100644 --- a/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/TicketCommand.java +++ b/src/main/java/io/paradaux/friendlybot/discord/commands/staff/moderation/TicketCommand.java @@ -23,19 +23,19 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.commands.staff.moderation; +package io.paradaux.friendlybot.discord.commands.staff.moderation; import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.managers.DiscordBotManager; import io.paradaux.friendlybot.managers.MongoManager; import io.paradaux.friendlybot.managers.PermissionManager; -import io.paradaux.friendlybot.utils.TimeUtils; -import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.utils.models.database.ModMailEntry; -import io.paradaux.friendlybot.utils.models.database.ModMailResponse; -import io.paradaux.friendlybot.utils.models.enums.EmbedColour; -import io.paradaux.friendlybot.utils.models.enums.TicketStatus; -import io.paradaux.friendlybot.utils.models.types.PrivilegedCommand; +import io.paradaux.friendlybot.core.utils.TimeUtils; +import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.core.utils.models.database.ModMailEntry; +import io.paradaux.friendlybot.core.utils.models.database.ModMailResponse; +import io.paradaux.friendlybot.core.utils.models.enums.EmbedColour; +import io.paradaux.friendlybot.core.utils.models.enums.TicketStatus; +import io.paradaux.friendlybot.core.utils.models.types.PrivilegedCommand; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Message; diff --git a/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/WarnCommand.java b/src/main/java/io/paradaux/friendlybot/discord/commands/staff/moderation/WarnCommand.java similarity index 82% rename from src/main/java/io/paradaux/friendlybot/commands/staff/moderation/WarnCommand.java rename to src/main/java/io/paradaux/friendlybot/discord/commands/staff/moderation/WarnCommand.java index 2015baf1..179b3b2f 100644 --- a/src/main/java/io/paradaux/friendlybot/commands/staff/moderation/WarnCommand.java +++ b/src/main/java/io/paradaux/friendlybot/discord/commands/staff/moderation/WarnCommand.java @@ -23,28 +23,18 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.commands.staff.moderation; +package io.paradaux.friendlybot.discord.commands.staff.moderation; import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.FriendlyBot; -import io.paradaux.friendlybot.managers.AuditManager; -import io.paradaux.friendlybot.managers.DiscordBotManager; -import io.paradaux.friendlybot.managers.MongoManager; import io.paradaux.friendlybot.managers.PermissionManager; import io.paradaux.friendlybot.managers.PunishmentManager; -import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.utils.models.database.WarningEntry; -import io.paradaux.friendlybot.utils.models.types.ModerationAction; -import io.paradaux.friendlybot.utils.models.types.PrivilegedCommand; -import net.dv8tion.jda.api.EmbedBuilder; +import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.core.utils.models.types.PrivilegedCommand; import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Message; -import net.dv8tion.jda.api.entities.MessageEmbed; -import net.dv8tion.jda.api.entities.User; import org.slf4j.Logger; -import java.util.Date; - /** * This is a command which warns the specified user. * diff --git a/src/main/java/io/paradaux/friendlybot/commands/staff/technician/DmCommand.java b/src/main/java/io/paradaux/friendlybot/discord/commands/staff/technician/DmCommand.java similarity index 91% rename from src/main/java/io/paradaux/friendlybot/commands/staff/technician/DmCommand.java rename to src/main/java/io/paradaux/friendlybot/discord/commands/staff/technician/DmCommand.java index 38d0b1d9..6333838d 100644 --- a/src/main/java/io/paradaux/friendlybot/commands/staff/technician/DmCommand.java +++ b/src/main/java/io/paradaux/friendlybot/discord/commands/staff/technician/DmCommand.java @@ -23,13 +23,12 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.commands.staff.technician; +package io.paradaux.friendlybot.discord.commands.staff.technician; import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.managers.PermissionManager; -import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.utils.models.types.PrivilegedCommand; -import net.dv8tion.jda.api.entities.Member; +import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.core.utils.models.types.PrivilegedCommand; import net.dv8tion.jda.api.entities.User; import org.slf4j.Logger; diff --git a/src/main/java/io/paradaux/friendlybot/commands/staff/technician/PermissionsCommand.java b/src/main/java/io/paradaux/friendlybot/discord/commands/staff/technician/PermissionsCommand.java similarity index 95% rename from src/main/java/io/paradaux/friendlybot/commands/staff/technician/PermissionsCommand.java rename to src/main/java/io/paradaux/friendlybot/discord/commands/staff/technician/PermissionsCommand.java index cf2a5020..162704b1 100644 --- a/src/main/java/io/paradaux/friendlybot/commands/staff/technician/PermissionsCommand.java +++ b/src/main/java/io/paradaux/friendlybot/discord/commands/staff/technician/PermissionsCommand.java @@ -23,13 +23,13 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.commands.staff.technician; +package io.paradaux.friendlybot.discord.commands.staff.technician; import com.jagrosh.jdautilities.command.CommandEvent; -import io.paradaux.friendlybot.listeners.InsultListener; +import io.paradaux.friendlybot.discord.listeners.InsultListener; import io.paradaux.friendlybot.managers.PermissionManager; -import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.utils.models.types.PrivilegedCommand; +import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.core.utils.models.types.PrivilegedCommand; import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Message; import org.slf4j.Logger; diff --git a/src/main/java/io/paradaux/friendlybot/commands/staff/technician/SayCommand.java b/src/main/java/io/paradaux/friendlybot/discord/commands/staff/technician/SayCommand.java similarity index 88% rename from src/main/java/io/paradaux/friendlybot/commands/staff/technician/SayCommand.java rename to src/main/java/io/paradaux/friendlybot/discord/commands/staff/technician/SayCommand.java index c99fec79..c3b6bef2 100644 --- a/src/main/java/io/paradaux/friendlybot/commands/staff/technician/SayCommand.java +++ b/src/main/java/io/paradaux/friendlybot/discord/commands/staff/technician/SayCommand.java @@ -23,12 +23,12 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.commands.staff.technician; +package io.paradaux.friendlybot.discord.commands.staff.technician; import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.managers.PermissionManager; -import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.utils.models.types.PrivilegedCommand; +import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.core.utils.models.types.PrivilegedCommand; import org.slf4j.Logger; public class SayCommand extends PrivilegedCommand { diff --git a/src/main/java/io/paradaux/friendlybot/commands/staff/technician/SendEmbedCommand.java b/src/main/java/io/paradaux/friendlybot/discord/commands/staff/technician/SendEmbedCommand.java similarity index 85% rename from src/main/java/io/paradaux/friendlybot/commands/staff/technician/SendEmbedCommand.java rename to src/main/java/io/paradaux/friendlybot/discord/commands/staff/technician/SendEmbedCommand.java index 4996a3ad..9fffe300 100644 --- a/src/main/java/io/paradaux/friendlybot/commands/staff/technician/SendEmbedCommand.java +++ b/src/main/java/io/paradaux/friendlybot/discord/commands/staff/technician/SendEmbedCommand.java @@ -23,21 +23,21 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.commands.staff.technician; +package io.paradaux.friendlybot.discord.commands.staff.technician; import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.managers.PermissionManager; -import io.paradaux.friendlybot.utils.embeds.AuditLogEmbed; -import io.paradaux.friendlybot.utils.embeds.PoliticsRulesEmbed; -import io.paradaux.friendlybot.utils.embeds.RulesEmbed; -import io.paradaux.friendlybot.utils.embeds.moderation.*; -import io.paradaux.friendlybot.utils.embeds.modmail.ModMailSentEmbed; -import io.paradaux.friendlybot.utils.embeds.notices.*; -import io.paradaux.friendlybot.utils.embeds.roleselection.PoliticsOptionEmbed; -import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.utils.models.interfaces.Embed; -import io.paradaux.friendlybot.utils.models.types.ModerationAction; -import io.paradaux.friendlybot.utils.models.types.PrivilegedCommand; +import io.paradaux.friendlybot.core.utils.embeds.AuditLogEmbed; +import io.paradaux.friendlybot.core.utils.embeds.PoliticsRulesEmbed; +import io.paradaux.friendlybot.core.utils.embeds.RulesEmbed; +import io.paradaux.friendlybot.core.utils.embeds.moderation.*; +import io.paradaux.friendlybot.core.utils.embeds.modmail.ModMailSentEmbed; +import io.paradaux.friendlybot.core.utils.embeds.notices.*; +import io.paradaux.friendlybot.core.utils.embeds.roleselection.PoliticsOptionEmbed; +import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.core.utils.models.interfaces.Embed; +import io.paradaux.friendlybot.core.utils.models.types.ModerationAction; +import io.paradaux.friendlybot.core.utils.models.types.PrivilegedCommand; import net.dv8tion.jda.api.entities.Message; import net.dv8tion.jda.api.entities.TextChannel; import org.slf4j.Logger; diff --git a/src/main/java/io/paradaux/friendlybot/commands/staff/technician/SetupCommand.java b/src/main/java/io/paradaux/friendlybot/discord/commands/staff/technician/SetupCommand.java similarity index 88% rename from src/main/java/io/paradaux/friendlybot/commands/staff/technician/SetupCommand.java rename to src/main/java/io/paradaux/friendlybot/discord/commands/staff/technician/SetupCommand.java index 48600f5a..8714143b 100644 --- a/src/main/java/io/paradaux/friendlybot/commands/staff/technician/SetupCommand.java +++ b/src/main/java/io/paradaux/friendlybot/discord/commands/staff/technician/SetupCommand.java @@ -1,17 +1,14 @@ -package io.paradaux.friendlybot.commands.staff.technician; +package io.paradaux.friendlybot.discord.commands.staff.technician; import com.jagrosh.jdautilities.command.CommandEvent; import com.jagrosh.jdautilities.commons.waiter.EventWaiter; import io.paradaux.friendlybot.managers.GuildSettingsManager; import io.paradaux.friendlybot.managers.PermissionManager; -import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.utils.models.database.GuildSettingsEntry; -import io.paradaux.friendlybot.utils.models.types.PrivilegedCommand; +import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.core.utils.models.database.GuildSettingsEntry; +import io.paradaux.friendlybot.core.utils.models.types.PrivilegedCommand; import net.dv8tion.jda.api.Permission; import net.dv8tion.jda.api.entities.Guild; -import net.dv8tion.jda.api.entities.Message; -import net.dv8tion.jda.api.entities.PermissionOverride; -import net.dv8tion.jda.api.entities.TextChannel; import org.slf4j.Logger; public class SetupCommand extends PrivilegedCommand { diff --git a/src/main/java/io/paradaux/friendlybot/commands/staff/technician/VerificationCommand.java b/src/main/java/io/paradaux/friendlybot/discord/commands/staff/technician/VerificationCommand.java similarity index 94% rename from src/main/java/io/paradaux/friendlybot/commands/staff/technician/VerificationCommand.java rename to src/main/java/io/paradaux/friendlybot/discord/commands/staff/technician/VerificationCommand.java index b95400b8..bb0e72fe 100644 --- a/src/main/java/io/paradaux/friendlybot/commands/staff/technician/VerificationCommand.java +++ b/src/main/java/io/paradaux/friendlybot/discord/commands/staff/technician/VerificationCommand.java @@ -23,15 +23,15 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.commands.staff.technician; +package io.paradaux.friendlybot.discord.commands.staff.technician; import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.managers.MongoManager; import io.paradaux.friendlybot.managers.PermissionManager; import io.paradaux.friendlybot.managers.VerificationManager; -import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.utils.models.exceptions.VerificationException; -import io.paradaux.friendlybot.utils.models.types.PrivilegedCommand; +import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.core.utils.models.exceptions.VerificationException; +import io.paradaux.friendlybot.core.utils.models.types.PrivilegedCommand; import net.dv8tion.jda.api.entities.Message; import net.dv8tion.jda.api.entities.User; import org.slf4j.Logger; diff --git a/src/main/java/io/paradaux/friendlybot/commands/utility/ClearColorCommand.java b/src/main/java/io/paradaux/friendlybot/discord/commands/utility/ClearColorCommand.java similarity index 86% rename from src/main/java/io/paradaux/friendlybot/commands/utility/ClearColorCommand.java rename to src/main/java/io/paradaux/friendlybot/discord/commands/utility/ClearColorCommand.java index f47d49a7..1a2424a6 100644 --- a/src/main/java/io/paradaux/friendlybot/commands/utility/ClearColorCommand.java +++ b/src/main/java/io/paradaux/friendlybot/discord/commands/utility/ClearColorCommand.java @@ -1,11 +1,11 @@ -package io.paradaux.friendlybot.commands.utility; +package io.paradaux.friendlybot.discord.commands.utility; import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.managers.UserSettingsManager; -import io.paradaux.friendlybot.utils.NumberUtils; -import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.utils.models.database.UserSettingsEntry; -import io.paradaux.friendlybot.utils.models.types.BaseCommand; +import io.paradaux.friendlybot.core.utils.NumberUtils; +import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.core.utils.models.database.UserSettingsEntry; +import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.Guild; import net.dv8tion.jda.api.entities.Message; diff --git a/src/main/java/io/paradaux/friendlybot/commands/utility/CommandsCommand.java b/src/main/java/io/paradaux/friendlybot/discord/commands/utility/CommandsCommand.java similarity index 93% rename from src/main/java/io/paradaux/friendlybot/commands/utility/CommandsCommand.java rename to src/main/java/io/paradaux/friendlybot/discord/commands/utility/CommandsCommand.java index 38f612d7..bac6f24a 100644 --- a/src/main/java/io/paradaux/friendlybot/commands/utility/CommandsCommand.java +++ b/src/main/java/io/paradaux/friendlybot/discord/commands/utility/CommandsCommand.java @@ -23,12 +23,12 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.commands.utility; +package io.paradaux.friendlybot.discord.commands.utility; import com.jagrosh.jdautilities.command.CommandEvent; -import io.paradaux.friendlybot.utils.TimeUtils; -import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.utils.models.types.BaseCommand; +import io.paradaux.friendlybot.core.utils.TimeUtils; +import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.MessageEmbed; import org.slf4j.Logger; diff --git a/src/main/java/io/paradaux/friendlybot/commands/utility/GithubCommand.java b/src/main/java/io/paradaux/friendlybot/discord/commands/utility/GithubCommand.java similarity index 96% rename from src/main/java/io/paradaux/friendlybot/commands/utility/GithubCommand.java rename to src/main/java/io/paradaux/friendlybot/discord/commands/utility/GithubCommand.java index 7ef2293d..07df4591 100644 --- a/src/main/java/io/paradaux/friendlybot/commands/utility/GithubCommand.java +++ b/src/main/java/io/paradaux/friendlybot/discord/commands/utility/GithubCommand.java @@ -23,11 +23,11 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.commands.utility; +package io.paradaux.friendlybot.discord.commands.utility; import com.jagrosh.jdautilities.command.CommandEvent; -import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.utils.models.types.BaseCommand; +import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; import net.dv8tion.jda.api.entities.Message; import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.TextChannel; diff --git a/src/main/java/io/paradaux/friendlybot/commands/utility/GoogleCommand.java b/src/main/java/io/paradaux/friendlybot/discord/commands/utility/GoogleCommand.java similarity index 90% rename from src/main/java/io/paradaux/friendlybot/commands/utility/GoogleCommand.java rename to src/main/java/io/paradaux/friendlybot/discord/commands/utility/GoogleCommand.java index b74a58be..0e39afca 100644 --- a/src/main/java/io/paradaux/friendlybot/commands/utility/GoogleCommand.java +++ b/src/main/java/io/paradaux/friendlybot/discord/commands/utility/GoogleCommand.java @@ -23,14 +23,14 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.commands.utility; +package io.paradaux.friendlybot.discord.commands.utility; import com.google.gson.JsonObject; import com.google.gson.JsonParser; import com.jagrosh.jdautilities.command.CommandEvent; -import io.paradaux.friendlybot.utils.StringUtils; -import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.utils.models.types.BaseCommand; +import io.paradaux.friendlybot.core.utils.StringUtils; +import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; import io.paradaux.http.HttpApi; import net.dv8tion.jda.api.entities.Message; import org.slf4j.Logger; diff --git a/src/main/java/io/paradaux/friendlybot/commands/utility/InviteCommand.java b/src/main/java/io/paradaux/friendlybot/discord/commands/utility/InviteCommand.java similarity index 95% rename from src/main/java/io/paradaux/friendlybot/commands/utility/InviteCommand.java rename to src/main/java/io/paradaux/friendlybot/discord/commands/utility/InviteCommand.java index f0e50c10..3ad867bd 100644 --- a/src/main/java/io/paradaux/friendlybot/commands/utility/InviteCommand.java +++ b/src/main/java/io/paradaux/friendlybot/discord/commands/utility/InviteCommand.java @@ -23,11 +23,11 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.commands.utility; +package io.paradaux.friendlybot.discord.commands.utility; import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.FriendlyBot; -import io.paradaux.friendlybot.utils.models.types.BaseCommand; +import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; import net.dv8tion.jda.api.entities.Message; import org.slf4j.Logger; diff --git a/src/main/java/io/paradaux/friendlybot/commands/utility/MemeImagesCommand.java b/src/main/java/io/paradaux/friendlybot/discord/commands/utility/MemeImagesCommand.java similarity index 92% rename from src/main/java/io/paradaux/friendlybot/commands/utility/MemeImagesCommand.java rename to src/main/java/io/paradaux/friendlybot/discord/commands/utility/MemeImagesCommand.java index 2d3c0bd9..8ac9ccc9 100644 --- a/src/main/java/io/paradaux/friendlybot/commands/utility/MemeImagesCommand.java +++ b/src/main/java/io/paradaux/friendlybot/discord/commands/utility/MemeImagesCommand.java @@ -23,13 +23,13 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.commands.utility; +package io.paradaux.friendlybot.discord.commands.utility; import com.jagrosh.jdautilities.command.CommandEvent; -import io.paradaux.friendlybot.utils.NumberUtils; -import io.paradaux.friendlybot.utils.TimeUtils; -import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.utils.models.types.BaseCommand; +import io.paradaux.friendlybot.core.utils.NumberUtils; +import io.paradaux.friendlybot.core.utils.TimeUtils; +import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; import io.paradaux.http.HttpApi; import net.dv8tion.jda.api.EmbedBuilder; import org.json.JSONArray; diff --git a/src/main/java/io/paradaux/friendlybot/commands/utility/PingCommand.java b/src/main/java/io/paradaux/friendlybot/discord/commands/utility/PingCommand.java similarity index 93% rename from src/main/java/io/paradaux/friendlybot/commands/utility/PingCommand.java rename to src/main/java/io/paradaux/friendlybot/discord/commands/utility/PingCommand.java index fb5806b4..8473f8a9 100644 --- a/src/main/java/io/paradaux/friendlybot/commands/utility/PingCommand.java +++ b/src/main/java/io/paradaux/friendlybot/discord/commands/utility/PingCommand.java @@ -23,11 +23,11 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.commands.utility; +package io.paradaux.friendlybot.discord.commands.utility; import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.FriendlyBot; -import io.paradaux.friendlybot.utils.models.types.BaseCommand; +import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; import org.slf4j.Logger; /** diff --git a/src/main/java/io/paradaux/friendlybot/commands/utility/RandomColorCommand.java b/src/main/java/io/paradaux/friendlybot/discord/commands/utility/RandomColorCommand.java similarity index 86% rename from src/main/java/io/paradaux/friendlybot/commands/utility/RandomColorCommand.java rename to src/main/java/io/paradaux/friendlybot/discord/commands/utility/RandomColorCommand.java index c725dcbe..a13ea7dd 100644 --- a/src/main/java/io/paradaux/friendlybot/commands/utility/RandomColorCommand.java +++ b/src/main/java/io/paradaux/friendlybot/discord/commands/utility/RandomColorCommand.java @@ -1,10 +1,10 @@ -package io.paradaux.friendlybot.commands.utility; +package io.paradaux.friendlybot.discord.commands.utility; import com.jagrosh.jdautilities.command.CommandEvent; -import io.paradaux.friendlybot.utils.ImageUtils; -import io.paradaux.friendlybot.utils.NumberUtils; -import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.utils.models.types.BaseCommand; +import io.paradaux.friendlybot.core.utils.ImageUtils; +import io.paradaux.friendlybot.core.utils.NumberUtils; +import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; import io.paradaux.http.HttpApi; import net.dv8tion.jda.api.EmbedBuilder; import org.json.JSONObject; diff --git a/src/main/java/io/paradaux/friendlybot/commands/utility/ServerInfoCommand.java b/src/main/java/io/paradaux/friendlybot/discord/commands/utility/ServerInfoCommand.java similarity index 93% rename from src/main/java/io/paradaux/friendlybot/commands/utility/ServerInfoCommand.java rename to src/main/java/io/paradaux/friendlybot/discord/commands/utility/ServerInfoCommand.java index 91b4a259..2ccdc49e 100644 --- a/src/main/java/io/paradaux/friendlybot/commands/utility/ServerInfoCommand.java +++ b/src/main/java/io/paradaux/friendlybot/discord/commands/utility/ServerInfoCommand.java @@ -23,11 +23,11 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.commands.utility; +package io.paradaux.friendlybot.discord.commands.utility; import com.jagrosh.jdautilities.command.CommandEvent; -import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.utils.models.types.BaseCommand; +import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.Emote; import net.dv8tion.jda.api.entities.Guild; diff --git a/src/main/java/io/paradaux/friendlybot/commands/utility/SetColorCommand.java b/src/main/java/io/paradaux/friendlybot/discord/commands/utility/SetColorCommand.java similarity index 92% rename from src/main/java/io/paradaux/friendlybot/commands/utility/SetColorCommand.java rename to src/main/java/io/paradaux/friendlybot/discord/commands/utility/SetColorCommand.java index 69666ad0..23ce5931 100644 --- a/src/main/java/io/paradaux/friendlybot/commands/utility/SetColorCommand.java +++ b/src/main/java/io/paradaux/friendlybot/discord/commands/utility/SetColorCommand.java @@ -1,12 +1,12 @@ -package io.paradaux.friendlybot.commands.utility; +package io.paradaux.friendlybot.discord.commands.utility; import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.managers.RoleManager; import io.paradaux.friendlybot.managers.UserSettingsManager; -import io.paradaux.friendlybot.utils.NumberUtils; -import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.utils.models.database.UserSettingsEntry; -import io.paradaux.friendlybot.utils.models.types.BaseCommand; +import io.paradaux.friendlybot.core.utils.NumberUtils; +import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.core.utils.models.database.UserSettingsEntry; +import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.Guild; import net.dv8tion.jda.api.entities.Message; diff --git a/src/main/java/io/paradaux/friendlybot/commands/utility/StrikeCommand.java b/src/main/java/io/paradaux/friendlybot/discord/commands/utility/StrikeCommand.java similarity index 77% rename from src/main/java/io/paradaux/friendlybot/commands/utility/StrikeCommand.java rename to src/main/java/io/paradaux/friendlybot/discord/commands/utility/StrikeCommand.java index 87823542..0a2e6dba 100644 --- a/src/main/java/io/paradaux/friendlybot/commands/utility/StrikeCommand.java +++ b/src/main/java/io/paradaux/friendlybot/discord/commands/utility/StrikeCommand.java @@ -1,10 +1,10 @@ -package io.paradaux.friendlybot.commands.utility; +package io.paradaux.friendlybot.discord.commands.utility; import com.jagrosh.jdautilities.command.CommandEvent; -import io.paradaux.friendlybot.utils.NumberUtils; -import io.paradaux.friendlybot.utils.StringUtils; -import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.utils.models.types.BaseCommand; +import io.paradaux.friendlybot.core.utils.NumberUtils; +import io.paradaux.friendlybot.core.utils.StringUtils; +import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.Message; import net.dv8tion.jda.api.entities.MessageEmbed; diff --git a/src/main/java/io/paradaux/friendlybot/commands/utility/TagCommand.java b/src/main/java/io/paradaux/friendlybot/discord/commands/utility/TagCommand.java similarity index 92% rename from src/main/java/io/paradaux/friendlybot/commands/utility/TagCommand.java rename to src/main/java/io/paradaux/friendlybot/discord/commands/utility/TagCommand.java index 16976b11..42dc0ce0 100644 --- a/src/main/java/io/paradaux/friendlybot/commands/utility/TagCommand.java +++ b/src/main/java/io/paradaux/friendlybot/discord/commands/utility/TagCommand.java @@ -23,23 +23,20 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.commands.utility; +package io.paradaux.friendlybot.discord.commands.utility; import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.managers.MongoManager; import io.paradaux.friendlybot.managers.TagManager; -import io.paradaux.friendlybot.utils.NumberUtils; -import io.paradaux.friendlybot.utils.TimeUtils; -import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.utils.models.database.TagEntry; -import io.paradaux.friendlybot.utils.models.types.BaseCommand; -import io.paradaux.friendlybot.utils.models.types.PrivilegedCommand; +import io.paradaux.friendlybot.core.utils.NumberUtils; +import io.paradaux.friendlybot.core.utils.TimeUtils; +import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.core.utils.models.database.TagEntry; +import io.paradaux.friendlybot.core.utils.models.types.PrivilegedCommand; import net.dv8tion.jda.api.EmbedBuilder; -import net.dv8tion.jda.api.MessageBuilder; import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Message; import net.dv8tion.jda.api.entities.MessageEmbed; -import net.dv8tion.jda.api.entities.User; import org.slf4j.Logger; import java.util.Date; diff --git a/src/main/java/io/paradaux/friendlybot/commands/utility/TagsCommand.java b/src/main/java/io/paradaux/friendlybot/discord/commands/utility/TagsCommand.java similarity index 82% rename from src/main/java/io/paradaux/friendlybot/commands/utility/TagsCommand.java rename to src/main/java/io/paradaux/friendlybot/discord/commands/utility/TagsCommand.java index 9b6b8114..394f1d21 100644 --- a/src/main/java/io/paradaux/friendlybot/commands/utility/TagsCommand.java +++ b/src/main/java/io/paradaux/friendlybot/discord/commands/utility/TagsCommand.java @@ -1,8 +1,8 @@ -package io.paradaux.friendlybot.commands.utility; +package io.paradaux.friendlybot.discord.commands.utility; import com.jagrosh.jdautilities.command.CommandEvent; -import io.paradaux.friendlybot.utils.NumberUtils; -import io.paradaux.friendlybot.utils.models.types.BaseCommand; +import io.paradaux.friendlybot.core.utils.NumberUtils; +import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; import net.dv8tion.jda.api.EmbedBuilder; import org.slf4j.Logger; diff --git a/src/main/java/io/paradaux/friendlybot/commands/utility/UserInfoCommand.java b/src/main/java/io/paradaux/friendlybot/discord/commands/utility/UserInfoCommand.java similarity index 89% rename from src/main/java/io/paradaux/friendlybot/commands/utility/UserInfoCommand.java rename to src/main/java/io/paradaux/friendlybot/discord/commands/utility/UserInfoCommand.java index e0d66cd4..dca44b30 100644 --- a/src/main/java/io/paradaux/friendlybot/commands/utility/UserInfoCommand.java +++ b/src/main/java/io/paradaux/friendlybot/discord/commands/utility/UserInfoCommand.java @@ -23,15 +23,15 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.commands.utility; +package io.paradaux.friendlybot.discord.commands.utility; import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.managers.PermissionManager; -import io.paradaux.friendlybot.utils.StringUtils; -import io.paradaux.friendlybot.utils.TimeUtils; -import io.paradaux.friendlybot.utils.embeds.command.UserInfoEmbed; -import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.utils.models.types.PrivilegedCommand; +import io.paradaux.friendlybot.core.utils.StringUtils; +import io.paradaux.friendlybot.core.utils.TimeUtils; +import io.paradaux.friendlybot.core.utils.embeds.command.UserInfoEmbed; +import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.core.utils.models.types.PrivilegedCommand; import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Role; import org.slf4j.Logger; diff --git a/src/main/java/io/paradaux/friendlybot/commands/utility/WeatherCommand.java b/src/main/java/io/paradaux/friendlybot/discord/commands/utility/WeatherCommand.java similarity index 94% rename from src/main/java/io/paradaux/friendlybot/commands/utility/WeatherCommand.java rename to src/main/java/io/paradaux/friendlybot/discord/commands/utility/WeatherCommand.java index 01e6cbe0..24ecaaac 100644 --- a/src/main/java/io/paradaux/friendlybot/commands/utility/WeatherCommand.java +++ b/src/main/java/io/paradaux/friendlybot/discord/commands/utility/WeatherCommand.java @@ -1,12 +1,12 @@ -package io.paradaux.friendlybot.commands.utility; +package io.paradaux.friendlybot.discord.commands.utility; import com.google.gson.JsonObject; import com.google.gson.JsonParser; import com.jagrosh.jdautilities.command.CommandEvent; -import io.paradaux.friendlybot.utils.NumberUtils; -import io.paradaux.friendlybot.utils.StringUtils; -import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.utils.models.types.BaseCommand; +import io.paradaux.friendlybot.core.utils.NumberUtils; +import io.paradaux.friendlybot.core.utils.StringUtils; +import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; import io.paradaux.http.HttpApi; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.Message; diff --git a/src/main/java/io/paradaux/friendlybot/commands/utility/WolframAlphaCommand.java b/src/main/java/io/paradaux/friendlybot/discord/commands/utility/WolframAlphaCommand.java similarity index 93% rename from src/main/java/io/paradaux/friendlybot/commands/utility/WolframAlphaCommand.java rename to src/main/java/io/paradaux/friendlybot/discord/commands/utility/WolframAlphaCommand.java index 53aa211c..5f4ba851 100644 --- a/src/main/java/io/paradaux/friendlybot/commands/utility/WolframAlphaCommand.java +++ b/src/main/java/io/paradaux/friendlybot/discord/commands/utility/WolframAlphaCommand.java @@ -23,12 +23,12 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.commands.utility; +package io.paradaux.friendlybot.discord.commands.utility; import com.jagrosh.jdautilities.command.CommandEvent; -import io.paradaux.friendlybot.utils.NumberUtils; -import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.utils.models.types.BaseCommand; +import io.paradaux.friendlybot.core.utils.NumberUtils; +import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; import io.paradaux.http.HttpApi; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.Message; diff --git a/src/main/java/io/paradaux/friendlybot/listeners/AlotListener.java b/src/main/java/io/paradaux/friendlybot/discord/listeners/AlotListener.java similarity index 88% rename from src/main/java/io/paradaux/friendlybot/listeners/AlotListener.java rename to src/main/java/io/paradaux/friendlybot/discord/listeners/AlotListener.java index 090feb16..fec811dd 100644 --- a/src/main/java/io/paradaux/friendlybot/listeners/AlotListener.java +++ b/src/main/java/io/paradaux/friendlybot/discord/listeners/AlotListener.java @@ -1,7 +1,7 @@ -package io.paradaux.friendlybot.listeners; +package io.paradaux.friendlybot.discord.listeners; -import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.utils.models.types.DiscordEventListener; +import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.core.utils.models.types.DiscordEventListener; import net.dv8tion.jda.api.entities.ChannelType; import net.dv8tion.jda.api.entities.Emote; import net.dv8tion.jda.api.entities.Message; diff --git a/src/main/java/io/paradaux/friendlybot/listeners/DotCommandsListener.java b/src/main/java/io/paradaux/friendlybot/discord/listeners/DotCommandsListener.java similarity index 90% rename from src/main/java/io/paradaux/friendlybot/listeners/DotCommandsListener.java rename to src/main/java/io/paradaux/friendlybot/discord/listeners/DotCommandsListener.java index 7abfe8cc..53598b17 100644 --- a/src/main/java/io/paradaux/friendlybot/listeners/DotCommandsListener.java +++ b/src/main/java/io/paradaux/friendlybot/discord/listeners/DotCommandsListener.java @@ -1,4 +1,4 @@ -package io.paradaux.friendlybot.listeners; +package io.paradaux.friendlybot.discord.listeners; /* * MIT License @@ -26,9 +26,9 @@ */ import io.paradaux.friendlybot.managers.TagManager; -import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.utils.models.database.TagEntry; -import io.paradaux.friendlybot.utils.models.types.DiscordEventListener; +import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.core.utils.models.database.TagEntry; +import io.paradaux.friendlybot.core.utils.models.types.DiscordEventListener; import net.dv8tion.jda.api.entities.ChannelType; import net.dv8tion.jda.api.entities.Message; import net.dv8tion.jda.api.events.message.MessageReceivedEvent; diff --git a/src/main/java/io/paradaux/friendlybot/listeners/InsultListener.java b/src/main/java/io/paradaux/friendlybot/discord/listeners/InsultListener.java similarity index 89% rename from src/main/java/io/paradaux/friendlybot/listeners/InsultListener.java rename to src/main/java/io/paradaux/friendlybot/discord/listeners/InsultListener.java index c63961a8..5864ed40 100644 --- a/src/main/java/io/paradaux/friendlybot/listeners/InsultListener.java +++ b/src/main/java/io/paradaux/friendlybot/discord/listeners/InsultListener.java @@ -1,7 +1,7 @@ -package io.paradaux.friendlybot.listeners; +package io.paradaux.friendlybot.discord.listeners; -import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.utils.models.types.DiscordEventListener; +import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.core.utils.models.types.DiscordEventListener; import io.paradaux.http.HttpApi; import net.dv8tion.jda.api.entities.ChannelType; import net.dv8tion.jda.api.entities.Message; diff --git a/src/main/java/io/paradaux/friendlybot/listeners/ReadyListener.java b/src/main/java/io/paradaux/friendlybot/discord/listeners/ReadyListener.java similarity index 94% rename from src/main/java/io/paradaux/friendlybot/listeners/ReadyListener.java rename to src/main/java/io/paradaux/friendlybot/discord/listeners/ReadyListener.java index 72a5d0c9..b2f5f341 100644 --- a/src/main/java/io/paradaux/friendlybot/listeners/ReadyListener.java +++ b/src/main/java/io/paradaux/friendlybot/discord/listeners/ReadyListener.java @@ -23,10 +23,10 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.listeners; +package io.paradaux.friendlybot.discord.listeners; import io.paradaux.friendlybot.FriendlyBot; -import io.paradaux.friendlybot.utils.models.types.DiscordEventListener; +import io.paradaux.friendlybot.core.utils.models.types.DiscordEventListener; import net.dv8tion.jda.api.entities.Guild; import net.dv8tion.jda.api.events.ReadyEvent; import org.slf4j.Logger; diff --git a/src/main/java/io/paradaux/friendlybot/listeners/TagListener.java b/src/main/java/io/paradaux/friendlybot/discord/listeners/TagListener.java similarity index 90% rename from src/main/java/io/paradaux/friendlybot/listeners/TagListener.java rename to src/main/java/io/paradaux/friendlybot/discord/listeners/TagListener.java index 6f8bc16b..a1d564fb 100644 --- a/src/main/java/io/paradaux/friendlybot/listeners/TagListener.java +++ b/src/main/java/io/paradaux/friendlybot/discord/listeners/TagListener.java @@ -23,12 +23,12 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.listeners; +package io.paradaux.friendlybot.discord.listeners; import io.paradaux.friendlybot.managers.TagManager; -import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.utils.models.database.TagEntry; -import io.paradaux.friendlybot.utils.models.types.DiscordEventListener; +import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.core.utils.models.database.TagEntry; +import io.paradaux.friendlybot.core.utils.models.types.DiscordEventListener; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.ChannelType; import net.dv8tion.jda.api.entities.Message; @@ -37,8 +37,6 @@ import org.jetbrains.annotations.NotNull; import org.slf4j.Logger; -import java.util.Arrays; - public class TagListener extends DiscordEventListener { private static final String TAG_PREFIX = "!"; diff --git a/src/main/java/io/paradaux/friendlybot/listeners/VotePinListener.java b/src/main/java/io/paradaux/friendlybot/discord/listeners/VotePinListener.java similarity index 90% rename from src/main/java/io/paradaux/friendlybot/listeners/VotePinListener.java rename to src/main/java/io/paradaux/friendlybot/discord/listeners/VotePinListener.java index a36c3431..ffd53431 100644 --- a/src/main/java/io/paradaux/friendlybot/listeners/VotePinListener.java +++ b/src/main/java/io/paradaux/friendlybot/discord/listeners/VotePinListener.java @@ -1,6 +1,6 @@ -package io.paradaux.friendlybot.listeners; +package io.paradaux.friendlybot.discord.listeners; -import io.paradaux.friendlybot.utils.models.types.DiscordEventListener; +import io.paradaux.friendlybot.core.utils.models.types.DiscordEventListener; import net.dv8tion.jda.api.entities.MessageReaction; import net.dv8tion.jda.api.events.message.guild.react.GuildMessageReactionAddEvent; import org.jetbrains.annotations.NotNull; diff --git a/src/main/java/io/paradaux/friendlybot/listeners/logging/MessageDeleteLog.java b/src/main/java/io/paradaux/friendlybot/discord/listeners/logging/MessageDeleteLog.java similarity index 90% rename from src/main/java/io/paradaux/friendlybot/listeners/logging/MessageDeleteLog.java rename to src/main/java/io/paradaux/friendlybot/discord/listeners/logging/MessageDeleteLog.java index 188d5a42..9d4b6738 100644 --- a/src/main/java/io/paradaux/friendlybot/listeners/logging/MessageDeleteLog.java +++ b/src/main/java/io/paradaux/friendlybot/discord/listeners/logging/MessageDeleteLog.java @@ -23,15 +23,15 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.listeners.logging; +package io.paradaux.friendlybot.discord.listeners.logging; import io.paradaux.friendlybot.managers.DiscordBotManager; import io.paradaux.friendlybot.managers.GuildSettingsManager; import io.paradaux.friendlybot.managers.MongoManager; -import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.utils.models.database.GuildSettingsEntry; -import io.paradaux.friendlybot.utils.models.database.MessageEntry; -import io.paradaux.friendlybot.utils.models.types.DiscordEventListener; +import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.core.utils.models.database.GuildSettingsEntry; +import io.paradaux.friendlybot.core.utils.models.database.MessageEntry; +import io.paradaux.friendlybot.core.utils.models.types.DiscordEventListener; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.TextChannel; import net.dv8tion.jda.api.entities.User; diff --git a/src/main/java/io/paradaux/friendlybot/listeners/logging/MessageLog.java b/src/main/java/io/paradaux/friendlybot/discord/listeners/logging/MessageLog.java similarity index 90% rename from src/main/java/io/paradaux/friendlybot/listeners/logging/MessageLog.java rename to src/main/java/io/paradaux/friendlybot/discord/listeners/logging/MessageLog.java index ce4453a5..9a6bc706 100644 --- a/src/main/java/io/paradaux/friendlybot/listeners/logging/MessageLog.java +++ b/src/main/java/io/paradaux/friendlybot/discord/listeners/logging/MessageLog.java @@ -23,15 +23,15 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.listeners.logging; +package io.paradaux.friendlybot.discord.listeners.logging; import io.paradaux.friendlybot.managers.DiscordBotManager; import io.paradaux.friendlybot.managers.GuildSettingsManager; import io.paradaux.friendlybot.managers.MongoManager; -import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.utils.models.database.GuildSettingsEntry; -import io.paradaux.friendlybot.utils.models.database.MessageEntry; -import io.paradaux.friendlybot.utils.models.types.DiscordEventListener; +import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.core.utils.models.database.GuildSettingsEntry; +import io.paradaux.friendlybot.core.utils.models.database.MessageEntry; +import io.paradaux.friendlybot.core.utils.models.types.DiscordEventListener; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.TextChannel; import net.dv8tion.jda.api.events.message.MessageReceivedEvent; diff --git a/src/main/java/io/paradaux/friendlybot/listeners/logging/UpdatedMessageLog.java b/src/main/java/io/paradaux/friendlybot/discord/listeners/logging/UpdatedMessageLog.java similarity index 90% rename from src/main/java/io/paradaux/friendlybot/listeners/logging/UpdatedMessageLog.java rename to src/main/java/io/paradaux/friendlybot/discord/listeners/logging/UpdatedMessageLog.java index bf891b59..f4936de1 100644 --- a/src/main/java/io/paradaux/friendlybot/listeners/logging/UpdatedMessageLog.java +++ b/src/main/java/io/paradaux/friendlybot/discord/listeners/logging/UpdatedMessageLog.java @@ -23,15 +23,15 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.listeners.logging; +package io.paradaux.friendlybot.discord.listeners.logging; import io.paradaux.friendlybot.managers.DiscordBotManager; import io.paradaux.friendlybot.managers.GuildSettingsManager; import io.paradaux.friendlybot.managers.MongoManager; -import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.utils.models.database.GuildSettingsEntry; -import io.paradaux.friendlybot.utils.models.database.MessageEntry; -import io.paradaux.friendlybot.utils.models.types.DiscordEventListener; +import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.core.utils.models.database.GuildSettingsEntry; +import io.paradaux.friendlybot.core.utils.models.database.MessageEntry; +import io.paradaux.friendlybot.core.utils.models.types.DiscordEventListener; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.TextChannel; import net.dv8tion.jda.api.entities.User; diff --git a/src/main/java/io/paradaux/friendlybot/listeners/logging/audit/GuildJoinLog.java b/src/main/java/io/paradaux/friendlybot/discord/listeners/logging/audit/GuildJoinLog.java similarity index 88% rename from src/main/java/io/paradaux/friendlybot/listeners/logging/audit/GuildJoinLog.java rename to src/main/java/io/paradaux/friendlybot/discord/listeners/logging/audit/GuildJoinLog.java index 78086dba..f64b4bc9 100644 --- a/src/main/java/io/paradaux/friendlybot/listeners/logging/audit/GuildJoinLog.java +++ b/src/main/java/io/paradaux/friendlybot/discord/listeners/logging/audit/GuildJoinLog.java @@ -23,13 +23,13 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.listeners.logging.audit; +package io.paradaux.friendlybot.discord.listeners.logging.audit; import io.paradaux.friendlybot.managers.DiscordBotManager; import io.paradaux.friendlybot.managers.GuildSettingsManager; -import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.utils.models.database.GuildSettingsEntry; -import io.paradaux.friendlybot.utils.models.types.DiscordEventListener; +import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.core.utils.models.database.GuildSettingsEntry; +import io.paradaux.friendlybot.core.utils.models.types.DiscordEventListener; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.events.guild.member.GuildMemberJoinEvent; import org.jetbrains.annotations.NotNull; diff --git a/src/main/java/io/paradaux/friendlybot/listeners/logging/audit/GuildLeaveLog.java b/src/main/java/io/paradaux/friendlybot/discord/listeners/logging/audit/GuildLeaveLog.java similarity index 88% rename from src/main/java/io/paradaux/friendlybot/listeners/logging/audit/GuildLeaveLog.java rename to src/main/java/io/paradaux/friendlybot/discord/listeners/logging/audit/GuildLeaveLog.java index bd24a942..903a789c 100644 --- a/src/main/java/io/paradaux/friendlybot/listeners/logging/audit/GuildLeaveLog.java +++ b/src/main/java/io/paradaux/friendlybot/discord/listeners/logging/audit/GuildLeaveLog.java @@ -23,13 +23,13 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.listeners.logging.audit; +package io.paradaux.friendlybot.discord.listeners.logging.audit; import io.paradaux.friendlybot.managers.DiscordBotManager; import io.paradaux.friendlybot.managers.GuildSettingsManager; -import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.utils.models.database.GuildSettingsEntry; -import io.paradaux.friendlybot.utils.models.types.DiscordEventListener; +import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.core.utils.models.database.GuildSettingsEntry; +import io.paradaux.friendlybot.core.utils.models.types.DiscordEventListener; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.events.guild.member.GuildMemberRemoveEvent; import org.jetbrains.annotations.NotNull; diff --git a/src/main/java/io/paradaux/friendlybot/listeners/modmail/ModMailChannelListener.java b/src/main/java/io/paradaux/friendlybot/discord/listeners/modmail/ModMailChannelListener.java similarity index 83% rename from src/main/java/io/paradaux/friendlybot/listeners/modmail/ModMailChannelListener.java rename to src/main/java/io/paradaux/friendlybot/discord/listeners/modmail/ModMailChannelListener.java index 8c2b214b..9f0421d9 100644 --- a/src/main/java/io/paradaux/friendlybot/listeners/modmail/ModMailChannelListener.java +++ b/src/main/java/io/paradaux/friendlybot/discord/listeners/modmail/ModMailChannelListener.java @@ -23,22 +23,20 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.listeners.modmail; +package io.paradaux.friendlybot.discord.listeners.modmail; import io.paradaux.friendlybot.managers.DiscordBotManager; import io.paradaux.friendlybot.managers.GuildSettingsManager; import io.paradaux.friendlybot.managers.MongoManager; -import io.paradaux.friendlybot.utils.embeds.modmail.ModMailReceivedEmbed; -import io.paradaux.friendlybot.utils.embeds.modmail.ModMailSentEmbed; -import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.utils.models.database.GuildSettingsEntry; -import io.paradaux.friendlybot.utils.models.database.ModMailEntry; -import io.paradaux.friendlybot.utils.models.enums.TicketStatus; -import io.paradaux.friendlybot.utils.models.interfaces.Embed; -import io.paradaux.friendlybot.utils.models.types.DiscordEventListener; -import net.dv8tion.jda.api.entities.ChannelType; +import io.paradaux.friendlybot.core.utils.embeds.modmail.ModMailReceivedEmbed; +import io.paradaux.friendlybot.core.utils.embeds.modmail.ModMailSentEmbed; +import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.core.utils.models.database.GuildSettingsEntry; +import io.paradaux.friendlybot.core.utils.models.database.ModMailEntry; +import io.paradaux.friendlybot.core.utils.models.enums.TicketStatus; +import io.paradaux.friendlybot.core.utils.models.interfaces.Embed; +import io.paradaux.friendlybot.core.utils.models.types.DiscordEventListener; import net.dv8tion.jda.api.entities.Message; -import net.dv8tion.jda.api.entities.TextChannel; import net.dv8tion.jda.api.events.message.MessageReceivedEvent; import org.jetbrains.annotations.NotNull; import org.slf4j.Logger; diff --git a/src/main/java/io/paradaux/friendlybot/listeners/rooms/RoomJoinListener.java b/src/main/java/io/paradaux/friendlybot/discord/listeners/rooms/RoomJoinListener.java similarity index 83% rename from src/main/java/io/paradaux/friendlybot/listeners/rooms/RoomJoinListener.java rename to src/main/java/io/paradaux/friendlybot/discord/listeners/rooms/RoomJoinListener.java index c89a8db8..72b94800 100644 --- a/src/main/java/io/paradaux/friendlybot/listeners/rooms/RoomJoinListener.java +++ b/src/main/java/io/paradaux/friendlybot/discord/listeners/rooms/RoomJoinListener.java @@ -1,7 +1,7 @@ -package io.paradaux.friendlybot.listeners.rooms; +package io.paradaux.friendlybot.discord.listeners.rooms; -import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.utils.models.types.DiscordEventListener; +import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.core.utils.models.types.DiscordEventListener; import net.dv8tion.jda.api.entities.Guild; import net.dv8tion.jda.api.entities.VoiceChannel; import net.dv8tion.jda.api.events.guild.voice.GuildVoiceJoinEvent; diff --git a/src/main/java/io/paradaux/friendlybot/listeners/rooms/RoomLeaveListener.java b/src/main/java/io/paradaux/friendlybot/discord/listeners/rooms/RoomLeaveListener.java similarity index 73% rename from src/main/java/io/paradaux/friendlybot/listeners/rooms/RoomLeaveListener.java rename to src/main/java/io/paradaux/friendlybot/discord/listeners/rooms/RoomLeaveListener.java index 33ab5c21..6eb03ed4 100644 --- a/src/main/java/io/paradaux/friendlybot/listeners/rooms/RoomLeaveListener.java +++ b/src/main/java/io/paradaux/friendlybot/discord/listeners/rooms/RoomLeaveListener.java @@ -1,7 +1,7 @@ -package io.paradaux.friendlybot.listeners.rooms; +package io.paradaux.friendlybot.discord.listeners.rooms; -import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.utils.models.types.DiscordEventListener; +import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.core.utils.models.types.DiscordEventListener; import net.dv8tion.jda.api.events.guild.voice.GuildVoiceLeaveEvent; import org.slf4j.Logger; diff --git a/src/main/java/io/paradaux/friendlybot/listeners/utility/LongMessageListener.java b/src/main/java/io/paradaux/friendlybot/discord/listeners/utility/LongMessageListener.java similarity index 95% rename from src/main/java/io/paradaux/friendlybot/listeners/utility/LongMessageListener.java rename to src/main/java/io/paradaux/friendlybot/discord/listeners/utility/LongMessageListener.java index 77dc4a79..2083c28d 100644 --- a/src/main/java/io/paradaux/friendlybot/listeners/utility/LongMessageListener.java +++ b/src/main/java/io/paradaux/friendlybot/discord/listeners/utility/LongMessageListener.java @@ -23,10 +23,10 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.listeners.utility; +package io.paradaux.friendlybot.discord.listeners.utility; -import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.utils.models.types.DiscordEventListener; +import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.core.utils.models.types.DiscordEventListener; import io.paradaux.http.HttpApi; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.Message; diff --git a/src/main/java/io/paradaux/friendlybot/listeners/verification/VerificationCodeReceivedListener.java b/src/main/java/io/paradaux/friendlybot/discord/listeners/verification/VerificationCodeReceivedListener.java similarity index 93% rename from src/main/java/io/paradaux/friendlybot/listeners/verification/VerificationCodeReceivedListener.java rename to src/main/java/io/paradaux/friendlybot/discord/listeners/verification/VerificationCodeReceivedListener.java index db2d1365..3973c8c8 100644 --- a/src/main/java/io/paradaux/friendlybot/listeners/verification/VerificationCodeReceivedListener.java +++ b/src/main/java/io/paradaux/friendlybot/discord/listeners/verification/VerificationCodeReceivedListener.java @@ -23,14 +23,14 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.listeners.verification; +package io.paradaux.friendlybot.discord.listeners.verification; import io.paradaux.friendlybot.managers.DiscordBotManager; import io.paradaux.friendlybot.managers.MongoManager; import io.paradaux.friendlybot.managers.VerificationManager; -import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.utils.models.exceptions.VerificationException; -import io.paradaux.friendlybot.utils.models.types.DiscordEventListener; +import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.core.utils.models.exceptions.VerificationException; +import io.paradaux.friendlybot.core.utils.models.types.DiscordEventListener; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.ChannelType; import net.dv8tion.jda.api.entities.Message; diff --git a/src/main/java/io/paradaux/friendlybot/listeners/verification/VerificationEmailReceivedListener.java b/src/main/java/io/paradaux/friendlybot/discord/listeners/verification/VerificationEmailReceivedListener.java similarity index 94% rename from src/main/java/io/paradaux/friendlybot/listeners/verification/VerificationEmailReceivedListener.java rename to src/main/java/io/paradaux/friendlybot/discord/listeners/verification/VerificationEmailReceivedListener.java index ff8de13e..666c0563 100644 --- a/src/main/java/io/paradaux/friendlybot/listeners/verification/VerificationEmailReceivedListener.java +++ b/src/main/java/io/paradaux/friendlybot/discord/listeners/verification/VerificationEmailReceivedListener.java @@ -23,15 +23,15 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.listeners.verification; +package io.paradaux.friendlybot.discord.listeners.verification; import io.paradaux.friendlybot.managers.DiscordBotManager; import io.paradaux.friendlybot.managers.MongoManager; import io.paradaux.friendlybot.managers.VerificationManager; -import io.paradaux.friendlybot.utils.StringUtils; -import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.utils.models.exceptions.VerificationException; -import io.paradaux.friendlybot.utils.models.types.DiscordEventListener; +import io.paradaux.friendlybot.core.utils.StringUtils; +import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.core.utils.models.exceptions.VerificationException; +import io.paradaux.friendlybot.core.utils.models.types.DiscordEventListener; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.ChannelType; import net.dv8tion.jda.api.entities.Message; diff --git a/src/main/java/io/paradaux/friendlybot/managers/AuditManager.java b/src/main/java/io/paradaux/friendlybot/managers/AuditManager.java index 043a6680..2af868c9 100644 --- a/src/main/java/io/paradaux/friendlybot/managers/AuditManager.java +++ b/src/main/java/io/paradaux/friendlybot/managers/AuditManager.java @@ -25,11 +25,11 @@ package io.paradaux.friendlybot.managers; -import io.paradaux.friendlybot.utils.embeds.AuditLogEmbed; -import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.utils.models.database.AuditLogEntry; -import io.paradaux.friendlybot.utils.models.exceptions.ManagerNotReadyException; -import io.paradaux.friendlybot.utils.models.types.ModerationAction; +import io.paradaux.friendlybot.core.utils.embeds.AuditLogEmbed; +import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.core.utils.models.database.AuditLogEntry; +import io.paradaux.friendlybot.core.utils.models.exceptions.ManagerNotReadyException; +import io.paradaux.friendlybot.core.utils.models.types.ModerationAction; import net.dv8tion.jda.api.entities.TextChannel; import net.dv8tion.jda.api.entities.User; import org.slf4j.Logger; diff --git a/src/main/java/io/paradaux/friendlybot/managers/ConfigManager.java b/src/main/java/io/paradaux/friendlybot/managers/ConfigManager.java index bab50d40..b370c6b4 100644 --- a/src/main/java/io/paradaux/friendlybot/managers/ConfigManager.java +++ b/src/main/java/io/paradaux/friendlybot/managers/ConfigManager.java @@ -25,8 +25,8 @@ package io.paradaux.friendlybot.managers; -import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.utils.models.exceptions.ManagerNotReadyException; +import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.core.utils.models.exceptions.ManagerNotReadyException; import org.slf4j.Logger; import java.io.FileNotFoundException; diff --git a/src/main/java/io/paradaux/friendlybot/managers/DiscordBotManager.java b/src/main/java/io/paradaux/friendlybot/managers/DiscordBotManager.java index be1a89d2..fa47bb2b 100644 --- a/src/main/java/io/paradaux/friendlybot/managers/DiscordBotManager.java +++ b/src/main/java/io/paradaux/friendlybot/managers/DiscordBotManager.java @@ -28,22 +28,22 @@ import com.jagrosh.jdautilities.command.CommandClient; import com.jagrosh.jdautilities.command.CommandClientBuilder; import com.jagrosh.jdautilities.commons.waiter.EventWaiter; -import io.paradaux.friendlybot.commands.fun.*; -import io.paradaux.friendlybot.commands.staff.moderation.*; -import io.paradaux.friendlybot.commands.staff.technician.*; -import io.paradaux.friendlybot.commands.utility.*; -import io.paradaux.friendlybot.listeners.*; -import io.paradaux.friendlybot.listeners.logging.MessageDeleteLog; -import io.paradaux.friendlybot.listeners.logging.MessageLog; -import io.paradaux.friendlybot.listeners.logging.UpdatedMessageLog; -import io.paradaux.friendlybot.listeners.logging.audit.GuildJoinLog; -import io.paradaux.friendlybot.listeners.logging.audit.GuildLeaveLog; -import io.paradaux.friendlybot.listeners.modmail.ModMailChannelListener; -import io.paradaux.friendlybot.listeners.utility.LongMessageListener; -import io.paradaux.friendlybot.listeners.verification.VerificationCodeReceivedListener; -import io.paradaux.friendlybot.listeners.verification.VerificationEmailReceivedListener; -import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.utils.models.exceptions.ManagerNotReadyException; +import io.paradaux.friendlybot.discord.commands.fun.*; +import io.paradaux.friendlybot.discord.commands.staff.moderation.*; +import io.paradaux.friendlybot.discord.commands.staff.technician.*; +import io.paradaux.friendlybot.discord.commands.utility.*; +import io.paradaux.friendlybot.discord.listeners.*; +import io.paradaux.friendlybot.discord.listeners.logging.MessageDeleteLog; +import io.paradaux.friendlybot.discord.listeners.logging.MessageLog; +import io.paradaux.friendlybot.discord.listeners.logging.UpdatedMessageLog; +import io.paradaux.friendlybot.discord.listeners.logging.audit.GuildJoinLog; +import io.paradaux.friendlybot.discord.listeners.logging.audit.GuildLeaveLog; +import io.paradaux.friendlybot.discord.listeners.modmail.ModMailChannelListener; +import io.paradaux.friendlybot.discord.listeners.utility.LongMessageListener; +import io.paradaux.friendlybot.discord.listeners.verification.VerificationCodeReceivedListener; +import io.paradaux.friendlybot.discord.listeners.verification.VerificationEmailReceivedListener; +import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.core.utils.models.exceptions.ManagerNotReadyException; import net.dv8tion.jda.api.JDA; import net.dv8tion.jda.api.JDABuilder; import net.dv8tion.jda.api.entities.*; diff --git a/src/main/java/io/paradaux/friendlybot/managers/GuildManager.java b/src/main/java/io/paradaux/friendlybot/managers/GuildManager.java index b8f4dca7..94e5f844 100644 --- a/src/main/java/io/paradaux/friendlybot/managers/GuildManager.java +++ b/src/main/java/io/paradaux/friendlybot/managers/GuildManager.java @@ -1,6 +1,6 @@ package io.paradaux.friendlybot.managers; -import io.paradaux.friendlybot.utils.models.database.GuildSettingsEntry; +import io.paradaux.friendlybot.core.utils.models.database.GuildSettingsEntry; import org.slf4j.Logger; import java.util.HashMap; diff --git a/src/main/java/io/paradaux/friendlybot/managers/GuildSettingsManager.java b/src/main/java/io/paradaux/friendlybot/managers/GuildSettingsManager.java index 695616c0..cbe9a112 100644 --- a/src/main/java/io/paradaux/friendlybot/managers/GuildSettingsManager.java +++ b/src/main/java/io/paradaux/friendlybot/managers/GuildSettingsManager.java @@ -3,8 +3,8 @@ import com.mongodb.client.MongoCollection; import com.mongodb.client.model.Filters; import com.mongodb.client.model.FindOneAndUpdateOptions; -import io.paradaux.friendlybot.utils.models.database.GuildSettingsEntry; -import io.paradaux.friendlybot.utils.models.exceptions.ManagerNotReadyException; +import io.paradaux.friendlybot.core.utils.models.database.GuildSettingsEntry; +import io.paradaux.friendlybot.core.utils.models.exceptions.ManagerNotReadyException; import org.bson.Document; import org.slf4j.Logger; diff --git a/src/main/java/io/paradaux/friendlybot/managers/IOManager.java b/src/main/java/io/paradaux/friendlybot/managers/IOManager.java index 2bf8384c..38661a5b 100644 --- a/src/main/java/io/paradaux/friendlybot/managers/IOManager.java +++ b/src/main/java/io/paradaux/friendlybot/managers/IOManager.java @@ -27,10 +27,10 @@ import com.google.gson.Gson; import com.google.gson.GsonBuilder; -import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.utils.models.configuration.PermissionEntry; -import io.paradaux.friendlybot.utils.models.exceptions.ManagerNotReadyException; -import io.paradaux.friendlybot.utils.models.exceptions.NoSuchResourceException; +import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.core.utils.models.configuration.PermissionEntry; +import io.paradaux.friendlybot.core.utils.models.exceptions.ManagerNotReadyException; +import io.paradaux.friendlybot.core.utils.models.exceptions.NoSuchResourceException; import org.slf4j.Logger; import javax.annotation.Nullable; diff --git a/src/main/java/io/paradaux/friendlybot/managers/MailGunManager.java b/src/main/java/io/paradaux/friendlybot/managers/MailGunManager.java index 2f950167..53cff2aa 100644 --- a/src/main/java/io/paradaux/friendlybot/managers/MailGunManager.java +++ b/src/main/java/io/paradaux/friendlybot/managers/MailGunManager.java @@ -25,20 +25,16 @@ package io.paradaux.friendlybot.managers; -import io.paradaux.friendlybot.utils.HttpUtils; -import io.paradaux.friendlybot.utils.StringUtils; -import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.utils.models.exceptions.ManagerNotReadyException; -import io.paradaux.friendlybot.utils.models.exceptions.VerificationException; +import io.paradaux.friendlybot.core.utils.HttpUtils; +import io.paradaux.friendlybot.core.utils.StringUtils; +import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.core.utils.models.exceptions.ManagerNotReadyException; import okhttp3.MultipartBody; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.RequestBody; import org.slf4j.Logger; -import java.io.IOException; -import java.io.Reader; - public class MailGunManager { private static MailGunManager instance; diff --git a/src/main/java/io/paradaux/friendlybot/managers/MongoManager.java b/src/main/java/io/paradaux/friendlybot/managers/MongoManager.java index e4aa234d..e37b47c6 100644 --- a/src/main/java/io/paradaux/friendlybot/managers/MongoManager.java +++ b/src/main/java/io/paradaux/friendlybot/managers/MongoManager.java @@ -29,18 +29,15 @@ import com.mongodb.MongoClientSettings; import com.mongodb.client.*; import com.mongodb.client.model.Filters; -import com.mongodb.client.model.FindOneAndUpdateOptions; import com.mongodb.client.model.IndexOptions; import com.mongodb.client.model.Indexes; -import com.mongodb.client.model.ReturnDocument; -import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.utils.models.database.*; -import io.paradaux.friendlybot.utils.models.enums.TicketStatus; -import io.paradaux.friendlybot.utils.models.exceptions.ManagerNotReadyException; +import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.core.utils.models.database.*; +import io.paradaux.friendlybot.core.utils.models.enums.TicketStatus; +import io.paradaux.friendlybot.core.utils.models.exceptions.ManagerNotReadyException; import org.bson.Document; import org.bson.codecs.configuration.CodecRegistry; import org.bson.codecs.pojo.PojoCodecProvider; -import org.bson.types.ObjectId; import org.slf4j.Logger; import javax.annotation.CheckReturnValue; diff --git a/src/main/java/io/paradaux/friendlybot/managers/PermissionManager.java b/src/main/java/io/paradaux/friendlybot/managers/PermissionManager.java index e88079b7..c1f45b97 100644 --- a/src/main/java/io/paradaux/friendlybot/managers/PermissionManager.java +++ b/src/main/java/io/paradaux/friendlybot/managers/PermissionManager.java @@ -25,8 +25,8 @@ package io.paradaux.friendlybot.managers; -import io.paradaux.friendlybot.utils.models.configuration.PermissionEntry; -import io.paradaux.friendlybot.utils.models.exceptions.ManagerNotReadyException; +import io.paradaux.friendlybot.core.utils.models.configuration.PermissionEntry; +import io.paradaux.friendlybot.core.utils.models.exceptions.ManagerNotReadyException; import org.slf4j.Logger; import java.io.FileNotFoundException; diff --git a/src/main/java/io/paradaux/friendlybot/managers/PunishmentManager.java b/src/main/java/io/paradaux/friendlybot/managers/PunishmentManager.java index bc197567..388da0d7 100644 --- a/src/main/java/io/paradaux/friendlybot/managers/PunishmentManager.java +++ b/src/main/java/io/paradaux/friendlybot/managers/PunishmentManager.java @@ -1,15 +1,15 @@ package io.paradaux.friendlybot.managers; -import io.paradaux.friendlybot.utils.TimeUtils; -import io.paradaux.friendlybot.utils.embeds.moderation.BannedEmbed; -import io.paradaux.friendlybot.utils.models.database.BanEntry; -import io.paradaux.friendlybot.utils.models.database.GuildSettingsEntry; -import io.paradaux.friendlybot.utils.models.database.KickEntry; -import io.paradaux.friendlybot.utils.models.database.RescindmentEntry; -import io.paradaux.friendlybot.utils.models.database.TempBanEntry; -import io.paradaux.friendlybot.utils.models.database.WarningEntry; -import io.paradaux.friendlybot.utils.models.exceptions.ManagerNotReadyException; -import io.paradaux.friendlybot.utils.models.types.ModerationAction; +import io.paradaux.friendlybot.core.utils.TimeUtils; +import io.paradaux.friendlybot.core.utils.embeds.moderation.BannedEmbed; +import io.paradaux.friendlybot.core.utils.models.database.BanEntry; +import io.paradaux.friendlybot.core.utils.models.database.GuildSettingsEntry; +import io.paradaux.friendlybot.core.utils.models.database.KickEntry; +import io.paradaux.friendlybot.core.utils.models.database.RescindmentEntry; +import io.paradaux.friendlybot.core.utils.models.database.TempBanEntry; +import io.paradaux.friendlybot.core.utils.models.database.WarningEntry; +import io.paradaux.friendlybot.core.utils.models.exceptions.ManagerNotReadyException; +import io.paradaux.friendlybot.core.utils.models.types.ModerationAction; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.Guild; import net.dv8tion.jda.api.entities.Member; diff --git a/src/main/java/io/paradaux/friendlybot/managers/RoleManager.java b/src/main/java/io/paradaux/friendlybot/managers/RoleManager.java index f7f55858..6302735d 100644 --- a/src/main/java/io/paradaux/friendlybot/managers/RoleManager.java +++ b/src/main/java/io/paradaux/friendlybot/managers/RoleManager.java @@ -1,6 +1,6 @@ package io.paradaux.friendlybot.managers; -import io.paradaux.friendlybot.utils.models.exceptions.ManagerNotReadyException; +import io.paradaux.friendlybot.core.utils.models.exceptions.ManagerNotReadyException; import net.dv8tion.jda.api.entities.Guild; import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Role; diff --git a/src/main/java/io/paradaux/friendlybot/managers/TagManager.java b/src/main/java/io/paradaux/friendlybot/managers/TagManager.java index bcdc1e7d..6bebff78 100644 --- a/src/main/java/io/paradaux/friendlybot/managers/TagManager.java +++ b/src/main/java/io/paradaux/friendlybot/managers/TagManager.java @@ -3,9 +3,9 @@ import com.mongodb.client.FindIterable; import com.mongodb.client.MongoCollection; import com.mongodb.client.model.Filters; -import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.utils.models.database.TagEntry; -import io.paradaux.friendlybot.utils.models.exceptions.ManagerNotReadyException; +import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.core.utils.models.database.TagEntry; +import io.paradaux.friendlybot.core.utils.models.exceptions.ManagerNotReadyException; import org.bson.Document; import org.slf4j.Logger; diff --git a/src/main/java/io/paradaux/friendlybot/managers/TaskManager.java b/src/main/java/io/paradaux/friendlybot/managers/TaskManager.java index 06e64581..f5a40b2e 100644 --- a/src/main/java/io/paradaux/friendlybot/managers/TaskManager.java +++ b/src/main/java/io/paradaux/friendlybot/managers/TaskManager.java @@ -1,12 +1,11 @@ package io.paradaux.friendlybot.managers; -import io.paradaux.friendlybot.utils.models.exceptions.ManagerNotReadyException; +import io.paradaux.friendlybot.core.utils.models.exceptions.ManagerNotReadyException; import net.dv8tion.jda.api.entities.Guild; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; -import java.util.logging.LogManager; import java.util.logging.Logger; public class TaskManager { diff --git a/src/main/java/io/paradaux/friendlybot/managers/UserSettingsManager.java b/src/main/java/io/paradaux/friendlybot/managers/UserSettingsManager.java index 632f4cf1..1c4d41ef 100644 --- a/src/main/java/io/paradaux/friendlybot/managers/UserSettingsManager.java +++ b/src/main/java/io/paradaux/friendlybot/managers/UserSettingsManager.java @@ -1,9 +1,9 @@ package io.paradaux.friendlybot.managers; import com.mongodb.client.MongoCollection; -import io.paradaux.friendlybot.utils.TimeUtils; -import io.paradaux.friendlybot.utils.models.database.UserSettingsEntry; -import io.paradaux.friendlybot.utils.models.exceptions.ManagerNotReadyException; +import io.paradaux.friendlybot.core.utils.TimeUtils; +import io.paradaux.friendlybot.core.utils.models.database.UserSettingsEntry; +import io.paradaux.friendlybot.core.utils.models.exceptions.ManagerNotReadyException; import net.dv8tion.jda.api.entities.User; import org.bson.Document; import org.slf4j.Logger; diff --git a/src/main/java/io/paradaux/friendlybot/managers/VerificationManager.java b/src/main/java/io/paradaux/friendlybot/managers/VerificationManager.java index 3266bfeb..0af4e283 100644 --- a/src/main/java/io/paradaux/friendlybot/managers/VerificationManager.java +++ b/src/main/java/io/paradaux/friendlybot/managers/VerificationManager.java @@ -26,11 +26,11 @@ package io.paradaux.friendlybot.managers; import com.mongodb.client.FindIterable; -import io.paradaux.friendlybot.utils.StringUtils; -import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.utils.models.database.PendingVerificationEntry; -import io.paradaux.friendlybot.utils.models.exceptions.ManagerNotReadyException; -import io.paradaux.friendlybot.utils.models.exceptions.VerificationException; +import io.paradaux.friendlybot.core.utils.StringUtils; +import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.core.utils.models.database.PendingVerificationEntry; +import io.paradaux.friendlybot.core.utils.models.exceptions.ManagerNotReadyException; +import io.paradaux.friendlybot.core.utils.models.exceptions.VerificationException; import net.dv8tion.jda.api.entities.Guild; import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Role; diff --git a/src/main/java/io/paradaux/friendlybot/models/FGuild.java b/src/main/java/io/paradaux/friendlybot/models/FGuild.java index e37fadb9..58a3fd66 100644 --- a/src/main/java/io/paradaux/friendlybot/models/FGuild.java +++ b/src/main/java/io/paradaux/friendlybot/models/FGuild.java @@ -1,6 +1,6 @@ package io.paradaux.friendlybot.models; -import io.paradaux.friendlybot.utils.models.database.GuildSettingsEntry; +import io.paradaux.friendlybot.core.utils.models.database.GuildSettingsEntry; import net.dv8tion.jda.api.entities.Guild; public class FGuild { diff --git a/src/main/java/io/paradaux/friendlybot/utils/models/enums/TicketStatus.java b/src/main/java/io/paradaux/friendlybot/utils/models/enums/TicketStatus.java deleted file mode 100644 index 5fa3ef91..00000000 --- a/src/main/java/io/paradaux/friendlybot/utils/models/enums/TicketStatus.java +++ /dev/null @@ -1,5 +0,0 @@ -package io.paradaux.friendlybot.utils.models.enums; - -public enum TicketStatus { - OPEN, CLOSED -} diff --git a/src/main/resources/log4j.properties b/src/main/resources/log4j.properties index 1c58f63e..be3f233b 100644 --- a/src/main/resources/log4j.properties +++ b/src/main/resources/log4j.properties @@ -1,6 +1,6 @@ # MIT License # -# Copyright (c) 2021 Rían Errity +# Copyright (c) 2021 Rian Errity # D:/Workspace/Java/FriendlyBot/src/main/resources/log4j.properties : 31/01/2021, 01:26 # # Permission is hereby granted, free of charge, to any person obtaining a copy diff --git a/src/test/java/io/paradaux/friendlybot/utils/EmbedParserTest.java b/src/test/java/io/paradaux/friendlybot/core/utils/EmbedParserTest.java similarity index 93% rename from src/test/java/io/paradaux/friendlybot/utils/EmbedParserTest.java rename to src/test/java/io/paradaux/friendlybot/core/utils/EmbedParserTest.java index 0762ecea..d39b5d7b 100644 --- a/src/test/java/io/paradaux/friendlybot/utils/EmbedParserTest.java +++ b/src/test/java/io/paradaux/friendlybot/core/utils/EmbedParserTest.java @@ -23,12 +23,12 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.utils; +package io.paradaux.friendlybot.core.utils; import com.google.gson.Gson; import com.google.gson.GsonBuilder; -import io.paradaux.friendlybot.utils.embeds.command.UserInfoEmbed; -import io.paradaux.friendlybot.utils.models.interfaces.Embed; +import io.paradaux.friendlybot.core.utils.embeds.command.UserInfoEmbed; +import io.paradaux.friendlybot.core.utils.models.interfaces.Embed; import net.dv8tion.jda.api.EmbedBuilder; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; diff --git a/src/test/java/io/paradaux/friendlybot/utils/TimeUtilsTest.java b/src/test/java/io/paradaux/friendlybot/core/utils/TimeUtilsTest.java similarity index 86% rename from src/test/java/io/paradaux/friendlybot/utils/TimeUtilsTest.java rename to src/test/java/io/paradaux/friendlybot/core/utils/TimeUtilsTest.java index 2b21ae9c..a98cc307 100644 --- a/src/test/java/io/paradaux/friendlybot/utils/TimeUtilsTest.java +++ b/src/test/java/io/paradaux/friendlybot/core/utils/TimeUtilsTest.java @@ -1,4 +1,4 @@ -package io.paradaux.friendlybot.utils; +package io.paradaux.friendlybot.core.utils; import org.junit.jupiter.api.Test; diff --git a/src/test/java/io/paradaux/friendlybot/utils/models/StringUtilsTest.java b/src/test/java/io/paradaux/friendlybot/core/utils/models/StringUtilsTest.java similarity index 97% rename from src/test/java/io/paradaux/friendlybot/utils/models/StringUtilsTest.java rename to src/test/java/io/paradaux/friendlybot/core/utils/models/StringUtilsTest.java index 6401ab52..b30ad222 100644 --- a/src/test/java/io/paradaux/friendlybot/utils/models/StringUtilsTest.java +++ b/src/test/java/io/paradaux/friendlybot/core/utils/models/StringUtilsTest.java @@ -23,9 +23,9 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.utils.models; +package io.paradaux.friendlybot.core.utils.models; -import io.paradaux.friendlybot.utils.StringUtils; +import io.paradaux.friendlybot.core.utils.StringUtils; import net.dv8tion.jda.api.OnlineStatus; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeEach; diff --git a/src/test/java/io/paradaux/friendlybot/commands/utility/WolframAlphaCommandTest.java b/src/test/java/io/paradaux/friendlybot/discord/commands/utility/WolframAlphaCommandTest.java similarity index 97% rename from src/test/java/io/paradaux/friendlybot/commands/utility/WolframAlphaCommandTest.java rename to src/test/java/io/paradaux/friendlybot/discord/commands/utility/WolframAlphaCommandTest.java index fbb043c7..eab5d482 100644 --- a/src/test/java/io/paradaux/friendlybot/commands/utility/WolframAlphaCommandTest.java +++ b/src/test/java/io/paradaux/friendlybot/discord/commands/utility/WolframAlphaCommandTest.java @@ -23,9 +23,9 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.commands.utility; +package io.paradaux.friendlybot.discord.commands.utility; -import io.paradaux.friendlybot.utils.NumberUtils; +import io.paradaux.friendlybot.core.utils.NumberUtils; import io.paradaux.http.HttpApi; import net.dv8tion.jda.api.EmbedBuilder; import org.json.JSONObject; diff --git a/src/test/java/io/paradaux/friendlybot/managers/BotControllerTest.java b/src/test/java/io/paradaux/friendlybot/managers/BotControllerTest.java index 7236ed25..cf7ef7e4 100644 --- a/src/test/java/io/paradaux/friendlybot/managers/BotControllerTest.java +++ b/src/test/java/io/paradaux/friendlybot/managers/BotControllerTest.java @@ -25,7 +25,7 @@ package io.paradaux.friendlybot.managers; -import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import org.junit.jupiter.api.BeforeAll; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/test/java/io/paradaux/friendlybot/scripts/ModifyProdDb.java b/src/test/java/io/paradaux/friendlybot/scripts/ModifyProdDb.java index 82099c02..978372dc 100644 --- a/src/test/java/io/paradaux/friendlybot/scripts/ModifyProdDb.java +++ b/src/test/java/io/paradaux/friendlybot/scripts/ModifyProdDb.java @@ -3,10 +3,9 @@ import com.mongodb.client.FindIterable; import io.paradaux.friendlybot.managers.MongoManager; import io.paradaux.friendlybot.managers.TagManager; -import io.paradaux.friendlybot.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.utils.models.database.TagEntry; +import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.core.utils.models.database.TagEntry; import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; From 531a83ad8bee58e5d42b92d0a823adc79f992258 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Sun, 1 Aug 2021 22:49:17 +0100 Subject: [PATCH 053/121] Remove TODO --- src/main/java/io/paradaux/friendlybot/FriendlyBot.java | 5 ----- .../discord/commands/staff/technician/DmCommand.java | 2 -- .../friendlybot/discord/commands/utility/GithubCommand.java | 2 -- .../discord/commands/utility/UserInfoCommand.java | 1 - .../discord/listeners/modmail/ModMailChannelListener.java | 2 -- .../java/io/paradaux/friendlybot/managers/AuditManager.java | 2 -- .../io/paradaux/friendlybot/managers/PunishmentManager.java | 3 --- 7 files changed, 17 deletions(-) diff --git a/src/main/java/io/paradaux/friendlybot/FriendlyBot.java b/src/main/java/io/paradaux/friendlybot/FriendlyBot.java index 11e60496..112b76e9 100644 --- a/src/main/java/io/paradaux/friendlybot/FriendlyBot.java +++ b/src/main/java/io/paradaux/friendlybot/FriendlyBot.java @@ -92,10 +92,5 @@ public static void main(String[] args) { Runtime.getRuntime().addShutdownHook(new Thread(() -> { logger.info("Shutting down..."); })); - - // TODO unban scheduler - // TODO update API - // TODO Sentry integration - } } diff --git a/src/main/java/io/paradaux/friendlybot/discord/commands/staff/technician/DmCommand.java b/src/main/java/io/paradaux/friendlybot/discord/commands/staff/technician/DmCommand.java index 6333838d..8f21e6bf 100644 --- a/src/main/java/io/paradaux/friendlybot/discord/commands/staff/technician/DmCommand.java +++ b/src/main/java/io/paradaux/friendlybot/discord/commands/staff/technician/DmCommand.java @@ -43,8 +43,6 @@ public DmCommand(ConfigurationEntry config, Logger logger, PermissionManager per @Override protected void execute(CommandEvent event) { - // TODO Command stub - if (!isStaff(event.getGuild(), event.getAuthor().getId())) { respondNoPermission(event.getMessage(), "Moderator"); return; diff --git a/src/main/java/io/paradaux/friendlybot/discord/commands/utility/GithubCommand.java b/src/main/java/io/paradaux/friendlybot/discord/commands/utility/GithubCommand.java index 07df4591..58576be9 100644 --- a/src/main/java/io/paradaux/friendlybot/discord/commands/utility/GithubCommand.java +++ b/src/main/java/io/paradaux/friendlybot/discord/commands/utility/GithubCommand.java @@ -62,8 +62,6 @@ protected void execute(CommandEvent event) { break; } - // TODO implement issue searching -// case 2: { // embed = makeIssueEmbed(args[0], Long.parseLong(args[1])); // break; // } diff --git a/src/main/java/io/paradaux/friendlybot/discord/commands/utility/UserInfoCommand.java b/src/main/java/io/paradaux/friendlybot/discord/commands/utility/UserInfoCommand.java index dca44b30..2b9c7c49 100644 --- a/src/main/java/io/paradaux/friendlybot/discord/commands/utility/UserInfoCommand.java +++ b/src/main/java/io/paradaux/friendlybot/discord/commands/utility/UserInfoCommand.java @@ -86,6 +86,5 @@ protected void execute(CommandEvent event) { UserInfoEmbed embed = new UserInfoEmbed(tag, avatarUrl, status, accountCreated, joinedServer, builder.toString(), nickname); embed.sendEmbed(event.getTextChannel()); - // TODO add a staff version which shows infractions. } } diff --git a/src/main/java/io/paradaux/friendlybot/discord/listeners/modmail/ModMailChannelListener.java b/src/main/java/io/paradaux/friendlybot/discord/listeners/modmail/ModMailChannelListener.java index 9f0421d9..ab96ab9e 100644 --- a/src/main/java/io/paradaux/friendlybot/discord/listeners/modmail/ModMailChannelListener.java +++ b/src/main/java/io/paradaux/friendlybot/discord/listeners/modmail/ModMailChannelListener.java @@ -93,8 +93,6 @@ public void onMessageReceived(@NotNull MessageReceivedEvent event) { .sendMessage(sentEmbed.getEmbed()).queue()); mongo.addModMailEntry(entry); - - // TODO tidy } diff --git a/src/main/java/io/paradaux/friendlybot/managers/AuditManager.java b/src/main/java/io/paradaux/friendlybot/managers/AuditManager.java index 2af868c9..af13efb6 100644 --- a/src/main/java/io/paradaux/friendlybot/managers/AuditManager.java +++ b/src/main/java/io/paradaux/friendlybot/managers/AuditManager.java @@ -38,8 +38,6 @@ public class AuditManager { - // TODO tidy - private static AuditManager instance = null; private final ConfigurationEntry config; private final Logger logger; diff --git a/src/main/java/io/paradaux/friendlybot/managers/PunishmentManager.java b/src/main/java/io/paradaux/friendlybot/managers/PunishmentManager.java index 388da0d7..f7b65417 100644 --- a/src/main/java/io/paradaux/friendlybot/managers/PunishmentManager.java +++ b/src/main/java/io/paradaux/friendlybot/managers/PunishmentManager.java @@ -171,12 +171,10 @@ public void warnUser(Guild guild, Member target, Member staff, TextChannel chann } private MessageEmbed sameChannelPunishmentEmbed() { - // TODO return null; } private MessageEmbed privateAuditPunishmentEmbed() { - // TODO return null; } @@ -189,7 +187,6 @@ private MessageEmbed publicAuditPunishmentEmbed() { // .setFooter("Incident ID: " + entry.getIncidentId() + ". For more information, reach out to the moderation team via mod-mail.") // .setTimestamp(new Date().toInstant()) // .build(); - // TODO return null; } From 34cf887e29c873ec78f85afd57f4dfcee0dded9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Mon, 2 Aug 2021 13:46:46 +0100 Subject: [PATCH 054/121] Add configurate --- pom.xml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 020240ab..357ba84c 100644 --- a/pom.xml +++ b/pom.xml @@ -42,9 +42,7 @@ org.apache.maven.plugins - maven-compiler-plugin - 3.8.1 @@ -258,5 +256,11 @@ h2 1.4.196 + + + org.spongepowered + configurate-hocon + 4.1.1 + \ No newline at end of file From efe29f062480f8553ce867cdc5c31405f3b0a0f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Mon, 2 Aug 2021 13:47:09 +0100 Subject: [PATCH 055/121] Restructured / Ebeanified Model --- .../core/database/models/FGuild.java | 165 ++++++++++++++++++ .../paradaux/friendlybot/models/FGuild.java | 23 --- .../friendlybot/models/FGuildSetting.java | 7 - 3 files changed, 165 insertions(+), 30 deletions(-) create mode 100644 src/main/java/io/paradaux/friendlybot/core/database/models/FGuild.java delete mode 100644 src/main/java/io/paradaux/friendlybot/models/FGuild.java delete mode 100644 src/main/java/io/paradaux/friendlybot/models/FGuildSetting.java diff --git a/src/main/java/io/paradaux/friendlybot/core/database/models/FGuild.java b/src/main/java/io/paradaux/friendlybot/core/database/models/FGuild.java new file mode 100644 index 00000000..f3c6164a --- /dev/null +++ b/src/main/java/io/paradaux/friendlybot/core/database/models/FGuild.java @@ -0,0 +1,165 @@ +package io.paradaux.friendlybot.core.database.models; + +import io.ebean.Model; +import io.paradaux.friendlybot.core.cache.GuildCache; +import net.dv8tion.jda.api.entities.Guild; + +import javax.annotation.Nullable; +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Transient; +import java.util.List; + +@Entity +public class FGuild extends Model { + + @Id + private long id; + + @Transient + @Nullable + private Guild guild; + + String guildId; + + private String verificationRoleId; + private String verificationInputId; + + private String auditLogId; + private String modAuditLogId; + + private String modMailInId; + private String modMailOutId; + + private String messageLogId; + + private List moderators; + private List administrators; + + private Integer lastIncidentId; + private Integer lastTicketId; + + public FGuild() { + + } + + public FGuild(@Nullable Guild guild) { + this.guild = guild; + } + + public long getId() { + return id; + } + + @Nullable + public Guild getGuild() { + if (guild == null) { + //guild = GuildCache.getInstance().getGuild(guildId); + } + return guild; + } + + public String getGuildId() { + return guildId; + } + + public String getVerificationRoleId() { + return verificationRoleId; + } + + public String getVerificationInputId() { + return verificationInputId; + } + + public String getAuditLogId() { + return auditLogId; + } + + public String getModAuditLogId() { + return modAuditLogId; + } + + public String getModMailInId() { + return modMailInId; + } + + public String getModMailOutId() { + return modMailOutId; + } + + public String getMessageLogId() { + return messageLogId; + } + + public List getModerators() { + return moderators; + } + + public List getAdministrators() { + return administrators; + } + + public Integer getLastIncidentId() { + return lastIncidentId; + } + + public Integer getLastTicketId() { + return lastTicketId; + } + + public void setId(long id) { + this.id = id; + } + + public void setGuild(@Nullable Guild guild) { + this.guild = guild; + } + + public void setGuildId(String guildId) { + this.guildId = guildId; + } + + public void setVerificationRoleId(String verificationRoleId) { + this.verificationRoleId = verificationRoleId; + } + + public void setVerificationInputId(String verificationInputId) { + this.verificationInputId = verificationInputId; + } + + public void setAuditLogId(String auditLogId) { + this.auditLogId = auditLogId; + } + + public void setModAuditLogId(String modAuditLogId) { + this.modAuditLogId = modAuditLogId; + } + + public void setModMailInId(String modMailInId) { + this.modMailInId = modMailInId; + } + + public void setModMailOutId(String modMailOutId) { + this.modMailOutId = modMailOutId; + } + + public void setMessageLogId(String messageLogId) { + this.messageLogId = messageLogId; + } + + public void setModerators(List moderators) { + this.moderators = moderators; + } + + public void setAdministrators(List administrators) { + this.administrators = administrators; + } + + public void setLastIncidentId(Integer lastIncidentId) { + this.lastIncidentId = lastIncidentId; + } + + public void setLastTicketId(Integer lastTicketId) { + this.lastTicketId = lastTicketId; + } +} diff --git a/src/main/java/io/paradaux/friendlybot/models/FGuild.java b/src/main/java/io/paradaux/friendlybot/models/FGuild.java deleted file mode 100644 index 58a3fd66..00000000 --- a/src/main/java/io/paradaux/friendlybot/models/FGuild.java +++ /dev/null @@ -1,23 +0,0 @@ -package io.paradaux.friendlybot.models; - -import io.paradaux.friendlybot.core.utils.models.database.GuildSettingsEntry; -import net.dv8tion.jda.api.entities.Guild; - -public class FGuild { - - private final Guild guild; - private final GuildSettingsEntry settings; - - public FGuild(Guild guild, GuildSettingsEntry settings) { - this.guild = guild; - this.settings = settings; - } - - public Guild getGuild() { - return guild; - } - - public GuildSettingsEntry getSettings() { - return settings; - } -} diff --git a/src/main/java/io/paradaux/friendlybot/models/FGuildSetting.java b/src/main/java/io/paradaux/friendlybot/models/FGuildSetting.java deleted file mode 100644 index a3e5d3dd..00000000 --- a/src/main/java/io/paradaux/friendlybot/models/FGuildSetting.java +++ /dev/null @@ -1,7 +0,0 @@ -package io.paradaux.friendlybot.models; - -public enum FGuildSetting { - - - -} From 8f5a7f2bfca223aa74f4a9481af9ce4d26a6d273 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Mon, 2 Aug 2021 13:47:21 +0100 Subject: [PATCH 056/121] Setup EBean tests --- .../core/database/models/GuildSettings.java | 34 +++++++++++++++++++ .../database/GuildSettingsTest.java | 25 ++++++++++++++ src/test/resources/application-test.yaml | 8 +++++ 3 files changed, 67 insertions(+) create mode 100644 src/main/java/io/paradaux/friendlybot/core/database/models/GuildSettings.java create mode 100644 src/test/java/io/paradaux/friendlybot/database/GuildSettingsTest.java create mode 100644 src/test/resources/application-test.yaml diff --git a/src/main/java/io/paradaux/friendlybot/core/database/models/GuildSettings.java b/src/main/java/io/paradaux/friendlybot/core/database/models/GuildSettings.java new file mode 100644 index 00000000..c9269b6a --- /dev/null +++ b/src/main/java/io/paradaux/friendlybot/core/database/models/GuildSettings.java @@ -0,0 +1,34 @@ +package io.paradaux.friendlybot.core.database.models; + +import javax.persistence.Entity; +import javax.persistence.Id; + +@Entity +public class GuildSettings { + + @Id + String guildId; + + String guildName; + + public String getGuildId() { + return guildId; + } + + public String getGuildName() { + return guildName; + } + + public void setGuildId(String guildId) { + this.guildId = guildId; + } + + public void setGuildName(String guildName) { + this.guildName = guildName; + } + + @Override + public String toString() { + return "GuildSettings{" + "guildId='" + guildId + '\'' + ", guildName='" + guildName + '\'' + '}'; + } +} diff --git a/src/test/java/io/paradaux/friendlybot/database/GuildSettingsTest.java b/src/test/java/io/paradaux/friendlybot/database/GuildSettingsTest.java new file mode 100644 index 00000000..fe485dec --- /dev/null +++ b/src/test/java/io/paradaux/friendlybot/database/GuildSettingsTest.java @@ -0,0 +1,25 @@ +package io.paradaux.friendlybot.database; + +import io.ebean.DB; +import io.paradaux.friendlybot.core.database.models.GuildSettings; +import org.junit.jupiter.api.Test; + +public class GuildSettingsTest { + + @Test + public void insertFindDelete() { +// GuildSettings settings = new GuildSettings(); +// settings.setGuildId("1"); +// settings.setGuildName("This is a test"); +// +// // insert the customer in the DB +// DB.save(settings); +// +// // Find by Id +// GuildSettings foundHello = DB.find(GuildSettings.class, "1"); +// System.out.println(foundHello); +// +// // delete the customer +// DB.delete(settings); + } +} diff --git a/src/test/resources/application-test.yaml b/src/test/resources/application-test.yaml new file mode 100644 index 00000000..9d85a3f2 --- /dev/null +++ b/src/test/resources/application-test.yaml @@ -0,0 +1,8 @@ +ebean: + test: + useDocker: false ## DO NOT USE DOCKER + platform: h2 # h2, postgres, mysql, oracle, sqlserver + ddlMode: dropCreate # none | dropCreate | migrations | create + dbName: friendlybot + h2: + url: jdbc:h2:./friendlybot From 27a9ec8e8e45e333484d806464b5fa9364bd0b9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Mon, 2 Aug 2021 13:47:34 +0100 Subject: [PATCH 057/121] Remove unicode escape --- .../friendlybot/core/utils/models/types/PrivilegedCommand.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/io/paradaux/friendlybot/core/utils/models/types/PrivilegedCommand.java b/src/main/java/io/paradaux/friendlybot/core/utils/models/types/PrivilegedCommand.java index 76986e05..f29ee1fd 100644 --- a/src/main/java/io/paradaux/friendlybot/core/utils/models/types/PrivilegedCommand.java +++ b/src/main/java/io/paradaux/friendlybot/core/utils/models/types/PrivilegedCommand.java @@ -82,7 +82,7 @@ public boolean isAdmin(Guild guild, String discordId) { * Fills in the canned no permission embed. * */ public void respondNoPermission(Message message, String requiredRole) { - message.addReaction("\uD83D\uDEAB").queue(); + message.addReaction("🚫").queue(); new NoPermissionEmbed(message.getAuthor(), this.name, requiredRole) .sendEmbed(message.getTextChannel()); } From 19959ba2fc2fe24f1c96337d97e51b0491b17b36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Mon, 2 Aug 2021 13:47:47 +0100 Subject: [PATCH 058/121] Get guild from ebean --- .../friendlybot/core/cache/GuildCache.java | 27 +++++++++++++++---- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/src/main/java/io/paradaux/friendlybot/core/cache/GuildCache.java b/src/main/java/io/paradaux/friendlybot/core/cache/GuildCache.java index 6dd16bb8..75868bb7 100644 --- a/src/main/java/io/paradaux/friendlybot/core/cache/GuildCache.java +++ b/src/main/java/io/paradaux/friendlybot/core/cache/GuildCache.java @@ -1,8 +1,11 @@ package io.paradaux.friendlybot.core.cache; +import io.ebean.DB; +import io.paradaux.friendlybot.core.database.models.FGuild; +import io.paradaux.friendlybot.core.database.models.GuildSettings; +import io.paradaux.friendlybot.core.database.models.query.QFGuild; import io.paradaux.friendlybot.managers.GuildSettingsManager; -import io.paradaux.friendlybot.models.FGuild; -import io.paradaux.friendlybot.utils.models.database.GuildSettingsEntry; +import io.paradaux.friendlybot.core.utils.models.database.GuildSettingsEntry; import net.dv8tion.jda.api.JDA; import net.dv8tion.jda.api.entities.Guild; import org.jetbrains.annotations.NotNull; @@ -12,6 +15,12 @@ public class GuildCache { + private static GuildCache instance; + + public static GuildCache getInstance() { + return instance; + } + /** * Map of Guild IDs (Snowflake) to FGuild objects. * */ @@ -20,6 +29,7 @@ public class GuildCache { public GuildCache(JDA client) { this.client = client; + GuildCache.instance = this; } public boolean isCached(String id) { @@ -44,14 +54,21 @@ public FGuild getGuild(String id) { * */ @NotNull public FGuild retrieveGuild(String id) { - GuildSettingsEntry entry = GuildSettingsManager.getInstance().getGuild(id); - Guild guild = client.getGuildById(id); if (guild == null) { throw new IllegalArgumentException("The provided guild does not exist."); } - return new FGuild(guild, entry); + FGuild fGuild = new QFGuild().guildId.equalTo(id).findOne(); + if (fGuild == null) { + // TODO Create new guild profile. + throw new IllegalStateException(); + } + + fGuild.setGuild(guild); + + //return new FGuild(guild, entry); + return fGuild; // TODO } /** From 91233f4551cab28c67fb8104a47ddebbff163865 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Mon, 2 Aug 2021 13:47:56 +0100 Subject: [PATCH 059/121] WIP EBean connection --- .../core/database/EBeanConnection.java | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 src/main/java/io/paradaux/friendlybot/core/database/EBeanConnection.java diff --git a/src/main/java/io/paradaux/friendlybot/core/database/EBeanConnection.java b/src/main/java/io/paradaux/friendlybot/core/database/EBeanConnection.java new file mode 100644 index 00000000..c6714d53 --- /dev/null +++ b/src/main/java/io/paradaux/friendlybot/core/database/EBeanConnection.java @@ -0,0 +1,23 @@ +package io.paradaux.friendlybot.core.database; + +import io.ebean.Database; +import io.ebean.DatabaseFactory; +import io.ebean.config.DatabaseConfig; +import io.ebean.datasource.DataSourceConfig; + +public class EBeanConnection { + + private final DatabaseConfig config = new DatabaseConfig(); + private final Database database; + + public EBeanConnection() { + DataSourceConfig dataSourceConfig = new DataSourceConfig(); + dataSourceConfig.setUsername("sa"); + dataSourceConfig.setPassword(""); + dataSourceConfig.setUrl("jdbc:h2:mem:myapp;"); + + this.config.setDataSourceConfig(dataSourceConfig); + this.database = DatabaseFactory.create(config); + } + +} From 09296ac1d4b24888ab8a32cfdc5099e287e3a73a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Mon, 2 Aug 2021 13:54:33 +0100 Subject: [PATCH 060/121] Resolve (some) codefactor issues --- .../friendlybot/core/utils/StringUtils.java | 13 -- .../core/utils/models/types/BaseCommand.java | 2 +- .../commands/fun/EightBallCommand.java | 4 + .../staff/moderation/RespondCommand.java | 4 +- .../staff/technician/PermissionsCommand.java | 168 ------------------ .../managers/DiscordBotManager.java | 1 - 6 files changed, 7 insertions(+), 185 deletions(-) delete mode 100644 src/main/java/io/paradaux/friendlybot/discord/commands/staff/technician/PermissionsCommand.java diff --git a/src/main/java/io/paradaux/friendlybot/core/utils/StringUtils.java b/src/main/java/io/paradaux/friendlybot/core/utils/StringUtils.java index 2e130b23..a587cb4c 100644 --- a/src/main/java/io/paradaux/friendlybot/core/utils/StringUtils.java +++ b/src/main/java/io/paradaux/friendlybot/core/utils/StringUtils.java @@ -44,8 +44,6 @@ public class StringUtils { + "(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09" + "\\x0b\\x0c\\x0e-\\x7f])+)\\])"); - private static final char STRIKE_CONTROL_CHARACTER = '\u0336'; - private static final String SHORTHAND_CARDINAL_DIRECTIONS[] = {"N", "NE", "E", "SE", "S", "SW", "W", "NW", "N"}; /** @@ -136,17 +134,6 @@ public static String removeLetters(String str) { return str.replaceAll("[a-zA-Z]", ""); } - /** - * Creates strikethrough unicode text by applying the strike control character after each individual character in the provided string - * */ - public static String toStrikeOut(String str) { - final StringBuilder builder = new StringBuilder(); - for (char c : str.toCharArray()) { - builder.append(c).append(STRIKE_CONTROL_CHARACTER); - } - return builder.toString(); - } - /** * Converts a heading in degrees to a shorthand cardinal direction. * */ diff --git a/src/main/java/io/paradaux/friendlybot/core/utils/models/types/BaseCommand.java b/src/main/java/io/paradaux/friendlybot/core/utils/models/types/BaseCommand.java index d17138e4..6a5c527b 100644 --- a/src/main/java/io/paradaux/friendlybot/core/utils/models/types/BaseCommand.java +++ b/src/main/java/io/paradaux/friendlybot/core/utils/models/types/BaseCommand.java @@ -95,7 +95,7 @@ public String parseSentance(int startElement, String[] args) { * Responds with a canned syntax error embed. * */ public void respondSyntaxError(Message message, String correctSyntax) { - message.addReaction("\uD83D\uDEAB").queue(); + message.addReaction("🚫").queue(); new SyntaxErrorEmbed(message.getAuthor(), this.name, correctSyntax) .sendEmbed(message.getTextChannel()); } diff --git a/src/main/java/io/paradaux/friendlybot/discord/commands/fun/EightBallCommand.java b/src/main/java/io/paradaux/friendlybot/discord/commands/fun/EightBallCommand.java index f87b991e..bba0bb6d 100644 --- a/src/main/java/io/paradaux/friendlybot/discord/commands/fun/EightBallCommand.java +++ b/src/main/java/io/paradaux/friendlybot/discord/commands/fun/EightBallCommand.java @@ -121,6 +121,10 @@ protected void execute(CommandEvent event) { color = 0xFF0000; break; } + + default: { + throw new IllegalStateException("Invalid 8ball responses file."); + } } MessageEmbed responseEmbed = new EmbedBuilder() diff --git a/src/main/java/io/paradaux/friendlybot/discord/commands/staff/moderation/RespondCommand.java b/src/main/java/io/paradaux/friendlybot/discord/commands/staff/moderation/RespondCommand.java index c2473a5a..33523156 100644 --- a/src/main/java/io/paradaux/friendlybot/discord/commands/staff/moderation/RespondCommand.java +++ b/src/main/java/io/paradaux/friendlybot/discord/commands/staff/moderation/RespondCommand.java @@ -71,13 +71,13 @@ protected void execute(CommandEvent event) { ModMailEntry entry = mongo.getModMailEntry(args[0]); if (entry == null) { - message.addReaction("\uD83D\uDEAB").queue(); + message.addReaction("🚫").queue(); message.getChannel().sendMessage("That ticket was not found").queue(); return; } if (entry.getStatus() == TicketStatus.CLOSED) { - message.addReaction("\uD83D\uDEAB").queue(); + message.addReaction("🚫").queue(); message.getChannel().sendMessage("You cannot respond to closed tickets.").queue(); return; } diff --git a/src/main/java/io/paradaux/friendlybot/discord/commands/staff/technician/PermissionsCommand.java b/src/main/java/io/paradaux/friendlybot/discord/commands/staff/technician/PermissionsCommand.java deleted file mode 100644 index 162704b1..00000000 --- a/src/main/java/io/paradaux/friendlybot/discord/commands/staff/technician/PermissionsCommand.java +++ /dev/null @@ -1,168 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2021 Rían Errity - * io.paradaux.friendlybot.commands.staff.technician.PermissionsCommand : 31/01/2021, 01:26 - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package io.paradaux.friendlybot.discord.commands.staff.technician; - -import com.jagrosh.jdautilities.command.CommandEvent; -import io.paradaux.friendlybot.discord.listeners.InsultListener; -import io.paradaux.friendlybot.managers.PermissionManager; -import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.core.utils.models.types.PrivilegedCommand; -import net.dv8tion.jda.api.entities.Member; -import net.dv8tion.jda.api.entities.Message; -import org.slf4j.Logger; - -public class PermissionsCommand extends PrivilegedCommand { - - public PermissionsCommand(ConfigurationEntry config, Logger logger, PermissionManager permissionManager) { - super(config, logger, permissionManager); - this.name = "permissions"; - this.aliases = new String[]{"perms", "perm"}; - this.help = "Modifies user permissions"; - } - - @Override - protected void execute(CommandEvent event) { - Message message = event.getMessage(); - - String[] args = getArgs(event.getArgs()); - String authorID = event.getAuthor().getId(); - - PermissionManager manager = PermissionManager.getInstance(); - - if (!manager.isTechnician(authorID)) { - respondNoPermission(message, "[Technician]"); - return; - } - - if (args.length < 3) { - respondSyntaxError(message, ";permissions <@mention/discordID>"); - return; - } - - Member target = retrieveMember(message.getGuild(), parseTarget(message, args[2])); - - if (target == null) { - message.getChannel().sendMessage("Invalid target specified.").queue(); - return; - } - - switch (args[0]) { - case "give": { - - switch (args[1]) { - case "mod": { - manager.addMod(target.getId()); - break; - } - - case "admin": { - manager.addAdmin(target.getId()); - break; - } - - case "technician": { - manager.addTechnician(target.getId()); - break; - } - - default: { - respondSyntaxError(message, ";permissions <@mention/discordID>"); - return; - } - } - - String responseMessage = String.format("Given `%s` `%s` permissions.", - target.getUser().getAsTag(), args[1]); - message.getChannel().sendMessage(responseMessage).queue(); - break; - } - - case "remove": { - - switch (args[1]) { - - case "mod": { - manager.removeMod(authorID); - break; - } - - case "admin": { - manager.removeAdmin(authorID); - break; - } - - case "technician": { - manager.removeTechnician(authorID); - break; - } - - default: { - respondSyntaxError(message, ";permissions <@mention/discordID>"); - return; - } - } - - String responseMessage = String.format("Taken `%s`'s `%s` permissions.", - target.getUser().getAsTag(), args[1]); - message.getChannel().sendMessage(responseMessage).queue(); - break; - } - - case "insult": { - - switch (args[1]) { - - case "add": { - InsultListener.addUser(args[2]); - message.reply("Added: `" + args[2] + "` to the target list.").queue(); - break; - } - - case "remove": { - InsultListener.removeUser(args[2]); - message.reply("Removed: `" + args[2] + "` from the target list.").queue(); - break; - } - - case "view": { - message.reply("```" + InsultListener.getTargetUsers() + "```").queue(); - break; - } - } - break; - } - - default: { - respondSyntaxError(message, ";permissions <@mention/discordID>"); - break; - } - } - } -} diff --git a/src/main/java/io/paradaux/friendlybot/managers/DiscordBotManager.java b/src/main/java/io/paradaux/friendlybot/managers/DiscordBotManager.java index fa47bb2b..8d890feb 100644 --- a/src/main/java/io/paradaux/friendlybot/managers/DiscordBotManager.java +++ b/src/main/java/io/paradaux/friendlybot/managers/DiscordBotManager.java @@ -139,7 +139,6 @@ private CommandClient createCommandClient() { // Technician Commands. new DmCommand(config, logger, permissionManager), - new PermissionsCommand(config, logger, permissionManager), new SayCommand(config, logger, permissionManager), new SendEmbedCommand(config, logger, permissionManager), new SetupCommand(config, logger, permissionManager, eventWaiter), From 1aa1132961458b4e992bfaeb6a68857e2a82f2bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Tue, 3 Aug 2021 06:55:42 +0100 Subject: [PATCH 061/121] New configurate-based config system. --- .../friendlybot/config/FConfiguration.java | 156 ++++++++++++++++++ .../config/FConfigurationLoader.java | 43 +++++ 2 files changed, 199 insertions(+) create mode 100644 src/main/java/io/paradaux/friendlybot/config/FConfiguration.java create mode 100644 src/main/java/io/paradaux/friendlybot/config/FConfigurationLoader.java diff --git a/src/main/java/io/paradaux/friendlybot/config/FConfiguration.java b/src/main/java/io/paradaux/friendlybot/config/FConfiguration.java new file mode 100644 index 00000000..c8b1cea2 --- /dev/null +++ b/src/main/java/io/paradaux/friendlybot/config/FConfiguration.java @@ -0,0 +1,156 @@ +package io.paradaux.friendlybot.config; + +import org.spongepowered.configurate.CommentedConfigurationNode; +import org.spongepowered.configurate.objectmapping.ConfigSerializable; +import org.spongepowered.configurate.objectmapping.meta.Comment; +import org.spongepowered.configurate.serialize.SerializationException; + +@ConfigSerializable +public class FConfiguration { + + private transient CommentedConfigurationNode root; + + @Comment("Your Discord Bot Token") + private String botToken; + @Comment("What symbol to begin commands with.") + private String commandPrefix; + + @Comment("Mailgun is used to send verification emails. Enter your API key and URL here.") + private String mailgunApplicationKey; + private String mailgunBaseUrl; + + @Comment("Imgflip is used for meme generation. Enter your login details here.") + private String imgflipUsername; + private String imgflipPassword; + + @Comment("Other random services.") + private String wolframAlphaApiKey; + private String imgurClientId; + private String bytebinInstanceUrl; + private String openWeatherMapApiKey; + + @Comment("Database connection") + private String jdbcUrl; + private String jdbcUsername; + private String jdbcPassword; + + public FConfiguration() { + + } + + public void save() throws SerializationException { + root.set(FConfiguration.class, root); + } + + public CommentedConfigurationNode getRoot() { + return root; + } + + public String getBotToken() { + return botToken; + } + + public String getCommandPrefix() { + return commandPrefix; + } + + public String getMailgunApplicationKey() { + return mailgunApplicationKey; + } + + public String getMailgunBaseUrl() { + return mailgunBaseUrl; + } + + public String getImgflipUsername() { + return imgflipUsername; + } + + public String getImgflipPassword() { + return imgflipPassword; + } + + public String getWolframAlphaApiKey() { + return wolframAlphaApiKey; + } + + public String getImgurClientId() { + return imgurClientId; + } + + public String getBytebinInstanceUrl() { + return bytebinInstanceUrl; + } + + public String getOpenWeatherMapApiKey() { + return openWeatherMapApiKey; + } + + public String getJdbcUrl() { + return jdbcUrl; + } + + public String getJdbcUsername() { + return jdbcUsername; + } + + public String getJdbcPassword() { + return jdbcPassword; + } + + public void setRoot(CommentedConfigurationNode root) { + this.root = root; + } + + public void setBotToken(String botToken) { + this.botToken = botToken; + } + + public void setCommandPrefix(String commandPrefix) { + this.commandPrefix = commandPrefix; + } + + public void setMailgunApplicationKey(String mailgunApplicationKey) { + this.mailgunApplicationKey = mailgunApplicationKey; + } + + public void setMailgunBaseUrl(String mailgunBaseUrl) { + this.mailgunBaseUrl = mailgunBaseUrl; + } + + public void setImgflipUsername(String imgflipUsername) { + this.imgflipUsername = imgflipUsername; + } + + public void setImgflipPassword(String imgflipPassword) { + this.imgflipPassword = imgflipPassword; + } + + public void setWolframAlphaApiKey(String wolframAlphaApiKey) { + this.wolframAlphaApiKey = wolframAlphaApiKey; + } + + public void setImgurClientId(String imgurClientId) { + this.imgurClientId = imgurClientId; + } + + public void setBytebinInstanceUrl(String bytebinInstanceUrl) { + this.bytebinInstanceUrl = bytebinInstanceUrl; + } + + public void setOpenWeatherMapApiKey(String openWeatherMapApiKey) { + this.openWeatherMapApiKey = openWeatherMapApiKey; + } + + public void setJdbcUrl(String jdbcUrl) { + this.jdbcUrl = jdbcUrl; + } + + public void setJdbcUsername(String jdbcUsername) { + this.jdbcUsername = jdbcUsername; + } + + public void setJdbcPassword(String jdbcPassword) { + this.jdbcPassword = jdbcPassword; + } +} diff --git a/src/main/java/io/paradaux/friendlybot/config/FConfigurationLoader.java b/src/main/java/io/paradaux/friendlybot/config/FConfigurationLoader.java new file mode 100644 index 00000000..7b43ef1d --- /dev/null +++ b/src/main/java/io/paradaux/friendlybot/config/FConfigurationLoader.java @@ -0,0 +1,43 @@ +package io.paradaux.friendlybot.config; + +import org.spongepowered.configurate.CommentedConfigurationNode; +import org.spongepowered.configurate.ConfigurateException; +import org.spongepowered.configurate.hocon.HoconConfigurationLoader; +import org.spongepowered.configurate.serialize.SerializationException; + +import java.io.IOException; +import java.nio.file.Path; + +public class FConfigurationLoader { + + private static HoconConfigurationLoader loader; + private static FConfiguration config; + + public static HoconConfigurationLoader getLoader() { + return loader; + } + + public static FConfiguration loadConfig() throws SerializationException { + loader = HoconConfigurationLoader.builder() + .path(Path.of("friendlybot.conf")) + .build(); + + CommentedConfigurationNode root; + + try { + root = loader.load(); + } catch (IOException e) { + throw new IllegalStateException(e); + } + + config = root.get(FConfiguration.class); + config.setRoot(root); + return config; + } + + public static void saveConfig() throws ConfigurateException { + config.save(); + loader.save(config.getRoot()); + } + +} From 68c100baf77e982f5ea2ea33d669f86cbbf2b47a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Tue, 3 Aug 2021 06:56:00 +0100 Subject: [PATCH 062/121] Load all guilds into cache on startup --- .../io/paradaux/friendlybot/core/cache/GuildCache.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/main/java/io/paradaux/friendlybot/core/cache/GuildCache.java b/src/main/java/io/paradaux/friendlybot/core/cache/GuildCache.java index 75868bb7..0569be11 100644 --- a/src/main/java/io/paradaux/friendlybot/core/cache/GuildCache.java +++ b/src/main/java/io/paradaux/friendlybot/core/cache/GuildCache.java @@ -36,6 +36,15 @@ public boolean isCached(String id) { return guilds.containsKey(id); } + /** + * Loads guilds into the cache + * */ + public void load() { + for (Guild g : client.getGuilds()) { + resetGuild(g.getId()); + } + } + /** * Returns an FGuild, directly from the cache if available, otherwise it's grabbed from the database/client. * */ From 0b4042a7f497374731bbff8b8ae8dab5903166fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Tue, 3 Aug 2021 06:56:16 +0100 Subject: [PATCH 063/121] New application entry point --- .../paradaux/friendlybot/FBApplication.java | 24 +++++++ .../io/paradaux/friendlybot/bot/FBot.java | 63 +++++++++++++++++++ 2 files changed, 87 insertions(+) create mode 100644 src/main/java/io/paradaux/friendlybot/FBApplication.java create mode 100644 src/main/java/io/paradaux/friendlybot/bot/FBot.java diff --git a/src/main/java/io/paradaux/friendlybot/FBApplication.java b/src/main/java/io/paradaux/friendlybot/FBApplication.java new file mode 100644 index 00000000..6eafd3c3 --- /dev/null +++ b/src/main/java/io/paradaux/friendlybot/FBApplication.java @@ -0,0 +1,24 @@ +package io.paradaux.friendlybot; + +import io.paradaux.friendlybot.bot.FBot; +import io.paradaux.friendlybot.config.FConfiguration; +import io.paradaux.friendlybot.config.FConfigurationLoader; +import io.paradaux.friendlybot.core.cache.GuildCache; +import org.spongepowered.configurate.serialize.SerializationException; + +import javax.security.auth.login.LoginException; + +public class FBApplication { + + private static FConfiguration config; + private static FBot bot; + private static GuildCache guildCache; + + + public static void main(String[] args) throws SerializationException, LoginException { + config = FConfigurationLoader.loadConfig(); + bot = new FBot(config); + guildCache = new GuildCache(bot.getClient()); + } + +} diff --git a/src/main/java/io/paradaux/friendlybot/bot/FBot.java b/src/main/java/io/paradaux/friendlybot/bot/FBot.java new file mode 100644 index 00000000..babb669f --- /dev/null +++ b/src/main/java/io/paradaux/friendlybot/bot/FBot.java @@ -0,0 +1,63 @@ +package io.paradaux.friendlybot.bot; + +import com.jagrosh.jdautilities.command.CommandClient; +import com.jagrosh.jdautilities.command.CommandClientBuilder; +import com.jagrosh.jdautilities.commons.waiter.EventWaiter; +import io.paradaux.friendlybot.config.FConfiguration; +import io.paradaux.friendlybot.core.locale.LocaleLogger; +import net.dv8tion.jda.api.JDA; +import net.dv8tion.jda.api.JDABuilder; +import net.dv8tion.jda.api.entities.Activity; +import net.dv8tion.jda.api.requests.GatewayIntent; +import net.dv8tion.jda.api.utils.MemberCachePolicy; + +import javax.security.auth.login.LoginException; + +public class FBot { + + private final FConfiguration config; + private final EventWaiter eventWaiter; + private final JDA client; + + public FBot(FConfiguration config) throws LoginException { + this.config = config; + this.eventWaiter = new EventWaiter(); + this.client = login(config.getBotToken()); + } + + /** + * Creates an Instance of JDA from the provided token. + * @param token The Discord Token taken from the configuration file. + * @return JDA An Instance of JDA + * @throws LoginException When logging in proved unsuccessful. + * */ + public JDA login(String token) throws LoginException { + JDABuilder builder = JDABuilder.createDefault(token, GatewayIntent.GUILD_MESSAGES, GatewayIntent.GUILD_MEMBERS, GatewayIntent.GUILD_MESSAGE_REACTIONS) + .setMemberCachePolicy(MemberCachePolicy.ALL) + .enableIntents(GatewayIntent.GUILD_MEMBERS) + .setBulkDeleteSplittingEnabled(false) + .addEventListeners(eventWaiter, createCommandClient()); + + if (token == null) { + throw new LoginException("The Configuration File does not contain a token."); + } + + return builder.build(); + } + + private CommandClient createCommandClient() { + LocaleLogger.info("Initialising: CommandController"); + + CommandClientBuilder builder = new CommandClientBuilder() + .setPrefix(config.getCommandPrefix()) + .setOwnerId("150993042558418944") + .setActivity(Activity.listening("modmail queries..")) + .addCommands(); + + return builder.build(); + } + + public JDA getClient() { + return client; + } +} From 72573a79b9720e2126b79934bffac9c06012d17b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Sat, 7 Aug 2021 13:29:20 +0100 Subject: [PATCH 064/121] Custom Annotation-Driven Command Handler --- .../friendlybot/bot/command/Command.java | 14 +++ .../friendlybot/bot/command/CommandBody.java | 44 ++++++++ .../bot/command/CommandListener.java | 100 +++++++++++++++++ .../bot/command/DiscordCommand.java | 35 ++++++ .../command/exception/CommandException.java | 23 ++++ .../core/database/models/FGuild.java | 104 ++++++++++-------- 6 files changed, 272 insertions(+), 48 deletions(-) create mode 100644 src/main/java/io/paradaux/friendlybot/bot/command/Command.java create mode 100644 src/main/java/io/paradaux/friendlybot/bot/command/CommandBody.java create mode 100644 src/main/java/io/paradaux/friendlybot/bot/command/CommandListener.java create mode 100644 src/main/java/io/paradaux/friendlybot/bot/command/DiscordCommand.java create mode 100644 src/main/java/io/paradaux/friendlybot/bot/command/exception/CommandException.java diff --git a/src/main/java/io/paradaux/friendlybot/bot/command/Command.java b/src/main/java/io/paradaux/friendlybot/bot/command/Command.java new file mode 100644 index 00000000..c87fc4d7 --- /dev/null +++ b/src/main/java/io/paradaux/friendlybot/bot/command/Command.java @@ -0,0 +1,14 @@ +package io.paradaux.friendlybot.bot.command; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +@Retention(RetentionPolicy.RUNTIME) +public @interface Command { + + String name() default ""; + String description() default ""; + + + +} diff --git a/src/main/java/io/paradaux/friendlybot/bot/command/CommandBody.java b/src/main/java/io/paradaux/friendlybot/bot/command/CommandBody.java new file mode 100644 index 00000000..ab0823d0 --- /dev/null +++ b/src/main/java/io/paradaux/friendlybot/bot/command/CommandBody.java @@ -0,0 +1,44 @@ +package io.paradaux.friendlybot.bot.command; + +import net.dv8tion.jda.api.JDA; +import net.dv8tion.jda.api.entities.Message; +import net.dv8tion.jda.api.entities.MessageChannel; + +import java.nio.channels.Channel; + +public class CommandBody { + + private final JDA jda; + private final Message message; + private final MessageChannel channel; + private final String command; + private final String[] args; + + public CommandBody(Message message, String command, String[] args) { + this.jda = message.getJDA(); + this.channel = message.getChannel(); + this.message = message; + this.command = command; + this.args = args; + } + + public JDA getJda() { + return jda; + } + + public Message getMessage() { + return message; + } + + public Channel getChannel() { + return channel; + } + + public String getCommand() { + return command; + } + + public String[] getArgs() { + return args; + } +} diff --git a/src/main/java/io/paradaux/friendlybot/bot/command/CommandListener.java b/src/main/java/io/paradaux/friendlybot/bot/command/CommandListener.java new file mode 100644 index 00000000..5f78413e --- /dev/null +++ b/src/main/java/io/paradaux/friendlybot/bot/command/CommandListener.java @@ -0,0 +1,100 @@ +package io.paradaux.friendlybot.bot.command; + +import io.paradaux.friendlybot.bot.command.exception.CommandException; +import io.paradaux.friendlybot.core.cache.GuildCache; +import io.paradaux.friendlybot.core.database.models.FGuild; +import net.dv8tion.jda.api.EmbedBuilder; +import net.dv8tion.jda.api.entities.Message; +import net.dv8tion.jda.api.events.message.guild.GuildMessageReceivedEvent; +import net.dv8tion.jda.api.hooks.ListenerAdapter; +import org.jetbrains.annotations.NotNull; + +import java.util.ArrayList; +import java.util.Arrays; + +public class CommandListener extends ListenerAdapter { + + private final ArrayList commands; + + public CommandListener() { + commands = new ArrayList<>(); + } + + @Override + public void onGuildMessageReceived(@NotNull GuildMessageReceivedEvent event) { + FGuild guild = GuildCache.getInstance().getGuild(event.getGuild().getId()); + + Message message = event.getMessage(); + String messageContent = message.getContentRaw(); + String[] commandComponents = messageContent.substring(guild.getCommandPrefix().length()).split(" "); + + String command = commandComponents[0]; + String[] args = Arrays.copyOfRange(commandComponents, 1, commandComponents.length); + + CommandBody body = new CommandBody(message, command, args); + if (messageContent.startsWith(guild.getCommandPrefix())) { + switch (messageContent.substring(guild.getCommandPrefix().length())) { + case "help": { + helpMenu(message); + break; + } + + default: { + for (DiscordCommand c : commands) { + if (c.getCommand().equals(command)) { + c.execute(guild, body); + } + } + break; + } + } + } + } + + + /** + * Returns a list of commands as a message as a reply. + * */ + public void helpMenu(Message message) { + EmbedBuilder builder = new EmbedBuilder(); + // TODO + } + + + /** + * Registers the requested command. + * */ + public void registerCommand(DiscordCommand command) { + if (command.isRegistered()) { + throw new CommandException("Command is already marked as registered."); + } + + + Class clazz = command.getClass(); + if (!clazz.isAnnotationPresent(Command.class)) { + throw new CommandException("Provided Argument is not a valid command. Not annotated as command."); + } + + Command cmd = clazz.getAnnotation(Command.class); + command.register(cmd.name(), cmd.description()); + + for (DiscordCommand c : commands) { + if (c.getCommand().equals(command.getCommand())) { + throw new CommandException("A command by this name has already been registered."); + } + } + + commands.add(command); + } + + + /** + * Unregisters the requested command. + * @throws CommandException If the provided command has not been registered. + * */ + public void removeCommand(DiscordCommand command) { + if (!commands.remove(command)) { + throw new CommandException("This command has already been registered."); + } + } +} diff --git a/src/main/java/io/paradaux/friendlybot/bot/command/DiscordCommand.java b/src/main/java/io/paradaux/friendlybot/bot/command/DiscordCommand.java new file mode 100644 index 00000000..3e7f07af --- /dev/null +++ b/src/main/java/io/paradaux/friendlybot/bot/command/DiscordCommand.java @@ -0,0 +1,35 @@ +package io.paradaux.friendlybot.bot.command; + +import io.paradaux.friendlybot.core.database.models.FGuild; + +@Command(name = "undefined", description = "undefined") +public abstract class DiscordCommand { + + private boolean isRegistered; + private String command; + private String description; + + public abstract void execute(FGuild guild, CommandBody body); + + public void register(String command, String description) { + isRegistered = true; + this.command = command; + this.description = description; + } + + public void unregister() { + isRegistered = false; + } + + public boolean isRegistered() { + return isRegistered; + } + + public String getCommand() { + return command; + } + + public String getDescription() { + return description; + } +} diff --git a/src/main/java/io/paradaux/friendlybot/bot/command/exception/CommandException.java b/src/main/java/io/paradaux/friendlybot/bot/command/exception/CommandException.java new file mode 100644 index 00000000..742f3423 --- /dev/null +++ b/src/main/java/io/paradaux/friendlybot/bot/command/exception/CommandException.java @@ -0,0 +1,23 @@ +package io.paradaux.friendlybot.bot.command.exception; + +public class CommandException extends RuntimeException { + + public CommandException() { + } + + public CommandException(String message) { + super(message); + } + + public CommandException(String message, Throwable cause) { + super(message, cause); + } + + public CommandException(Throwable cause) { + super(cause); + } + + public CommandException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { + super(message, cause, enableSuppression, writableStackTrace); + } +} diff --git a/src/main/java/io/paradaux/friendlybot/core/database/models/FGuild.java b/src/main/java/io/paradaux/friendlybot/core/database/models/FGuild.java index f3c6164a..c93d4f6b 100644 --- a/src/main/java/io/paradaux/friendlybot/core/database/models/FGuild.java +++ b/src/main/java/io/paradaux/friendlybot/core/database/models/FGuild.java @@ -1,7 +1,6 @@ package io.paradaux.friendlybot.core.database.models; import io.ebean.Model; -import io.paradaux.friendlybot.core.cache.GuildCache; import net.dv8tion.jda.api.entities.Guild; import javax.annotation.Nullable; @@ -20,7 +19,8 @@ public class FGuild extends Model { @Nullable private Guild guild; - String guildId; + private String guildId; + private String commandPrefix; private String verificationRoleId; private String verificationInputId; @@ -59,106 +59,114 @@ public Guild getGuild() { return guild; } - public String getGuildId() { - return guildId; - } - - public String getVerificationRoleId() { - return verificationRoleId; - } - - public String getVerificationInputId() { - return verificationInputId; - } - - public String getAuditLogId() { - return auditLogId; - } - - public String getModAuditLogId() { - return modAuditLogId; - } - - public String getModMailInId() { - return modMailInId; - } - - public String getModMailOutId() { - return modMailOutId; - } - - public String getMessageLogId() { - return messageLogId; - } - - public List getModerators() { - return moderators; + public void setId(long id) { + this.id = id; } - public List getAdministrators() { - return administrators; + public void setGuild(@Nullable Guild guild) { + this.guild = guild; } - public Integer getLastIncidentId() { - return lastIncidentId; + public String getGuildId() { + return guildId; } - public Integer getLastTicketId() { - return lastTicketId; + public void setGuildId(String guildId) { + this.guildId = guildId; } - public void setId(long id) { - this.id = id; + public String getCommandPrefix() { + return commandPrefix; } - public void setGuild(@Nullable Guild guild) { - this.guild = guild; + public void setCommandPrefix(String commandPrefix) { + this.commandPrefix = commandPrefix; } - public void setGuildId(String guildId) { - this.guildId = guildId; + public String getVerificationRoleId() { + return verificationRoleId; } public void setVerificationRoleId(String verificationRoleId) { this.verificationRoleId = verificationRoleId; } + public String getVerificationInputId() { + return verificationInputId; + } + public void setVerificationInputId(String verificationInputId) { this.verificationInputId = verificationInputId; } + public String getAuditLogId() { + return auditLogId; + } + public void setAuditLogId(String auditLogId) { this.auditLogId = auditLogId; } + public String getModAuditLogId() { + return modAuditLogId; + } + public void setModAuditLogId(String modAuditLogId) { this.modAuditLogId = modAuditLogId; } + public String getModMailInId() { + return modMailInId; + } + public void setModMailInId(String modMailInId) { this.modMailInId = modMailInId; } + public String getModMailOutId() { + return modMailOutId; + } + public void setModMailOutId(String modMailOutId) { this.modMailOutId = modMailOutId; } + public String getMessageLogId() { + return messageLogId; + } + public void setMessageLogId(String messageLogId) { this.messageLogId = messageLogId; } + public List getModerators() { + return moderators; + } + public void setModerators(List moderators) { this.moderators = moderators; } + public List getAdministrators() { + return administrators; + } + public void setAdministrators(List administrators) { this.administrators = administrators; } + public Integer getLastIncidentId() { + return lastIncidentId; + } + public void setLastIncidentId(Integer lastIncidentId) { this.lastIncidentId = lastIncidentId; } + public Integer getLastTicketId() { + return lastTicketId; + } + public void setLastTicketId(Integer lastTicketId) { this.lastTicketId = lastTicketId; } From 14791404ad7cfb2aa3b983b44c7245bd23f6d344 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Sat, 7 Aug 2021 13:38:36 +0100 Subject: [PATCH 065/121] Fix missing semicolon + incorrect import --- .../friendlybot/bot/command/CommandBody.java | 4 +--- .../friendlybot/bot/command/CommandListener.java | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/main/java/io/paradaux/friendlybot/bot/command/CommandBody.java b/src/main/java/io/paradaux/friendlybot/bot/command/CommandBody.java index ab0823d0..2b0b54fd 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/command/CommandBody.java +++ b/src/main/java/io/paradaux/friendlybot/bot/command/CommandBody.java @@ -4,8 +4,6 @@ import net.dv8tion.jda.api.entities.Message; import net.dv8tion.jda.api.entities.MessageChannel; -import java.nio.channels.Channel; - public class CommandBody { private final JDA jda; @@ -30,7 +28,7 @@ public Message getMessage() { return message; } - public Channel getChannel() { + public MessageChannel getChannel() { return channel; } diff --git a/src/main/java/io/paradaux/friendlybot/bot/command/CommandListener.java b/src/main/java/io/paradaux/friendlybot/bot/command/CommandListener.java index 5f78413e..f370a3d0 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/command/CommandListener.java +++ b/src/main/java/io/paradaux/friendlybot/bot/command/CommandListener.java @@ -57,6 +57,22 @@ public void onGuildMessageReceived(@NotNull GuildMessageReceivedEvent event) { * */ public void helpMenu(Message message) { EmbedBuilder builder = new EmbedBuilder(); + StringBuilder descBuilder = new StringBuilder(); + + descBuilder.append("**FriendlyBot**: Commands\n") + .append("\n"); + + for (DiscordCommand c : commands) { + descBuilder.append(c.getCommand()) + .append(" » ") + .append(c.getDescription()); + } + + descBuilder.append("\n") + .append("**N.B**: Some commands may be role-locked."); + + builder.setDescription(descBuilder); + // TODO } From ea4d6e44806ac73c7df974699e31df65167d6fe2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Sat, 7 Aug 2021 13:51:08 +0100 Subject: [PATCH 066/121] Change main class to 2.0 --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 357ba84c..421ce4f1 100644 --- a/pom.xml +++ b/pom.xml @@ -67,7 +67,7 @@ - io.paradaux.friendlybot.FriendlyBot + io.paradaux.friendlybot.FBApplication @@ -85,7 +85,7 @@ true - io.paradaux.friendlybot.FriendlyBot + io.paradaux.friendlybot.FBApplication From 4cf98a3b6da581280d9bfb9ab529ac0db1c58bcd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Sat, 7 Aug 2021 14:21:55 +0100 Subject: [PATCH 067/121] Move images --- {images => .github/images}/FriendlyBot.png | Bin README.md | 14 +++++++------- 2 files changed, 7 insertions(+), 7 deletions(-) rename {images => .github/images}/FriendlyBot.png (100%) diff --git a/images/FriendlyBot.png b/.github/images/FriendlyBot.png similarity index 100% rename from images/FriendlyBot.png rename to .github/images/FriendlyBot.png diff --git a/README.md b/README.md index a13089db..c2b68ef5 100644 --- a/README.md +++ b/README.md @@ -6,12 +6,12 @@

- - Logo - + + Logo +

FriendlyBot

-

+

The general-purpose discord bot made for the Computer Science Friendly Corner.
YouTrack @@ -21,7 +21,6 @@ Issues · Actions -

There are plans to generify the codebase to allow for a public discord bot, as well as having a web-based user interface @@ -35,7 +34,7 @@ production server. FriendlyBot makes use of a MongoDB database which is integral to the functionality of the bot, the connection url must be specified in the configuration file. As well as that, a stable internet connection is required at all times; to talk to -discord and the various web APIs the bot makes use of. +discord, and the various web APIs the bot makes use of. The following instructions are to be executed on the command line (terminal) requiring write permissions. This requires both Maven and Git to be added to your terminal's path, other than that these instructions are fairly platform agnostic. @@ -68,4 +67,5 @@ Distributed under the MIT License. See [LICENSE.md](https://github.com/ParadauxI ## Contributors -1. [Rían Errity](mailto:rian@paradaux.io) — Project Lead — https://paradaux.io \ No newline at end of file +1. [Rían Errity](mailto:rian@paradaux.io) — Project Lead — https://paradaux.io +2. This could be you o.0 \ No newline at end of file From f1778a5398c858db5da9bd27c0ae84724cc4c8ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Sat, 7 Aug 2021 14:27:29 +0100 Subject: [PATCH 068/121] Remove obsolete commands --- .../discord/commands/fun/CatCommand.java | 42 ------------------- .../commands/utility/StrikeCommand.java | 40 ------------------ 2 files changed, 82 deletions(-) delete mode 100644 src/main/java/io/paradaux/friendlybot/discord/commands/fun/CatCommand.java delete mode 100644 src/main/java/io/paradaux/friendlybot/discord/commands/utility/StrikeCommand.java diff --git a/src/main/java/io/paradaux/friendlybot/discord/commands/fun/CatCommand.java b/src/main/java/io/paradaux/friendlybot/discord/commands/fun/CatCommand.java deleted file mode 100644 index 120e721c..00000000 --- a/src/main/java/io/paradaux/friendlybot/discord/commands/fun/CatCommand.java +++ /dev/null @@ -1,42 +0,0 @@ -package io.paradaux.friendlybot.discord.commands.fun; - -import com.jagrosh.jdautilities.command.CommandEvent; -import io.paradaux.friendlybot.core.utils.NumberUtils; -import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; -import io.paradaux.http.HttpApi; -import net.dv8tion.jda.api.EmbedBuilder; -import org.json.JSONArray; -import org.slf4j.Logger; - -import java.net.http.HttpRequest; -import java.net.http.HttpResponse; - -public class CatCommand extends BaseCommand { - - private static final String CAT_API = "https://api.thecatapi.com/v1/images/search"; - - public CatCommand(ConfigurationEntry config, Logger logger) { - super(config, logger); - this.name = "cat"; - this.aliases = new String[]{"meow"}; - this.help = "Add a little more meow to your life!"; - } - - @Override - protected void execute(CommandEvent event) { - - HttpApi http = new HttpApi(getLogger()); - HttpRequest request = http.plainRequest(CAT_API); - - http.sendAsync(request, HttpResponse.BodyHandlers.ofString()).thenAccept((response) -> { - EmbedBuilder builder = new EmbedBuilder() - .setImage(new JSONArray(response.body()).getJSONObject(0).getString("url")) - .setColor(NumberUtils.randomColor()) - .setFooter("For " + event.getAuthor().getName()); - - event.getMessage().getChannel().sendMessage(builder.build()).queue(); - }).join(); - - } -} diff --git a/src/main/java/io/paradaux/friendlybot/discord/commands/utility/StrikeCommand.java b/src/main/java/io/paradaux/friendlybot/discord/commands/utility/StrikeCommand.java deleted file mode 100644 index 0a2e6dba..00000000 --- a/src/main/java/io/paradaux/friendlybot/discord/commands/utility/StrikeCommand.java +++ /dev/null @@ -1,40 +0,0 @@ -package io.paradaux.friendlybot.discord.commands.utility; - -import com.jagrosh.jdautilities.command.CommandEvent; -import io.paradaux.friendlybot.core.utils.NumberUtils; -import io.paradaux.friendlybot.core.utils.StringUtils; -import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; -import net.dv8tion.jda.api.EmbedBuilder; -import net.dv8tion.jda.api.entities.Message; -import net.dv8tion.jda.api.entities.MessageEmbed; -import org.slf4j.Logger; - -public class StrikeCommand extends BaseCommand { - - public StrikeCommand(ConfigurationEntry config, Logger logger) { - super(config, logger); - this.name = "strike"; - this.help = "Generate unicode strikethrough text."; - } - - @Override - protected void execute(CommandEvent event) { - - Message message = event.getMessage(); - - if (event.getArgs().isEmpty()) { - respondSyntaxError(message, ";strike "); - return; - } - - MessageEmbed embed = new EmbedBuilder() - .setColor(NumberUtils.randomColor()) - .setTitle("~~Strikethrough Generator~~") - .setDescription("Unicode: `" + StringUtils.toStrikeOut(event.getArgs()) + "`\n" - + "Markdown: ~~" + event.getArgs() + "~~") - .build(); - - message.getChannel().sendMessage(embed).queue(); - } -} From 9fc3deb71133b1f6af565f162d20fbfe428f4905 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Sat, 7 Aug 2021 14:31:49 +0100 Subject: [PATCH 069/121] Pre-gradle push --- .../paradaux/friendlybot/FBApplication.java | 2 ++ .../friendlybot/bot/command/CommandBody.java | 33 +++++++++++++++---- .../bot/command/CommandListener.java | 1 - .../bot/command/DiscordCommand.java | 8 +++++ .../friendlybot/bot/commands/CatCommand.java | 31 +++++++++++++++++ .../core/database/EBeanConnection.java | 2 ++ .../listeners/GuildCreationEvent.java | 20 +++++++++++ .../managers/DiscordBotManager.java | 3 +- 8 files changed, 91 insertions(+), 9 deletions(-) create mode 100644 src/main/java/io/paradaux/friendlybot/bot/commands/CatCommand.java create mode 100644 src/main/java/io/paradaux/friendlybot/discord/integrity/listeners/GuildCreationEvent.java diff --git a/src/main/java/io/paradaux/friendlybot/FBApplication.java b/src/main/java/io/paradaux/friendlybot/FBApplication.java index 6eafd3c3..752036b8 100644 --- a/src/main/java/io/paradaux/friendlybot/FBApplication.java +++ b/src/main/java/io/paradaux/friendlybot/FBApplication.java @@ -21,4 +21,6 @@ public static void main(String[] args) throws SerializationException, LoginExcep guildCache = new GuildCache(bot.getClient()); } + + } diff --git a/src/main/java/io/paradaux/friendlybot/bot/command/CommandBody.java b/src/main/java/io/paradaux/friendlybot/bot/command/CommandBody.java index 2b0b54fd..96841fa8 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/command/CommandBody.java +++ b/src/main/java/io/paradaux/friendlybot/bot/command/CommandBody.java @@ -1,29 +1,50 @@ package io.paradaux.friendlybot.bot.command; import net.dv8tion.jda.api.JDA; +import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Message; import net.dv8tion.jda.api.entities.MessageChannel; +import net.dv8tion.jda.api.entities.User; public class CommandBody { private final JDA jda; - private final Message message; - private final MessageChannel channel; + private final String command; private final String[] args; + private final Message message; + private final MessageChannel channel; + private final Member member; + private final User user; + public CommandBody(Message message, String command, String[] args) { this.jda = message.getJDA(); this.channel = message.getChannel(); this.message = message; this.command = command; this.args = args; + this.member = message.getMember(); + + if (this.member == null) { + throw new IllegalStateException("Member cannot be null"); + } + + this.user = member.getUser(); } public JDA getJda() { return jda; } + public String getCommand() { + return command; + } + + public String[] getArgs() { + return args; + } + public Message getMessage() { return message; } @@ -32,11 +53,11 @@ public MessageChannel getChannel() { return channel; } - public String getCommand() { - return command; + public Member getMember() { + return member; } - public String[] getArgs() { - return args; + public User getUser() { + return user; } } diff --git a/src/main/java/io/paradaux/friendlybot/bot/command/CommandListener.java b/src/main/java/io/paradaux/friendlybot/bot/command/CommandListener.java index f370a3d0..a4b398f0 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/command/CommandListener.java +++ b/src/main/java/io/paradaux/friendlybot/bot/command/CommandListener.java @@ -85,7 +85,6 @@ public void registerCommand(DiscordCommand command) { throw new CommandException("Command is already marked as registered."); } - Class clazz = command.getClass(); if (!clazz.isAnnotationPresent(Command.class)) { throw new CommandException("Provided Argument is not a valid command. Not annotated as command."); diff --git a/src/main/java/io/paradaux/friendlybot/bot/command/DiscordCommand.java b/src/main/java/io/paradaux/friendlybot/bot/command/DiscordCommand.java index 3e7f07af..6e9a4b57 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/command/DiscordCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/command/DiscordCommand.java @@ -1,10 +1,14 @@ package io.paradaux.friendlybot.bot.command; import io.paradaux.friendlybot.core.database.models.FGuild; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; @Command(name = "undefined", description = "undefined") public abstract class DiscordCommand { + private final Logger logger = LoggerFactory.getLogger(DiscordCommand.class); + private boolean isRegistered; private String command; private String description; @@ -32,4 +36,8 @@ public String getCommand() { public String getDescription() { return description; } + + public Logger getLogger() { + return logger; + } } diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/CatCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/CatCommand.java new file mode 100644 index 00000000..ce2b9530 --- /dev/null +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/CatCommand.java @@ -0,0 +1,31 @@ +package io.paradaux.friendlybot.bot.commands; + +import io.paradaux.friendlybot.bot.command.CommandBody; +import io.paradaux.friendlybot.bot.command.DiscordCommand; +import io.paradaux.friendlybot.core.database.models.FGuild; +import io.paradaux.friendlybot.core.utils.NumberUtils; +import io.paradaux.http.HttpApi; +import net.dv8tion.jda.api.EmbedBuilder; +import org.json.JSONArray; + +import java.net.http.HttpRequest; +import java.net.http.HttpResponse; + +public class CatCommand extends DiscordCommand { + + private static final String CAT_API = "https://api.thecatapi.com/v1/images/search"; + + public void execute(FGuild guild, CommandBody body) { + HttpApi http = new HttpApi(getLogger()); + HttpRequest request = http.plainRequest(CAT_API); + + http.sendAsync(request, HttpResponse.BodyHandlers.ofString()).thenAccept((response) -> { + EmbedBuilder builder = new EmbedBuilder() + .setImage(new JSONArray(response.body()).getJSONObject(0).getString("url")) + .setColor(NumberUtils.randomColor()) + .setFooter("For " + body.getUser().getName()); + + body.getMessage().getChannel().sendMessageEmbeds(builder.build()).queue(); + }).join(); + } +} diff --git a/src/main/java/io/paradaux/friendlybot/core/database/EBeanConnection.java b/src/main/java/io/paradaux/friendlybot/core/database/EBeanConnection.java index c6714d53..986f94db 100644 --- a/src/main/java/io/paradaux/friendlybot/core/database/EBeanConnection.java +++ b/src/main/java/io/paradaux/friendlybot/core/database/EBeanConnection.java @@ -11,6 +11,8 @@ public class EBeanConnection { private final Database database; public EBeanConnection() { + // 157.90.21.214 + DataSourceConfig dataSourceConfig = new DataSourceConfig(); dataSourceConfig.setUsername("sa"); dataSourceConfig.setPassword(""); diff --git a/src/main/java/io/paradaux/friendlybot/discord/integrity/listeners/GuildCreationEvent.java b/src/main/java/io/paradaux/friendlybot/discord/integrity/listeners/GuildCreationEvent.java new file mode 100644 index 00000000..18e5fd4b --- /dev/null +++ b/src/main/java/io/paradaux/friendlybot/discord/integrity/listeners/GuildCreationEvent.java @@ -0,0 +1,20 @@ +package io.paradaux.friendlybot.discord.integrity.listeners; + +import io.paradaux.friendlybot.core.cache.GuildCache; +import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.core.utils.models.types.DiscordEventListener; +import net.dv8tion.jda.api.events.guild.GuildJoinEvent; +import org.jetbrains.annotations.NotNull; +import org.slf4j.Logger; + +public class GuildCreationEvent extends DiscordEventListener { + + public GuildCreationEvent(ConfigurationEntry config, Logger logger) { + super(config, logger); + } + + @Override + public void onGuildJoin(@NotNull GuildJoinEvent event) { + + } +} diff --git a/src/main/java/io/paradaux/friendlybot/managers/DiscordBotManager.java b/src/main/java/io/paradaux/friendlybot/managers/DiscordBotManager.java index 8d890feb..0b7f176d 100644 --- a/src/main/java/io/paradaux/friendlybot/managers/DiscordBotManager.java +++ b/src/main/java/io/paradaux/friendlybot/managers/DiscordBotManager.java @@ -28,6 +28,7 @@ import com.jagrosh.jdautilities.command.CommandClient; import com.jagrosh.jdautilities.command.CommandClientBuilder; import com.jagrosh.jdautilities.commons.waiter.EventWaiter; +import io.paradaux.friendlybot.bot.commands.CatCommand; import io.paradaux.friendlybot.discord.commands.fun.*; import io.paradaux.friendlybot.discord.commands.staff.moderation.*; import io.paradaux.friendlybot.discord.commands.staff.technician.*; @@ -112,7 +113,6 @@ private CommandClient createCommandClient() { .setActivity(Activity.listening("modmail queries..")) .addCommands( // Fun Commands - new CatCommand(config, logger), new CharmanderCommand(config, logger), new CoinFlipCommand(config, logger), new DogCommand(config, logger), @@ -155,7 +155,6 @@ private CommandClient createCommandClient() { new RandomColorCommand(config, logger), new ServerInfoCommand(config, logger), new SetColorCommand(config, logger, roles), - new StrikeCommand(config, logger), new TagCommand(config, logger, mongo), new TagsCommand(logger), new UserInfoCommand(config, logger, permissionManager), From 03d2a00a3f50efa0b268893ed3b0441a6f645a13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Sat, 7 Aug 2021 16:21:23 +0100 Subject: [PATCH 070/121] Convert to gradle --- .gitignore | 4 + build.gradle | 75 +++++ gradle/wrapper/gradle-wrapper.properties | 5 + gradlew | 185 ++++++++++++ gradlew.bat | 89 ++++++ pom.xml | 266 ------------------ settings.gradle | 2 + .../staff/technician/SetupCommand.java | 70 ----- .../managers/DiscordBotManager.java | 1 - 9 files changed, 360 insertions(+), 337 deletions(-) create mode 100644 build.gradle create mode 100644 gradle/wrapper/gradle-wrapper.properties create mode 100644 gradlew create mode 100644 gradlew.bat delete mode 100644 pom.xml create mode 100644 settings.gradle delete mode 100644 src/main/java/io/paradaux/friendlybot/discord/commands/staff/technician/SetupCommand.java diff --git a/.gitignore b/.gitignore index b797f1b6..40be1fef 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,7 @@ +# Gradle +.gradle/ +build/ + # Unit testing friendlybot.mv.db diff --git a/build.gradle b/build.gradle new file mode 100644 index 00000000..9e09a5f5 --- /dev/null +++ b/build.gradle @@ -0,0 +1,75 @@ +plugins { + id 'java' + id 'io.ebean' version '12.10.0' + id 'com.github.johnrengelman.shadow' version '7.0.0' +} + +group 'io.paradaux' +version '2.0.0' + +repositories { + gradlePluginPortal() + mavenCentral() + maven { + url = "https://m2.dv8tion.net/releases" + } + + maven { + url = "https://jitpack.io" + } + + maven { + url = "https://repo.paradaux.io/releases" + } + + maven { + url = "https://m2.chew.pro/releases" + } +} + +dependencies { + + implementation 'net.dv8tion:JDA:4.3.0_300' + implementation 'pw.chew:jda-chewtils:1.20' + implementation 'org.slf4j:slf4j-api:1.7.32' + implementation 'org.slf4j:slf4j-log4j12:1.7.32' + implementation 'com.google.code.gson:gson:2.8.6' + implementation 'org.mongodb:mongo-java-driver:3.12.8' + implementation 'io.paradaux.http:HttpApi:1.1.2' + implementation 'io.ebean:ebean:12.10.0' + implementation 'com.h2database:h2:1.4.196' + implementation 'org.spongepowered:configurate-hocon:4.1.1' + + annotationProcessor 'io.ebean:querybean-generator:12.10.0' + + testImplementation 'org.junit.jupiter:junit-jupiter-api:5.7.1' + testImplementation 'io.ebean:ebean-test:12.10.0' + + testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.7.1' +} + +test { + useJUnitPlatform() +} + +compileJava { + options.release = 11 + options.encoding('UTF-8') +} + +jar { + manifest { + attributes( + 'Main-Class': 'io.paradaux.friendlybot.FBApplication' + ) + } + + from { + configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } + } +} + +// Allow use of Emojis inline +tasks.withType(JavaCompile) { + options.encoding = 'UTF-8' +} \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 00000000..05679dc3 --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-7.1.1-bin.zip +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew new file mode 100644 index 00000000..4f906e0c --- /dev/null +++ b/gradlew @@ -0,0 +1,185 @@ +#!/usr/bin/env sh + +# +# Copyright 2015 the original author or authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin or MSYS, switch paths to Windows format before running java +if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=`expr $i + 1` + done + case $i in + 0) set -- ;; + 1) set -- "$args0" ;; + 2) set -- "$args0" "$args1" ;; + 3) set -- "$args0" "$args1" "$args2" ;; + 4) set -- "$args0" "$args1" "$args2" "$args3" ;; + 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=`save "$@"` + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 00000000..107acd32 --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,89 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/pom.xml b/pom.xml deleted file mode 100644 index 421ce4f1..00000000 --- a/pom.xml +++ /dev/null @@ -1,266 +0,0 @@ - - - - - 4.0.0 - - io.paradaux - friendlybot - 2.0.0 - - - UTF-8 - 1.8 - - - - - - org.apache.maven.plugins - maven-compiler-plugin - 3.8.1 - - - 11 - 11 - - - - - org.apache.maven.plugins - maven-shade-plugin - 3.2.4 - - - - shade - - - - true - - - - io.paradaux.friendlybot.FBApplication - - - - ${project.build.directory}/dependency-reduced-pom.xml - - - - - - - org.apache.maven.plugins - maven-jar-plugin - 3.2.0 - - - - true - io.paradaux.friendlybot.FBApplication - - - - - - - - io.repaint.maven - tiles-maven-plugin - 2.19 - true - - - - io.ebean.tile:enhancement:12.8.0 - - - - - - - org.apache.maven.plugins - maven-compiler-plugin - 3.8.1 - - - - io.ebean - querybean-generator - 12.8.0 - - - - - - - - - - src/main/resources - true - - - - - - src/test/resources - - - - - - - dv8tion - m2-dv8tion - https://m2.dv8tion.net/releases - - - - jitpack.io - https://jitpack.io - - - - paradaux - https://repo.paradaux.io/releases - - - - chew-m2 - https://m2.chew.pro/releases - - - - - - - net.dv8tion - JDA - 4.3.0_300 - - - club.minnced - opus-java - - - jar - compile - - - - pw.chew - jda-chewtils - 1.20 - compile - pom - - - - org.slf4j - slf4j-api - 1.7.32 - jar - compile - - - - org.slf4j - slf4j-log4j12 - 1.7.32 - jar - compile - - - - com.google.code.gson - gson - 2.8.6 - - - - org.junit.jupiter - junit-jupiter-api - 5.7.1 - test - - - - org.junit.jupiter - junit-jupiter-engine - 5.7.1 - test - - - - org.mongodb - mongo-java-driver - 3.12.8 - - - - io.paradaux.http - HttpApi - 1.1.1 - - - org.slf4j - slf4j-log4j12 - - - - - - io.ebean - ebean - 12.10.0 - - - - io.ebean - ebean-test - 12.10.0 - test - - - - com.h2database - h2 - 1.4.196 - - - - org.spongepowered - configurate-hocon - 4.1.1 - - - \ No newline at end of file diff --git a/settings.gradle b/settings.gradle new file mode 100644 index 00000000..4a4c0735 --- /dev/null +++ b/settings.gradle @@ -0,0 +1,2 @@ +rootProject.name = 'FriendlyBot' + diff --git a/src/main/java/io/paradaux/friendlybot/discord/commands/staff/technician/SetupCommand.java b/src/main/java/io/paradaux/friendlybot/discord/commands/staff/technician/SetupCommand.java deleted file mode 100644 index 8714143b..00000000 --- a/src/main/java/io/paradaux/friendlybot/discord/commands/staff/technician/SetupCommand.java +++ /dev/null @@ -1,70 +0,0 @@ -package io.paradaux.friendlybot.discord.commands.staff.technician; - -import com.jagrosh.jdautilities.command.CommandEvent; -import com.jagrosh.jdautilities.commons.waiter.EventWaiter; -import io.paradaux.friendlybot.managers.GuildSettingsManager; -import io.paradaux.friendlybot.managers.PermissionManager; -import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.core.utils.models.database.GuildSettingsEntry; -import io.paradaux.friendlybot.core.utils.models.types.PrivilegedCommand; -import net.dv8tion.jda.api.Permission; -import net.dv8tion.jda.api.entities.Guild; -import org.slf4j.Logger; - -public class SetupCommand extends PrivilegedCommand { - - private final EventWaiter waiter; - private final GuildSettingsManager guilds; - - public SetupCommand(ConfigurationEntry config, Logger logger, PermissionManager permissionManager, EventWaiter waiter) { - super(config, logger, permissionManager); - this.waiter = waiter; - this.name = "setup"; - this.help = "Configures guild settings"; - this.guilds = GuildSettingsManager.getInstance(); - } - - @Override - protected void execute(CommandEvent event) { - - Guild guild = event.getGuild(); - - if (!isStaff(event.getGuild(), event.getAuthor().getId())) { - return; - } - - if (guilds.guildExists(guild.getId())) { - event.reply("This guild has already been setup."); - return; - } - - event.reply("Beginning to configure this guild."); - event.reply("This will create several channels which you can move around or rename, but they must remain the same channels"); - - guild.createCategory("FriendlyBot Administration").queue((category) -> { - // Make it so it isn't visible to the public - category.createPermissionOverride(guild.getPublicRole()).setDeny(Permission.MESSAGE_READ).queue((action) -> { - // Create the feature channels - category.createTextChannel("modmail").queue((modmail) -> { - category.createTextChannel("modmail-output").queue((modmailOutput) -> { - category.createTextChannel("auditlog").queue((auditlog) -> { - category.createTextChannel("auditlog-private").queue((auditlogPrivate) -> { - category.createTextChannel("message-logs").queue((messageLogs) -> { - GuildSettingsEntry guildEntry = guilds.createNewProfile(guild.getId()) - .setModmailInputChannel(modmail.getId()) - .setModmailOutputChannel(modmailOutput.getId()) - .setPublicAuditLogChannel(auditlog.getId()) - .setPrivateAuditLogChannel(auditlogPrivate.getId()) - .setMessageLogChannel(messageLogs.getId()); - - guilds.updateProfile(guildEntry); - event.reply("Setup complete. Do not delete these channels. All channels are under FriendlyBot Administration and cannot be seen by anyone except Server Administrators."); - }); - }); - }); - }); - }); - }); - }); - } -} diff --git a/src/main/java/io/paradaux/friendlybot/managers/DiscordBotManager.java b/src/main/java/io/paradaux/friendlybot/managers/DiscordBotManager.java index 0b7f176d..5dcf854c 100644 --- a/src/main/java/io/paradaux/friendlybot/managers/DiscordBotManager.java +++ b/src/main/java/io/paradaux/friendlybot/managers/DiscordBotManager.java @@ -141,7 +141,6 @@ private CommandClient createCommandClient() { new DmCommand(config, logger, permissionManager), new SayCommand(config, logger, permissionManager), new SendEmbedCommand(config, logger, permissionManager), - new SetupCommand(config, logger, permissionManager, eventWaiter), new VerificationCommand(config, logger, permissionManager), // Utility Commands From 31538220940f9640335e428c504f6c47ce875323 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Sat, 7 Aug 2021 16:22:09 +0100 Subject: [PATCH 071/121] Remove workflows --- .github/dependabot.yml | 12 ------------ .github/workflows/maven.yml | 34 ---------------------------------- 2 files changed, 46 deletions(-) delete mode 100644 .github/dependabot.yml delete mode 100644 .github/workflows/maven.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml deleted file mode 100644 index e46c16f6..00000000 --- a/.github/dependabot.yml +++ /dev/null @@ -1,12 +0,0 @@ -# To get started with Dependabot version updates, you'll need to specify which -# package ecosystems to update and where the package manifests are located. -# Please see the documentation for all configuration options: -# https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates - -version: 2 -updates: - - package-ecosystem: "maven" # See documentation for possible values - directory: "/" # Location of package manifests - schedule: - interval: "daily" - target_branch: "develop" diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml deleted file mode 100644 index 1fc2dda7..00000000 --- a/.github/workflows/maven.yml +++ /dev/null @@ -1,34 +0,0 @@ -# This workflow will build a Java project with Maven -# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven - -name: Build - -on: - push: - branches: [ main ] - pull_request: - branches: [ main ] - -jobs: - build: - - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v2 - - name: Set up JDK 11 - uses: actions/setup-java@v1 - with: - java-version: 11 - - name: Build with Maven - run: mvn -B package --file pom.xml - - name: Archive full target folder - uses: actions/upload-artifact@v2 - with: - name: friendlybot - path: target/ - - name: Archive Compiled and Shaded Archive - uses: actions/upload-artifact@v2 - with: - name: friendlybot - path: target/friendlybot-1.0.0-shaded.jar From 590cb36ffbc72f3a7c082855f66aece0112c01f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Sat, 7 Aug 2021 16:25:11 +0100 Subject: [PATCH 072/121] Move exportResource to a utility class --- .../core/locale/LocaleManager.java | 2 +- .../friendlybot/core/utils/IOUtils.java | 45 +++++++++++++++++++ .../friendlybot/managers/IOManager.java | 30 +------------ 3 files changed, 48 insertions(+), 29 deletions(-) create mode 100644 src/main/java/io/paradaux/friendlybot/core/utils/IOUtils.java diff --git a/src/main/java/io/paradaux/friendlybot/core/locale/LocaleManager.java b/src/main/java/io/paradaux/friendlybot/core/locale/LocaleManager.java index bac21ab4..effcc37a 100644 --- a/src/main/java/io/paradaux/friendlybot/core/locale/LocaleManager.java +++ b/src/main/java/io/paradaux/friendlybot/core/locale/LocaleManager.java @@ -13,7 +13,7 @@ * */ public class LocaleManager { - private static final File locale = new File(""); + private static final File locale = new File("friendlybot.locale"); private static ResourceBundle bundle; diff --git a/src/main/java/io/paradaux/friendlybot/core/utils/IOUtils.java b/src/main/java/io/paradaux/friendlybot/core/utils/IOUtils.java new file mode 100644 index 00000000..ad6f07d3 --- /dev/null +++ b/src/main/java/io/paradaux/friendlybot/core/utils/IOUtils.java @@ -0,0 +1,45 @@ +package io.paradaux.friendlybot.core.utils; + +import io.paradaux.friendlybot.core.utils.models.exceptions.NoSuchResourceException; +import io.paradaux.friendlybot.managers.IOManager; + +import javax.annotation.Nullable; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; + +public class IOUtils { + + /** + * Export a resource embedded into a Jar file to the local file path. + * + * @param inputPath ie.: "/configuration.yml" N.B / is a directory down in the "jar tree" been the jar the root of the tree + * @throws NoSuchResourceException a generic exception to signal something went wrong + */ + public static void exportResource(String inputPath, @Nullable String outputPath) throws NoSuchResourceException { + + OutputStream resourceOutputStream; + + try (InputStream resourceStream = IOManager.class.getResourceAsStream(inputPath)) { + resourceOutputStream = new FileOutputStream(outputPath); + + if (resourceStream == null) { + throw new FileNotFoundException("Cannot get resource \"" + inputPath + "\" from Jar file."); + } + + int readBytes; + byte[] buffer = new byte[4096]; + + while ((readBytes = resourceStream.read(buffer)) > 0) { + resourceOutputStream.write(buffer, 0, readBytes); + } + + resourceOutputStream.close(); + } catch (IOException exception) { + throw new NoSuchResourceException("Failed to deploy resource : " + exception.getMessage()); + } + } + +} diff --git a/src/main/java/io/paradaux/friendlybot/managers/IOManager.java b/src/main/java/io/paradaux/friendlybot/managers/IOManager.java index 38661a5b..25e92af9 100644 --- a/src/main/java/io/paradaux/friendlybot/managers/IOManager.java +++ b/src/main/java/io/paradaux/friendlybot/managers/IOManager.java @@ -37,6 +37,8 @@ import java.io.*; import java.util.Scanner; +import static io.paradaux.friendlybot.core.utils.IOUtils.exportResource; + public class IOManager { public static IOManager instance = null; @@ -56,35 +58,7 @@ public static IOManager getInstance() { return instance; } - /** - * Export a resource embedded into a Jar file to the local file path. - * - * @param inputPath ie.: "/configuration.yml" N.B / is a directory down in the "jar tree" been the jar the root of the tree - * @throws NoSuchResourceException a generic exception to signal something went wrong - */ - public static void exportResource(String inputPath, @Nullable String outputPath) throws NoSuchResourceException { - - OutputStream resourceOutputStream; - - try (InputStream resourceStream = IOManager.class.getResourceAsStream(inputPath)) { - resourceOutputStream = new FileOutputStream(outputPath); - - if (resourceStream == null) { - throw new FileNotFoundException("Cannot get resource \"" + inputPath + "\" from Jar file."); - } - - int readBytes; - byte[] buffer = new byte[4096]; - - while ((readBytes = resourceStream.read(buffer)) > 0) { - resourceOutputStream.write(buffer, 0, readBytes); - } - resourceOutputStream.close(); - } catch (IOException exception) { - throw new NoSuchResourceException("Failed to deploy resource : " + exception.getMessage()); - } - } /** * Reads the configuration file and maps it to the ConfigurationEntry object. From de88516b193c2714a4f25eb10c444d48969b2d50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Sat, 7 Aug 2021 16:28:03 +0100 Subject: [PATCH 073/121] Code cleanup --- .../java/io/paradaux/friendlybot/core/utils/StringUtils.java | 2 +- .../friendlybot/core/utils/models/types/ModerationAction.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/io/paradaux/friendlybot/core/utils/StringUtils.java b/src/main/java/io/paradaux/friendlybot/core/utils/StringUtils.java index a587cb4c..64c79bd8 100644 --- a/src/main/java/io/paradaux/friendlybot/core/utils/StringUtils.java +++ b/src/main/java/io/paradaux/friendlybot/core/utils/StringUtils.java @@ -44,7 +44,7 @@ public class StringUtils { + "(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09" + "\\x0b\\x0c\\x0e-\\x7f])+)\\])"); - private static final String SHORTHAND_CARDINAL_DIRECTIONS[] = {"N", "NE", "E", "SE", "S", "SW", "W", "NW", "N"}; + private static final String[] SHORTHAND_CARDINAL_DIRECTIONS = {"N", "NE", "E", "SE", "S", "SW", "W", "NW", "N"}; /** * Converts the specified string to Title Case diff --git a/src/main/java/io/paradaux/friendlybot/core/utils/models/types/ModerationAction.java b/src/main/java/io/paradaux/friendlybot/core/utils/models/types/ModerationAction.java index 23846161..5cae4014 100644 --- a/src/main/java/io/paradaux/friendlybot/core/utils/models/types/ModerationAction.java +++ b/src/main/java/io/paradaux/friendlybot/core/utils/models/types/ModerationAction.java @@ -2,6 +2,6 @@ public enum ModerationAction { - WARN, KICK, BAN, TEMP_BAN, RESCINDMENT; + WARN, KICK, BAN, TEMP_BAN, RESCINDMENT } From b44d2861811b9c466624d13df46f4f08854c04d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Sat, 7 Aug 2021 16:47:39 +0100 Subject: [PATCH 074/121] Cleanup / Code maturity --- .../friendlybot/core/utils/StringUtils.java | 6 +- .../commands/utility/GithubCommand.java | 122 ------------------ .../commands/utility/WeatherCommand.java | 4 +- .../managers/PunishmentManager.java | 12 -- 4 files changed, 5 insertions(+), 139 deletions(-) delete mode 100644 src/main/java/io/paradaux/friendlybot/discord/commands/utility/GithubCommand.java diff --git a/src/main/java/io/paradaux/friendlybot/core/utils/StringUtils.java b/src/main/java/io/paradaux/friendlybot/core/utils/StringUtils.java index 64c79bd8..bfe620ae 100644 --- a/src/main/java/io/paradaux/friendlybot/core/utils/StringUtils.java +++ b/src/main/java/io/paradaux/friendlybot/core/utils/StringUtils.java @@ -34,15 +34,15 @@ public class StringUtils { - private static final Pattern VALID_EMAIL = Pattern.compile("(?:[a-z0-9!#$%&'*+\\/=?^_`{|}~-]+(?:\\" - + ".[a-z0-9!#$%&'*+\\/=?^_`{|}~-]+)*|\"" + private static final Pattern VALID_EMAIL = Pattern.compile("(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\" + + ".[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"" + "(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01" + "-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)" + "+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:" + "(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}" + "(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:" + "(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09" - + "\\x0b\\x0c\\x0e-\\x7f])+)\\])"); + + "\\x0b\\x0c\\x0e-\\x7f])+)])"); private static final String[] SHORTHAND_CARDINAL_DIRECTIONS = {"N", "NE", "E", "SE", "S", "SW", "W", "NW", "N"}; diff --git a/src/main/java/io/paradaux/friendlybot/discord/commands/utility/GithubCommand.java b/src/main/java/io/paradaux/friendlybot/discord/commands/utility/GithubCommand.java deleted file mode 100644 index 58576be9..00000000 --- a/src/main/java/io/paradaux/friendlybot/discord/commands/utility/GithubCommand.java +++ /dev/null @@ -1,122 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2021 Rían Errity - * io.paradaux.friendlybot.commands.utility.GithubCommand : 31/01/2021, 01:26 - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package io.paradaux.friendlybot.discord.commands.utility; - -import com.jagrosh.jdautilities.command.CommandEvent; -import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; -import net.dv8tion.jda.api.entities.Message; -import net.dv8tion.jda.api.entities.MessageEmbed; -import net.dv8tion.jda.api.entities.TextChannel; -import org.slf4j.Logger; - -public class GithubCommand extends BaseCommand { - - private static final String REPO_INFO_ENDPOINT = "https://api.github.com/repos/%s"; - private static final String REPO_ISSUES_ENDPOINT = "https://api.github.com/repos/%s/issues"; - private static final String CLOSED_ISSUES_ENDPOINT = "https://api.github.com/search/issues?q=repo:%s/+type:issue+state:closed"; - private static final String OPEN_ISSUES_ENDPOINT = "https://api.github.com/search/issues?q=repo:%s/+type:issue+state:open"; - - public GithubCommand(ConfigurationEntry config, Logger logger) { - super(config, logger); - this.name = "github"; - this.aliases = new String[]{"gh"}; - this.help = "Looks up the specified github repository."; - } - - @Override - protected void execute(CommandEvent event) { - String[] args = getArgs(event.getArgs()); - TextChannel channel = event.getTextChannel(); - Message message = event.getMessage(); - - MessageEmbed embed; - - switch (args.length) { - - case 1: { -// embed = makeInfoEmbed(args[0]); - break; - } - -// embed = makeIssueEmbed(args[0], Long.parseLong(args[1])); -// break; -// } - - default: { - respondSyntaxError(message, ";github [issue #]"); - return; - } - - } - -// channel.sendMessage(embed).queue(); - } - -// public MessageEmbed makeInfoEmbed(String repository) { -// EmbedBuilder embed = new EmbedBuilder(); -// try { -// String repoContent = WebApiUtil.getStringWithThrows(new URL(String.format(REPO_INFO_ENDPOINT, repository)), "GET", -// WebSettings.WEB_TIMEOUT, WebSettings.WEB_USER_AGENT, WebSettings.getJsonWebHeaders()); -// -// Gson gson = new GsonBuilder() -// .registerTypeAdapter(Data.class, new CustomDeserilizer()) -// .create(); -// -// -// JSONDeserializer repoModelDeserializer = new JSONDeserializer<>(); -// repoModelDeserializer.use(Instant.class, new InstantTransformer()); -// GithubRepoModel repoModel = repoModelDeserializer.deserialize(repoContent, GithubRepoModel.class); -// List issueModels = getIssues(repository); -// -// embed.setAuthor(repoModel.getName(), repoModel.getHtmlURL(), repoModel.getOwner().getAvatarURL()); -// embed.setColor(Color.YELLOW); -// embed.setDescription(repoModel.getDescription()); -// embed.setThumbnail(repoModel.getOwner().getAvatarURL()); -// -// embed.addInlineField("\uD83C\uDF1F Stars", String.format("```%s```", repoModel.getStargazers())); -// embed.addInlineField("\u203C Issues", String.format("```%s```", repoModel.getOpenIssues())); -// -// StringBuilder issuenames = new StringBuilder(); -// if (!issueModels.isEmpty()) { -// for (int i = 0; i < Math.min(issueModels.size(), 3); i++) { -// issuenames.append("[#"+issueModels.get(i).getNumber()+"]").append("("+issueModels.get(i).getHtmlUrl()+") ") -// .append("```" + issueModels.get(i).getTitle() + "```"); -// } -// } -// -// embed.addField("Current issues", issuenames.toString().isEmpty() ? "None!" : issuenames.toString()); -// -// embed.setTimestampToNow(); -// -// return embed.build(); -// } catch (IOException ex) { -// getLogger().error(ex.getMessage(), ex); -// embed.setTitle("Unknown repo!").setColor(Color.RED); -// } -// return embed; -// } -} diff --git a/src/main/java/io/paradaux/friendlybot/discord/commands/utility/WeatherCommand.java b/src/main/java/io/paradaux/friendlybot/discord/commands/utility/WeatherCommand.java index 24ecaaac..1ff45462 100644 --- a/src/main/java/io/paradaux/friendlybot/discord/commands/utility/WeatherCommand.java +++ b/src/main/java/io/paradaux/friendlybot/discord/commands/utility/WeatherCommand.java @@ -18,9 +18,9 @@ public class WeatherCommand extends BaseCommand { - private static final String WEATHER_API = "http://api.openweathermap.org/data/2.5/weather?q=%s&appid=%s"; + private static final String WEATHER_API = "https://api.openweathermap.org/data/2.5/weather?q=%s&appid=%s"; private static final String MORE_INFORMATION_LINK = "https://openweathermap.org/city/%d"; - private static final String WEATHER_ICON_LINK = "http://openweathermap.org/img/wn/%s@4x.png"; + private static final String WEATHER_ICON_LINK = "https://openweathermap.org/img/wn/%s@4x.png"; private static final String TEMPERATURE_FORMAT = "%.2f°C (%.2f°F)"; private static final String WIND_FORMAT = "%.1fm/s %.0f° (%s)"; diff --git a/src/main/java/io/paradaux/friendlybot/managers/PunishmentManager.java b/src/main/java/io/paradaux/friendlybot/managers/PunishmentManager.java index f7b65417..159aae32 100644 --- a/src/main/java/io/paradaux/friendlybot/managers/PunishmentManager.java +++ b/src/main/java/io/paradaux/friendlybot/managers/PunishmentManager.java @@ -178,18 +178,6 @@ private MessageEmbed privateAuditPunishmentEmbed() { return null; } - private MessageEmbed publicAuditPunishmentEmbed() { - //User target, ModerationAction action, String reason -// return new EmbedBuilder() -// .setColor(0xeb5132) -// .setTitle(target.getUser().getAsTag() + " has been temporarily banned.") -// .setDescription("**Reason**: " + entry.getReason() + "\n**Period**: " + TimeUtils.millisecondsToDisplay(period)) -// .setFooter("Incident ID: " + entry.getIncidentId() + ". For more information, reach out to the moderation team via mod-mail.") -// .setTimestamp(new Date().toInstant()) -// .build(); - return null; - } - public void deleteWarning(Guild guild, Member staff, String warningId, String reason) { GuildSettingsEntry settings = guilds.getGuild(guild.getId()); From accda027b77365f0d15ff3373ad66263fff1a6af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Mon, 9 Aug 2021 02:34:32 +0100 Subject: [PATCH 075/121] Update legacy --- .../io/paradaux/friendlybot/managers/DiscordBotManager.java | 1 - .../io/paradaux/friendlybot/managers/PunishmentManager.java | 4 ++-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/main/java/io/paradaux/friendlybot/managers/DiscordBotManager.java b/src/main/java/io/paradaux/friendlybot/managers/DiscordBotManager.java index 5dcf854c..442011d7 100644 --- a/src/main/java/io/paradaux/friendlybot/managers/DiscordBotManager.java +++ b/src/main/java/io/paradaux/friendlybot/managers/DiscordBotManager.java @@ -146,7 +146,6 @@ private CommandClient createCommandClient() { // Utility Commands new ClearColorCommand(config, logger), new CommandsCommand(config, logger), - new GithubCommand(config, logger), new GoogleCommand(config, logger), new InviteCommand(logger), new MemeImagesCommand(config, logger), diff --git a/src/main/java/io/paradaux/friendlybot/managers/PunishmentManager.java b/src/main/java/io/paradaux/friendlybot/managers/PunishmentManager.java index 159aae32..603fdc10 100644 --- a/src/main/java/io/paradaux/friendlybot/managers/PunishmentManager.java +++ b/src/main/java/io/paradaux/friendlybot/managers/PunishmentManager.java @@ -59,7 +59,7 @@ public void tempBanUser(Guild guild, Member target, Member staff, TextChannel ch TextChannel publicAuditLog = DiscordBotManager.getInstance().getChannel(settings.getPublicAuditLogChannel()); AuditManager.getInstance().log(ModerationAction.TEMP_BAN, target.getUser(), staff.getUser(), entry.getReason(), entry.getIncidentId()); - publicAuditLog.sendMessage(this.publicAuditPunishmentEmbed()).queue(); + publicAuditLog.sendMessage(null).queue(); target.getUser().openPrivateChannel().queue((privateChannel) -> { MessageEmbed banNotification = new EmbedBuilder() @@ -118,7 +118,7 @@ public void kickUser(Guild guild, Member target, Member staff, TextChannel chann AuditManager.getInstance().log(ModerationAction.KICK, target.getUser(), staff.getUser(), reason, incidentID); - DiscordBotManager.getInstance().getChannel(settings.getPublicAuditLogChannel()).sendMessage(this.publicAuditPunishmentEmbed()).queue(); + DiscordBotManager.getInstance().getChannel(settings.getPublicAuditLogChannel()).sendMessage(null).queue(); target.getUser().openPrivateChannel().queue((privateChannel ) -> { MessageEmbed kickNotification = new EmbedBuilder() From 2d2a83be96514afa9e2a7f3b7ff833839162c43e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Thu, 12 Aug 2021 19:54:46 +0100 Subject: [PATCH 076/121] Update PunishmentManager.java --- .../io/paradaux/friendlybot/managers/PunishmentManager.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/io/paradaux/friendlybot/managers/PunishmentManager.java b/src/main/java/io/paradaux/friendlybot/managers/PunishmentManager.java index 603fdc10..2c097552 100644 --- a/src/main/java/io/paradaux/friendlybot/managers/PunishmentManager.java +++ b/src/main/java/io/paradaux/friendlybot/managers/PunishmentManager.java @@ -199,6 +199,8 @@ public void deleteWarning(Guild guild, Member staff, String warningId, String re mongo.addRescindment(rescindment); + String s; + MessageEmbed publicAudit = new EmbedBuilder() .setColor(0x34eb9b) .setTitle("Punishment Rescinded. | Warning of " + entry.getUserTag()) From fd2406df34258dbfea487bdb1557c35b99fd6be8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Mon, 16 Aug 2021 17:43:14 +0100 Subject: [PATCH 077/121] Add new runtime files to ignore list --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index 40be1fef..36a40da0 100644 --- a/.gitignore +++ b/.gitignore @@ -8,6 +8,8 @@ friendlybot.mv.db # Runtime stuff /*.json src/test/resources/img* +friendlybot-locale.properties +friendlybot.conf # Private tests src/test/java/io/paradaux/friendlybot/managers/MailGunManagerTest.java From 4868b31e47c9968193b3aa38153aea9ed693faed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Mon, 16 Aug 2021 17:43:34 +0100 Subject: [PATCH 078/121] Fix locale loading, save config on start --- .../paradaux/friendlybot/FBApplication.java | 12 +++++++- .../core/locale/LocaleManager.java | 29 ++++++++++--------- 2 files changed, 27 insertions(+), 14 deletions(-) diff --git a/src/main/java/io/paradaux/friendlybot/FBApplication.java b/src/main/java/io/paradaux/friendlybot/FBApplication.java index 752036b8..70ad9f50 100644 --- a/src/main/java/io/paradaux/friendlybot/FBApplication.java +++ b/src/main/java/io/paradaux/friendlybot/FBApplication.java @@ -4,19 +4,29 @@ import io.paradaux.friendlybot.config.FConfiguration; import io.paradaux.friendlybot.config.FConfigurationLoader; import io.paradaux.friendlybot.core.cache.GuildCache; +import io.paradaux.friendlybot.core.locale.LocaleLogger; +import io.paradaux.friendlybot.core.locale.LocaleManager; +import org.slf4j.LoggerFactory; +import org.spongepowered.configurate.ConfigurateException; import org.spongepowered.configurate.serialize.SerializationException; import javax.security.auth.login.LoginException; public class FBApplication { + private static LocaleManager localeManager; + private static LocaleLogger logger; private static FConfiguration config; private static FBot bot; private static GuildCache guildCache; - public static void main(String[] args) throws SerializationException, LoginException { + public static void main(String[] args) throws ConfigurateException, LoginException { + localeManager = new LocaleManager(); + logger = new LocaleLogger(LoggerFactory.getLogger(FBApplication.class), true); + config = FConfigurationLoader.loadConfig(); + FConfigurationLoader.saveConfig(); bot = new FBot(config); guildCache = new GuildCache(bot.getClient()); } diff --git a/src/main/java/io/paradaux/friendlybot/core/locale/LocaleManager.java b/src/main/java/io/paradaux/friendlybot/core/locale/LocaleManager.java index effcc37a..84777c4e 100644 --- a/src/main/java/io/paradaux/friendlybot/core/locale/LocaleManager.java +++ b/src/main/java/io/paradaux/friendlybot/core/locale/LocaleManager.java @@ -1,5 +1,7 @@ package io.paradaux.friendlybot.core.locale; +import io.paradaux.friendlybot.core.utils.IOUtils; + import java.io.File; import java.io.FileInputStream; import java.io.IOException; @@ -13,27 +15,28 @@ * */ public class LocaleManager { - private static final File locale = new File("friendlybot.locale"); + private static final File locale = new File("friendlybot-locale.properties"); private static ResourceBundle bundle; public LocaleManager() { if (!locale.exists()) { - - } - - try (FileInputStream fis = new FileInputStream(locale)) { - bundle = new PropertyResourceBundle(fis); - } catch (IOException e) { - e.printStackTrace(); + IOUtils.exportResource("/friendlybot-locale.properties", System.getProperty("user.dir") + "/friendlybot-locale.properties"); + } else { + try (FileInputStream fis = new FileInputStream(locale)) { + bundle = new PropertyResourceBundle(fis); + } catch (IOException e) { + e.printStackTrace(); + } } } public static String get(String key) { - if (!bundle.containsKey(key)) { - return key; - } - - return bundle.getString(key); +// if (!bundle.containsKey(key)) { +// return key; +// } +// +// return bundle.getString(key); + return "test"; } } \ No newline at end of file From 148b284828e4cf4c7b64cfb33b2d6a7d8e30d5e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Mon, 16 Aug 2021 17:43:48 +0100 Subject: [PATCH 079/121] Mark fields as nullable, remove transient root field --- .../friendlybot/config/FConfiguration.java | 86 +++++++++---------- 1 file changed, 40 insertions(+), 46 deletions(-) diff --git a/src/main/java/io/paradaux/friendlybot/config/FConfiguration.java b/src/main/java/io/paradaux/friendlybot/config/FConfiguration.java index c8b1cea2..40b6b78d 100644 --- a/src/main/java/io/paradaux/friendlybot/config/FConfiguration.java +++ b/src/main/java/io/paradaux/friendlybot/config/FConfiguration.java @@ -1,156 +1,150 @@ package io.paradaux.friendlybot.config; -import org.spongepowered.configurate.CommentedConfigurationNode; +import org.checkerframework.checker.nullness.qual.Nullable; import org.spongepowered.configurate.objectmapping.ConfigSerializable; import org.spongepowered.configurate.objectmapping.meta.Comment; -import org.spongepowered.configurate.serialize.SerializationException; @ConfigSerializable public class FConfiguration { - private transient CommentedConfigurationNode root; - @Comment("Your Discord Bot Token") - private String botToken; + private @Nullable String botToken = "BOT-TOKEN"; @Comment("What symbol to begin commands with.") - private String commandPrefix; + private @Nullable String commandPrefix = ";"; @Comment("Mailgun is used to send verification emails. Enter your API key and URL here.") - private String mailgunApplicationKey; - private String mailgunBaseUrl; + private @Nullable String mailgunApplicationKey = "MAILGUN-TOKEN"; + private @Nullable String mailgunBaseUrl = "MAILGUN-URL"; @Comment("Imgflip is used for meme generation. Enter your login details here.") - private String imgflipUsername; - private String imgflipPassword; + private @Nullable String imgflipUsername = "IMGFLIP-USERNAME"; + private @Nullable String imgflipPassword = "IMGFLIP-PASSWORD"; @Comment("Other random services.") - private String wolframAlphaApiKey; - private String imgurClientId; - private String bytebinInstanceUrl; - private String openWeatherMapApiKey; + private @Nullable String wolframAlphaApiKey = "WOLFRAM-API"; + private @Nullable String imgurClientId = "IMGUR-CLIENT"; + private @Nullable String bytebinInstanceUrl = "BYTEBIN-URL"; + private @Nullable String openWeatherMapApiKey = "OPENWEATHER-API"; @Comment("Database connection") - private String jdbcUrl; - private String jdbcUsername; - private String jdbcPassword; - - public FConfiguration() { - - } - - public void save() throws SerializationException { - root.set(FConfiguration.class, root); - } - - public CommentedConfigurationNode getRoot() { - return root; - } + private @Nullable String jdbcUrl = "DATABASE-URL"; + private @Nullable String jdbcUsername = "DATABASE-USER"; + private @Nullable String jdbcPassword = "DATABASE-PASS"; + @Nullable public String getBotToken() { return botToken; } + @Nullable public String getCommandPrefix() { return commandPrefix; } + @Nullable public String getMailgunApplicationKey() { return mailgunApplicationKey; } + @Nullable public String getMailgunBaseUrl() { return mailgunBaseUrl; } + @Nullable public String getImgflipUsername() { return imgflipUsername; } + @Nullable public String getImgflipPassword() { return imgflipPassword; } + @Nullable public String getWolframAlphaApiKey() { return wolframAlphaApiKey; } + @Nullable public String getImgurClientId() { return imgurClientId; } + @Nullable public String getBytebinInstanceUrl() { return bytebinInstanceUrl; } + @Nullable public String getOpenWeatherMapApiKey() { return openWeatherMapApiKey; } + @Nullable public String getJdbcUrl() { return jdbcUrl; } + @Nullable public String getJdbcUsername() { return jdbcUsername; } + @Nullable public String getJdbcPassword() { return jdbcPassword; } - public void setRoot(CommentedConfigurationNode root) { - this.root = root; - } - - public void setBotToken(String botToken) { + public void setBotToken(@Nullable String botToken) { this.botToken = botToken; } - public void setCommandPrefix(String commandPrefix) { + public void setCommandPrefix(@Nullable String commandPrefix) { this.commandPrefix = commandPrefix; } - public void setMailgunApplicationKey(String mailgunApplicationKey) { + public void setMailgunApplicationKey(@Nullable String mailgunApplicationKey) { this.mailgunApplicationKey = mailgunApplicationKey; } - public void setMailgunBaseUrl(String mailgunBaseUrl) { + public void setMailgunBaseUrl(@Nullable String mailgunBaseUrl) { this.mailgunBaseUrl = mailgunBaseUrl; } - public void setImgflipUsername(String imgflipUsername) { + public void setImgflipUsername(@Nullable String imgflipUsername) { this.imgflipUsername = imgflipUsername; } - public void setImgflipPassword(String imgflipPassword) { + public void setImgflipPassword(@Nullable String imgflipPassword) { this.imgflipPassword = imgflipPassword; } - public void setWolframAlphaApiKey(String wolframAlphaApiKey) { + public void setWolframAlphaApiKey(@Nullable String wolframAlphaApiKey) { this.wolframAlphaApiKey = wolframAlphaApiKey; } - public void setImgurClientId(String imgurClientId) { + public void setImgurClientId(@Nullable String imgurClientId) { this.imgurClientId = imgurClientId; } - public void setBytebinInstanceUrl(String bytebinInstanceUrl) { + public void setBytebinInstanceUrl(@Nullable String bytebinInstanceUrl) { this.bytebinInstanceUrl = bytebinInstanceUrl; } - public void setOpenWeatherMapApiKey(String openWeatherMapApiKey) { + public void setOpenWeatherMapApiKey(@Nullable String openWeatherMapApiKey) { this.openWeatherMapApiKey = openWeatherMapApiKey; } - public void setJdbcUrl(String jdbcUrl) { + public void setJdbcUrl(@Nullable String jdbcUrl) { this.jdbcUrl = jdbcUrl; } - public void setJdbcUsername(String jdbcUsername) { + public void setJdbcUsername(@Nullable String jdbcUsername) { this.jdbcUsername = jdbcUsername; } - public void setJdbcPassword(String jdbcPassword) { + public void setJdbcPassword(@Nullable String jdbcPassword) { this.jdbcPassword = jdbcPassword; } } From 85a7316b31d8228329b49a76fdf01585b9e6a233 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Mon, 16 Aug 2021 17:43:57 +0100 Subject: [PATCH 080/121] Update FConfigurationLoader.java --- .../friendlybot/config/FConfigurationLoader.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/main/java/io/paradaux/friendlybot/config/FConfigurationLoader.java b/src/main/java/io/paradaux/friendlybot/config/FConfigurationLoader.java index 7b43ef1d..83d3e18d 100644 --- a/src/main/java/io/paradaux/friendlybot/config/FConfigurationLoader.java +++ b/src/main/java/io/paradaux/friendlybot/config/FConfigurationLoader.java @@ -12,6 +12,7 @@ public class FConfigurationLoader { private static HoconConfigurationLoader loader; private static FConfiguration config; + private static CommentedConfigurationNode root; public static HoconConfigurationLoader getLoader() { return loader; @@ -22,8 +23,6 @@ public static FConfiguration loadConfig() throws SerializationException { .path(Path.of("friendlybot.conf")) .build(); - CommentedConfigurationNode root; - try { root = loader.load(); } catch (IOException e) { @@ -31,13 +30,17 @@ public static FConfiguration loadConfig() throws SerializationException { } config = root.get(FConfiguration.class); - config.setRoot(root); + + if (config == null) { + throw new IllegalStateException("Configuration is null"); + } + return config; } public static void saveConfig() throws ConfigurateException { - config.save(); - loader.save(config.getRoot()); + root.set(FConfiguration.class, root); + loader.save(root); } } From c414a1d83554543e58d77be670fc3f68c52f296d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Mon, 16 Aug 2021 17:44:00 +0100 Subject: [PATCH 081/121] Update PunishmentManager.java --- .../io/paradaux/friendlybot/managers/PunishmentManager.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/main/java/io/paradaux/friendlybot/managers/PunishmentManager.java b/src/main/java/io/paradaux/friendlybot/managers/PunishmentManager.java index 2c097552..1e5ebb0e 100644 --- a/src/main/java/io/paradaux/friendlybot/managers/PunishmentManager.java +++ b/src/main/java/io/paradaux/friendlybot/managers/PunishmentManager.java @@ -59,7 +59,6 @@ public void tempBanUser(Guild guild, Member target, Member staff, TextChannel ch TextChannel publicAuditLog = DiscordBotManager.getInstance().getChannel(settings.getPublicAuditLogChannel()); AuditManager.getInstance().log(ModerationAction.TEMP_BAN, target.getUser(), staff.getUser(), entry.getReason(), entry.getIncidentId()); - publicAuditLog.sendMessage(null).queue(); target.getUser().openPrivateChannel().queue((privateChannel) -> { MessageEmbed banNotification = new EmbedBuilder() @@ -118,7 +117,6 @@ public void kickUser(Guild guild, Member target, Member staff, TextChannel chann AuditManager.getInstance().log(ModerationAction.KICK, target.getUser(), staff.getUser(), reason, incidentID); - DiscordBotManager.getInstance().getChannel(settings.getPublicAuditLogChannel()).sendMessage(null).queue(); target.getUser().openPrivateChannel().queue((privateChannel ) -> { MessageEmbed kickNotification = new EmbedBuilder() @@ -155,7 +153,6 @@ public void warnUser(Guild guild, Member target, Member staff, TextChannel chann AuditManager.getInstance().log(ModerationAction.WARN, target.getUser(), staff.getUser(), reason, incidentID); - DiscordBotManager.getInstance().getChannel(settings.getPublicAuditLogChannel()).sendMessage(this.publicAuditPunishmentEmbed()).queue(); target.getUser().openPrivateChannel().queue((privateChannel) -> { MessageEmbed warnNotification = new EmbedBuilder() From fbc20142472e58ecabf995ef88a06d9a88828406 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Tue, 17 Aug 2021 12:16:48 +0100 Subject: [PATCH 082/121] Fix https://github.com/SpongePowered/Configurate/issues/210 --- .../friendlybot/config/FConfigurationLoader.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/main/java/io/paradaux/friendlybot/config/FConfigurationLoader.java b/src/main/java/io/paradaux/friendlybot/config/FConfigurationLoader.java index 83d3e18d..d6f761fb 100644 --- a/src/main/java/io/paradaux/friendlybot/config/FConfigurationLoader.java +++ b/src/main/java/io/paradaux/friendlybot/config/FConfigurationLoader.java @@ -1,10 +1,12 @@ package io.paradaux.friendlybot.config; +import io.paradaux.friendlybot.core.utils.IOUtils; import org.spongepowered.configurate.CommentedConfigurationNode; import org.spongepowered.configurate.ConfigurateException; import org.spongepowered.configurate.hocon.HoconConfigurationLoader; import org.spongepowered.configurate.serialize.SerializationException; +import java.io.File; import java.io.IOException; import java.nio.file.Path; @@ -19,6 +21,8 @@ public static HoconConfigurationLoader getLoader() { } public static FConfiguration loadConfig() throws SerializationException { + deployConfig(); + loader = HoconConfigurationLoader.builder() .path(Path.of("friendlybot.conf")) .build(); @@ -39,8 +43,14 @@ public static FConfiguration loadConfig() throws SerializationException { } public static void saveConfig() throws ConfigurateException { - root.set(FConfiguration.class, root); + root.set(FConfiguration.class, config); loader.save(root); } + private static void deployConfig() { + if (!new File("friendlybot.conf").exists()) { + IOUtils.exportResource("/friendlybot.conf",System.getProperty("user.dir") + "/friendlybot.conf"); + } + } + } From 10b99001c1baf3e969f0bb3944b85d6b7d4873ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Tue, 17 Aug 2021 12:16:56 +0100 Subject: [PATCH 083/121] Stop saving on load --- src/main/java/io/paradaux/friendlybot/FBApplication.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/io/paradaux/friendlybot/FBApplication.java b/src/main/java/io/paradaux/friendlybot/FBApplication.java index 70ad9f50..9ddb1775 100644 --- a/src/main/java/io/paradaux/friendlybot/FBApplication.java +++ b/src/main/java/io/paradaux/friendlybot/FBApplication.java @@ -26,7 +26,6 @@ public static void main(String[] args) throws ConfigurateException, LoginExcepti logger = new LocaleLogger(LoggerFactory.getLogger(FBApplication.class), true); config = FConfigurationLoader.loadConfig(); - FConfigurationLoader.saveConfig(); bot = new FBot(config); guildCache = new GuildCache(bot.getClient()); } From 9a5245a816f1895f53a873b1f0126b1ba7141b0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Tue, 17 Aug 2021 12:27:18 +0100 Subject: [PATCH 084/121] Remove class from logger --- src/main/resources/log4j.properties | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/resources/log4j.properties b/src/main/resources/log4j.properties index be3f233b..9b0789bf 100644 --- a/src/main/resources/log4j.properties +++ b/src/main/resources/log4j.properties @@ -30,7 +30,7 @@ log4j.appender.thirdPartyLibAppender=org.apache.log4j.FileAppender log4j.appender.thirdPartyLibAppender.append=true log4j.appender.thirdPartyLibAppender.file=/tmp/FriendlyBot.log log4j.appender.thirdPartyLibAppender.layout=org.apache.log4j.PatternLayout -log4j.appender.thirdPartyLibAppender.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss} FriendlyBot: %p] %c:%m%n +log4j.appender.thirdPartyLibAppender.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss} FriendlyBot: %p] %m%n log4j.appender.FriendlyBotAppender=org.apache.log4j.ConsoleAppender log4j.appender.FriendlyBotAppender.layout=org.apache.log4j.PatternLayout @@ -42,4 +42,4 @@ log4j.logger.org.mongodb.driver=INFO #log4j.rootLogger=DEBUG, A1 log4j.appender.A1=org.apache.log4j.ConsoleAppender log4j.appender.A1.layout=org.apache.log4j.PatternLayout -log4j.appender.A1.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss} FriendlyBot: %p] %c:%m%n \ No newline at end of file +log4j.appender.A1.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss} FriendlyBot: %p] %m%n \ No newline at end of file From 518270193facc4a2fe1a1d337b7fd0d963035791 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Tue, 17 Aug 2021 15:19:01 +0100 Subject: [PATCH 085/121] Add postgres as a dependency --- build.gradle | 1 + 1 file changed, 1 insertion(+) diff --git a/build.gradle b/build.gradle index 9e09a5f5..f3faa419 100644 --- a/build.gradle +++ b/build.gradle @@ -38,6 +38,7 @@ dependencies { implementation 'io.paradaux.http:HttpApi:1.1.2' implementation 'io.ebean:ebean:12.10.0' implementation 'com.h2database:h2:1.4.196' + implementation 'org.postgresql:postgresql:42.2.18' implementation 'org.spongepowered:configurate-hocon:4.1.1' annotationProcessor 'io.ebean:querybean-generator:12.10.0' From 653d260e60970eb0040381a7c5254f2bd92bc6a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Tue, 17 Aug 2021 15:22:45 +0100 Subject: [PATCH 086/121] Moving data-related classes to their own root-level package --- .../core/database/EBeanConnection.java | 25 ------------------- .../{ => data}/config/FConfiguration.java | 2 +- .../config/FConfigurationLoader.java | 2 +- .../data/database/EBeanConnection.java | 25 +++++++++++++++++++ .../database/models/FGuild.java | 2 +- .../database/models/GuildSettings.java | 2 +- 6 files changed, 29 insertions(+), 29 deletions(-) delete mode 100644 src/main/java/io/paradaux/friendlybot/core/database/EBeanConnection.java rename src/main/java/io/paradaux/friendlybot/{ => data}/config/FConfiguration.java (98%) rename src/main/java/io/paradaux/friendlybot/{ => data}/config/FConfigurationLoader.java (97%) create mode 100644 src/main/java/io/paradaux/friendlybot/data/database/EBeanConnection.java rename src/main/java/io/paradaux/friendlybot/{core => data}/database/models/FGuild.java (98%) rename src/main/java/io/paradaux/friendlybot/{core => data}/database/models/GuildSettings.java (92%) diff --git a/src/main/java/io/paradaux/friendlybot/core/database/EBeanConnection.java b/src/main/java/io/paradaux/friendlybot/core/database/EBeanConnection.java deleted file mode 100644 index 986f94db..00000000 --- a/src/main/java/io/paradaux/friendlybot/core/database/EBeanConnection.java +++ /dev/null @@ -1,25 +0,0 @@ -package io.paradaux.friendlybot.core.database; - -import io.ebean.Database; -import io.ebean.DatabaseFactory; -import io.ebean.config.DatabaseConfig; -import io.ebean.datasource.DataSourceConfig; - -public class EBeanConnection { - - private final DatabaseConfig config = new DatabaseConfig(); - private final Database database; - - public EBeanConnection() { - // 157.90.21.214 - - DataSourceConfig dataSourceConfig = new DataSourceConfig(); - dataSourceConfig.setUsername("sa"); - dataSourceConfig.setPassword(""); - dataSourceConfig.setUrl("jdbc:h2:mem:myapp;"); - - this.config.setDataSourceConfig(dataSourceConfig); - this.database = DatabaseFactory.create(config); - } - -} diff --git a/src/main/java/io/paradaux/friendlybot/config/FConfiguration.java b/src/main/java/io/paradaux/friendlybot/data/config/FConfiguration.java similarity index 98% rename from src/main/java/io/paradaux/friendlybot/config/FConfiguration.java rename to src/main/java/io/paradaux/friendlybot/data/config/FConfiguration.java index 40b6b78d..b2ff5ca1 100644 --- a/src/main/java/io/paradaux/friendlybot/config/FConfiguration.java +++ b/src/main/java/io/paradaux/friendlybot/data/config/FConfiguration.java @@ -1,4 +1,4 @@ -package io.paradaux.friendlybot.config; +package io.paradaux.friendlybot.data.config; import org.checkerframework.checker.nullness.qual.Nullable; import org.spongepowered.configurate.objectmapping.ConfigSerializable; diff --git a/src/main/java/io/paradaux/friendlybot/config/FConfigurationLoader.java b/src/main/java/io/paradaux/friendlybot/data/config/FConfigurationLoader.java similarity index 97% rename from src/main/java/io/paradaux/friendlybot/config/FConfigurationLoader.java rename to src/main/java/io/paradaux/friendlybot/data/config/FConfigurationLoader.java index d6f761fb..a188db88 100644 --- a/src/main/java/io/paradaux/friendlybot/config/FConfigurationLoader.java +++ b/src/main/java/io/paradaux/friendlybot/data/config/FConfigurationLoader.java @@ -1,4 +1,4 @@ -package io.paradaux.friendlybot.config; +package io.paradaux.friendlybot.data.config; import io.paradaux.friendlybot.core.utils.IOUtils; import org.spongepowered.configurate.CommentedConfigurationNode; diff --git a/src/main/java/io/paradaux/friendlybot/data/database/EBeanConnection.java b/src/main/java/io/paradaux/friendlybot/data/database/EBeanConnection.java new file mode 100644 index 00000000..017ba099 --- /dev/null +++ b/src/main/java/io/paradaux/friendlybot/data/database/EBeanConnection.java @@ -0,0 +1,25 @@ +package io.paradaux.friendlybot.data.database; + +import io.ebean.Database; +import io.ebean.DatabaseFactory; +import io.ebean.config.DatabaseConfig; +import io.ebean.datasource.DataSourceConfig; +import io.paradaux.friendlybot.data.config.FConfiguration; +import io.paradaux.friendlybot.data.config.FConfigurationLoader; + +public class EBeanConnection { + + private final DatabaseConfig dbConfig = new DatabaseConfig(); + private final Database database; + + public EBeanConnection(FConfiguration config) { + DataSourceConfig dataSourceConfig = new DataSourceConfig(); + dataSourceConfig.setUsername(config.getJdbcUsername()); + dataSourceConfig.setPassword(config.getJdbcPassword()); + dataSourceConfig.setUrl(config.getJdbcUrl()); + + dbConfig.setDataSourceConfig(dataSourceConfig); + database = DatabaseFactory.create(dbConfig); + } + +} diff --git a/src/main/java/io/paradaux/friendlybot/core/database/models/FGuild.java b/src/main/java/io/paradaux/friendlybot/data/database/models/FGuild.java similarity index 98% rename from src/main/java/io/paradaux/friendlybot/core/database/models/FGuild.java rename to src/main/java/io/paradaux/friendlybot/data/database/models/FGuild.java index c93d4f6b..27116f01 100644 --- a/src/main/java/io/paradaux/friendlybot/core/database/models/FGuild.java +++ b/src/main/java/io/paradaux/friendlybot/data/database/models/FGuild.java @@ -1,4 +1,4 @@ -package io.paradaux.friendlybot.core.database.models; +package io.paradaux.friendlybot.data.database.models; import io.ebean.Model; import net.dv8tion.jda.api.entities.Guild; diff --git a/src/main/java/io/paradaux/friendlybot/core/database/models/GuildSettings.java b/src/main/java/io/paradaux/friendlybot/data/database/models/GuildSettings.java similarity index 92% rename from src/main/java/io/paradaux/friendlybot/core/database/models/GuildSettings.java rename to src/main/java/io/paradaux/friendlybot/data/database/models/GuildSettings.java index c9269b6a..0bd23147 100644 --- a/src/main/java/io/paradaux/friendlybot/core/database/models/GuildSettings.java +++ b/src/main/java/io/paradaux/friendlybot/data/database/models/GuildSettings.java @@ -1,4 +1,4 @@ -package io.paradaux.friendlybot.core.database.models; +package io.paradaux.friendlybot.data.database.models; import javax.persistence.Entity; import javax.persistence.Id; From 370290205cbfbb81e78e23b1386e56bf1a9a85bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Tue, 17 Aug 2021 15:23:10 +0100 Subject: [PATCH 087/121] Update imports --- .../paradaux/friendlybot/bot/command/CommandListener.java | 2 +- .../io/paradaux/friendlybot/bot/command/DiscordCommand.java | 2 +- .../io/paradaux/friendlybot/bot/commands/CatCommand.java | 2 +- .../java/io/paradaux/friendlybot/core/cache/GuildCache.java | 6 +----- .../io/paradaux/friendlybot/database/GuildSettingsTest.java | 2 -- 5 files changed, 4 insertions(+), 10 deletions(-) diff --git a/src/main/java/io/paradaux/friendlybot/bot/command/CommandListener.java b/src/main/java/io/paradaux/friendlybot/bot/command/CommandListener.java index a4b398f0..6c7a0bb5 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/command/CommandListener.java +++ b/src/main/java/io/paradaux/friendlybot/bot/command/CommandListener.java @@ -2,7 +2,7 @@ import io.paradaux.friendlybot.bot.command.exception.CommandException; import io.paradaux.friendlybot.core.cache.GuildCache; -import io.paradaux.friendlybot.core.database.models.FGuild; +import io.paradaux.friendlybot.data.database.models.FGuild; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.Message; import net.dv8tion.jda.api.events.message.guild.GuildMessageReceivedEvent; diff --git a/src/main/java/io/paradaux/friendlybot/bot/command/DiscordCommand.java b/src/main/java/io/paradaux/friendlybot/bot/command/DiscordCommand.java index 6e9a4b57..339549de 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/command/DiscordCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/command/DiscordCommand.java @@ -1,6 +1,6 @@ package io.paradaux.friendlybot.bot.command; -import io.paradaux.friendlybot.core.database.models.FGuild; +import io.paradaux.friendlybot.data.database.models.FGuild; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/CatCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/CatCommand.java index ce2b9530..dc2f8c12 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/CatCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/CatCommand.java @@ -2,7 +2,7 @@ import io.paradaux.friendlybot.bot.command.CommandBody; import io.paradaux.friendlybot.bot.command.DiscordCommand; -import io.paradaux.friendlybot.core.database.models.FGuild; +import io.paradaux.friendlybot.data.database.models.FGuild; import io.paradaux.friendlybot.core.utils.NumberUtils; import io.paradaux.http.HttpApi; import net.dv8tion.jda.api.EmbedBuilder; diff --git a/src/main/java/io/paradaux/friendlybot/core/cache/GuildCache.java b/src/main/java/io/paradaux/friendlybot/core/cache/GuildCache.java index 0569be11..7e7f375e 100644 --- a/src/main/java/io/paradaux/friendlybot/core/cache/GuildCache.java +++ b/src/main/java/io/paradaux/friendlybot/core/cache/GuildCache.java @@ -1,11 +1,7 @@ package io.paradaux.friendlybot.core.cache; -import io.ebean.DB; -import io.paradaux.friendlybot.core.database.models.FGuild; -import io.paradaux.friendlybot.core.database.models.GuildSettings; +import io.paradaux.friendlybot.data.database.models.FGuild; import io.paradaux.friendlybot.core.database.models.query.QFGuild; -import io.paradaux.friendlybot.managers.GuildSettingsManager; -import io.paradaux.friendlybot.core.utils.models.database.GuildSettingsEntry; import net.dv8tion.jda.api.JDA; import net.dv8tion.jda.api.entities.Guild; import org.jetbrains.annotations.NotNull; diff --git a/src/test/java/io/paradaux/friendlybot/database/GuildSettingsTest.java b/src/test/java/io/paradaux/friendlybot/database/GuildSettingsTest.java index fe485dec..e00d28a6 100644 --- a/src/test/java/io/paradaux/friendlybot/database/GuildSettingsTest.java +++ b/src/test/java/io/paradaux/friendlybot/database/GuildSettingsTest.java @@ -1,7 +1,5 @@ package io.paradaux.friendlybot.database; -import io.ebean.DB; -import io.paradaux.friendlybot.core.database.models.GuildSettings; import org.junit.jupiter.api.Test; public class GuildSettingsTest { From 540f64d5a400a6dcc42dd6ef3fd26d33776f184f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Tue, 17 Aug 2021 15:23:24 +0100 Subject: [PATCH 088/121] Register my command handler system --- .../paradaux/friendlybot/FBApplication.java | 5 ++--- .../io/paradaux/friendlybot/bot/FBot.java | 21 +++---------------- 2 files changed, 5 insertions(+), 21 deletions(-) diff --git a/src/main/java/io/paradaux/friendlybot/FBApplication.java b/src/main/java/io/paradaux/friendlybot/FBApplication.java index 9ddb1775..79f59e04 100644 --- a/src/main/java/io/paradaux/friendlybot/FBApplication.java +++ b/src/main/java/io/paradaux/friendlybot/FBApplication.java @@ -1,14 +1,13 @@ package io.paradaux.friendlybot; import io.paradaux.friendlybot.bot.FBot; -import io.paradaux.friendlybot.config.FConfiguration; -import io.paradaux.friendlybot.config.FConfigurationLoader; +import io.paradaux.friendlybot.data.config.FConfiguration; +import io.paradaux.friendlybot.data.config.FConfigurationLoader; import io.paradaux.friendlybot.core.cache.GuildCache; import io.paradaux.friendlybot.core.locale.LocaleLogger; import io.paradaux.friendlybot.core.locale.LocaleManager; import org.slf4j.LoggerFactory; import org.spongepowered.configurate.ConfigurateException; -import org.spongepowered.configurate.serialize.SerializationException; import javax.security.auth.login.LoginException; diff --git a/src/main/java/io/paradaux/friendlybot/bot/FBot.java b/src/main/java/io/paradaux/friendlybot/bot/FBot.java index babb669f..89310a75 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/FBot.java +++ b/src/main/java/io/paradaux/friendlybot/bot/FBot.java @@ -1,13 +1,10 @@ package io.paradaux.friendlybot.bot; -import com.jagrosh.jdautilities.command.CommandClient; -import com.jagrosh.jdautilities.command.CommandClientBuilder; import com.jagrosh.jdautilities.commons.waiter.EventWaiter; -import io.paradaux.friendlybot.config.FConfiguration; -import io.paradaux.friendlybot.core.locale.LocaleLogger; +import io.paradaux.friendlybot.bot.command.CommandListener; +import io.paradaux.friendlybot.data.config.FConfiguration; import net.dv8tion.jda.api.JDA; import net.dv8tion.jda.api.JDABuilder; -import net.dv8tion.jda.api.entities.Activity; import net.dv8tion.jda.api.requests.GatewayIntent; import net.dv8tion.jda.api.utils.MemberCachePolicy; @@ -36,7 +33,7 @@ public JDA login(String token) throws LoginException { .setMemberCachePolicy(MemberCachePolicy.ALL) .enableIntents(GatewayIntent.GUILD_MEMBERS) .setBulkDeleteSplittingEnabled(false) - .addEventListeners(eventWaiter, createCommandClient()); + .addEventListeners(eventWaiter, new CommandListener()); if (token == null) { throw new LoginException("The Configuration File does not contain a token."); @@ -45,18 +42,6 @@ public JDA login(String token) throws LoginException { return builder.build(); } - private CommandClient createCommandClient() { - LocaleLogger.info("Initialising: CommandController"); - - CommandClientBuilder builder = new CommandClientBuilder() - .setPrefix(config.getCommandPrefix()) - .setOwnerId("150993042558418944") - .setActivity(Activity.listening("modmail queries..")) - .addCommands(); - - return builder.build(); - } - public JDA getClient() { return client; } From 86487ba028b7cef3dc05c85ebd9046d0c8a3a2e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Sun, 12 Sep 2021 01:08:13 +0100 Subject: [PATCH 089/121] Update dependencies --- build.gradle | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/build.gradle b/build.gradle index f3faa419..6909a2ae 100644 --- a/build.gradle +++ b/build.gradle @@ -33,20 +33,20 @@ dependencies { implementation 'pw.chew:jda-chewtils:1.20' implementation 'org.slf4j:slf4j-api:1.7.32' implementation 'org.slf4j:slf4j-log4j12:1.7.32' - implementation 'com.google.code.gson:gson:2.8.6' - implementation 'org.mongodb:mongo-java-driver:3.12.8' + implementation 'com.google.code.gson:gson:2.8.8' + implementation 'org.mongodb:mongo-java-driver:3.12.10' implementation 'io.paradaux.http:HttpApi:1.1.2' - implementation 'io.ebean:ebean:12.10.0' - implementation 'com.h2database:h2:1.4.196' - implementation 'org.postgresql:postgresql:42.2.18' - implementation 'org.spongepowered:configurate-hocon:4.1.1' + implementation 'io.ebean:ebean:12.11.3' + implementation 'com.h2database:h2:1.4.200' + implementation 'org.postgresql:postgresql:42.2.23.jre7' + implementation 'org.spongepowered:configurate-hocon:4.1.2' - annotationProcessor 'io.ebean:querybean-generator:12.10.0' + annotationProcessor 'io.ebean:querybean-generator:12.11.3' - testImplementation 'org.junit.jupiter:junit-jupiter-api:5.7.1' - testImplementation 'io.ebean:ebean-test:12.10.0' + testImplementation 'org.junit.jupiter:junit-jupiter-api:5.7.2' + testImplementation 'io.ebean:ebean-test:12.11.3' - testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.7.1' + testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.7.2' } test { From 60698805566eb6887804a4cd9394aba3e73c4b4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Sun, 12 Sep 2021 01:08:20 +0100 Subject: [PATCH 090/121] Fix path to QBean --- .../java/io/paradaux/friendlybot/core/cache/GuildCache.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/io/paradaux/friendlybot/core/cache/GuildCache.java b/src/main/java/io/paradaux/friendlybot/core/cache/GuildCache.java index 7e7f375e..69912524 100644 --- a/src/main/java/io/paradaux/friendlybot/core/cache/GuildCache.java +++ b/src/main/java/io/paradaux/friendlybot/core/cache/GuildCache.java @@ -1,7 +1,7 @@ package io.paradaux.friendlybot.core.cache; import io.paradaux.friendlybot.data.database.models.FGuild; -import io.paradaux.friendlybot.core.database.models.query.QFGuild; +import io.paradaux.friendlybot.data.database.models.query.QFGuild; import net.dv8tion.jda.api.JDA; import net.dv8tion.jda.api.entities.Guild; import org.jetbrains.annotations.NotNull; From 020ca0d528b7637944878fa9e7dc9394ebe0fba1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Sun, 12 Sep 2021 01:11:44 +0100 Subject: [PATCH 091/121] Fix nullable possibility --- .../paradaux/friendlybot/bot/commands/CatCommand.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/CatCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/CatCommand.java index dc2f8c12..75b1172d 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/CatCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/CatCommand.java @@ -1,5 +1,6 @@ package io.paradaux.friendlybot.bot.commands; +import io.paradaux.friendlybot.bot.command.Command; import io.paradaux.friendlybot.bot.command.CommandBody; import io.paradaux.friendlybot.bot.command.DiscordCommand; import io.paradaux.friendlybot.data.database.models.FGuild; @@ -10,7 +11,9 @@ import java.net.http.HttpRequest; import java.net.http.HttpResponse; +import java.util.concurrent.CompletableFuture; +@Command(name="cat", description = "Get yourself a cute cat photo!") public class CatCommand extends DiscordCommand { private static final String CAT_API = "https://api.thecatapi.com/v1/images/search"; @@ -19,7 +22,13 @@ public void execute(FGuild guild, CommandBody body) { HttpApi http = new HttpApi(getLogger()); HttpRequest request = http.plainRequest(CAT_API); - http.sendAsync(request, HttpResponse.BodyHandlers.ofString()).thenAccept((response) -> { + CompletableFuture> responseFtr = http.sendAsync(request, HttpResponse.BodyHandlers.ofString()); + + if (responseFtr == null) { + throw new IllegalStateException("Cat: Response was null"); + } + + responseFtr.thenAccept((response) -> { EmbedBuilder builder = new EmbedBuilder() .setImage(new JSONArray(response.body()).getJSONObject(0).getString("url")) .setColor(NumberUtils.randomColor()) From 90c877882026e3a949280566193cd320c06c9063 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Sun, 12 Sep 2021 16:47:46 +0100 Subject: [PATCH 092/121] Guilds SQL --- src/sql/guilds.sql | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 src/sql/guilds.sql diff --git a/src/sql/guilds.sql b/src/sql/guilds.sql new file mode 100644 index 00000000..60cf5c80 --- /dev/null +++ b/src/sql/guilds.sql @@ -0,0 +1,21 @@ +create table guilds( + id bigserial + constraint guilds_pk + primary key, + guild_id varchar(20), + command_prefix varchar(1), + verification_role_id varchar(20), + verification_input_id varchar(20), + audit_log_id varchar(20), + mod_audit_log_id varchar(20), + mod_mail_in_id varchar(20), + mod_mail_out_id varchar(20), + message_log_id varchar(20), + last_incident_id bigint, + last_ticket_id bigint, + administrators jsonb, + moderators jsonb +); + +alter table guilds + owner to friendlybot; From ad573a67f7f1ebf2878a89924704536e0cc0ee7c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Sun, 12 Sep 2021 16:48:01 +0100 Subject: [PATCH 093/121] Update postgres --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 6909a2ae..1b7fcdc2 100644 --- a/build.gradle +++ b/build.gradle @@ -29,6 +29,7 @@ repositories { dependencies { + implementation 'org.postgresql:postgresql:42.2.23' implementation 'net.dv8tion:JDA:4.3.0_300' implementation 'pw.chew:jda-chewtils:1.20' implementation 'org.slf4j:slf4j-api:1.7.32' @@ -38,7 +39,6 @@ dependencies { implementation 'io.paradaux.http:HttpApi:1.1.2' implementation 'io.ebean:ebean:12.11.3' implementation 'com.h2database:h2:1.4.200' - implementation 'org.postgresql:postgresql:42.2.23.jre7' implementation 'org.spongepowered:configurate-hocon:4.1.2' annotationProcessor 'io.ebean:querybean-generator:12.11.3' From 2165cc2db33579b97e26e49144bd53da99a3370d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Sun, 12 Sep 2021 16:48:20 +0100 Subject: [PATCH 094/121] Move to core --- .../{ => core}/data/config/FConfiguration.java | 2 +- .../{ => core}/data/config/FConfigurationLoader.java | 2 +- .../{ => core}/data/database/EBeanConnection.java | 9 ++++++--- .../{ => core}/data/database/models/FGuild.java | 8 +++++++- .../{ => core}/data/database/models/GuildSettings.java | 2 +- 5 files changed, 16 insertions(+), 7 deletions(-) rename src/main/java/io/paradaux/friendlybot/{ => core}/data/config/FConfiguration.java (98%) rename src/main/java/io/paradaux/friendlybot/{ => core}/data/config/FConfigurationLoader.java (96%) rename src/main/java/io/paradaux/friendlybot/{ => core}/data/database/EBeanConnection.java (73%) rename src/main/java/io/paradaux/friendlybot/{ => core}/data/database/models/FGuild.java (95%) rename src/main/java/io/paradaux/friendlybot/{ => core}/data/database/models/GuildSettings.java (91%) diff --git a/src/main/java/io/paradaux/friendlybot/data/config/FConfiguration.java b/src/main/java/io/paradaux/friendlybot/core/data/config/FConfiguration.java similarity index 98% rename from src/main/java/io/paradaux/friendlybot/data/config/FConfiguration.java rename to src/main/java/io/paradaux/friendlybot/core/data/config/FConfiguration.java index b2ff5ca1..e614ea07 100644 --- a/src/main/java/io/paradaux/friendlybot/data/config/FConfiguration.java +++ b/src/main/java/io/paradaux/friendlybot/core/data/config/FConfiguration.java @@ -1,4 +1,4 @@ -package io.paradaux.friendlybot.data.config; +package io.paradaux.friendlybot.core.data.config; import org.checkerframework.checker.nullness.qual.Nullable; import org.spongepowered.configurate.objectmapping.ConfigSerializable; diff --git a/src/main/java/io/paradaux/friendlybot/data/config/FConfigurationLoader.java b/src/main/java/io/paradaux/friendlybot/core/data/config/FConfigurationLoader.java similarity index 96% rename from src/main/java/io/paradaux/friendlybot/data/config/FConfigurationLoader.java rename to src/main/java/io/paradaux/friendlybot/core/data/config/FConfigurationLoader.java index a188db88..6641f5f1 100644 --- a/src/main/java/io/paradaux/friendlybot/data/config/FConfigurationLoader.java +++ b/src/main/java/io/paradaux/friendlybot/core/data/config/FConfigurationLoader.java @@ -1,4 +1,4 @@ -package io.paradaux.friendlybot.data.config; +package io.paradaux.friendlybot.core.data.config; import io.paradaux.friendlybot.core.utils.IOUtils; import org.spongepowered.configurate.CommentedConfigurationNode; diff --git a/src/main/java/io/paradaux/friendlybot/data/database/EBeanConnection.java b/src/main/java/io/paradaux/friendlybot/core/data/database/EBeanConnection.java similarity index 73% rename from src/main/java/io/paradaux/friendlybot/data/database/EBeanConnection.java rename to src/main/java/io/paradaux/friendlybot/core/data/database/EBeanConnection.java index 017ba099..9fa9b7ce 100644 --- a/src/main/java/io/paradaux/friendlybot/data/database/EBeanConnection.java +++ b/src/main/java/io/paradaux/friendlybot/core/data/database/EBeanConnection.java @@ -1,11 +1,10 @@ -package io.paradaux.friendlybot.data.database; +package io.paradaux.friendlybot.core.data.database; import io.ebean.Database; import io.ebean.DatabaseFactory; import io.ebean.config.DatabaseConfig; import io.ebean.datasource.DataSourceConfig; -import io.paradaux.friendlybot.data.config.FConfiguration; -import io.paradaux.friendlybot.data.config.FConfigurationLoader; +import io.paradaux.friendlybot.core.data.config.FConfiguration; public class EBeanConnection { @@ -13,13 +12,17 @@ public class EBeanConnection { private final Database database; public EBeanConnection(FConfiguration config) { + DataSourceConfig dataSourceConfig = new DataSourceConfig(); + dataSourceConfig.addProperty("ebean.db.ddl.generate", "true"); + dataSourceConfig.addProperty("ebean.db.ddl.run", "true"); dataSourceConfig.setUsername(config.getJdbcUsername()); dataSourceConfig.setPassword(config.getJdbcPassword()); dataSourceConfig.setUrl(config.getJdbcUrl()); dbConfig.setDataSourceConfig(dataSourceConfig); database = DatabaseFactory.create(dbConfig); + } } diff --git a/src/main/java/io/paradaux/friendlybot/data/database/models/FGuild.java b/src/main/java/io/paradaux/friendlybot/core/data/database/models/FGuild.java similarity index 95% rename from src/main/java/io/paradaux/friendlybot/data/database/models/FGuild.java rename to src/main/java/io/paradaux/friendlybot/core/data/database/models/FGuild.java index 27116f01..900b2e4c 100644 --- a/src/main/java/io/paradaux/friendlybot/data/database/models/FGuild.java +++ b/src/main/java/io/paradaux/friendlybot/core/data/database/models/FGuild.java @@ -1,15 +1,18 @@ -package io.paradaux.friendlybot.data.database.models; +package io.paradaux.friendlybot.core.data.database.models; import io.ebean.Model; +import io.ebean.annotation.DbJsonB; import net.dv8tion.jda.api.entities.Guild; import javax.annotation.Nullable; import javax.persistence.Entity; import javax.persistence.Id; +import javax.persistence.Table; import javax.persistence.Transient; import java.util.List; @Entity +@Table(name = "guilds") public class FGuild extends Model { @Id @@ -33,7 +36,10 @@ public class FGuild extends Model { private String messageLogId; + @DbJsonB private List moderators; + + @DbJsonB private List administrators; private Integer lastIncidentId; diff --git a/src/main/java/io/paradaux/friendlybot/data/database/models/GuildSettings.java b/src/main/java/io/paradaux/friendlybot/core/data/database/models/GuildSettings.java similarity index 91% rename from src/main/java/io/paradaux/friendlybot/data/database/models/GuildSettings.java rename to src/main/java/io/paradaux/friendlybot/core/data/database/models/GuildSettings.java index 0bd23147..3c770075 100644 --- a/src/main/java/io/paradaux/friendlybot/data/database/models/GuildSettings.java +++ b/src/main/java/io/paradaux/friendlybot/core/data/database/models/GuildSettings.java @@ -1,4 +1,4 @@ -package io.paradaux.friendlybot.data.database.models; +package io.paradaux.friendlybot.core.data.database.models; import javax.persistence.Entity; import javax.persistence.Id; From b7d87d1180fee59bbdfc229cf02f7040445d9170 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Sun, 12 Sep 2021 16:48:28 +0100 Subject: [PATCH 095/121] Re-enable test --- .../database/GuildSettingsTest.java | 28 ++++++++++--------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/src/test/java/io/paradaux/friendlybot/database/GuildSettingsTest.java b/src/test/java/io/paradaux/friendlybot/database/GuildSettingsTest.java index e00d28a6..3055da53 100644 --- a/src/test/java/io/paradaux/friendlybot/database/GuildSettingsTest.java +++ b/src/test/java/io/paradaux/friendlybot/database/GuildSettingsTest.java @@ -1,23 +1,25 @@ package io.paradaux.friendlybot.database; +import io.ebean.DB; +import io.paradaux.friendlybot.core.data.database.models.GuildSettings; import org.junit.jupiter.api.Test; public class GuildSettingsTest { @Test public void insertFindDelete() { -// GuildSettings settings = new GuildSettings(); -// settings.setGuildId("1"); -// settings.setGuildName("This is a test"); -// -// // insert the customer in the DB -// DB.save(settings); -// -// // Find by Id -// GuildSettings foundHello = DB.find(GuildSettings.class, "1"); -// System.out.println(foundHello); -// -// // delete the customer -// DB.delete(settings); + GuildSettings settings = new GuildSettings(); + settings.setGuildId("1"); + settings.setGuildName("This is a test"); + + // insert the customer in the DB + DB.save(settings); + + // Find by Id + GuildSettings foundHello = DB.find(GuildSettings.class, "1"); + System.out.println(foundHello); + + // delete the customer + DB.delete(settings); } } From f64fce467be1b5594121f5a6c32d241133a522ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Sun, 12 Sep 2021 20:12:18 +0100 Subject: [PATCH 096/121] Finished command lib --- .../bot/command/CommandListener.java | 67 +++++++++++-------- .../bot/command/DiscordCommand.java | 2 +- .../friendlybot/bot/commands/CatCommand.java | 2 +- 3 files changed, 40 insertions(+), 31 deletions(-) diff --git a/src/main/java/io/paradaux/friendlybot/bot/command/CommandListener.java b/src/main/java/io/paradaux/friendlybot/bot/command/CommandListener.java index 6c7a0bb5..ffb18ba7 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/command/CommandListener.java +++ b/src/main/java/io/paradaux/friendlybot/bot/command/CommandListener.java @@ -2,13 +2,14 @@ import io.paradaux.friendlybot.bot.command.exception.CommandException; import io.paradaux.friendlybot.core.cache.GuildCache; -import io.paradaux.friendlybot.data.database.models.FGuild; +import io.paradaux.friendlybot.core.data.database.models.FGuild; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.Message; import net.dv8tion.jda.api.events.message.guild.GuildMessageReceivedEvent; import net.dv8tion.jda.api.hooks.ListenerAdapter; import org.jetbrains.annotations.NotNull; +import java.time.Instant; import java.util.ArrayList; import java.util.Arrays; @@ -22,33 +23,43 @@ public CommandListener() { @Override public void onGuildMessageReceived(@NotNull GuildMessageReceivedEvent event) { + // Get the guild FGuild guild = GuildCache.getInstance().getGuild(event.getGuild().getId()); + // Message stuff Message message = event.getMessage(); String messageContent = message.getContentRaw(); - String[] commandComponents = messageContent.substring(guild.getCommandPrefix().length()).split(" "); - String command = commandComponents[0]; - String[] args = Arrays.copyOfRange(commandComponents, 1, commandComponents.length); + // If it isn't a valid command + if (!messageContent.startsWith(guild.getCommandPrefix())) { + return; + } + + // Command body + String command = messageContent.substring(guild.getCommandPrefix().length()); + String[] args = {}; + + // If there's arguments, parse them. + if (messageContent.contains(" ")) { + String[] components = command.split(" "); + args = Arrays.copyOfRange(components, 1, components.length); + command = components[0]; + } CommandBody body = new CommandBody(message, command, args); - if (messageContent.startsWith(guild.getCommandPrefix())) { - switch (messageContent.substring(guild.getCommandPrefix().length())) { - case "help": { - helpMenu(message); - break; - } - - default: { - for (DiscordCommand c : commands) { - if (c.getCommand().equals(command)) { - c.execute(guild, body); - } - } - break; - } + + if (command.equalsIgnoreCase("help")) { + helpMenu(message); + return; + } + + for (DiscordCommand c : commands) { + if (c.getCommand().equalsIgnoreCase(command)) { + c.execute(guild, body); + break; } } + } @@ -57,23 +68,20 @@ public void onGuildMessageReceived(@NotNull GuildMessageReceivedEvent event) { * */ public void helpMenu(Message message) { EmbedBuilder builder = new EmbedBuilder(); - StringBuilder descBuilder = new StringBuilder(); - - descBuilder.append("**FriendlyBot**: Commands\n") - .append("\n"); + StringBuilder descBuilder = new StringBuilder().append("\n\n"); for (DiscordCommand c : commands) { - descBuilder.append(c.getCommand()) - .append(" » ") - .append(c.getDescription()); + descBuilder.append("\\➡ **").append(c.getCommand()).append("**").append(" » ").append(c.getDescription()); } - descBuilder.append("\n") - .append("**N.B**: Some commands may be role-locked."); + descBuilder.append("\n\n"); + builder.setAuthor("**FriendlyBot**: Commands"); builder.setDescription(descBuilder); + builder.setTimestamp(Instant.now()); + builder.setFooter("N.B: Some commands may be role-locked."); - // TODO + message.getChannel().sendMessageEmbeds(builder.build()).queue(); } @@ -91,6 +99,7 @@ public void registerCommand(DiscordCommand command) { } Command cmd = clazz.getAnnotation(Command.class); + System.out.println(cmd.name() + "cmd.description"); command.register(cmd.name(), cmd.description()); for (DiscordCommand c : commands) { diff --git a/src/main/java/io/paradaux/friendlybot/bot/command/DiscordCommand.java b/src/main/java/io/paradaux/friendlybot/bot/command/DiscordCommand.java index 339549de..db460aec 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/command/DiscordCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/command/DiscordCommand.java @@ -1,6 +1,6 @@ package io.paradaux.friendlybot.bot.command; -import io.paradaux.friendlybot.data.database.models.FGuild; +import io.paradaux.friendlybot.core.data.database.models.FGuild; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/CatCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/CatCommand.java index 75b1172d..d7a44f80 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/CatCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/CatCommand.java @@ -3,7 +3,7 @@ import io.paradaux.friendlybot.bot.command.Command; import io.paradaux.friendlybot.bot.command.CommandBody; import io.paradaux.friendlybot.bot.command.DiscordCommand; -import io.paradaux.friendlybot.data.database.models.FGuild; +import io.paradaux.friendlybot.core.data.database.models.FGuild; import io.paradaux.friendlybot.core.utils.NumberUtils; import io.paradaux.http.HttpApi; import net.dv8tion.jda.api.EmbedBuilder; From 561fe27e4313f5dc50c9b94a52282f5a72f38eec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Sun, 12 Sep 2021 20:20:41 +0100 Subject: [PATCH 097/121] Add permissions built into commands, for external handling --- .../friendlybot/bot/command/Command.java | 3 +-- .../friendlybot/bot/command/CommandBody.java | 24 +++++++++++++++---- .../bot/command/CommandListener.java | 7 ++---- .../bot/command/DiscordCommand.java | 10 ++++++-- .../friendlybot/bot/commands/CatCommand.java | 2 +- 5 files changed, 31 insertions(+), 15 deletions(-) diff --git a/src/main/java/io/paradaux/friendlybot/bot/command/Command.java b/src/main/java/io/paradaux/friendlybot/bot/command/Command.java index c87fc4d7..bf313c4e 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/command/Command.java +++ b/src/main/java/io/paradaux/friendlybot/bot/command/Command.java @@ -8,7 +8,6 @@ String name() default ""; String description() default ""; - - + String permission() default ""; } diff --git a/src/main/java/io/paradaux/friendlybot/bot/command/CommandBody.java b/src/main/java/io/paradaux/friendlybot/bot/command/CommandBody.java index 96841fa8..17c32baa 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/command/CommandBody.java +++ b/src/main/java/io/paradaux/friendlybot/bot/command/CommandBody.java @@ -11,6 +11,9 @@ public class CommandBody { private final JDA jda; private final String command; + private final String permission; + private final String description; + private final String[] args; private final Message message; @@ -18,18 +21,21 @@ public class CommandBody { private final Member member; private final User user; - public CommandBody(Message message, String command, String[] args) { + public CommandBody(Message message, String command, String permission, String description,String[] args) { this.jda = message.getJDA(); - this.channel = message.getChannel(); - this.message = message; + this.command = command; + this.permission = permission; + this.description = description; + this.args = args; - this.member = message.getMember(); + this.message = message; + this.channel = message.getChannel(); + this.member = message.getMember(); if (this.member == null) { throw new IllegalStateException("Member cannot be null"); } - this.user = member.getUser(); } @@ -60,4 +66,12 @@ public Member getMember() { public User getUser() { return user; } + + public String getPermission() { + return permission; + } + + public String getDescription() { + return description; + } } diff --git a/src/main/java/io/paradaux/friendlybot/bot/command/CommandListener.java b/src/main/java/io/paradaux/friendlybot/bot/command/CommandListener.java index ffb18ba7..d133c1dd 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/command/CommandListener.java +++ b/src/main/java/io/paradaux/friendlybot/bot/command/CommandListener.java @@ -46,8 +46,6 @@ public void onGuildMessageReceived(@NotNull GuildMessageReceivedEvent event) { command = components[0]; } - CommandBody body = new CommandBody(message, command, args); - if (command.equalsIgnoreCase("help")) { helpMenu(message); return; @@ -55,7 +53,7 @@ public void onGuildMessageReceived(@NotNull GuildMessageReceivedEvent event) { for (DiscordCommand c : commands) { if (c.getCommand().equalsIgnoreCase(command)) { - c.execute(guild, body); + c.execute(guild, new CommandBody(message, command, c.getPermission(), c.getDescription(), args)); break; } } @@ -100,8 +98,7 @@ public void registerCommand(DiscordCommand command) { Command cmd = clazz.getAnnotation(Command.class); System.out.println(cmd.name() + "cmd.description"); - command.register(cmd.name(), cmd.description()); - + command.register(cmd.name(), cmd.description(), cmd.permission()); for (DiscordCommand c : commands) { if (c.getCommand().equals(command.getCommand())) { throw new CommandException("A command by this name has already been registered."); diff --git a/src/main/java/io/paradaux/friendlybot/bot/command/DiscordCommand.java b/src/main/java/io/paradaux/friendlybot/bot/command/DiscordCommand.java index db460aec..b7544b87 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/command/DiscordCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/command/DiscordCommand.java @@ -4,7 +4,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -@Command(name = "undefined", description = "undefined") +@Command(name = "undefined", description = "undefined", permission = "undefined") public abstract class DiscordCommand { private final Logger logger = LoggerFactory.getLogger(DiscordCommand.class); @@ -12,13 +12,15 @@ public abstract class DiscordCommand { private boolean isRegistered; private String command; private String description; + private String permission; public abstract void execute(FGuild guild, CommandBody body); - public void register(String command, String description) { + public void register(String command, String description, String permission) { isRegistered = true; this.command = command; this.description = description; + this.permission = permission; } public void unregister() { @@ -40,4 +42,8 @@ public String getDescription() { public Logger getLogger() { return logger; } + + public String getPermission() { + return permission; + } } diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/CatCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/CatCommand.java index d7a44f80..8f0df773 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/CatCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/CatCommand.java @@ -13,7 +13,7 @@ import java.net.http.HttpResponse; import java.util.concurrent.CompletableFuture; -@Command(name="cat", description = "Get yourself a cute cat photo!") +@Command(name="cat", description = "Get yourself a cute cat photo!", permission = "command.cat") public class CatCommand extends DiscordCommand { private static final String CAT_API = "https://api.thecatapi.com/v1/images/search"; From e921c45259b079b0882cdbee0694af9526ba02e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Sun, 12 Sep 2021 20:55:46 +0100 Subject: [PATCH 098/121] Begin moving commands over --- .../commands/fun => bot/commands}/CoinFlipCommand.java | 2 +- .../{discord/commands/fun => bot/commands}/DogCommand.java | 2 +- .../commands/fun => bot/commands}/EightBallCommand.java | 2 +- .../commands/fun => bot/commands}/InspireCommand.java | 2 +- .../{discord/commands/fun => bot/commands}/MemeCommand.java | 2 +- .../{discord/commands/fun => bot/commands}/MonkeyCommand.java | 2 +- .../{discord/commands/fun => bot/commands}/XKCDCommand.java | 2 +- .../commands/fun => bot/commands/joke}/CharmanderCommand.java | 2 +- .../commands/fun => bot/commands/joke}/LmgtfyCommand.java | 2 +- .../commands/fun => bot/commands/joke}/MonkeCommand.java | 3 ++- .../commands/fun => bot/commands/joke}/YodaifyCommand.java | 3 ++- .../commands/privileged}/AnnouncementCommand.java | 2 +- .../moderation => bot/commands/privileged}/BanCommand.java | 2 +- .../moderation => bot/commands/privileged}/CiteCommand.java | 2 +- .../technician => bot/commands/privileged}/DmCommand.java | 2 +- .../moderation => bot/commands/privileged}/KickCommand.java | 2 +- .../moderation => bot/commands/privileged}/LookupCommand.java | 2 +- .../moderation => bot/commands/privileged}/PruneCommand.java | 2 +- .../commands/privileged}/RespondCommand.java | 2 +- .../technician => bot/commands/privileged}/SayCommand.java | 2 +- .../commands/privileged}/SendEmbedCommand.java | 2 +- .../commands/privileged}/TempBanCommand.java | 2 +- .../moderation => bot/commands/privileged}/TicketCommand.java | 2 +- .../commands/privileged}/VerificationCommand.java | 2 +- .../moderation => bot/commands/privileged}/WarnCommand.java | 2 +- .../utility => bot/commands/util}/ClearColorCommand.java | 2 +- .../utility => bot/commands/util}/CommandsCommand.java | 2 +- .../commands/utility => bot/commands/util}/GoogleCommand.java | 2 +- .../commands/utility => bot/commands/util}/InviteCommand.java | 2 +- .../utility => bot/commands/util}/MemeImagesCommand.java | 2 +- .../commands/utility => bot/commands/util}/PingCommand.java | 2 +- .../utility => bot/commands/util}/RandomColorCommand.java | 2 +- .../utility => bot/commands/util}/ServerInfoCommand.java | 2 +- .../utility => bot/commands/util}/SetColorCommand.java | 2 +- .../commands/utility => bot/commands/util}/TagCommand.java | 4 ++-- .../commands/utility => bot/commands/util}/TagsCommand.java | 2 +- .../utility => bot/commands/util}/UserInfoCommand.java | 2 +- .../utility => bot/commands/util}/WeatherCommand.java | 2 +- .../utility => bot/commands/util}/WolframAlphaCommand.java | 2 +- 39 files changed, 42 insertions(+), 40 deletions(-) rename src/main/java/io/paradaux/friendlybot/{discord/commands/fun => bot/commands}/CoinFlipCommand.java (97%) rename src/main/java/io/paradaux/friendlybot/{discord/commands/fun => bot/commands}/DogCommand.java (96%) rename src/main/java/io/paradaux/friendlybot/{discord/commands/fun => bot/commands}/EightBallCommand.java (98%) rename src/main/java/io/paradaux/friendlybot/{discord/commands/fun => bot/commands}/InspireCommand.java (98%) rename src/main/java/io/paradaux/friendlybot/{discord/commands/fun => bot/commands}/MemeCommand.java (99%) rename src/main/java/io/paradaux/friendlybot/{discord/commands/fun => bot/commands}/MonkeyCommand.java (97%) rename src/main/java/io/paradaux/friendlybot/{discord/commands/fun => bot/commands}/XKCDCommand.java (98%) rename src/main/java/io/paradaux/friendlybot/{discord/commands/fun => bot/commands/joke}/CharmanderCommand.java (96%) rename src/main/java/io/paradaux/friendlybot/{discord/commands/fun => bot/commands/joke}/LmgtfyCommand.java (97%) rename src/main/java/io/paradaux/friendlybot/{discord/commands/fun => bot/commands/joke}/MonkeCommand.java (96%) rename src/main/java/io/paradaux/friendlybot/{discord/commands/fun => bot/commands/joke}/YodaifyCommand.java (97%) rename src/main/java/io/paradaux/friendlybot/{discord/commands/staff/moderation => bot/commands/privileged}/AnnouncementCommand.java (98%) rename src/main/java/io/paradaux/friendlybot/{discord/commands/staff/moderation => bot/commands/privileged}/BanCommand.java (98%) rename src/main/java/io/paradaux/friendlybot/{discord/commands/staff/moderation => bot/commands/privileged}/CiteCommand.java (97%) rename src/main/java/io/paradaux/friendlybot/{discord/commands/staff/technician => bot/commands/privileged}/DmCommand.java (97%) rename src/main/java/io/paradaux/friendlybot/{discord/commands/staff/moderation => bot/commands/privileged}/KickCommand.java (98%) rename src/main/java/io/paradaux/friendlybot/{discord/commands/staff/moderation => bot/commands/privileged}/LookupCommand.java (99%) rename src/main/java/io/paradaux/friendlybot/{discord/commands/staff/moderation => bot/commands/privileged}/PruneCommand.java (97%) rename src/main/java/io/paradaux/friendlybot/{discord/commands/staff/moderation => bot/commands/privileged}/RespondCommand.java (98%) rename src/main/java/io/paradaux/friendlybot/{discord/commands/staff/technician => bot/commands/privileged}/SayCommand.java (96%) rename src/main/java/io/paradaux/friendlybot/{discord/commands/staff/technician => bot/commands/privileged}/SendEmbedCommand.java (98%) rename src/main/java/io/paradaux/friendlybot/{discord/commands/staff/moderation => bot/commands/privileged}/TempBanCommand.java (97%) rename src/main/java/io/paradaux/friendlybot/{discord/commands/staff/moderation => bot/commands/privileged}/TicketCommand.java (99%) rename src/main/java/io/paradaux/friendlybot/{discord/commands/staff/technician => bot/commands/privileged}/VerificationCommand.java (98%) rename src/main/java/io/paradaux/friendlybot/{discord/commands/staff/moderation => bot/commands/privileged}/WarnCommand.java (97%) rename src/main/java/io/paradaux/friendlybot/{discord/commands/utility => bot/commands/util}/ClearColorCommand.java (97%) rename src/main/java/io/paradaux/friendlybot/{discord/commands/utility => bot/commands/util}/CommandsCommand.java (98%) rename src/main/java/io/paradaux/friendlybot/{discord/commands/utility => bot/commands/util}/GoogleCommand.java (98%) rename src/main/java/io/paradaux/friendlybot/{discord/commands/utility => bot/commands/util}/InviteCommand.java (97%) rename src/main/java/io/paradaux/friendlybot/{discord/commands/utility => bot/commands/util}/MemeImagesCommand.java (98%) rename src/main/java/io/paradaux/friendlybot/{discord/commands/utility => bot/commands/util}/PingCommand.java (97%) rename src/main/java/io/paradaux/friendlybot/{discord/commands/utility => bot/commands/util}/RandomColorCommand.java (97%) rename src/main/java/io/paradaux/friendlybot/{discord/commands/utility => bot/commands/util}/ServerInfoCommand.java (98%) rename src/main/java/io/paradaux/friendlybot/{discord/commands/utility => bot/commands/util}/SetColorCommand.java (98%) rename src/main/java/io/paradaux/friendlybot/{discord/commands/utility => bot/commands/util}/TagCommand.java (98%) rename src/main/java/io/paradaux/friendlybot/{discord/commands/utility => bot/commands/util}/TagsCommand.java (94%) rename src/main/java/io/paradaux/friendlybot/{discord/commands/utility => bot/commands/util}/UserInfoCommand.java (98%) rename src/main/java/io/paradaux/friendlybot/{discord/commands/utility => bot/commands/util}/WeatherCommand.java (98%) rename src/main/java/io/paradaux/friendlybot/{discord/commands/utility => bot/commands/util}/WolframAlphaCommand.java (98%) diff --git a/src/main/java/io/paradaux/friendlybot/discord/commands/fun/CoinFlipCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/CoinFlipCommand.java similarity index 97% rename from src/main/java/io/paradaux/friendlybot/discord/commands/fun/CoinFlipCommand.java rename to src/main/java/io/paradaux/friendlybot/bot/commands/CoinFlipCommand.java index 7c25b7b6..91405660 100644 --- a/src/main/java/io/paradaux/friendlybot/discord/commands/fun/CoinFlipCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/CoinFlipCommand.java @@ -1,4 +1,4 @@ -package io.paradaux.friendlybot.discord.commands.fun; +package io.paradaux.friendlybot.bot.commands; import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.core.utils.NumberUtils; diff --git a/src/main/java/io/paradaux/friendlybot/discord/commands/fun/DogCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/DogCommand.java similarity index 96% rename from src/main/java/io/paradaux/friendlybot/discord/commands/fun/DogCommand.java rename to src/main/java/io/paradaux/friendlybot/bot/commands/DogCommand.java index f9dad6ef..12b97a59 100644 --- a/src/main/java/io/paradaux/friendlybot/discord/commands/fun/DogCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/DogCommand.java @@ -1,4 +1,4 @@ -package io.paradaux.friendlybot.discord.commands.fun; +package io.paradaux.friendlybot.bot.commands; import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.core.utils.NumberUtils; diff --git a/src/main/java/io/paradaux/friendlybot/discord/commands/fun/EightBallCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/EightBallCommand.java similarity index 98% rename from src/main/java/io/paradaux/friendlybot/discord/commands/fun/EightBallCommand.java rename to src/main/java/io/paradaux/friendlybot/bot/commands/EightBallCommand.java index bba0bb6d..8b2ad44c 100644 --- a/src/main/java/io/paradaux/friendlybot/discord/commands/fun/EightBallCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/EightBallCommand.java @@ -23,7 +23,7 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.discord.commands.fun; +package io.paradaux.friendlybot.bot.commands; import com.google.gson.Gson; import com.google.gson.JsonArray; diff --git a/src/main/java/io/paradaux/friendlybot/discord/commands/fun/InspireCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/InspireCommand.java similarity index 98% rename from src/main/java/io/paradaux/friendlybot/discord/commands/fun/InspireCommand.java rename to src/main/java/io/paradaux/friendlybot/bot/commands/InspireCommand.java index 4c37f840..40cc247a 100644 --- a/src/main/java/io/paradaux/friendlybot/discord/commands/fun/InspireCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/InspireCommand.java @@ -23,7 +23,7 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.discord.commands.fun; +package io.paradaux.friendlybot.bot.commands; import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.core.utils.NumberUtils; diff --git a/src/main/java/io/paradaux/friendlybot/discord/commands/fun/MemeCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/MemeCommand.java similarity index 99% rename from src/main/java/io/paradaux/friendlybot/discord/commands/fun/MemeCommand.java rename to src/main/java/io/paradaux/friendlybot/bot/commands/MemeCommand.java index 3113d5eb..ba339e1f 100644 --- a/src/main/java/io/paradaux/friendlybot/discord/commands/fun/MemeCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/MemeCommand.java @@ -23,7 +23,7 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.discord.commands.fun; +package io.paradaux.friendlybot.bot.commands; import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.core.utils.HttpUtils; diff --git a/src/main/java/io/paradaux/friendlybot/discord/commands/fun/MonkeyCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/MonkeyCommand.java similarity index 97% rename from src/main/java/io/paradaux/friendlybot/discord/commands/fun/MonkeyCommand.java rename to src/main/java/io/paradaux/friendlybot/bot/commands/MonkeyCommand.java index da9ce0ab..461ddf61 100644 --- a/src/main/java/io/paradaux/friendlybot/discord/commands/fun/MonkeyCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/MonkeyCommand.java @@ -1,4 +1,4 @@ -package io.paradaux.friendlybot.discord.commands.fun; +package io.paradaux.friendlybot.bot.commands; import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.core.utils.NumberUtils; diff --git a/src/main/java/io/paradaux/friendlybot/discord/commands/fun/XKCDCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/XKCDCommand.java similarity index 98% rename from src/main/java/io/paradaux/friendlybot/discord/commands/fun/XKCDCommand.java rename to src/main/java/io/paradaux/friendlybot/bot/commands/XKCDCommand.java index 524b61c8..66ddfc52 100644 --- a/src/main/java/io/paradaux/friendlybot/discord/commands/fun/XKCDCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/XKCDCommand.java @@ -23,7 +23,7 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.discord.commands.fun; +package io.paradaux.friendlybot.bot.commands; import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.core.utils.NumberUtils; diff --git a/src/main/java/io/paradaux/friendlybot/discord/commands/fun/CharmanderCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/joke/CharmanderCommand.java similarity index 96% rename from src/main/java/io/paradaux/friendlybot/discord/commands/fun/CharmanderCommand.java rename to src/main/java/io/paradaux/friendlybot/bot/commands/joke/CharmanderCommand.java index d5635c64..14665006 100644 --- a/src/main/java/io/paradaux/friendlybot/discord/commands/fun/CharmanderCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/joke/CharmanderCommand.java @@ -1,4 +1,4 @@ -package io.paradaux.friendlybot.discord.commands.fun; +package io.paradaux.friendlybot.bot.commands.joke; import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.core.utils.NumberUtils; diff --git a/src/main/java/io/paradaux/friendlybot/discord/commands/fun/LmgtfyCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/joke/LmgtfyCommand.java similarity index 97% rename from src/main/java/io/paradaux/friendlybot/discord/commands/fun/LmgtfyCommand.java rename to src/main/java/io/paradaux/friendlybot/bot/commands/joke/LmgtfyCommand.java index 79cf447f..95a8950a 100644 --- a/src/main/java/io/paradaux/friendlybot/discord/commands/fun/LmgtfyCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/joke/LmgtfyCommand.java @@ -23,7 +23,7 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.discord.commands.fun; +package io.paradaux.friendlybot.bot.commands.joke; import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; diff --git a/src/main/java/io/paradaux/friendlybot/discord/commands/fun/MonkeCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/joke/MonkeCommand.java similarity index 96% rename from src/main/java/io/paradaux/friendlybot/discord/commands/fun/MonkeCommand.java rename to src/main/java/io/paradaux/friendlybot/bot/commands/joke/MonkeCommand.java index 51bc3de0..6743f8fc 100644 --- a/src/main/java/io/paradaux/friendlybot/discord/commands/fun/MonkeCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/joke/MonkeCommand.java @@ -1,4 +1,4 @@ -package io.paradaux.friendlybot.discord.commands.fun; +package io.paradaux.friendlybot.bot.commands.joke; import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.core.utils.HttpUtils; @@ -6,6 +6,7 @@ import io.paradaux.friendlybot.core.utils.RandomUtils; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; +import io.paradaux.friendlybot.bot.commands.MemeCommand; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.MessageEmbed; import okhttp3.MultipartBody; diff --git a/src/main/java/io/paradaux/friendlybot/discord/commands/fun/YodaifyCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/joke/YodaifyCommand.java similarity index 97% rename from src/main/java/io/paradaux/friendlybot/discord/commands/fun/YodaifyCommand.java rename to src/main/java/io/paradaux/friendlybot/bot/commands/joke/YodaifyCommand.java index a08402bc..f631433e 100644 --- a/src/main/java/io/paradaux/friendlybot/discord/commands/fun/YodaifyCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/joke/YodaifyCommand.java @@ -23,13 +23,14 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.discord.commands.fun; +package io.paradaux.friendlybot.bot.commands.joke; import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.core.utils.HttpUtils; import io.paradaux.friendlybot.core.utils.NumberUtils; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; +import io.paradaux.friendlybot.bot.commands.MemeCommand; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.Message; import net.dv8tion.jda.api.entities.MessageEmbed; diff --git a/src/main/java/io/paradaux/friendlybot/discord/commands/staff/moderation/AnnouncementCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/AnnouncementCommand.java similarity index 98% rename from src/main/java/io/paradaux/friendlybot/discord/commands/staff/moderation/AnnouncementCommand.java rename to src/main/java/io/paradaux/friendlybot/bot/commands/privileged/AnnouncementCommand.java index 7fc739db..790470d7 100644 --- a/src/main/java/io/paradaux/friendlybot/discord/commands/staff/moderation/AnnouncementCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/AnnouncementCommand.java @@ -1,4 +1,4 @@ -package io.paradaux.friendlybot.discord.commands.staff.moderation; +package io.paradaux.friendlybot.bot.commands.privileged; import com.jagrosh.jdautilities.command.CommandEvent; import com.jagrosh.jdautilities.commons.waiter.EventWaiter; diff --git a/src/main/java/io/paradaux/friendlybot/discord/commands/staff/moderation/BanCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/BanCommand.java similarity index 98% rename from src/main/java/io/paradaux/friendlybot/discord/commands/staff/moderation/BanCommand.java rename to src/main/java/io/paradaux/friendlybot/bot/commands/privileged/BanCommand.java index 0a126655..494092c6 100644 --- a/src/main/java/io/paradaux/friendlybot/discord/commands/staff/moderation/BanCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/BanCommand.java @@ -23,7 +23,7 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.discord.commands.staff.moderation; +package io.paradaux.friendlybot.bot.commands.privileged; import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.FriendlyBot; diff --git a/src/main/java/io/paradaux/friendlybot/discord/commands/staff/moderation/CiteCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/CiteCommand.java similarity index 97% rename from src/main/java/io/paradaux/friendlybot/discord/commands/staff/moderation/CiteCommand.java rename to src/main/java/io/paradaux/friendlybot/bot/commands/privileged/CiteCommand.java index 811b4869..82339185 100644 --- a/src/main/java/io/paradaux/friendlybot/discord/commands/staff/moderation/CiteCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/CiteCommand.java @@ -23,7 +23,7 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.discord.commands.staff.moderation; +package io.paradaux.friendlybot.bot.commands.privileged; import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.managers.PermissionManager; diff --git a/src/main/java/io/paradaux/friendlybot/discord/commands/staff/technician/DmCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/DmCommand.java similarity index 97% rename from src/main/java/io/paradaux/friendlybot/discord/commands/staff/technician/DmCommand.java rename to src/main/java/io/paradaux/friendlybot/bot/commands/privileged/DmCommand.java index 8f21e6bf..92553c72 100644 --- a/src/main/java/io/paradaux/friendlybot/discord/commands/staff/technician/DmCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/DmCommand.java @@ -23,7 +23,7 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.discord.commands.staff.technician; +package io.paradaux.friendlybot.bot.commands.privileged; import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.managers.PermissionManager; diff --git a/src/main/java/io/paradaux/friendlybot/discord/commands/staff/moderation/KickCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/KickCommand.java similarity index 98% rename from src/main/java/io/paradaux/friendlybot/discord/commands/staff/moderation/KickCommand.java rename to src/main/java/io/paradaux/friendlybot/bot/commands/privileged/KickCommand.java index 4c3a7039..7ec7bda5 100644 --- a/src/main/java/io/paradaux/friendlybot/discord/commands/staff/moderation/KickCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/KickCommand.java @@ -23,7 +23,7 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.discord.commands.staff.moderation; +package io.paradaux.friendlybot.bot.commands.privileged; import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.FriendlyBot; diff --git a/src/main/java/io/paradaux/friendlybot/discord/commands/staff/moderation/LookupCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/LookupCommand.java similarity index 99% rename from src/main/java/io/paradaux/friendlybot/discord/commands/staff/moderation/LookupCommand.java rename to src/main/java/io/paradaux/friendlybot/bot/commands/privileged/LookupCommand.java index 4d1d9751..8d7ddd76 100644 --- a/src/main/java/io/paradaux/friendlybot/discord/commands/staff/moderation/LookupCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/LookupCommand.java @@ -23,7 +23,7 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.discord.commands.staff.moderation; +package io.paradaux.friendlybot.bot.commands.privileged; import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.managers.MongoManager; diff --git a/src/main/java/io/paradaux/friendlybot/discord/commands/staff/moderation/PruneCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/PruneCommand.java similarity index 97% rename from src/main/java/io/paradaux/friendlybot/discord/commands/staff/moderation/PruneCommand.java rename to src/main/java/io/paradaux/friendlybot/bot/commands/privileged/PruneCommand.java index 190ee0d6..ecd7b993 100644 --- a/src/main/java/io/paradaux/friendlybot/discord/commands/staff/moderation/PruneCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/PruneCommand.java @@ -23,7 +23,7 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.discord.commands.staff.moderation; +package io.paradaux.friendlybot.bot.commands.privileged; import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.managers.PermissionManager; diff --git a/src/main/java/io/paradaux/friendlybot/discord/commands/staff/moderation/RespondCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/RespondCommand.java similarity index 98% rename from src/main/java/io/paradaux/friendlybot/discord/commands/staff/moderation/RespondCommand.java rename to src/main/java/io/paradaux/friendlybot/bot/commands/privileged/RespondCommand.java index 33523156..db9bf52e 100644 --- a/src/main/java/io/paradaux/friendlybot/discord/commands/staff/moderation/RespondCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/RespondCommand.java @@ -23,7 +23,7 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.discord.commands.staff.moderation; +package io.paradaux.friendlybot.bot.commands.privileged; import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.managers.MongoManager; diff --git a/src/main/java/io/paradaux/friendlybot/discord/commands/staff/technician/SayCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/SayCommand.java similarity index 96% rename from src/main/java/io/paradaux/friendlybot/discord/commands/staff/technician/SayCommand.java rename to src/main/java/io/paradaux/friendlybot/bot/commands/privileged/SayCommand.java index c3b6bef2..b3e603a9 100644 --- a/src/main/java/io/paradaux/friendlybot/discord/commands/staff/technician/SayCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/SayCommand.java @@ -23,7 +23,7 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.discord.commands.staff.technician; +package io.paradaux.friendlybot.bot.commands.privileged; import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.managers.PermissionManager; diff --git a/src/main/java/io/paradaux/friendlybot/discord/commands/staff/technician/SendEmbedCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/SendEmbedCommand.java similarity index 98% rename from src/main/java/io/paradaux/friendlybot/discord/commands/staff/technician/SendEmbedCommand.java rename to src/main/java/io/paradaux/friendlybot/bot/commands/privileged/SendEmbedCommand.java index 9fffe300..cb1d8177 100644 --- a/src/main/java/io/paradaux/friendlybot/discord/commands/staff/technician/SendEmbedCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/SendEmbedCommand.java @@ -23,7 +23,7 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.discord.commands.staff.technician; +package io.paradaux.friendlybot.bot.commands.privileged; import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.managers.PermissionManager; diff --git a/src/main/java/io/paradaux/friendlybot/discord/commands/staff/moderation/TempBanCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/TempBanCommand.java similarity index 97% rename from src/main/java/io/paradaux/friendlybot/discord/commands/staff/moderation/TempBanCommand.java rename to src/main/java/io/paradaux/friendlybot/bot/commands/privileged/TempBanCommand.java index 0d5a5caf..51ded782 100644 --- a/src/main/java/io/paradaux/friendlybot/discord/commands/staff/moderation/TempBanCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/TempBanCommand.java @@ -23,7 +23,7 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.discord.commands.staff.moderation; +package io.paradaux.friendlybot.bot.commands.privileged; import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.managers.MongoManager; diff --git a/src/main/java/io/paradaux/friendlybot/discord/commands/staff/moderation/TicketCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/TicketCommand.java similarity index 99% rename from src/main/java/io/paradaux/friendlybot/discord/commands/staff/moderation/TicketCommand.java rename to src/main/java/io/paradaux/friendlybot/bot/commands/privileged/TicketCommand.java index c75c8e89..523fb5ee 100644 --- a/src/main/java/io/paradaux/friendlybot/discord/commands/staff/moderation/TicketCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/TicketCommand.java @@ -23,7 +23,7 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.discord.commands.staff.moderation; +package io.paradaux.friendlybot.bot.commands.privileged; import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.managers.DiscordBotManager; diff --git a/src/main/java/io/paradaux/friendlybot/discord/commands/staff/technician/VerificationCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/VerificationCommand.java similarity index 98% rename from src/main/java/io/paradaux/friendlybot/discord/commands/staff/technician/VerificationCommand.java rename to src/main/java/io/paradaux/friendlybot/bot/commands/privileged/VerificationCommand.java index bb0e72fe..7f30e0c0 100644 --- a/src/main/java/io/paradaux/friendlybot/discord/commands/staff/technician/VerificationCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/VerificationCommand.java @@ -23,7 +23,7 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.discord.commands.staff.technician; +package io.paradaux.friendlybot.bot.commands.privileged; import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.managers.MongoManager; diff --git a/src/main/java/io/paradaux/friendlybot/discord/commands/staff/moderation/WarnCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/WarnCommand.java similarity index 97% rename from src/main/java/io/paradaux/friendlybot/discord/commands/staff/moderation/WarnCommand.java rename to src/main/java/io/paradaux/friendlybot/bot/commands/privileged/WarnCommand.java index 179b3b2f..7802bf73 100644 --- a/src/main/java/io/paradaux/friendlybot/discord/commands/staff/moderation/WarnCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/WarnCommand.java @@ -23,7 +23,7 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.discord.commands.staff.moderation; +package io.paradaux.friendlybot.bot.commands.privileged; import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.FriendlyBot; diff --git a/src/main/java/io/paradaux/friendlybot/discord/commands/utility/ClearColorCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/util/ClearColorCommand.java similarity index 97% rename from src/main/java/io/paradaux/friendlybot/discord/commands/utility/ClearColorCommand.java rename to src/main/java/io/paradaux/friendlybot/bot/commands/util/ClearColorCommand.java index 1a2424a6..92f470f1 100644 --- a/src/main/java/io/paradaux/friendlybot/discord/commands/utility/ClearColorCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/util/ClearColorCommand.java @@ -1,4 +1,4 @@ -package io.paradaux.friendlybot.discord.commands.utility; +package io.paradaux.friendlybot.bot.commands.util; import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.managers.UserSettingsManager; diff --git a/src/main/java/io/paradaux/friendlybot/discord/commands/utility/CommandsCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/util/CommandsCommand.java similarity index 98% rename from src/main/java/io/paradaux/friendlybot/discord/commands/utility/CommandsCommand.java rename to src/main/java/io/paradaux/friendlybot/bot/commands/util/CommandsCommand.java index bac6f24a..2d58524c 100644 --- a/src/main/java/io/paradaux/friendlybot/discord/commands/utility/CommandsCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/util/CommandsCommand.java @@ -23,7 +23,7 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.discord.commands.utility; +package io.paradaux.friendlybot.bot.commands.util; import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.core.utils.TimeUtils; diff --git a/src/main/java/io/paradaux/friendlybot/discord/commands/utility/GoogleCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/util/GoogleCommand.java similarity index 98% rename from src/main/java/io/paradaux/friendlybot/discord/commands/utility/GoogleCommand.java rename to src/main/java/io/paradaux/friendlybot/bot/commands/util/GoogleCommand.java index 0e39afca..61c7fe0b 100644 --- a/src/main/java/io/paradaux/friendlybot/discord/commands/utility/GoogleCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/util/GoogleCommand.java @@ -23,7 +23,7 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.discord.commands.utility; +package io.paradaux.friendlybot.bot.commands.util; import com.google.gson.JsonObject; import com.google.gson.JsonParser; diff --git a/src/main/java/io/paradaux/friendlybot/discord/commands/utility/InviteCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/util/InviteCommand.java similarity index 97% rename from src/main/java/io/paradaux/friendlybot/discord/commands/utility/InviteCommand.java rename to src/main/java/io/paradaux/friendlybot/bot/commands/util/InviteCommand.java index 3ad867bd..7c7e505e 100644 --- a/src/main/java/io/paradaux/friendlybot/discord/commands/utility/InviteCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/util/InviteCommand.java @@ -23,7 +23,7 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.discord.commands.utility; +package io.paradaux.friendlybot.bot.commands.util; import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.FriendlyBot; diff --git a/src/main/java/io/paradaux/friendlybot/discord/commands/utility/MemeImagesCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/util/MemeImagesCommand.java similarity index 98% rename from src/main/java/io/paradaux/friendlybot/discord/commands/utility/MemeImagesCommand.java rename to src/main/java/io/paradaux/friendlybot/bot/commands/util/MemeImagesCommand.java index 8ac9ccc9..5fb33cf9 100644 --- a/src/main/java/io/paradaux/friendlybot/discord/commands/utility/MemeImagesCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/util/MemeImagesCommand.java @@ -23,7 +23,7 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.discord.commands.utility; +package io.paradaux.friendlybot.bot.commands.util; import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.core.utils.NumberUtils; diff --git a/src/main/java/io/paradaux/friendlybot/discord/commands/utility/PingCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/util/PingCommand.java similarity index 97% rename from src/main/java/io/paradaux/friendlybot/discord/commands/utility/PingCommand.java rename to src/main/java/io/paradaux/friendlybot/bot/commands/util/PingCommand.java index 8473f8a9..9df086a3 100644 --- a/src/main/java/io/paradaux/friendlybot/discord/commands/utility/PingCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/util/PingCommand.java @@ -23,7 +23,7 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.discord.commands.utility; +package io.paradaux.friendlybot.bot.commands.util; import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.FriendlyBot; diff --git a/src/main/java/io/paradaux/friendlybot/discord/commands/utility/RandomColorCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/util/RandomColorCommand.java similarity index 97% rename from src/main/java/io/paradaux/friendlybot/discord/commands/utility/RandomColorCommand.java rename to src/main/java/io/paradaux/friendlybot/bot/commands/util/RandomColorCommand.java index a13ea7dd..c2367f77 100644 --- a/src/main/java/io/paradaux/friendlybot/discord/commands/utility/RandomColorCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/util/RandomColorCommand.java @@ -1,4 +1,4 @@ -package io.paradaux.friendlybot.discord.commands.utility; +package io.paradaux.friendlybot.bot.commands.util; import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.core.utils.ImageUtils; diff --git a/src/main/java/io/paradaux/friendlybot/discord/commands/utility/ServerInfoCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/util/ServerInfoCommand.java similarity index 98% rename from src/main/java/io/paradaux/friendlybot/discord/commands/utility/ServerInfoCommand.java rename to src/main/java/io/paradaux/friendlybot/bot/commands/util/ServerInfoCommand.java index 2ccdc49e..4029daa3 100644 --- a/src/main/java/io/paradaux/friendlybot/discord/commands/utility/ServerInfoCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/util/ServerInfoCommand.java @@ -23,7 +23,7 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.discord.commands.utility; +package io.paradaux.friendlybot.bot.commands.util; import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; diff --git a/src/main/java/io/paradaux/friendlybot/discord/commands/utility/SetColorCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/util/SetColorCommand.java similarity index 98% rename from src/main/java/io/paradaux/friendlybot/discord/commands/utility/SetColorCommand.java rename to src/main/java/io/paradaux/friendlybot/bot/commands/util/SetColorCommand.java index 23ce5931..61e13128 100644 --- a/src/main/java/io/paradaux/friendlybot/discord/commands/utility/SetColorCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/util/SetColorCommand.java @@ -1,4 +1,4 @@ -package io.paradaux.friendlybot.discord.commands.utility; +package io.paradaux.friendlybot.bot.commands.util; import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.managers.RoleManager; diff --git a/src/main/java/io/paradaux/friendlybot/discord/commands/utility/TagCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/util/TagCommand.java similarity index 98% rename from src/main/java/io/paradaux/friendlybot/discord/commands/utility/TagCommand.java rename to src/main/java/io/paradaux/friendlybot/bot/commands/util/TagCommand.java index 42dc0ce0..819d0a2a 100644 --- a/src/main/java/io/paradaux/friendlybot/discord/commands/utility/TagCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/util/TagCommand.java @@ -23,7 +23,7 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.discord.commands.utility; +package io.paradaux.friendlybot.bot.commands.util; import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.managers.MongoManager; @@ -50,7 +50,7 @@ public TagCommand(ConfigurationEntry config, Logger logger, MongoManager mongo) super(config, logger); this.mongo = mongo; this.name = "tag"; - this.help = "Manage tags."; + this.help = "Manage tags. privileged"; } @Override diff --git a/src/main/java/io/paradaux/friendlybot/discord/commands/utility/TagsCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/util/TagsCommand.java similarity index 94% rename from src/main/java/io/paradaux/friendlybot/discord/commands/utility/TagsCommand.java rename to src/main/java/io/paradaux/friendlybot/bot/commands/util/TagsCommand.java index 394f1d21..5aaae666 100644 --- a/src/main/java/io/paradaux/friendlybot/discord/commands/utility/TagsCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/util/TagsCommand.java @@ -1,4 +1,4 @@ -package io.paradaux.friendlybot.discord.commands.utility; +package io.paradaux.friendlybot.bot.commands.util; import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.core.utils.NumberUtils; diff --git a/src/main/java/io/paradaux/friendlybot/discord/commands/utility/UserInfoCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/util/UserInfoCommand.java similarity index 98% rename from src/main/java/io/paradaux/friendlybot/discord/commands/utility/UserInfoCommand.java rename to src/main/java/io/paradaux/friendlybot/bot/commands/util/UserInfoCommand.java index 2b9c7c49..e0aa56aa 100644 --- a/src/main/java/io/paradaux/friendlybot/discord/commands/utility/UserInfoCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/util/UserInfoCommand.java @@ -23,7 +23,7 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.discord.commands.utility; +package io.paradaux.friendlybot.bot.commands.util; import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.managers.PermissionManager; diff --git a/src/main/java/io/paradaux/friendlybot/discord/commands/utility/WeatherCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/util/WeatherCommand.java similarity index 98% rename from src/main/java/io/paradaux/friendlybot/discord/commands/utility/WeatherCommand.java rename to src/main/java/io/paradaux/friendlybot/bot/commands/util/WeatherCommand.java index 1ff45462..473670f0 100644 --- a/src/main/java/io/paradaux/friendlybot/discord/commands/utility/WeatherCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/util/WeatherCommand.java @@ -1,4 +1,4 @@ -package io.paradaux.friendlybot.discord.commands.utility; +package io.paradaux.friendlybot.bot.commands.util; import com.google.gson.JsonObject; import com.google.gson.JsonParser; diff --git a/src/main/java/io/paradaux/friendlybot/discord/commands/utility/WolframAlphaCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/util/WolframAlphaCommand.java similarity index 98% rename from src/main/java/io/paradaux/friendlybot/discord/commands/utility/WolframAlphaCommand.java rename to src/main/java/io/paradaux/friendlybot/bot/commands/util/WolframAlphaCommand.java index 5f4ba851..1e27dda0 100644 --- a/src/main/java/io/paradaux/friendlybot/discord/commands/utility/WolframAlphaCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/util/WolframAlphaCommand.java @@ -23,7 +23,7 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.discord.commands.utility; +package io.paradaux.friendlybot.bot.commands.util; import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.core.utils.NumberUtils; From 2095335e3fe107b129ad1bf0b3c3c00634b9e90b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Sun, 12 Sep 2021 21:01:52 +0100 Subject: [PATCH 099/121] Delete GuildCreationEvent.java --- .../listeners/GuildCreationEvent.java | 20 ------------------- 1 file changed, 20 deletions(-) delete mode 100644 src/main/java/io/paradaux/friendlybot/discord/integrity/listeners/GuildCreationEvent.java diff --git a/src/main/java/io/paradaux/friendlybot/discord/integrity/listeners/GuildCreationEvent.java b/src/main/java/io/paradaux/friendlybot/discord/integrity/listeners/GuildCreationEvent.java deleted file mode 100644 index 18e5fd4b..00000000 --- a/src/main/java/io/paradaux/friendlybot/discord/integrity/listeners/GuildCreationEvent.java +++ /dev/null @@ -1,20 +0,0 @@ -package io.paradaux.friendlybot.discord.integrity.listeners; - -import io.paradaux.friendlybot.core.cache.GuildCache; -import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.core.utils.models.types.DiscordEventListener; -import net.dv8tion.jda.api.events.guild.GuildJoinEvent; -import org.jetbrains.annotations.NotNull; -import org.slf4j.Logger; - -public class GuildCreationEvent extends DiscordEventListener { - - public GuildCreationEvent(ConfigurationEntry config, Logger logger) { - super(config, logger); - } - - @Override - public void onGuildJoin(@NotNull GuildJoinEvent event) { - - } -} From 2532fb531d95927a60607d99fa85c86ab8605836 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Sun, 12 Sep 2021 21:02:08 +0100 Subject: [PATCH 100/121] Connect to database --- .../java/io/paradaux/friendlybot/FBApplication.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/main/java/io/paradaux/friendlybot/FBApplication.java b/src/main/java/io/paradaux/friendlybot/FBApplication.java index 79f59e04..871f21b7 100644 --- a/src/main/java/io/paradaux/friendlybot/FBApplication.java +++ b/src/main/java/io/paradaux/friendlybot/FBApplication.java @@ -1,15 +1,19 @@ package io.paradaux.friendlybot; +import io.ebean.DB; import io.paradaux.friendlybot.bot.FBot; -import io.paradaux.friendlybot.data.config.FConfiguration; -import io.paradaux.friendlybot.data.config.FConfigurationLoader; +import io.paradaux.friendlybot.core.data.config.FConfiguration; +import io.paradaux.friendlybot.core.data.config.FConfigurationLoader; import io.paradaux.friendlybot.core.cache.GuildCache; +import io.paradaux.friendlybot.core.data.database.EBeanConnection; +import io.paradaux.friendlybot.core.data.database.models.FGuild; import io.paradaux.friendlybot.core.locale.LocaleLogger; import io.paradaux.friendlybot.core.locale.LocaleManager; import org.slf4j.LoggerFactory; import org.spongepowered.configurate.ConfigurateException; import javax.security.auth.login.LoginException; +import java.util.ArrayList; public class FBApplication { @@ -18,6 +22,7 @@ public class FBApplication { private static FConfiguration config; private static FBot bot; private static GuildCache guildCache; + private static EBeanConnection eBeanConnection; public static void main(String[] args) throws ConfigurateException, LoginException { @@ -25,6 +30,7 @@ public static void main(String[] args) throws ConfigurateException, LoginExcepti logger = new LocaleLogger(LoggerFactory.getLogger(FBApplication.class), true); config = FConfigurationLoader.loadConfig(); + eBeanConnection = new EBeanConnection(config); bot = new FBot(config); guildCache = new GuildCache(bot.getClient()); } From 5909259b9fa8345b949d12dfd06fd5a62861f4f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Sun, 12 Sep 2021 21:02:12 +0100 Subject: [PATCH 101/121] Update GuildSettingsTest.java --- .../database/GuildSettingsTest.java | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/src/test/java/io/paradaux/friendlybot/database/GuildSettingsTest.java b/src/test/java/io/paradaux/friendlybot/database/GuildSettingsTest.java index 3055da53..c58b1def 100644 --- a/src/test/java/io/paradaux/friendlybot/database/GuildSettingsTest.java +++ b/src/test/java/io/paradaux/friendlybot/database/GuildSettingsTest.java @@ -1,9 +1,12 @@ package io.paradaux.friendlybot.database; import io.ebean.DB; +import io.paradaux.friendlybot.core.data.database.models.FGuild; import io.paradaux.friendlybot.core.data.database.models.GuildSettings; import org.junit.jupiter.api.Test; +import java.util.ArrayList; + public class GuildSettingsTest { @Test @@ -22,4 +25,33 @@ public void insertFindDelete() { // delete the customer DB.delete(settings); } + + @Test + public void fGuildTest() { + FGuild guild = new FGuild(); + guild.setGuildId("778219443737329684"); + guild.setCommandPrefix(";"); + + guild.setVerificationRoleId("781365795237527602"); + guild.setVerificationInputId("886628377564430387"); + + guild.setAuditLogId("852334545750851624"); + guild.setModAuditLogId("852334546627723294"); + + guild.setModMailInId("852334544316923905"); + guild.setModMailOutId("852334545104928828"); + + guild.setMessageLogId("852334547105218591"); + + guild.setModerators(new ArrayList<>()); + guild.setAdministrators(new ArrayList<>()); + + + guild.setLastIncidentId(0); + guild.setLastTicketId(0); + + DB.save(guild); + + + } } From 9f269bffad0e1cac424c6875d2a38f7b02249c54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Sun, 12 Sep 2021 21:02:41 +0100 Subject: [PATCH 102/121] Update CommandListener.java --- .../io/paradaux/friendlybot/bot/command/CommandListener.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/io/paradaux/friendlybot/bot/command/CommandListener.java b/src/main/java/io/paradaux/friendlybot/bot/command/CommandListener.java index d133c1dd..9ed9db71 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/command/CommandListener.java +++ b/src/main/java/io/paradaux/friendlybot/bot/command/CommandListener.java @@ -97,8 +97,9 @@ public void registerCommand(DiscordCommand command) { } Command cmd = clazz.getAnnotation(Command.class); - System.out.println(cmd.name() + "cmd.description"); + command.register(cmd.name(), cmd.description(), cmd.permission()); + for (DiscordCommand c : commands) { if (c.getCommand().equals(command.getCommand())) { throw new CommandException("A command by this name has already been registered."); @@ -115,7 +116,7 @@ public void registerCommand(DiscordCommand command) { * */ public void removeCommand(DiscordCommand command) { if (!commands.remove(command)) { - throw new CommandException("This command has already been registered."); + throw new CommandException("This command is not registered."); } } } From a88cfc47f0fc57a8032a23d94e341eb059a35348 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Sun, 12 Sep 2021 21:02:52 +0100 Subject: [PATCH 103/121] Register commands --- src/main/java/io/paradaux/friendlybot/bot/FBot.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/main/java/io/paradaux/friendlybot/bot/FBot.java b/src/main/java/io/paradaux/friendlybot/bot/FBot.java index 89310a75..db23b4a8 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/FBot.java +++ b/src/main/java/io/paradaux/friendlybot/bot/FBot.java @@ -2,7 +2,8 @@ import com.jagrosh.jdautilities.commons.waiter.EventWaiter; import io.paradaux.friendlybot.bot.command.CommandListener; -import io.paradaux.friendlybot.data.config.FConfiguration; +import io.paradaux.friendlybot.bot.commands.CatCommand; +import io.paradaux.friendlybot.core.data.config.FConfiguration; import net.dv8tion.jda.api.JDA; import net.dv8tion.jda.api.JDABuilder; import net.dv8tion.jda.api.requests.GatewayIntent; @@ -14,14 +15,21 @@ public class FBot { private final FConfiguration config; private final EventWaiter eventWaiter; + private final CommandListener commandListener; private final JDA client; public FBot(FConfiguration config) throws LoginException { this.config = config; this.eventWaiter = new EventWaiter(); + this.commandListener = new CommandListener(); + registerCommands(); this.client = login(config.getBotToken()); } + public void registerCommands() { + commandListener.registerCommand(new CatCommand()); + } + /** * Creates an Instance of JDA from the provided token. * @param token The Discord Token taken from the configuration file. @@ -33,7 +41,7 @@ public JDA login(String token) throws LoginException { .setMemberCachePolicy(MemberCachePolicy.ALL) .enableIntents(GatewayIntent.GUILD_MEMBERS) .setBulkDeleteSplittingEnabled(false) - .addEventListeners(eventWaiter, new CommandListener()); + .addEventListeners(eventWaiter, commandListener); if (token == null) { throw new LoginException("The Configuration File does not contain a token."); From 1bd71066ac0243060da64c33ead6ffd30e77c43c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Sun, 12 Sep 2021 21:04:17 +0100 Subject: [PATCH 104/121] Optimize imports --- .../io/paradaux/friendlybot/FBApplication.java | 5 +---- .../io/paradaux/friendlybot/FriendlyBot.java | 2 +- .../bot/commands/joke/MonkeCommand.java | 2 +- .../bot/commands/joke/YodaifyCommand.java | 2 +- .../commands/privileged/AnnouncementCommand.java | 2 +- .../bot/commands/privileged/BanCommand.java | 4 ++-- .../bot/commands/privileged/CiteCommand.java | 2 +- .../bot/commands/privileged/DmCommand.java | 2 +- .../bot/commands/privileged/KickCommand.java | 4 ++-- .../bot/commands/privileged/LookupCommand.java | 4 ++-- .../bot/commands/privileged/PruneCommand.java | 2 +- .../bot/commands/privileged/RespondCommand.java | 4 ++-- .../bot/commands/privileged/SayCommand.java | 2 +- .../commands/privileged/SendEmbedCommand.java | 2 +- .../bot/commands/privileged/TempBanCommand.java | 4 ++-- .../bot/commands/privileged/TicketCommand.java | 6 +++--- .../commands/privileged/VerificationCommand.java | 6 +++--- .../bot/commands/privileged/WarnCommand.java | 4 ++-- .../bot/commands/util/ClearColorCommand.java | 2 +- .../bot/commands/util/SetColorCommand.java | 4 ++-- .../bot/commands/util/TagCommand.java | 4 ++-- .../bot/commands/util/UserInfoCommand.java | 2 +- .../friendlybot/core/cache/GuildCache.java | 4 ++-- .../io/paradaux/friendlybot/core/utils/API.java | 2 +- .../paradaux/friendlybot/core/utils/IOUtils.java | 6 +----- .../core/utils/models/types/BaseCommand.java | 2 +- .../utils/models/types/PrivilegedCommand.java | 2 +- .../discord/listeners/DotCommandsListener.java | 2 +- .../discord/listeners/TagListener.java | 2 +- .../listeners/logging/MessageDeleteLog.java | 6 +++--- .../discord/listeners/logging/MessageLog.java | 6 +++--- .../listeners/logging/UpdatedMessageLog.java | 6 +++--- .../listeners/logging/audit/GuildJoinLog.java | 4 ++-- .../listeners/logging/audit/GuildLeaveLog.java | 4 ++-- .../modmail/ModMailChannelListener.java | 6 +++--- .../VerificationCodeReceivedListener.java | 6 +++--- .../VerificationEmailReceivedListener.java | 6 +++--- .../friendlybot/managers/DiscordBotManager.java | 16 +++++++++------- .../paradaux/friendlybot/managers/IOManager.java | 1 - .../friendlybot/managers/PunishmentManager.java | 13 ++----------- 40 files changed, 75 insertions(+), 90 deletions(-) diff --git a/src/main/java/io/paradaux/friendlybot/FBApplication.java b/src/main/java/io/paradaux/friendlybot/FBApplication.java index 871f21b7..99d1f28d 100644 --- a/src/main/java/io/paradaux/friendlybot/FBApplication.java +++ b/src/main/java/io/paradaux/friendlybot/FBApplication.java @@ -1,19 +1,16 @@ package io.paradaux.friendlybot; -import io.ebean.DB; import io.paradaux.friendlybot.bot.FBot; +import io.paradaux.friendlybot.core.cache.GuildCache; import io.paradaux.friendlybot.core.data.config.FConfiguration; import io.paradaux.friendlybot.core.data.config.FConfigurationLoader; -import io.paradaux.friendlybot.core.cache.GuildCache; import io.paradaux.friendlybot.core.data.database.EBeanConnection; -import io.paradaux.friendlybot.core.data.database.models.FGuild; import io.paradaux.friendlybot.core.locale.LocaleLogger; import io.paradaux.friendlybot.core.locale.LocaleManager; import org.slf4j.LoggerFactory; import org.spongepowered.configurate.ConfigurateException; import javax.security.auth.login.LoginException; -import java.util.ArrayList; public class FBApplication { diff --git a/src/main/java/io/paradaux/friendlybot/FriendlyBot.java b/src/main/java/io/paradaux/friendlybot/FriendlyBot.java index 112b76e9..c075cebd 100644 --- a/src/main/java/io/paradaux/friendlybot/FriendlyBot.java +++ b/src/main/java/io/paradaux/friendlybot/FriendlyBot.java @@ -25,9 +25,9 @@ package io.paradaux.friendlybot; -import io.paradaux.friendlybot.managers.*; import io.paradaux.friendlybot.core.utils.API; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.managers.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/joke/MonkeCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/joke/MonkeCommand.java index 6743f8fc..1617e8d8 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/joke/MonkeCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/joke/MonkeCommand.java @@ -1,12 +1,12 @@ package io.paradaux.friendlybot.bot.commands.joke; import com.jagrosh.jdautilities.command.CommandEvent; +import io.paradaux.friendlybot.bot.commands.MemeCommand; import io.paradaux.friendlybot.core.utils.HttpUtils; import io.paradaux.friendlybot.core.utils.NumberUtils; import io.paradaux.friendlybot.core.utils.RandomUtils; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; -import io.paradaux.friendlybot.bot.commands.MemeCommand; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.MessageEmbed; import okhttp3.MultipartBody; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/joke/YodaifyCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/joke/YodaifyCommand.java index f631433e..ee681c0a 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/joke/YodaifyCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/joke/YodaifyCommand.java @@ -26,11 +26,11 @@ package io.paradaux.friendlybot.bot.commands.joke; import com.jagrosh.jdautilities.command.CommandEvent; +import io.paradaux.friendlybot.bot.commands.MemeCommand; import io.paradaux.friendlybot.core.utils.HttpUtils; import io.paradaux.friendlybot.core.utils.NumberUtils; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; -import io.paradaux.friendlybot.bot.commands.MemeCommand; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.Message; import net.dv8tion.jda.api.entities.MessageEmbed; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/AnnouncementCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/AnnouncementCommand.java index 790470d7..48b1ad67 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/AnnouncementCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/AnnouncementCommand.java @@ -2,9 +2,9 @@ import com.jagrosh.jdautilities.command.CommandEvent; import com.jagrosh.jdautilities.commons.waiter.EventWaiter; -import io.paradaux.friendlybot.managers.PermissionManager; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.core.utils.models.types.PrivilegedCommand; +import io.paradaux.friendlybot.managers.PermissionManager; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.Message; import net.dv8tion.jda.api.events.message.MessageReceivedEvent; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/BanCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/BanCommand.java index 494092c6..be562f36 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/BanCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/BanCommand.java @@ -27,11 +27,11 @@ import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.FriendlyBot; +import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.core.utils.models.types.PrivilegedCommand; import io.paradaux.friendlybot.managers.MongoManager; import io.paradaux.friendlybot.managers.PermissionManager; import io.paradaux.friendlybot.managers.PunishmentManager; -import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.core.utils.models.types.PrivilegedCommand; import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Message; import org.slf4j.Logger; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/CiteCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/CiteCommand.java index 82339185..f9f42e1a 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/CiteCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/CiteCommand.java @@ -26,11 +26,11 @@ package io.paradaux.friendlybot.bot.commands.privileged; import com.jagrosh.jdautilities.command.CommandEvent; -import io.paradaux.friendlybot.managers.PermissionManager; import io.paradaux.friendlybot.core.utils.embeds.moderation.CiteRuleEmbed; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.core.utils.models.interfaces.Embed; import io.paradaux.friendlybot.core.utils.models.types.PrivilegedCommand; +import io.paradaux.friendlybot.managers.PermissionManager; import net.dv8tion.jda.api.entities.Message; import net.dv8tion.jda.api.entities.TextChannel; import org.slf4j.Logger; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/DmCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/DmCommand.java index 92553c72..e945ffb0 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/DmCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/DmCommand.java @@ -26,9 +26,9 @@ package io.paradaux.friendlybot.bot.commands.privileged; import com.jagrosh.jdautilities.command.CommandEvent; -import io.paradaux.friendlybot.managers.PermissionManager; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.core.utils.models.types.PrivilegedCommand; +import io.paradaux.friendlybot.managers.PermissionManager; import net.dv8tion.jda.api.entities.User; import org.slf4j.Logger; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/KickCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/KickCommand.java index 7ec7bda5..80ae376d 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/KickCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/KickCommand.java @@ -27,10 +27,10 @@ import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.FriendlyBot; -import io.paradaux.friendlybot.managers.PermissionManager; -import io.paradaux.friendlybot.managers.PunishmentManager; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.core.utils.models.types.PrivilegedCommand; +import io.paradaux.friendlybot.managers.PermissionManager; +import io.paradaux.friendlybot.managers.PunishmentManager; import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Message; import org.slf4j.Logger; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/LookupCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/LookupCommand.java index 8d7ddd76..11997294 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/LookupCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/LookupCommand.java @@ -26,8 +26,6 @@ package io.paradaux.friendlybot.bot.commands.privileged; import com.jagrosh.jdautilities.command.CommandEvent; -import io.paradaux.friendlybot.managers.MongoManager; -import io.paradaux.friendlybot.managers.PermissionManager; import io.paradaux.friendlybot.core.utils.embeds.AuditLogEmbed; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.core.utils.models.database.AuditLogEntry; @@ -36,6 +34,8 @@ import io.paradaux.friendlybot.core.utils.models.database.WarningEntry; import io.paradaux.friendlybot.core.utils.models.types.ModerationAction; import io.paradaux.friendlybot.core.utils.models.types.PrivilegedCommand; +import io.paradaux.friendlybot.managers.MongoManager; +import io.paradaux.friendlybot.managers.PermissionManager; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.Message; import net.dv8tion.jda.api.entities.User; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/PruneCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/PruneCommand.java index ecd7b993..487dc136 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/PruneCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/PruneCommand.java @@ -26,9 +26,9 @@ package io.paradaux.friendlybot.bot.commands.privileged; import com.jagrosh.jdautilities.command.CommandEvent; -import io.paradaux.friendlybot.managers.PermissionManager; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.core.utils.models.types.PrivilegedCommand; +import io.paradaux.friendlybot.managers.PermissionManager; import net.dv8tion.jda.api.entities.Message; import org.slf4j.Logger; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/RespondCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/RespondCommand.java index db9bf52e..e2364bc4 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/RespondCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/RespondCommand.java @@ -26,13 +26,13 @@ package io.paradaux.friendlybot.bot.commands.privileged; import com.jagrosh.jdautilities.command.CommandEvent; -import io.paradaux.friendlybot.managers.MongoManager; -import io.paradaux.friendlybot.managers.PermissionManager; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.core.utils.models.database.ModMailEntry; import io.paradaux.friendlybot.core.utils.models.database.ModMailResponse; import io.paradaux.friendlybot.core.utils.models.enums.TicketStatus; import io.paradaux.friendlybot.core.utils.models.types.PrivilegedCommand; +import io.paradaux.friendlybot.managers.MongoManager; +import io.paradaux.friendlybot.managers.PermissionManager; import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Message; import org.slf4j.Logger; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/SayCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/SayCommand.java index b3e603a9..cb47a6d6 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/SayCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/SayCommand.java @@ -26,9 +26,9 @@ package io.paradaux.friendlybot.bot.commands.privileged; import com.jagrosh.jdautilities.command.CommandEvent; -import io.paradaux.friendlybot.managers.PermissionManager; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.core.utils.models.types.PrivilegedCommand; +import io.paradaux.friendlybot.managers.PermissionManager; import org.slf4j.Logger; public class SayCommand extends PrivilegedCommand { diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/SendEmbedCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/SendEmbedCommand.java index cb1d8177..c80e47fd 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/SendEmbedCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/SendEmbedCommand.java @@ -26,7 +26,6 @@ package io.paradaux.friendlybot.bot.commands.privileged; import com.jagrosh.jdautilities.command.CommandEvent; -import io.paradaux.friendlybot.managers.PermissionManager; import io.paradaux.friendlybot.core.utils.embeds.AuditLogEmbed; import io.paradaux.friendlybot.core.utils.embeds.PoliticsRulesEmbed; import io.paradaux.friendlybot.core.utils.embeds.RulesEmbed; @@ -38,6 +37,7 @@ import io.paradaux.friendlybot.core.utils.models.interfaces.Embed; import io.paradaux.friendlybot.core.utils.models.types.ModerationAction; import io.paradaux.friendlybot.core.utils.models.types.PrivilegedCommand; +import io.paradaux.friendlybot.managers.PermissionManager; import net.dv8tion.jda.api.entities.Message; import net.dv8tion.jda.api.entities.TextChannel; import org.slf4j.Logger; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/TempBanCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/TempBanCommand.java index 51ded782..1e1a114d 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/TempBanCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/TempBanCommand.java @@ -26,11 +26,11 @@ package io.paradaux.friendlybot.bot.commands.privileged; import com.jagrosh.jdautilities.command.CommandEvent; +import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.core.utils.models.types.PrivilegedCommand; import io.paradaux.friendlybot.managers.MongoManager; import io.paradaux.friendlybot.managers.PermissionManager; import io.paradaux.friendlybot.managers.PunishmentManager; -import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.core.utils.models.types.PrivilegedCommand; import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Message; import org.slf4j.Logger; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/TicketCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/TicketCommand.java index 523fb5ee..ba93f8d6 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/TicketCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/TicketCommand.java @@ -26,9 +26,6 @@ package io.paradaux.friendlybot.bot.commands.privileged; import com.jagrosh.jdautilities.command.CommandEvent; -import io.paradaux.friendlybot.managers.DiscordBotManager; -import io.paradaux.friendlybot.managers.MongoManager; -import io.paradaux.friendlybot.managers.PermissionManager; import io.paradaux.friendlybot.core.utils.TimeUtils; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.core.utils.models.database.ModMailEntry; @@ -36,6 +33,9 @@ import io.paradaux.friendlybot.core.utils.models.enums.EmbedColour; import io.paradaux.friendlybot.core.utils.models.enums.TicketStatus; import io.paradaux.friendlybot.core.utils.models.types.PrivilegedCommand; +import io.paradaux.friendlybot.managers.DiscordBotManager; +import io.paradaux.friendlybot.managers.MongoManager; +import io.paradaux.friendlybot.managers.PermissionManager; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Message; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/VerificationCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/VerificationCommand.java index 7f30e0c0..81fb5cc4 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/VerificationCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/VerificationCommand.java @@ -26,12 +26,12 @@ package io.paradaux.friendlybot.bot.commands.privileged; import com.jagrosh.jdautilities.command.CommandEvent; -import io.paradaux.friendlybot.managers.MongoManager; -import io.paradaux.friendlybot.managers.PermissionManager; -import io.paradaux.friendlybot.managers.VerificationManager; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.core.utils.models.exceptions.VerificationException; import io.paradaux.friendlybot.core.utils.models.types.PrivilegedCommand; +import io.paradaux.friendlybot.managers.MongoManager; +import io.paradaux.friendlybot.managers.PermissionManager; +import io.paradaux.friendlybot.managers.VerificationManager; import net.dv8tion.jda.api.entities.Message; import net.dv8tion.jda.api.entities.User; import org.slf4j.Logger; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/WarnCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/WarnCommand.java index 7802bf73..f4a6b359 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/WarnCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/WarnCommand.java @@ -27,10 +27,10 @@ import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.FriendlyBot; -import io.paradaux.friendlybot.managers.PermissionManager; -import io.paradaux.friendlybot.managers.PunishmentManager; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.core.utils.models.types.PrivilegedCommand; +import io.paradaux.friendlybot.managers.PermissionManager; +import io.paradaux.friendlybot.managers.PunishmentManager; import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Message; import org.slf4j.Logger; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/util/ClearColorCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/util/ClearColorCommand.java index 92f470f1..fe9beed2 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/util/ClearColorCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/util/ClearColorCommand.java @@ -1,11 +1,11 @@ package io.paradaux.friendlybot.bot.commands.util; import com.jagrosh.jdautilities.command.CommandEvent; -import io.paradaux.friendlybot.managers.UserSettingsManager; import io.paradaux.friendlybot.core.utils.NumberUtils; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.core.utils.models.database.UserSettingsEntry; import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; +import io.paradaux.friendlybot.managers.UserSettingsManager; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.Guild; import net.dv8tion.jda.api.entities.Message; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/util/SetColorCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/util/SetColorCommand.java index 61e13128..aedd8689 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/util/SetColorCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/util/SetColorCommand.java @@ -1,12 +1,12 @@ package io.paradaux.friendlybot.bot.commands.util; import com.jagrosh.jdautilities.command.CommandEvent; -import io.paradaux.friendlybot.managers.RoleManager; -import io.paradaux.friendlybot.managers.UserSettingsManager; import io.paradaux.friendlybot.core.utils.NumberUtils; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.core.utils.models.database.UserSettingsEntry; import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; +import io.paradaux.friendlybot.managers.RoleManager; +import io.paradaux.friendlybot.managers.UserSettingsManager; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.Guild; import net.dv8tion.jda.api.entities.Message; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/util/TagCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/util/TagCommand.java index 819d0a2a..bfffa5ee 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/util/TagCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/util/TagCommand.java @@ -26,13 +26,13 @@ package io.paradaux.friendlybot.bot.commands.util; import com.jagrosh.jdautilities.command.CommandEvent; -import io.paradaux.friendlybot.managers.MongoManager; -import io.paradaux.friendlybot.managers.TagManager; import io.paradaux.friendlybot.core.utils.NumberUtils; import io.paradaux.friendlybot.core.utils.TimeUtils; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.core.utils.models.database.TagEntry; import io.paradaux.friendlybot.core.utils.models.types.PrivilegedCommand; +import io.paradaux.friendlybot.managers.MongoManager; +import io.paradaux.friendlybot.managers.TagManager; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Message; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/util/UserInfoCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/util/UserInfoCommand.java index e0aa56aa..49172f36 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/util/UserInfoCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/util/UserInfoCommand.java @@ -26,12 +26,12 @@ package io.paradaux.friendlybot.bot.commands.util; import com.jagrosh.jdautilities.command.CommandEvent; -import io.paradaux.friendlybot.managers.PermissionManager; import io.paradaux.friendlybot.core.utils.StringUtils; import io.paradaux.friendlybot.core.utils.TimeUtils; import io.paradaux.friendlybot.core.utils.embeds.command.UserInfoEmbed; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.core.utils.models.types.PrivilegedCommand; +import io.paradaux.friendlybot.managers.PermissionManager; import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Role; import org.slf4j.Logger; diff --git a/src/main/java/io/paradaux/friendlybot/core/cache/GuildCache.java b/src/main/java/io/paradaux/friendlybot/core/cache/GuildCache.java index 69912524..4e5b06af 100644 --- a/src/main/java/io/paradaux/friendlybot/core/cache/GuildCache.java +++ b/src/main/java/io/paradaux/friendlybot/core/cache/GuildCache.java @@ -1,7 +1,7 @@ package io.paradaux.friendlybot.core.cache; -import io.paradaux.friendlybot.data.database.models.FGuild; -import io.paradaux.friendlybot.data.database.models.query.QFGuild; +import io.paradaux.friendlybot.core.data.database.models.FGuild; +import io.paradaux.friendlybot.core.data.database.models.query.QFGuild; import net.dv8tion.jda.api.JDA; import net.dv8tion.jda.api.entities.Guild; import org.jetbrains.annotations.NotNull; diff --git a/src/main/java/io/paradaux/friendlybot/core/utils/API.java b/src/main/java/io/paradaux/friendlybot/core/utils/API.java index 921c9155..ba01d753 100644 --- a/src/main/java/io/paradaux/friendlybot/core/utils/API.java +++ b/src/main/java/io/paradaux/friendlybot/core/utils/API.java @@ -25,8 +25,8 @@ package io.paradaux.friendlybot.core.utils; -import io.paradaux.friendlybot.managers.*; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.managers.*; import org.slf4j.Logger; public class API { diff --git a/src/main/java/io/paradaux/friendlybot/core/utils/IOUtils.java b/src/main/java/io/paradaux/friendlybot/core/utils/IOUtils.java index ad6f07d3..6941dc60 100644 --- a/src/main/java/io/paradaux/friendlybot/core/utils/IOUtils.java +++ b/src/main/java/io/paradaux/friendlybot/core/utils/IOUtils.java @@ -4,11 +4,7 @@ import io.paradaux.friendlybot.managers.IOManager; import javax.annotation.Nullable; -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; +import java.io.*; public class IOUtils { diff --git a/src/main/java/io/paradaux/friendlybot/core/utils/models/types/BaseCommand.java b/src/main/java/io/paradaux/friendlybot/core/utils/models/types/BaseCommand.java index 6a5c527b..d707b9db 100644 --- a/src/main/java/io/paradaux/friendlybot/core/utils/models/types/BaseCommand.java +++ b/src/main/java/io/paradaux/friendlybot/core/utils/models/types/BaseCommand.java @@ -26,10 +26,10 @@ package io.paradaux.friendlybot.core.utils.models.types; import com.jagrosh.jdautilities.command.Command; -import io.paradaux.friendlybot.managers.PermissionManager; import io.paradaux.friendlybot.core.utils.embeds.notices.SyntaxErrorEmbed; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.core.utils.models.exceptions.NoSuchUserException; +import io.paradaux.friendlybot.managers.PermissionManager; import net.dv8tion.jda.api.entities.Guild; import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Message; diff --git a/src/main/java/io/paradaux/friendlybot/core/utils/models/types/PrivilegedCommand.java b/src/main/java/io/paradaux/friendlybot/core/utils/models/types/PrivilegedCommand.java index f29ee1fd..a6e3b83b 100644 --- a/src/main/java/io/paradaux/friendlybot/core/utils/models/types/PrivilegedCommand.java +++ b/src/main/java/io/paradaux/friendlybot/core/utils/models/types/PrivilegedCommand.java @@ -25,9 +25,9 @@ package io.paradaux.friendlybot.core.utils.models.types; -import io.paradaux.friendlybot.managers.PermissionManager; import io.paradaux.friendlybot.core.utils.embeds.notices.NoPermissionEmbed; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.managers.PermissionManager; import net.dv8tion.jda.api.Permission; import net.dv8tion.jda.api.entities.Guild; import net.dv8tion.jda.api.entities.Member; diff --git a/src/main/java/io/paradaux/friendlybot/discord/listeners/DotCommandsListener.java b/src/main/java/io/paradaux/friendlybot/discord/listeners/DotCommandsListener.java index 53598b17..512c082f 100644 --- a/src/main/java/io/paradaux/friendlybot/discord/listeners/DotCommandsListener.java +++ b/src/main/java/io/paradaux/friendlybot/discord/listeners/DotCommandsListener.java @@ -25,10 +25,10 @@ * SOFTWARE. */ -import io.paradaux.friendlybot.managers.TagManager; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.core.utils.models.database.TagEntry; import io.paradaux.friendlybot.core.utils.models.types.DiscordEventListener; +import io.paradaux.friendlybot.managers.TagManager; import net.dv8tion.jda.api.entities.ChannelType; import net.dv8tion.jda.api.entities.Message; import net.dv8tion.jda.api.events.message.MessageReceivedEvent; diff --git a/src/main/java/io/paradaux/friendlybot/discord/listeners/TagListener.java b/src/main/java/io/paradaux/friendlybot/discord/listeners/TagListener.java index a1d564fb..57f2dab3 100644 --- a/src/main/java/io/paradaux/friendlybot/discord/listeners/TagListener.java +++ b/src/main/java/io/paradaux/friendlybot/discord/listeners/TagListener.java @@ -25,10 +25,10 @@ package io.paradaux.friendlybot.discord.listeners; -import io.paradaux.friendlybot.managers.TagManager; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.core.utils.models.database.TagEntry; import io.paradaux.friendlybot.core.utils.models.types.DiscordEventListener; +import io.paradaux.friendlybot.managers.TagManager; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.ChannelType; import net.dv8tion.jda.api.entities.Message; diff --git a/src/main/java/io/paradaux/friendlybot/discord/listeners/logging/MessageDeleteLog.java b/src/main/java/io/paradaux/friendlybot/discord/listeners/logging/MessageDeleteLog.java index 9d4b6738..e8876157 100644 --- a/src/main/java/io/paradaux/friendlybot/discord/listeners/logging/MessageDeleteLog.java +++ b/src/main/java/io/paradaux/friendlybot/discord/listeners/logging/MessageDeleteLog.java @@ -25,13 +25,13 @@ package io.paradaux.friendlybot.discord.listeners.logging; -import io.paradaux.friendlybot.managers.DiscordBotManager; -import io.paradaux.friendlybot.managers.GuildSettingsManager; -import io.paradaux.friendlybot.managers.MongoManager; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.core.utils.models.database.GuildSettingsEntry; import io.paradaux.friendlybot.core.utils.models.database.MessageEntry; import io.paradaux.friendlybot.core.utils.models.types.DiscordEventListener; +import io.paradaux.friendlybot.managers.DiscordBotManager; +import io.paradaux.friendlybot.managers.GuildSettingsManager; +import io.paradaux.friendlybot.managers.MongoManager; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.TextChannel; import net.dv8tion.jda.api.entities.User; diff --git a/src/main/java/io/paradaux/friendlybot/discord/listeners/logging/MessageLog.java b/src/main/java/io/paradaux/friendlybot/discord/listeners/logging/MessageLog.java index 9a6bc706..0ad46b68 100644 --- a/src/main/java/io/paradaux/friendlybot/discord/listeners/logging/MessageLog.java +++ b/src/main/java/io/paradaux/friendlybot/discord/listeners/logging/MessageLog.java @@ -25,13 +25,13 @@ package io.paradaux.friendlybot.discord.listeners.logging; -import io.paradaux.friendlybot.managers.DiscordBotManager; -import io.paradaux.friendlybot.managers.GuildSettingsManager; -import io.paradaux.friendlybot.managers.MongoManager; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.core.utils.models.database.GuildSettingsEntry; import io.paradaux.friendlybot.core.utils.models.database.MessageEntry; import io.paradaux.friendlybot.core.utils.models.types.DiscordEventListener; +import io.paradaux.friendlybot.managers.DiscordBotManager; +import io.paradaux.friendlybot.managers.GuildSettingsManager; +import io.paradaux.friendlybot.managers.MongoManager; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.TextChannel; import net.dv8tion.jda.api.events.message.MessageReceivedEvent; diff --git a/src/main/java/io/paradaux/friendlybot/discord/listeners/logging/UpdatedMessageLog.java b/src/main/java/io/paradaux/friendlybot/discord/listeners/logging/UpdatedMessageLog.java index f4936de1..5b26b660 100644 --- a/src/main/java/io/paradaux/friendlybot/discord/listeners/logging/UpdatedMessageLog.java +++ b/src/main/java/io/paradaux/friendlybot/discord/listeners/logging/UpdatedMessageLog.java @@ -25,13 +25,13 @@ package io.paradaux.friendlybot.discord.listeners.logging; -import io.paradaux.friendlybot.managers.DiscordBotManager; -import io.paradaux.friendlybot.managers.GuildSettingsManager; -import io.paradaux.friendlybot.managers.MongoManager; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.core.utils.models.database.GuildSettingsEntry; import io.paradaux.friendlybot.core.utils.models.database.MessageEntry; import io.paradaux.friendlybot.core.utils.models.types.DiscordEventListener; +import io.paradaux.friendlybot.managers.DiscordBotManager; +import io.paradaux.friendlybot.managers.GuildSettingsManager; +import io.paradaux.friendlybot.managers.MongoManager; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.TextChannel; import net.dv8tion.jda.api.entities.User; diff --git a/src/main/java/io/paradaux/friendlybot/discord/listeners/logging/audit/GuildJoinLog.java b/src/main/java/io/paradaux/friendlybot/discord/listeners/logging/audit/GuildJoinLog.java index f64b4bc9..ec3826e4 100644 --- a/src/main/java/io/paradaux/friendlybot/discord/listeners/logging/audit/GuildJoinLog.java +++ b/src/main/java/io/paradaux/friendlybot/discord/listeners/logging/audit/GuildJoinLog.java @@ -25,11 +25,11 @@ package io.paradaux.friendlybot.discord.listeners.logging.audit; -import io.paradaux.friendlybot.managers.DiscordBotManager; -import io.paradaux.friendlybot.managers.GuildSettingsManager; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.core.utils.models.database.GuildSettingsEntry; import io.paradaux.friendlybot.core.utils.models.types.DiscordEventListener; +import io.paradaux.friendlybot.managers.DiscordBotManager; +import io.paradaux.friendlybot.managers.GuildSettingsManager; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.events.guild.member.GuildMemberJoinEvent; import org.jetbrains.annotations.NotNull; diff --git a/src/main/java/io/paradaux/friendlybot/discord/listeners/logging/audit/GuildLeaveLog.java b/src/main/java/io/paradaux/friendlybot/discord/listeners/logging/audit/GuildLeaveLog.java index 903a789c..a85ff81b 100644 --- a/src/main/java/io/paradaux/friendlybot/discord/listeners/logging/audit/GuildLeaveLog.java +++ b/src/main/java/io/paradaux/friendlybot/discord/listeners/logging/audit/GuildLeaveLog.java @@ -25,11 +25,11 @@ package io.paradaux.friendlybot.discord.listeners.logging.audit; -import io.paradaux.friendlybot.managers.DiscordBotManager; -import io.paradaux.friendlybot.managers.GuildSettingsManager; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.core.utils.models.database.GuildSettingsEntry; import io.paradaux.friendlybot.core.utils.models.types.DiscordEventListener; +import io.paradaux.friendlybot.managers.DiscordBotManager; +import io.paradaux.friendlybot.managers.GuildSettingsManager; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.events.guild.member.GuildMemberRemoveEvent; import org.jetbrains.annotations.NotNull; diff --git a/src/main/java/io/paradaux/friendlybot/discord/listeners/modmail/ModMailChannelListener.java b/src/main/java/io/paradaux/friendlybot/discord/listeners/modmail/ModMailChannelListener.java index ab96ab9e..0f1aa4af 100644 --- a/src/main/java/io/paradaux/friendlybot/discord/listeners/modmail/ModMailChannelListener.java +++ b/src/main/java/io/paradaux/friendlybot/discord/listeners/modmail/ModMailChannelListener.java @@ -25,9 +25,6 @@ package io.paradaux.friendlybot.discord.listeners.modmail; -import io.paradaux.friendlybot.managers.DiscordBotManager; -import io.paradaux.friendlybot.managers.GuildSettingsManager; -import io.paradaux.friendlybot.managers.MongoManager; import io.paradaux.friendlybot.core.utils.embeds.modmail.ModMailReceivedEmbed; import io.paradaux.friendlybot.core.utils.embeds.modmail.ModMailSentEmbed; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; @@ -36,6 +33,9 @@ import io.paradaux.friendlybot.core.utils.models.enums.TicketStatus; import io.paradaux.friendlybot.core.utils.models.interfaces.Embed; import io.paradaux.friendlybot.core.utils.models.types.DiscordEventListener; +import io.paradaux.friendlybot.managers.DiscordBotManager; +import io.paradaux.friendlybot.managers.GuildSettingsManager; +import io.paradaux.friendlybot.managers.MongoManager; import net.dv8tion.jda.api.entities.Message; import net.dv8tion.jda.api.events.message.MessageReceivedEvent; import org.jetbrains.annotations.NotNull; diff --git a/src/main/java/io/paradaux/friendlybot/discord/listeners/verification/VerificationCodeReceivedListener.java b/src/main/java/io/paradaux/friendlybot/discord/listeners/verification/VerificationCodeReceivedListener.java index 3973c8c8..e34ff0a7 100644 --- a/src/main/java/io/paradaux/friendlybot/discord/listeners/verification/VerificationCodeReceivedListener.java +++ b/src/main/java/io/paradaux/friendlybot/discord/listeners/verification/VerificationCodeReceivedListener.java @@ -25,12 +25,12 @@ package io.paradaux.friendlybot.discord.listeners.verification; -import io.paradaux.friendlybot.managers.DiscordBotManager; -import io.paradaux.friendlybot.managers.MongoManager; -import io.paradaux.friendlybot.managers.VerificationManager; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.core.utils.models.exceptions.VerificationException; import io.paradaux.friendlybot.core.utils.models.types.DiscordEventListener; +import io.paradaux.friendlybot.managers.DiscordBotManager; +import io.paradaux.friendlybot.managers.MongoManager; +import io.paradaux.friendlybot.managers.VerificationManager; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.ChannelType; import net.dv8tion.jda.api.entities.Message; diff --git a/src/main/java/io/paradaux/friendlybot/discord/listeners/verification/VerificationEmailReceivedListener.java b/src/main/java/io/paradaux/friendlybot/discord/listeners/verification/VerificationEmailReceivedListener.java index 666c0563..f86221a2 100644 --- a/src/main/java/io/paradaux/friendlybot/discord/listeners/verification/VerificationEmailReceivedListener.java +++ b/src/main/java/io/paradaux/friendlybot/discord/listeners/verification/VerificationEmailReceivedListener.java @@ -25,13 +25,13 @@ package io.paradaux.friendlybot.discord.listeners.verification; -import io.paradaux.friendlybot.managers.DiscordBotManager; -import io.paradaux.friendlybot.managers.MongoManager; -import io.paradaux.friendlybot.managers.VerificationManager; import io.paradaux.friendlybot.core.utils.StringUtils; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.core.utils.models.exceptions.VerificationException; import io.paradaux.friendlybot.core.utils.models.types.DiscordEventListener; +import io.paradaux.friendlybot.managers.DiscordBotManager; +import io.paradaux.friendlybot.managers.MongoManager; +import io.paradaux.friendlybot.managers.VerificationManager; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.ChannelType; import net.dv8tion.jda.api.entities.Message; diff --git a/src/main/java/io/paradaux/friendlybot/managers/DiscordBotManager.java b/src/main/java/io/paradaux/friendlybot/managers/DiscordBotManager.java index 442011d7..f94cb0b8 100644 --- a/src/main/java/io/paradaux/friendlybot/managers/DiscordBotManager.java +++ b/src/main/java/io/paradaux/friendlybot/managers/DiscordBotManager.java @@ -28,11 +28,15 @@ import com.jagrosh.jdautilities.command.CommandClient; import com.jagrosh.jdautilities.command.CommandClientBuilder; import com.jagrosh.jdautilities.commons.waiter.EventWaiter; -import io.paradaux.friendlybot.bot.commands.CatCommand; -import io.paradaux.friendlybot.discord.commands.fun.*; -import io.paradaux.friendlybot.discord.commands.staff.moderation.*; -import io.paradaux.friendlybot.discord.commands.staff.technician.*; -import io.paradaux.friendlybot.discord.commands.utility.*; +import io.paradaux.friendlybot.bot.commands.*; +import io.paradaux.friendlybot.bot.commands.joke.CharmanderCommand; +import io.paradaux.friendlybot.bot.commands.joke.LmgtfyCommand; +import io.paradaux.friendlybot.bot.commands.joke.MonkeCommand; +import io.paradaux.friendlybot.bot.commands.joke.YodaifyCommand; +import io.paradaux.friendlybot.bot.commands.privileged.*; +import io.paradaux.friendlybot.bot.commands.util.*; +import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; +import io.paradaux.friendlybot.core.utils.models.exceptions.ManagerNotReadyException; import io.paradaux.friendlybot.discord.listeners.*; import io.paradaux.friendlybot.discord.listeners.logging.MessageDeleteLog; import io.paradaux.friendlybot.discord.listeners.logging.MessageLog; @@ -43,8 +47,6 @@ import io.paradaux.friendlybot.discord.listeners.utility.LongMessageListener; import io.paradaux.friendlybot.discord.listeners.verification.VerificationCodeReceivedListener; import io.paradaux.friendlybot.discord.listeners.verification.VerificationEmailReceivedListener; -import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.core.utils.models.exceptions.ManagerNotReadyException; import net.dv8tion.jda.api.JDA; import net.dv8tion.jda.api.JDABuilder; import net.dv8tion.jda.api.entities.*; diff --git a/src/main/java/io/paradaux/friendlybot/managers/IOManager.java b/src/main/java/io/paradaux/friendlybot/managers/IOManager.java index 25e92af9..2c878dc3 100644 --- a/src/main/java/io/paradaux/friendlybot/managers/IOManager.java +++ b/src/main/java/io/paradaux/friendlybot/managers/IOManager.java @@ -30,7 +30,6 @@ import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.core.utils.models.configuration.PermissionEntry; import io.paradaux.friendlybot.core.utils.models.exceptions.ManagerNotReadyException; -import io.paradaux.friendlybot.core.utils.models.exceptions.NoSuchResourceException; import org.slf4j.Logger; import javax.annotation.Nullable; diff --git a/src/main/java/io/paradaux/friendlybot/managers/PunishmentManager.java b/src/main/java/io/paradaux/friendlybot/managers/PunishmentManager.java index 1e5ebb0e..4991539b 100644 --- a/src/main/java/io/paradaux/friendlybot/managers/PunishmentManager.java +++ b/src/main/java/io/paradaux/friendlybot/managers/PunishmentManager.java @@ -2,20 +2,11 @@ import io.paradaux.friendlybot.core.utils.TimeUtils; import io.paradaux.friendlybot.core.utils.embeds.moderation.BannedEmbed; -import io.paradaux.friendlybot.core.utils.models.database.BanEntry; -import io.paradaux.friendlybot.core.utils.models.database.GuildSettingsEntry; -import io.paradaux.friendlybot.core.utils.models.database.KickEntry; -import io.paradaux.friendlybot.core.utils.models.database.RescindmentEntry; -import io.paradaux.friendlybot.core.utils.models.database.TempBanEntry; -import io.paradaux.friendlybot.core.utils.models.database.WarningEntry; +import io.paradaux.friendlybot.core.utils.models.database.*; import io.paradaux.friendlybot.core.utils.models.exceptions.ManagerNotReadyException; import io.paradaux.friendlybot.core.utils.models.types.ModerationAction; import net.dv8tion.jda.api.EmbedBuilder; -import net.dv8tion.jda.api.entities.Guild; -import net.dv8tion.jda.api.entities.Member; -import net.dv8tion.jda.api.entities.MessageEmbed; -import net.dv8tion.jda.api.entities.TextChannel; -import net.dv8tion.jda.api.entities.User; +import net.dv8tion.jda.api.entities.*; import java.util.Date; From deca3c2cc3553eaf00d7521a4318e99c43785593 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Sun, 12 Sep 2021 21:23:19 +0100 Subject: [PATCH 105/121] Move into image package --- .../friendlybot/bot/commands/{ => image}/CatCommand.java | 4 ++-- .../friendlybot/bot/commands/{ => image}/CoinFlipCommand.java | 4 +++- .../friendlybot/bot/commands/{ => image}/DogCommand.java | 2 +- .../bot/commands/{ => image}/EightBallCommand.java | 2 +- .../friendlybot/bot/commands/{ => image}/InspireCommand.java | 2 +- .../friendlybot/bot/commands/{ => image}/MemeCommand.java | 2 +- .../friendlybot/bot/commands/{ => image}/MonkeyCommand.java | 2 +- .../friendlybot/bot/commands/{ => image}/XKCDCommand.java | 2 +- 8 files changed, 11 insertions(+), 9 deletions(-) rename src/main/java/io/paradaux/friendlybot/bot/commands/{ => image}/CatCommand.java (93%) rename src/main/java/io/paradaux/friendlybot/bot/commands/{ => image}/CoinFlipCommand.java (92%) rename src/main/java/io/paradaux/friendlybot/bot/commands/{ => image}/DogCommand.java (96%) rename src/main/java/io/paradaux/friendlybot/bot/commands/{ => image}/EightBallCommand.java (98%) rename src/main/java/io/paradaux/friendlybot/bot/commands/{ => image}/InspireCommand.java (98%) rename src/main/java/io/paradaux/friendlybot/bot/commands/{ => image}/MemeCommand.java (99%) rename src/main/java/io/paradaux/friendlybot/bot/commands/{ => image}/MonkeyCommand.java (97%) rename src/main/java/io/paradaux/friendlybot/bot/commands/{ => image}/XKCDCommand.java (98%) diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/CatCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/image/CatCommand.java similarity index 93% rename from src/main/java/io/paradaux/friendlybot/bot/commands/CatCommand.java rename to src/main/java/io/paradaux/friendlybot/bot/commands/image/CatCommand.java index 8f0df773..5c30cc9f 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/CatCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/image/CatCommand.java @@ -1,4 +1,4 @@ -package io.paradaux.friendlybot.bot.commands; +package io.paradaux.friendlybot.bot.commands.image; import io.paradaux.friendlybot.bot.command.Command; import io.paradaux.friendlybot.bot.command.CommandBody; @@ -13,7 +13,7 @@ import java.net.http.HttpResponse; import java.util.concurrent.CompletableFuture; -@Command(name="cat", description = "Get yourself a cute cat photo!", permission = "command.cat") +@Command(name="cat", description = "Get yourself a cute cat photo!", permission = "command.cat", aliases = {"feline", "kitten"}) public class CatCommand extends DiscordCommand { private static final String CAT_API = "https://api.thecatapi.com/v1/images/search"; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/CoinFlipCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/image/CoinFlipCommand.java similarity index 92% rename from src/main/java/io/paradaux/friendlybot/bot/commands/CoinFlipCommand.java rename to src/main/java/io/paradaux/friendlybot/bot/commands/image/CoinFlipCommand.java index 91405660..e79e40a4 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/CoinFlipCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/image/CoinFlipCommand.java @@ -1,6 +1,7 @@ -package io.paradaux.friendlybot.bot.commands; +package io.paradaux.friendlybot.bot.commands.image; import com.jagrosh.jdautilities.command.CommandEvent; +import io.paradaux.friendlybot.bot.command.Command; import io.paradaux.friendlybot.core.utils.NumberUtils; import io.paradaux.friendlybot.core.utils.RandomUtils; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; @@ -12,6 +13,7 @@ import java.util.concurrent.TimeUnit; +@Command(name = "", description = "", permission = "", aliases = {}) public class CoinFlipCommand extends BaseCommand { private static final String COIN_FLIP_GIF = "https://media1.tenor.com/images/49dc6597439a635b1614544d8e090c54/tenor.gif"; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/DogCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/image/DogCommand.java similarity index 96% rename from src/main/java/io/paradaux/friendlybot/bot/commands/DogCommand.java rename to src/main/java/io/paradaux/friendlybot/bot/commands/image/DogCommand.java index 12b97a59..db8467ad 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/DogCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/image/DogCommand.java @@ -1,4 +1,4 @@ -package io.paradaux.friendlybot.bot.commands; +package io.paradaux.friendlybot.bot.commands.image; import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.core.utils.NumberUtils; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/EightBallCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/image/EightBallCommand.java similarity index 98% rename from src/main/java/io/paradaux/friendlybot/bot/commands/EightBallCommand.java rename to src/main/java/io/paradaux/friendlybot/bot/commands/image/EightBallCommand.java index 8b2ad44c..fd62b924 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/EightBallCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/image/EightBallCommand.java @@ -23,7 +23,7 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.bot.commands; +package io.paradaux.friendlybot.bot.commands.image; import com.google.gson.Gson; import com.google.gson.JsonArray; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/InspireCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/image/InspireCommand.java similarity index 98% rename from src/main/java/io/paradaux/friendlybot/bot/commands/InspireCommand.java rename to src/main/java/io/paradaux/friendlybot/bot/commands/image/InspireCommand.java index 40cc247a..59a43480 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/InspireCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/image/InspireCommand.java @@ -23,7 +23,7 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.bot.commands; +package io.paradaux.friendlybot.bot.commands.image; import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.core.utils.NumberUtils; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/MemeCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/image/MemeCommand.java similarity index 99% rename from src/main/java/io/paradaux/friendlybot/bot/commands/MemeCommand.java rename to src/main/java/io/paradaux/friendlybot/bot/commands/image/MemeCommand.java index ba339e1f..46287f43 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/MemeCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/image/MemeCommand.java @@ -23,7 +23,7 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.bot.commands; +package io.paradaux.friendlybot.bot.commands.image; import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.core.utils.HttpUtils; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/MonkeyCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/image/MonkeyCommand.java similarity index 97% rename from src/main/java/io/paradaux/friendlybot/bot/commands/MonkeyCommand.java rename to src/main/java/io/paradaux/friendlybot/bot/commands/image/MonkeyCommand.java index 461ddf61..5a5eef6b 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/MonkeyCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/image/MonkeyCommand.java @@ -1,4 +1,4 @@ -package io.paradaux.friendlybot.bot.commands; +package io.paradaux.friendlybot.bot.commands.image; import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.core.utils.NumberUtils; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/XKCDCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/image/XKCDCommand.java similarity index 98% rename from src/main/java/io/paradaux/friendlybot/bot/commands/XKCDCommand.java rename to src/main/java/io/paradaux/friendlybot/bot/commands/image/XKCDCommand.java index 66ddfc52..e1b1b335 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/XKCDCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/image/XKCDCommand.java @@ -23,7 +23,7 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.bot.commands; +package io.paradaux.friendlybot.bot.commands.image; import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.core.utils.NumberUtils; From 2bc9c19d2893541e54c970d15dc1f00c5cf1ff9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Sun, 12 Sep 2021 21:23:31 +0100 Subject: [PATCH 106/121] Add alias support --- .../friendlybot/bot/command/Command.java | 1 + .../friendlybot/bot/command/CommandBody.java | 8 +++++++- .../bot/command/CommandListener.java | 6 +++--- .../bot/command/DiscordCommand.java | 20 ++++++++++++++++++- 4 files changed, 30 insertions(+), 5 deletions(-) diff --git a/src/main/java/io/paradaux/friendlybot/bot/command/Command.java b/src/main/java/io/paradaux/friendlybot/bot/command/Command.java index bf313c4e..252dddf4 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/command/Command.java +++ b/src/main/java/io/paradaux/friendlybot/bot/command/Command.java @@ -9,5 +9,6 @@ String name() default ""; String description() default ""; String permission() default ""; + String[] aliases() default {}; } diff --git a/src/main/java/io/paradaux/friendlybot/bot/command/CommandBody.java b/src/main/java/io/paradaux/friendlybot/bot/command/CommandBody.java index 17c32baa..0a1a90fe 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/command/CommandBody.java +++ b/src/main/java/io/paradaux/friendlybot/bot/command/CommandBody.java @@ -15,13 +15,14 @@ public class CommandBody { private final String description; private final String[] args; + private final String[] aliases; private final Message message; private final MessageChannel channel; private final Member member; private final User user; - public CommandBody(Message message, String command, String permission, String description,String[] args) { + public CommandBody(Message message, String command, String permission, String description, String[] args, String[] aliases) { this.jda = message.getJDA(); this.command = command; @@ -29,6 +30,7 @@ public CommandBody(Message message, String command, String permission, String de this.description = description; this.args = args; + this.aliases = aliases; this.message = message; this.channel = message.getChannel(); @@ -74,4 +76,8 @@ public String getPermission() { public String getDescription() { return description; } + + public String[] getAliases() { + return aliases; + } } diff --git a/src/main/java/io/paradaux/friendlybot/bot/command/CommandListener.java b/src/main/java/io/paradaux/friendlybot/bot/command/CommandListener.java index 9ed9db71..35678d3e 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/command/CommandListener.java +++ b/src/main/java/io/paradaux/friendlybot/bot/command/CommandListener.java @@ -52,8 +52,8 @@ public void onGuildMessageReceived(@NotNull GuildMessageReceivedEvent event) { } for (DiscordCommand c : commands) { - if (c.getCommand().equalsIgnoreCase(command)) { - c.execute(guild, new CommandBody(message, command, c.getPermission(), c.getDescription(), args)); + if (c.getNames().contains(command)) { + c.execute(guild, new CommandBody(message, command, c.getPermission(), c.getDescription(), args, c.getAliases())); break; } } @@ -98,7 +98,7 @@ public void registerCommand(DiscordCommand command) { Command cmd = clazz.getAnnotation(Command.class); - command.register(cmd.name(), cmd.description(), cmd.permission()); + command.register(cmd.name(), cmd.description(), cmd.permission(), cmd.aliases()); for (DiscordCommand c : commands) { if (c.getCommand().equals(command.getCommand())) { diff --git a/src/main/java/io/paradaux/friendlybot/bot/command/DiscordCommand.java b/src/main/java/io/paradaux/friendlybot/bot/command/DiscordCommand.java index b7544b87..0d80ac31 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/command/DiscordCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/command/DiscordCommand.java @@ -4,6 +4,9 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.util.ArrayList; +import java.util.List; + @Command(name = "undefined", description = "undefined", permission = "undefined") public abstract class DiscordCommand { @@ -13,14 +16,21 @@ public abstract class DiscordCommand { private String command; private String description; private String permission; + private String[] aliases; + + private List names; public abstract void execute(FGuild guild, CommandBody body); - public void register(String command, String description, String permission) { + public void register(String command, String description, String permission, String[] aliases) { isRegistered = true; this.command = command; this.description = description; this.permission = permission; + this.aliases = aliases; + this.names = new ArrayList<>(); + names.addAll(List.of(aliases)); + names.add(command); } public void unregister() { @@ -46,4 +56,12 @@ public Logger getLogger() { public String getPermission() { return permission; } + + public String[] getAliases() { + return aliases; + } + + public List getNames() { + return names; + } } From cbd3ccffe753f5e4fd130f3389b08b5a8d96dff9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Sun, 12 Sep 2021 21:24:03 +0100 Subject: [PATCH 107/121] Imports --- src/main/java/io/paradaux/friendlybot/bot/FBot.java | 2 +- .../io/paradaux/friendlybot/bot/commands/joke/MonkeCommand.java | 2 +- .../paradaux/friendlybot/bot/commands/joke/YodaifyCommand.java | 2 +- .../io/paradaux/friendlybot/managers/DiscordBotManager.java | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/io/paradaux/friendlybot/bot/FBot.java b/src/main/java/io/paradaux/friendlybot/bot/FBot.java index db23b4a8..d7a14568 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/FBot.java +++ b/src/main/java/io/paradaux/friendlybot/bot/FBot.java @@ -2,7 +2,7 @@ import com.jagrosh.jdautilities.commons.waiter.EventWaiter; import io.paradaux.friendlybot.bot.command.CommandListener; -import io.paradaux.friendlybot.bot.commands.CatCommand; +import io.paradaux.friendlybot.bot.commands.image.CatCommand; import io.paradaux.friendlybot.core.data.config.FConfiguration; import net.dv8tion.jda.api.JDA; import net.dv8tion.jda.api.JDABuilder; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/joke/MonkeCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/joke/MonkeCommand.java index 1617e8d8..f76e617c 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/joke/MonkeCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/joke/MonkeCommand.java @@ -1,7 +1,7 @@ package io.paradaux.friendlybot.bot.commands.joke; import com.jagrosh.jdautilities.command.CommandEvent; -import io.paradaux.friendlybot.bot.commands.MemeCommand; +import io.paradaux.friendlybot.bot.commands.image.MemeCommand; import io.paradaux.friendlybot.core.utils.HttpUtils; import io.paradaux.friendlybot.core.utils.NumberUtils; import io.paradaux.friendlybot.core.utils.RandomUtils; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/joke/YodaifyCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/joke/YodaifyCommand.java index ee681c0a..7875fb23 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/joke/YodaifyCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/joke/YodaifyCommand.java @@ -26,7 +26,7 @@ package io.paradaux.friendlybot.bot.commands.joke; import com.jagrosh.jdautilities.command.CommandEvent; -import io.paradaux.friendlybot.bot.commands.MemeCommand; +import io.paradaux.friendlybot.bot.commands.image.MemeCommand; import io.paradaux.friendlybot.core.utils.HttpUtils; import io.paradaux.friendlybot.core.utils.NumberUtils; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; diff --git a/src/main/java/io/paradaux/friendlybot/managers/DiscordBotManager.java b/src/main/java/io/paradaux/friendlybot/managers/DiscordBotManager.java index f94cb0b8..5dbd6d3b 100644 --- a/src/main/java/io/paradaux/friendlybot/managers/DiscordBotManager.java +++ b/src/main/java/io/paradaux/friendlybot/managers/DiscordBotManager.java @@ -28,7 +28,7 @@ import com.jagrosh.jdautilities.command.CommandClient; import com.jagrosh.jdautilities.command.CommandClientBuilder; import com.jagrosh.jdautilities.commons.waiter.EventWaiter; -import io.paradaux.friendlybot.bot.commands.*; +import io.paradaux.friendlybot.bot.commands.image.*; import io.paradaux.friendlybot.bot.commands.joke.CharmanderCommand; import io.paradaux.friendlybot.bot.commands.joke.LmgtfyCommand; import io.paradaux.friendlybot.bot.commands.joke.MonkeCommand; From 72e85c8cfc5d68a34e11d7e47eb7f9c373e66f77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Sun, 12 Sep 2021 21:27:01 +0100 Subject: [PATCH 108/121] Add default annotation --- .../io/paradaux/friendlybot/bot/commands/image/DogCommand.java | 2 ++ .../friendlybot/bot/commands/image/EightBallCommand.java | 2 ++ .../friendlybot/bot/commands/image/InspireCommand.java | 2 ++ .../paradaux/friendlybot/bot/commands/image/MemeCommand.java | 2 ++ .../paradaux/friendlybot/bot/commands/image/MonkeyCommand.java | 2 ++ .../paradaux/friendlybot/bot/commands/image/XKCDCommand.java | 2 ++ .../friendlybot/bot/commands/joke/CharmanderCommand.java | 2 ++ .../paradaux/friendlybot/bot/commands/joke/LmgtfyCommand.java | 2 ++ .../paradaux/friendlybot/bot/commands/joke/MonkeCommand.java | 2 ++ .../paradaux/friendlybot/bot/commands/joke/YodaifyCommand.java | 2 ++ .../bot/commands/privileged/AnnouncementCommand.java | 2 ++ .../friendlybot/bot/commands/privileged/BanCommand.java | 2 ++ .../friendlybot/bot/commands/privileged/CiteCommand.java | 2 ++ .../friendlybot/bot/commands/privileged/DmCommand.java | 2 ++ .../friendlybot/bot/commands/privileged/KickCommand.java | 2 ++ .../friendlybot/bot/commands/privileged/LookupCommand.java | 2 ++ .../friendlybot/bot/commands/privileged/PruneCommand.java | 2 ++ .../friendlybot/bot/commands/privileged/RespondCommand.java | 2 ++ .../friendlybot/bot/commands/privileged/SayCommand.java | 2 ++ .../friendlybot/bot/commands/privileged/SendEmbedCommand.java | 2 ++ .../friendlybot/bot/commands/privileged/TempBanCommand.java | 2 ++ .../friendlybot/bot/commands/privileged/TicketCommand.java | 2 ++ .../bot/commands/privileged/VerificationCommand.java | 2 ++ .../friendlybot/bot/commands/privileged/WarnCommand.java | 2 ++ .../friendlybot/bot/commands/util/ClearColorCommand.java | 2 ++ .../friendlybot/bot/commands/util/CommandsCommand.java | 2 ++ .../paradaux/friendlybot/bot/commands/util/GoogleCommand.java | 2 ++ .../paradaux/friendlybot/bot/commands/util/InviteCommand.java | 2 ++ .../friendlybot/bot/commands/util/MemeImagesCommand.java | 2 ++ .../io/paradaux/friendlybot/bot/commands/util/PingCommand.java | 3 ++- .../friendlybot/bot/commands/util/RandomColorCommand.java | 2 ++ .../friendlybot/bot/commands/util/ServerInfoCommand.java | 2 ++ .../friendlybot/bot/commands/util/SetColorCommand.java | 2 ++ .../io/paradaux/friendlybot/bot/commands/util/TagCommand.java | 2 ++ .../io/paradaux/friendlybot/bot/commands/util/TagsCommand.java | 2 ++ .../friendlybot/bot/commands/util/UserInfoCommand.java | 2 ++ .../paradaux/friendlybot/bot/commands/util/WeatherCommand.java | 2 ++ .../friendlybot/bot/commands/util/WolframAlphaCommand.java | 2 ++ 38 files changed, 76 insertions(+), 1 deletion(-) diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/image/DogCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/image/DogCommand.java index db8467ad..2d576b6d 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/image/DogCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/image/DogCommand.java @@ -1,6 +1,7 @@ package io.paradaux.friendlybot.bot.commands.image; import com.jagrosh.jdautilities.command.CommandEvent; +import io.paradaux.friendlybot.bot.command.Command; import io.paradaux.friendlybot.core.utils.NumberUtils; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; @@ -12,6 +13,7 @@ import java.net.http.HttpRequest; import java.net.http.HttpResponse; +@Command(name = "", description = "", permission = "", aliases = {}) public class DogCommand extends BaseCommand { private static final String DOG_API = "https://dog.ceo/api/breeds/image/random"; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/image/EightBallCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/image/EightBallCommand.java index fd62b924..9a927b97 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/image/EightBallCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/image/EightBallCommand.java @@ -31,6 +31,7 @@ import com.google.gson.JsonObject; import com.google.gson.stream.JsonReader; import com.jagrosh.jdautilities.command.CommandEvent; +import io.paradaux.friendlybot.bot.command.Command; import io.paradaux.friendlybot.core.utils.NumberUtils; import io.paradaux.friendlybot.core.utils.RandomUtils; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; @@ -45,6 +46,7 @@ import java.util.Random; import java.util.concurrent.TimeUnit; +@Command(name = "", description = "", permission = "", aliases = {}) public class EightBallCommand extends BaseCommand { private static final String WAITING_IMAGE = "https://i.imgur.com/nBRPBMf.gif"; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/image/InspireCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/image/InspireCommand.java index 59a43480..8e279cd2 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/image/InspireCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/image/InspireCommand.java @@ -26,6 +26,7 @@ package io.paradaux.friendlybot.bot.commands.image; import com.jagrosh.jdautilities.command.CommandEvent; +import io.paradaux.friendlybot.bot.command.Command; import io.paradaux.friendlybot.core.utils.NumberUtils; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; @@ -36,6 +37,7 @@ import java.net.http.HttpRequest; import java.net.http.HttpResponse; +@Command(name = "", description = "", permission = "", aliases = {}) public class InspireCommand extends BaseCommand { private static final String INSPIRE_API = "https://inspirobot.me/api?generate=true"; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/image/MemeCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/image/MemeCommand.java index 46287f43..fb82531a 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/image/MemeCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/image/MemeCommand.java @@ -26,6 +26,7 @@ package io.paradaux.friendlybot.bot.commands.image; import com.jagrosh.jdautilities.command.CommandEvent; +import io.paradaux.friendlybot.bot.command.Command; import io.paradaux.friendlybot.core.utils.HttpUtils; import io.paradaux.friendlybot.core.utils.NumberUtils; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; @@ -51,6 +52,7 @@ import java.util.Collections; import java.util.List; +@Command(name = "", description = "", permission = "", aliases = {}) public class MemeCommand extends BaseCommand { private static final String GET_MEMES_API = "https://api.imgflip.com/get_memes"; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/image/MonkeyCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/image/MonkeyCommand.java index 5a5eef6b..265db482 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/image/MonkeyCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/image/MonkeyCommand.java @@ -1,6 +1,7 @@ package io.paradaux.friendlybot.bot.commands.image; import com.jagrosh.jdautilities.command.CommandEvent; +import io.paradaux.friendlybot.bot.command.Command; import io.paradaux.friendlybot.core.utils.NumberUtils; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; @@ -12,6 +13,7 @@ import java.net.http.HttpRequest; import java.net.http.HttpResponse; +@Command(name = "", description = "", permission = "", aliases = {}) public class MonkeyCommand extends BaseCommand { private static final String MONKEY_API = "https://www.placemonkeys.com/500/350?random"; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/image/XKCDCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/image/XKCDCommand.java index e1b1b335..e8a6a76d 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/image/XKCDCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/image/XKCDCommand.java @@ -26,6 +26,7 @@ package io.paradaux.friendlybot.bot.commands.image; import com.jagrosh.jdautilities.command.CommandEvent; +import io.paradaux.friendlybot.bot.command.Command; import io.paradaux.friendlybot.core.utils.NumberUtils; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; @@ -38,6 +39,7 @@ import java.net.http.HttpRequest; import java.net.http.HttpResponse; +@Command(name = "", description = "", permission = "", aliases = {}) public class XKCDCommand extends BaseCommand { private static final String XKCD_SEARCH_API = "https://relevantxkcd.appspot.com/process?action=xkcd&query=%s"; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/joke/CharmanderCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/joke/CharmanderCommand.java index 14665006..2f150f2c 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/joke/CharmanderCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/joke/CharmanderCommand.java @@ -1,6 +1,7 @@ package io.paradaux.friendlybot.bot.commands.joke; import com.jagrosh.jdautilities.command.CommandEvent; +import io.paradaux.friendlybot.bot.command.Command; import io.paradaux.friendlybot.core.utils.NumberUtils; import io.paradaux.friendlybot.core.utils.RandomUtils; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; @@ -12,6 +13,7 @@ import java.util.Collections; import java.util.List; +@Command(name = "", description = "", permission = "", aliases = {}) public class CharmanderCommand extends BaseCommand { private static final String CHARMANDER_API = "https://cdn.paradaux.io/static/charmander/"; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/joke/LmgtfyCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/joke/LmgtfyCommand.java index 95a8950a..16b36390 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/joke/LmgtfyCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/joke/LmgtfyCommand.java @@ -26,12 +26,14 @@ package io.paradaux.friendlybot.bot.commands.joke; import com.jagrosh.jdautilities.command.CommandEvent; +import io.paradaux.friendlybot.bot.command.Command; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.Message; import org.slf4j.Logger; +@Command(name = "", description = "", permission = "", aliases = {}) public class LmgtfyCommand extends BaseCommand { private static final String LMGTFY_LINK = "https://lmgtfy.com/?q="; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/joke/MonkeCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/joke/MonkeCommand.java index f76e617c..6ad65669 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/joke/MonkeCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/joke/MonkeCommand.java @@ -1,6 +1,7 @@ package io.paradaux.friendlybot.bot.commands.joke; import com.jagrosh.jdautilities.command.CommandEvent; +import io.paradaux.friendlybot.bot.command.Command; import io.paradaux.friendlybot.bot.commands.image.MemeCommand; import io.paradaux.friendlybot.core.utils.HttpUtils; import io.paradaux.friendlybot.core.utils.NumberUtils; @@ -21,6 +22,7 @@ import java.util.Collections; import java.util.HashSet; +@Command(name = "", description = "", permission = "", aliases = {}) public class MonkeCommand extends BaseCommand { private static final HashSet MONKE_IDS = new HashSet<>(); diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/joke/YodaifyCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/joke/YodaifyCommand.java index 7875fb23..391e6715 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/joke/YodaifyCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/joke/YodaifyCommand.java @@ -26,6 +26,7 @@ package io.paradaux.friendlybot.bot.commands.joke; import com.jagrosh.jdautilities.command.CommandEvent; +import io.paradaux.friendlybot.bot.command.Command; import io.paradaux.friendlybot.bot.commands.image.MemeCommand; import io.paradaux.friendlybot.core.utils.HttpUtils; import io.paradaux.friendlybot.core.utils.NumberUtils; @@ -44,6 +45,7 @@ import java.io.IOException; import java.io.Reader; +@Command(name = "", description = "", permission = "", aliases = {}) public class YodaifyCommand extends BaseCommand { private static final String YODA_IMAGE_ID = "14371066"; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/AnnouncementCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/AnnouncementCommand.java index 48b1ad67..b4f34e30 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/AnnouncementCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/AnnouncementCommand.java @@ -2,6 +2,7 @@ import com.jagrosh.jdautilities.command.CommandEvent; import com.jagrosh.jdautilities.commons.waiter.EventWaiter; +import io.paradaux.friendlybot.bot.command.Command; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.core.utils.models.types.PrivilegedCommand; import io.paradaux.friendlybot.managers.PermissionManager; @@ -12,6 +13,7 @@ import java.util.regex.Pattern; +@Command(name = "", description = "", permission = "", aliases = {}) public class AnnouncementCommand extends PrivilegedCommand { private static final Pattern URL_PATTERN = Pattern.compile("^(http://|https://)?(www.)?([a-zA-Z0-9]+).[a-zA-Z0-9]*.[a-z]{3}.?([a-z]+)?"); diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/BanCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/BanCommand.java index be562f36..62b353a2 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/BanCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/BanCommand.java @@ -27,6 +27,7 @@ import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.FriendlyBot; +import io.paradaux.friendlybot.bot.command.Command; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.core.utils.models.types.PrivilegedCommand; import io.paradaux.friendlybot.managers.MongoManager; @@ -45,6 +46,7 @@ * @see FriendlyBot * */ +@Command(name = "", description = "", permission = "", aliases = {}) public class BanCommand extends PrivilegedCommand { private final PunishmentManager punishments; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/CiteCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/CiteCommand.java index f9f42e1a..ecac44b9 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/CiteCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/CiteCommand.java @@ -26,6 +26,7 @@ package io.paradaux.friendlybot.bot.commands.privileged; import com.jagrosh.jdautilities.command.CommandEvent; +import io.paradaux.friendlybot.bot.command.Command; import io.paradaux.friendlybot.core.utils.embeds.moderation.CiteRuleEmbed; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.core.utils.models.interfaces.Embed; @@ -35,6 +36,7 @@ import net.dv8tion.jda.api.entities.TextChannel; import org.slf4j.Logger; +@Command(name = "", description = "", permission = "", aliases = {}) public class CiteCommand extends PrivilegedCommand { public CiteCommand(ConfigurationEntry config, Logger logger, PermissionManager permissionManager) { diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/DmCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/DmCommand.java index e945ffb0..d5163895 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/DmCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/DmCommand.java @@ -26,12 +26,14 @@ package io.paradaux.friendlybot.bot.commands.privileged; import com.jagrosh.jdautilities.command.CommandEvent; +import io.paradaux.friendlybot.bot.command.Command; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.core.utils.models.types.PrivilegedCommand; import io.paradaux.friendlybot.managers.PermissionManager; import net.dv8tion.jda.api.entities.User; import org.slf4j.Logger; +@Command(name = "", description = "", permission = "", aliases = {}) public class DmCommand extends PrivilegedCommand { public DmCommand(ConfigurationEntry config, Logger logger, PermissionManager permissionManager) { diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/KickCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/KickCommand.java index 80ae376d..1859e250 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/KickCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/KickCommand.java @@ -27,6 +27,7 @@ import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.FriendlyBot; +import io.paradaux.friendlybot.bot.command.Command; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.core.utils.models.types.PrivilegedCommand; import io.paradaux.friendlybot.managers.PermissionManager; @@ -44,6 +45,7 @@ * @see FriendlyBot * */ +@Command(name = "", description = "", permission = "", aliases = {}) public class KickCommand extends PrivilegedCommand { private final PunishmentManager punishments; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/LookupCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/LookupCommand.java index 11997294..981ba625 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/LookupCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/LookupCommand.java @@ -26,6 +26,7 @@ package io.paradaux.friendlybot.bot.commands.privileged; import com.jagrosh.jdautilities.command.CommandEvent; +import io.paradaux.friendlybot.bot.command.Command; import io.paradaux.friendlybot.core.utils.embeds.AuditLogEmbed; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.core.utils.models.database.AuditLogEntry; @@ -41,6 +42,7 @@ import net.dv8tion.jda.api.entities.User; import org.slf4j.Logger; +@Command(name = "", description = "", permission = "", aliases = {}) public class LookupCommand extends PrivilegedCommand { public LookupCommand(ConfigurationEntry config, Logger logger, PermissionManager permissionManager) { diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/PruneCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/PruneCommand.java index 487dc136..12eacd04 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/PruneCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/PruneCommand.java @@ -26,12 +26,14 @@ package io.paradaux.friendlybot.bot.commands.privileged; import com.jagrosh.jdautilities.command.CommandEvent; +import io.paradaux.friendlybot.bot.command.Command; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.core.utils.models.types.PrivilegedCommand; import io.paradaux.friendlybot.managers.PermissionManager; import net.dv8tion.jda.api.entities.Message; import org.slf4j.Logger; +@Command(name = "", description = "", permission = "", aliases = {}) public class PruneCommand extends PrivilegedCommand { public PruneCommand(ConfigurationEntry config, Logger logger, PermissionManager permissionManager) { diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/RespondCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/RespondCommand.java index e2364bc4..d30b4579 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/RespondCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/RespondCommand.java @@ -26,6 +26,7 @@ package io.paradaux.friendlybot.bot.commands.privileged; import com.jagrosh.jdautilities.command.CommandEvent; +import io.paradaux.friendlybot.bot.command.Command; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.core.utils.models.database.ModMailEntry; import io.paradaux.friendlybot.core.utils.models.database.ModMailResponse; @@ -41,6 +42,7 @@ import java.util.Date; import java.util.List; +@Command(name = "", description = "", permission = "", aliases = {}) public class RespondCommand extends PrivilegedCommand { private final MongoManager mongo; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/SayCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/SayCommand.java index cb47a6d6..eb837432 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/SayCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/SayCommand.java @@ -26,11 +26,13 @@ package io.paradaux.friendlybot.bot.commands.privileged; import com.jagrosh.jdautilities.command.CommandEvent; +import io.paradaux.friendlybot.bot.command.Command; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.core.utils.models.types.PrivilegedCommand; import io.paradaux.friendlybot.managers.PermissionManager; import org.slf4j.Logger; +@Command(name = "", description = "", permission = "", aliases = {}) public class SayCommand extends PrivilegedCommand { public SayCommand(ConfigurationEntry config, Logger logger, PermissionManager permissionManager) { diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/SendEmbedCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/SendEmbedCommand.java index c80e47fd..477e6e87 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/SendEmbedCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/SendEmbedCommand.java @@ -26,6 +26,7 @@ package io.paradaux.friendlybot.bot.commands.privileged; import com.jagrosh.jdautilities.command.CommandEvent; +import io.paradaux.friendlybot.bot.command.Command; import io.paradaux.friendlybot.core.utils.embeds.AuditLogEmbed; import io.paradaux.friendlybot.core.utils.embeds.PoliticsRulesEmbed; import io.paradaux.friendlybot.core.utils.embeds.RulesEmbed; @@ -42,6 +43,7 @@ import net.dv8tion.jda.api.entities.TextChannel; import org.slf4j.Logger; +@Command(name = "", description = "", permission = "", aliases = {}) public class SendEmbedCommand extends PrivilegedCommand { public SendEmbedCommand(ConfigurationEntry config, Logger logger, PermissionManager permissionManager) { diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/TempBanCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/TempBanCommand.java index 1e1a114d..1c3b64f0 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/TempBanCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/TempBanCommand.java @@ -26,6 +26,7 @@ package io.paradaux.friendlybot.bot.commands.privileged; import com.jagrosh.jdautilities.command.CommandEvent; +import io.paradaux.friendlybot.bot.command.Command; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.core.utils.models.types.PrivilegedCommand; import io.paradaux.friendlybot.managers.MongoManager; @@ -35,6 +36,7 @@ import net.dv8tion.jda.api.entities.Message; import org.slf4j.Logger; +@Command(name = "", description = "", permission = "", aliases = {}) public class TempBanCommand extends PrivilegedCommand { private final MongoManager mongo; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/TicketCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/TicketCommand.java index ba93f8d6..a9a094e2 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/TicketCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/TicketCommand.java @@ -26,6 +26,7 @@ package io.paradaux.friendlybot.bot.commands.privileged; import com.jagrosh.jdautilities.command.CommandEvent; +import io.paradaux.friendlybot.bot.command.Command; import io.paradaux.friendlybot.core.utils.TimeUtils; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.core.utils.models.database.ModMailEntry; @@ -45,6 +46,7 @@ import java.util.List; +@Command(name = "", description = "", permission = "", aliases = {}) public class TicketCommand extends PrivilegedCommand { public TicketCommand(ConfigurationEntry config, Logger logger, PermissionManager permissionManager) { diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/VerificationCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/VerificationCommand.java index 81fb5cc4..9977117f 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/VerificationCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/VerificationCommand.java @@ -26,6 +26,7 @@ package io.paradaux.friendlybot.bot.commands.privileged; import com.jagrosh.jdautilities.command.CommandEvent; +import io.paradaux.friendlybot.bot.command.Command; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.core.utils.models.exceptions.VerificationException; import io.paradaux.friendlybot.core.utils.models.types.PrivilegedCommand; @@ -36,6 +37,7 @@ import net.dv8tion.jda.api.entities.User; import org.slf4j.Logger; +@Command(name = "", description = "", permission = "", aliases = {}) public class VerificationCommand extends PrivilegedCommand { public VerificationCommand(ConfigurationEntry config, Logger logger, PermissionManager permissionManager) { diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/WarnCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/WarnCommand.java index f4a6b359..54b8001d 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/WarnCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/WarnCommand.java @@ -27,6 +27,7 @@ import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.FriendlyBot; +import io.paradaux.friendlybot.bot.command.Command; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.core.utils.models.types.PrivilegedCommand; import io.paradaux.friendlybot.managers.PermissionManager; @@ -44,6 +45,7 @@ * @see FriendlyBot * */ +@Command(name = "", description = "", permission = "", aliases = {}) public class WarnCommand extends PrivilegedCommand { private final PunishmentManager punishments; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/util/ClearColorCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/util/ClearColorCommand.java index fe9beed2..3e64f98d 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/util/ClearColorCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/util/ClearColorCommand.java @@ -1,6 +1,7 @@ package io.paradaux.friendlybot.bot.commands.util; import com.jagrosh.jdautilities.command.CommandEvent; +import io.paradaux.friendlybot.bot.command.Command; import io.paradaux.friendlybot.core.utils.NumberUtils; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.core.utils.models.database.UserSettingsEntry; @@ -14,6 +15,7 @@ import java.util.List; +@Command(name = "", description = "", permission = "", aliases = {}) public class ClearColorCommand extends BaseCommand { public ClearColorCommand(ConfigurationEntry config, Logger logger) { diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/util/CommandsCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/util/CommandsCommand.java index 2d58524c..ca30ddf2 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/util/CommandsCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/util/CommandsCommand.java @@ -26,6 +26,7 @@ package io.paradaux.friendlybot.bot.commands.util; import com.jagrosh.jdautilities.command.CommandEvent; +import io.paradaux.friendlybot.bot.command.Command; import io.paradaux.friendlybot.core.utils.TimeUtils; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; @@ -39,6 +40,7 @@ import java.util.Date; import java.util.stream.Collectors; +@Command(name = "", description = "", permission = "", aliases = {}) public class CommandsCommand extends BaseCommand { private static final String THUMBNAIL_IMAGE = "https://cdn.paradaux.io/img/ybv70.png"; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/util/GoogleCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/util/GoogleCommand.java index 61c7fe0b..6e90680c 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/util/GoogleCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/util/GoogleCommand.java @@ -28,6 +28,7 @@ import com.google.gson.JsonObject; import com.google.gson.JsonParser; import com.jagrosh.jdautilities.command.CommandEvent; +import io.paradaux.friendlybot.bot.command.Command; import io.paradaux.friendlybot.core.utils.StringUtils; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; @@ -38,6 +39,7 @@ import java.net.http.HttpRequest; import java.net.http.HttpResponse; +@Command(name = "", description = "", permission = "", aliases = {}) public class GoogleCommand extends BaseCommand { private static final String QUERY_URL = "https://www.googleapis.com/customsearch/v1?key=%s&q=%s&safe=ACTIVE"; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/util/InviteCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/util/InviteCommand.java index 7c7e505e..ae18c1a5 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/util/InviteCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/util/InviteCommand.java @@ -27,6 +27,7 @@ import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.FriendlyBot; +import io.paradaux.friendlybot.bot.command.Command; import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; import net.dv8tion.jda.api.entities.Message; import org.slf4j.Logger; @@ -40,6 +41,7 @@ * @see FriendlyBot * */ +@Command(name = "", description = "", permission = "", aliases = {}) public class InviteCommand extends BaseCommand { public InviteCommand(Logger logger) { diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/util/MemeImagesCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/util/MemeImagesCommand.java index 5fb33cf9..9d6b12af 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/util/MemeImagesCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/util/MemeImagesCommand.java @@ -26,6 +26,7 @@ package io.paradaux.friendlybot.bot.commands.util; import com.jagrosh.jdautilities.command.CommandEvent; +import io.paradaux.friendlybot.bot.command.Command; import io.paradaux.friendlybot.core.utils.NumberUtils; import io.paradaux.friendlybot.core.utils.TimeUtils; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; @@ -40,6 +41,7 @@ import java.net.http.HttpResponse; import java.util.Date; +@Command(name = "", description = "", permission = "", aliases = {}) public class MemeImagesCommand extends BaseCommand { private static final String GET_MEMES_API = "https://api.imgflip.com/get_memes"; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/util/PingCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/util/PingCommand.java index 9df086a3..34a1fd87 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/util/PingCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/util/PingCommand.java @@ -27,6 +27,7 @@ import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.FriendlyBot; +import io.paradaux.friendlybot.bot.command.Command; import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; import org.slf4j.Logger; @@ -39,7 +40,7 @@ * @see FriendlyBot * */ - +@Command(name = "", description = "", permission = "", aliases = {}) public class PingCommand extends BaseCommand { public PingCommand(Logger logger) { diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/util/RandomColorCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/util/RandomColorCommand.java index c2367f77..c04b74f4 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/util/RandomColorCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/util/RandomColorCommand.java @@ -1,6 +1,7 @@ package io.paradaux.friendlybot.bot.commands.util; import com.jagrosh.jdautilities.command.CommandEvent; +import io.paradaux.friendlybot.bot.command.Command; import io.paradaux.friendlybot.core.utils.ImageUtils; import io.paradaux.friendlybot.core.utils.NumberUtils; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; @@ -15,6 +16,7 @@ import java.net.http.HttpRequest; import java.net.http.HttpResponse; +@Command(name = "", description = "", permission = "", aliases = {}) public class RandomColorCommand extends BaseCommand { private static final String IMGUR_API = "https://api.imgur.com/3/upload/"; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/util/ServerInfoCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/util/ServerInfoCommand.java index 4029daa3..4a9add62 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/util/ServerInfoCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/util/ServerInfoCommand.java @@ -26,6 +26,7 @@ package io.paradaux.friendlybot.bot.commands.util; import com.jagrosh.jdautilities.command.CommandEvent; +import io.paradaux.friendlybot.bot.command.Command; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; import net.dv8tion.jda.api.EmbedBuilder; @@ -37,6 +38,7 @@ import java.util.List; +@Command(name = "", description = "", permission = "", aliases = {}) public class ServerInfoCommand extends BaseCommand { public ServerInfoCommand(ConfigurationEntry config, Logger logger) { diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/util/SetColorCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/util/SetColorCommand.java index aedd8689..cbdb787d 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/util/SetColorCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/util/SetColorCommand.java @@ -1,6 +1,7 @@ package io.paradaux.friendlybot.bot.commands.util; import com.jagrosh.jdautilities.command.CommandEvent; +import io.paradaux.friendlybot.bot.command.Command; import io.paradaux.friendlybot.core.utils.NumberUtils; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.core.utils.models.database.UserSettingsEntry; @@ -17,6 +18,7 @@ import java.util.List; import java.util.regex.Pattern; +@Command(name = "", description = "", permission = "", aliases = {}) public class SetColorCommand extends BaseCommand { private static final short COOLDOWN = 7; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/util/TagCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/util/TagCommand.java index bfffa5ee..ab55d423 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/util/TagCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/util/TagCommand.java @@ -26,6 +26,7 @@ package io.paradaux.friendlybot.bot.commands.util; import com.jagrosh.jdautilities.command.CommandEvent; +import io.paradaux.friendlybot.bot.command.Command; import io.paradaux.friendlybot.core.utils.NumberUtils; import io.paradaux.friendlybot.core.utils.TimeUtils; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; @@ -42,6 +43,7 @@ import java.util.Date; import java.util.Locale; +@Command(name = "", description = "", permission = "", aliases = {}) public class TagCommand extends PrivilegedCommand { private final MongoManager mongo; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/util/TagsCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/util/TagsCommand.java index 5aaae666..4100485b 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/util/TagsCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/util/TagsCommand.java @@ -1,11 +1,13 @@ package io.paradaux.friendlybot.bot.commands.util; import com.jagrosh.jdautilities.command.CommandEvent; +import io.paradaux.friendlybot.bot.command.Command; import io.paradaux.friendlybot.core.utils.NumberUtils; import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; import net.dv8tion.jda.api.EmbedBuilder; import org.slf4j.Logger; +@Command(name = "", description = "", permission = "", aliases = {}) public class TagsCommand extends BaseCommand { private static final String TAGS_URL = "https://paradaux.io/projects/friendlybot/tools/tag_viewer.html?serverid=%s"; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/util/UserInfoCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/util/UserInfoCommand.java index 49172f36..a9b1c569 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/util/UserInfoCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/util/UserInfoCommand.java @@ -26,6 +26,7 @@ package io.paradaux.friendlybot.bot.commands.util; import com.jagrosh.jdautilities.command.CommandEvent; +import io.paradaux.friendlybot.bot.command.Command; import io.paradaux.friendlybot.core.utils.StringUtils; import io.paradaux.friendlybot.core.utils.TimeUtils; import io.paradaux.friendlybot.core.utils.embeds.command.UserInfoEmbed; @@ -38,6 +39,7 @@ import java.util.List; +@Command(name = "", description = "", permission = "", aliases = {}) public class UserInfoCommand extends PrivilegedCommand { public UserInfoCommand(ConfigurationEntry config, Logger logger, PermissionManager permissionManager) { diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/util/WeatherCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/util/WeatherCommand.java index 473670f0..b80f472d 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/util/WeatherCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/util/WeatherCommand.java @@ -3,6 +3,7 @@ import com.google.gson.JsonObject; import com.google.gson.JsonParser; import com.jagrosh.jdautilities.command.CommandEvent; +import io.paradaux.friendlybot.bot.command.Command; import io.paradaux.friendlybot.core.utils.NumberUtils; import io.paradaux.friendlybot.core.utils.StringUtils; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; @@ -16,6 +17,7 @@ import java.net.http.HttpRequest; import java.net.http.HttpResponse; +@Command(name = "", description = "", permission = "", aliases = {}) public class WeatherCommand extends BaseCommand { private static final String WEATHER_API = "https://api.openweathermap.org/data/2.5/weather?q=%s&appid=%s"; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/util/WolframAlphaCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/util/WolframAlphaCommand.java index 1e27dda0..5411a9df 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/util/WolframAlphaCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/util/WolframAlphaCommand.java @@ -26,6 +26,7 @@ package io.paradaux.friendlybot.bot.commands.util; import com.jagrosh.jdautilities.command.CommandEvent; +import io.paradaux.friendlybot.bot.command.Command; import io.paradaux.friendlybot.core.utils.NumberUtils; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; @@ -38,6 +39,7 @@ import java.net.http.HttpRequest; import java.net.http.HttpResponse; +@Command(name = "", description = "", permission = "", aliases = {}) public class WolframAlphaCommand extends BaseCommand { private static final String WOLFRAM_API = "https://api.wolframalpha.com/v1/result?i=%s&appid=%s&"; From 2d7a054eed947cebe69f09f64fc17ef2b164a4b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Sun, 12 Sep 2021 21:49:10 +0100 Subject: [PATCH 109/121] Working on moving existing commands to new system --- .../paradaux/friendlybot/FBApplication.java | 2 + .../bot/command/DiscordCommand.java | 18 ++++++ .../bot/commands/image/CoinFlipCommand.java | 25 +++----- .../bot/commands/image/DogCommand.java | 23 +++---- .../bot/commands/image/EightBallCommand.java | 32 +++++----- .../bot/commands/image/InspireCommand.java | 21 +++---- .../bot/commands/image/MemeCommand.java | 33 +++++----- .../bot/commands/image/MonkeyCommand.java | 7 ++- .../bot/commands/image/XKCDCommand.java | 7 ++- .../managers/DiscordBotManager.java | 63 +------------------ 10 files changed, 88 insertions(+), 143 deletions(-) diff --git a/src/main/java/io/paradaux/friendlybot/FBApplication.java b/src/main/java/io/paradaux/friendlybot/FBApplication.java index 99d1f28d..2feaf93a 100644 --- a/src/main/java/io/paradaux/friendlybot/FBApplication.java +++ b/src/main/java/io/paradaux/friendlybot/FBApplication.java @@ -14,6 +14,8 @@ public class FBApplication { + public static final String VERSION = "2.0"; + private static LocaleManager localeManager; private static LocaleLogger logger; private static FConfiguration config; diff --git a/src/main/java/io/paradaux/friendlybot/bot/command/DiscordCommand.java b/src/main/java/io/paradaux/friendlybot/bot/command/DiscordCommand.java index 0d80ac31..0b5c715c 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/command/DiscordCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/command/DiscordCommand.java @@ -1,6 +1,11 @@ package io.paradaux.friendlybot.bot.command; +import io.paradaux.friendlybot.FBApplication; import io.paradaux.friendlybot.core.data.database.models.FGuild; +import io.paradaux.friendlybot.core.utils.embeds.notices.SyntaxErrorEmbed; +import io.paradaux.friendlybot.core.utils.models.enums.EmbedColour; +import net.dv8tion.jda.api.EmbedBuilder; +import net.dv8tion.jda.api.entities.Message; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -33,6 +38,19 @@ public void register(String command, String description, String permission, Stri names.add(command); } + public void syntaxError(Message message) { + message.addReaction("\uD83D\uDEAB").queue(); + EmbedBuilder builder = new EmbedBuilder(); + + builder.setColor(EmbedColour.ISSUE.getColour()); + builder.setAuthor(message.getAuthor().getAsTag(), null, message.getAuthor().getAvatarUrl()); + builder.setDescription("There was an error in your syntax."); + builder.setFooter("FriendlyBot v" + FBApplication.VERSION); + + message.getChannel().sendMessageEmbeds(builder.build()).queue(); + } + + public void unregister() { isRegistered = false; } diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/image/CoinFlipCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/image/CoinFlipCommand.java index e79e40a4..aeb48b1b 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/image/CoinFlipCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/image/CoinFlipCommand.java @@ -1,11 +1,12 @@ package io.paradaux.friendlybot.bot.commands.image; -import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.bot.command.Command; +import io.paradaux.friendlybot.bot.command.CommandBody; +import io.paradaux.friendlybot.bot.command.DiscordCommand; +import io.paradaux.friendlybot.core.data.database.models.FGuild; import io.paradaux.friendlybot.core.utils.NumberUtils; import io.paradaux.friendlybot.core.utils.RandomUtils; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.Message; import net.dv8tion.jda.api.entities.MessageEmbed; @@ -13,23 +14,15 @@ import java.util.concurrent.TimeUnit; -@Command(name = "", description = "", permission = "", aliases = {}) -public class CoinFlipCommand extends BaseCommand { +@Command(name = "coinflip", description = "Provides a heads/tails result on a €2 coin", permission = "command.coinflip", + aliases = {"flip", "cf", "flipcoin"}) +public class CoinFlipCommand extends DiscordCommand { private static final String COIN_FLIP_GIF = "https://media1.tenor.com/images/49dc6597439a635b1614544d8e090c54/tenor.gif"; private static final String[] TAILS_HEADS_IMAGES = {"https://cdn.paradaux.io/img/jurx4.png", "https://cdn.paradaux.io/img/ofco7.png"}; - public CoinFlipCommand(ConfigurationEntry config, Logger logger) { - super(config, logger); - this.name = "coinflip"; - this.help = "Flips a coin"; - this.aliases = new String[]{"flip", "cf", "flipcoin"}; - } - @Override - protected void execute(CommandEvent event) { - Message message = event.getMessage(); - + public void execute(FGuild guild, CommandBody body) { int result = new RandomUtils().pickRandomNumber(0, 1); MessageEmbed waitingEmbed = new EmbedBuilder() @@ -44,10 +37,10 @@ protected void execute(CommandEvent event) { .setImage(TAILS_HEADS_IMAGES[result]) .build(); - event.getChannel().sendMessage(waitingEmbed).queue((sentMessage) -> { + body.getChannel().sendMessageEmbeds(waitingEmbed).queue((sentMessage) -> { try { TimeUnit.MILLISECONDS.sleep(1200); - sentMessage.editMessage(resultEmbed).queue(); + sentMessage.editMessageEmbeds(resultEmbed).queue(); } catch (InterruptedException e) { getLogger().error("Interrupted whilst shaking the magic eight ball.."); } diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/image/DogCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/image/DogCommand.java index 2d576b6d..adc55300 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/image/DogCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/image/DogCommand.java @@ -1,10 +1,11 @@ package io.paradaux.friendlybot.bot.commands.image; -import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.bot.command.Command; +import io.paradaux.friendlybot.bot.command.CommandBody; +import io.paradaux.friendlybot.bot.command.DiscordCommand; +import io.paradaux.friendlybot.core.data.database.models.FGuild; import io.paradaux.friendlybot.core.utils.NumberUtils; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; import io.paradaux.http.HttpApi; import net.dv8tion.jda.api.EmbedBuilder; import org.json.JSONObject; @@ -13,20 +14,14 @@ import java.net.http.HttpRequest; import java.net.http.HttpResponse; -@Command(name = "", description = "", permission = "", aliases = {}) -public class DogCommand extends BaseCommand { +@Command(name = "dog", description = "Get yourself a cute doggo pic!", permission = "command.dog", aliases = {"pupper", + "puppers", "pup", "doggo", "doggos"}) +public class DogCommand extends DiscordCommand { private static final String DOG_API = "https://dog.ceo/api/breeds/image/random"; - public DogCommand(ConfigurationEntry config, Logger logger) { - super(config, logger); - this.name = "dog"; - this.aliases = new String[]{"pupper", "puppers"}; - this.help = "Woof, Woof!"; - } - @Override - protected void execute(CommandEvent event) { + public void execute(FGuild guild, CommandBody body) { HttpApi http = new HttpApi(getLogger()); HttpRequest request = http.plainRequest(DOG_API); @@ -35,9 +30,9 @@ protected void execute(CommandEvent event) { EmbedBuilder builder = new EmbedBuilder() .setImage(new JSONObject(response.body()).getString("message")) .setColor(NumberUtils.randomColor()) - .setFooter("For " + event.getAuthor().getName()); + .setFooter("For " + body.getUser().getName()); - event.getMessage().getChannel().sendMessage(builder.build()).queue(); + body.getMessage().getChannel().sendMessageEmbeds(builder.build()).queue(); }).join(); } diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/image/EightBallCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/image/EightBallCommand.java index 9a927b97..eabafdca 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/image/EightBallCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/image/EightBallCommand.java @@ -32,6 +32,9 @@ import com.google.gson.stream.JsonReader; import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.bot.command.Command; +import io.paradaux.friendlybot.bot.command.CommandBody; +import io.paradaux.friendlybot.bot.command.DiscordCommand; +import io.paradaux.friendlybot.core.data.database.models.FGuild; import io.paradaux.friendlybot.core.utils.NumberUtils; import io.paradaux.friendlybot.core.utils.RandomUtils; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; @@ -46,22 +49,17 @@ import java.util.Random; import java.util.concurrent.TimeUnit; -@Command(name = "", description = "", permission = "", aliases = {}) -public class EightBallCommand extends BaseCommand { +@Command(name = "eightball", description = "Asks the all knowing 8ball", permission = "command.eightball", aliases = {"8b", "8ball"}) +public class EightBallCommand extends DiscordCommand { private static final String WAITING_IMAGE = "https://i.imgur.com/nBRPBMf.gif"; - private final JsonObject eightBallResponses; + private static final JsonObject eightBallResponses; - public EightBallCommand(ConfigurationEntry config, Logger logger) { - super(config, logger); - this.name = "eightball"; - this.help = "Asks the all knowing 8ball"; - this.aliases = new String[]{"8b", "8ball"}; - - InputStream rawResponseData = getClass().getResourceAsStream("/data/8ball.json"); + static { + InputStream rawResponseData = EightBallCommand.class.getResourceAsStream("/data/8ball.json"); JsonReader reader = new JsonReader(new InputStreamReader(rawResponseData)); - this.eightBallResponses = new Gson().fromJson(reader, JsonObject.class); + eightBallResponses = new Gson().fromJson(reader, JsonObject.class); if (eightBallResponses == null) { throw new RuntimeException("Eight ball responses not found."); @@ -69,11 +67,11 @@ public EightBallCommand(ConfigurationEntry config, Logger logger) { } @Override - protected void execute(CommandEvent event) { - Message message = event.getMessage(); + public void execute(FGuild guild, CommandBody body) { + Message message = body.getMessage(); - if (event.getArgs().isEmpty()) { - respondSyntaxError(message, ";8ball "); + if (body.getArgs().length == 0) { + syntaxError(message); } RandomUtils rUtils = new RandomUtils(new Random()); @@ -134,10 +132,10 @@ protected void execute(CommandEvent event) { .setTitle(response) .build(); - event.getChannel().sendMessage(waitingEmbed).queue((sentMessage) -> { + body.getChannel().sendMessageEmbeds(waitingEmbed).queue((sentMessage) -> { try { TimeUnit.SECONDS.sleep(4); - sentMessage.editMessage(responseEmbed).queue(); + sentMessage.editMessageEmbeds(responseEmbed).queue(); } catch (InterruptedException e) { getLogger().error("Interrupted whilst shaking the magic eight ball.."); } diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/image/InspireCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/image/InspireCommand.java index 8e279cd2..e952e93d 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/image/InspireCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/image/InspireCommand.java @@ -27,6 +27,9 @@ import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.bot.command.Command; +import io.paradaux.friendlybot.bot.command.CommandBody; +import io.paradaux.friendlybot.bot.command.DiscordCommand; +import io.paradaux.friendlybot.core.data.database.models.FGuild; import io.paradaux.friendlybot.core.utils.NumberUtils; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; @@ -37,20 +40,14 @@ import java.net.http.HttpRequest; import java.net.http.HttpResponse; -@Command(name = "", description = "", permission = "", aliases = {}) -public class InspireCommand extends BaseCommand { +@Command(name = "inspire", description = "Sends some heartwarming inspirational quotes!", permission = "command.inspire", + aliases = {"inspireme", "im"}) +public class InspireCommand extends DiscordCommand { private static final String INSPIRE_API = "https://inspirobot.me/api?generate=true"; - public InspireCommand(ConfigurationEntry config, Logger logger) { - super(config, logger); - this.name = "inspire"; - this.aliases = new String[]{"inspireme", "im"}; - this.help = "Sends some heartwarming inspirational quotes!."; - } - @Override - protected void execute(CommandEvent event) { + public void execute(FGuild guild, CommandBody body) { HttpApi http = new HttpApi(getLogger()); HttpRequest request = http.plainRequest(INSPIRE_API); @@ -59,9 +56,9 @@ protected void execute(CommandEvent event) { EmbedBuilder builder = new EmbedBuilder() .setImage(response.body()) .setColor(NumberUtils.randomColor()) - .setFooter("For " + event.getAuthor().getName()); + .setFooter("For " + body.getUser().getName()); - event.getMessage().getChannel().sendMessage(builder.build()).queue(); + body.getChannel().sendMessageEmbeds(builder.build()).queue(); }).join(); } diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/image/MemeCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/image/MemeCommand.java index fb82531a..920bfc9e 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/image/MemeCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/image/MemeCommand.java @@ -27,6 +27,9 @@ import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.bot.command.Command; +import io.paradaux.friendlybot.bot.command.CommandBody; +import io.paradaux.friendlybot.bot.command.DiscordCommand; +import io.paradaux.friendlybot.core.data.database.models.FGuild; import io.paradaux.friendlybot.core.utils.HttpUtils; import io.paradaux.friendlybot.core.utils.NumberUtils; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; @@ -52,25 +55,17 @@ import java.util.Collections; import java.util.List; -@Command(name = "", description = "", permission = "", aliases = {}) -public class MemeCommand extends BaseCommand { +@Command(name = "meme", description = "Meme generation!", permission = "command.meme", aliases = {"m"}) +public class MemeCommand extends DiscordCommand { private static final String GET_MEMES_API = "https://api.imgflip.com/get_memes"; public static final String CAPTION_MEMES_API = "https://api.imgflip.com/caption_image"; - public MemeCommand(ConfigurationEntry config, Logger logger) { - super(config, logger); - this.name = "meme"; - this.aliases = new String[]{"m"}; - this.help = "Meme generation!"; - } - @Override - protected void execute(CommandEvent event) { - String[] args = getArgs(event.getArgs()); - Message message = event.getMessage(); + public void execute(FGuild guild, CommandBody body) { + Message message = body.getMessage(); - switch (args[0]) { + switch (body.getArgs()[0]) { case "images": { message.reply("I'm sending you a list of available images in your DMs...").queue(); @@ -98,9 +93,9 @@ protected void execute(CommandEvent event) { + "](" + meme.getString("url") + ")", false); } - event.getAuthor().openPrivateChannel().queue((channel) -> { + body.getUser().openPrivateChannel().queue((channel) -> { for (final var embed : embeds) { - channel.sendMessage(embed).queue(); + channel.sendMessageEmbeds(embed).queue(); } }); }).join(); @@ -108,15 +103,15 @@ protected void execute(CommandEvent event) { } case "caption": { - if (args.length < 5) { - respondSyntaxError(message, ";meme caption | "); + if (body.getArgs().length < 5) { + syntaxError(message); return; } - String id = args[1]; + String id = body.getArgs()[1]; List args2 = new ArrayList<>(); - Collections.addAll(args2, args); + Collections.addAll(args2, body.getArgs()); args2.remove(0); args2.remove(0); diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/image/MonkeyCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/image/MonkeyCommand.java index 265db482..7301100e 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/image/MonkeyCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/image/MonkeyCommand.java @@ -2,6 +2,9 @@ import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.bot.command.Command; +import io.paradaux.friendlybot.bot.command.CommandBody; +import io.paradaux.friendlybot.bot.command.DiscordCommand; +import io.paradaux.friendlybot.core.data.database.models.FGuild; import io.paradaux.friendlybot.core.utils.NumberUtils; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; @@ -14,7 +17,7 @@ import java.net.http.HttpResponse; @Command(name = "", description = "", permission = "", aliases = {}) -public class MonkeyCommand extends BaseCommand { +public class MonkeyCommand extends DiscordCommand { private static final String MONKEY_API = "https://www.placemonkeys.com/500/350?random"; private static final String IMGUR_API = "https://api.imgur.com/3/upload/"; @@ -27,7 +30,7 @@ public MonkeyCommand(ConfigurationEntry config, Logger logger) { } @Override - protected void execute(CommandEvent event) { + public void execute(FGuild guild, CommandBody body) { HttpApi http = new HttpApi(getLogger()); diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/image/XKCDCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/image/XKCDCommand.java index e8a6a76d..3b2ab075 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/image/XKCDCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/image/XKCDCommand.java @@ -27,6 +27,9 @@ import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.bot.command.Command; +import io.paradaux.friendlybot.bot.command.CommandBody; +import io.paradaux.friendlybot.bot.command.DiscordCommand; +import io.paradaux.friendlybot.core.data.database.models.FGuild; import io.paradaux.friendlybot.core.utils.NumberUtils; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; @@ -40,7 +43,7 @@ import java.net.http.HttpResponse; @Command(name = "", description = "", permission = "", aliases = {}) -public class XKCDCommand extends BaseCommand { +public class XKCDCommand extends DiscordCommand { private static final String XKCD_SEARCH_API = "https://relevantxkcd.appspot.com/process?action=xkcd&query=%s"; private static final String XKCD_INFO_API = "https://xkcd.com/%s/info.0.json"; @@ -54,7 +57,7 @@ public XKCDCommand(ConfigurationEntry config, Logger logger) { } @Override - protected void execute(CommandEvent event) { + public void execute(FGuild guild, CommandBody body) { Message message = event.getMessage(); String args = event.getArgs(); diff --git a/src/main/java/io/paradaux/friendlybot/managers/DiscordBotManager.java b/src/main/java/io/paradaux/friendlybot/managers/DiscordBotManager.java index 5dbd6d3b..eca23dfd 100644 --- a/src/main/java/io/paradaux/friendlybot/managers/DiscordBotManager.java +++ b/src/main/java/io/paradaux/friendlybot/managers/DiscordBotManager.java @@ -106,65 +106,6 @@ public static DiscordBotManager getInstance() { return instance; } - private CommandClient createCommandClient() { - logger.info("Initialising: CommandController"); - - CommandClientBuilder builder = new CommandClientBuilder() - .setPrefix(config.getCommandPrefix()) - .setOwnerId("150993042558418944") - .setActivity(Activity.listening("modmail queries..")) - .addCommands( - // Fun Commands - new CharmanderCommand(config, logger), - new CoinFlipCommand(config, logger), - new DogCommand(config, logger), - new EightBallCommand(config, logger), - new InspireCommand(config, logger), - new LmgtfyCommand(config, logger), - new MemeCommand(config, logger), - new MonkeCommand(config, logger), - new MonkeyCommand(config, logger), - new XKCDCommand(config, logger), - new YodaifyCommand(config, logger), - - // Moderation Commands - new AnnouncementCommand(config, logger, permissionManager, eventWaiter), - new BanCommand(config, logger, permissionManager), - new CiteCommand(config, logger, permissionManager), - new KickCommand(config, logger, permissionManager), - new LookupCommand(config, logger, permissionManager), - new PruneCommand(config, logger, permissionManager), - new RespondCommand(config, logger, permissionManager, mongo), - new TempBanCommand(config, logger, permissionManager, mongo), - new TicketCommand(config, logger, permissionManager), - new WarnCommand(config, logger, permissionManager), - - // Technician Commands. - new DmCommand(config, logger, permissionManager), - new SayCommand(config, logger, permissionManager), - new SendEmbedCommand(config, logger, permissionManager), - new VerificationCommand(config, logger, permissionManager), - - // Utility Commands - new ClearColorCommand(config, logger), - new CommandsCommand(config, logger), - new GoogleCommand(config, logger), - new InviteCommand(logger), - new MemeImagesCommand(config, logger), - new PingCommand(logger), - new RandomColorCommand(config, logger), - new ServerInfoCommand(config, logger), - new SetColorCommand(config, logger, roles), - new TagCommand(config, logger, mongo), - new TagsCommand(logger), - new UserInfoCommand(config, logger, permissionManager), - new WeatherCommand(config, logger), - new WolframAlphaCommand(config, logger) - ); - - return builder.build(); - } - /** * Creates an Instance of JDA from the provided token. * @param token The Discord Token taken from the configuration file. @@ -173,13 +114,13 @@ private CommandClient createCommandClient() { * */ public JDA login(String token) throws LoginException { - CommandClient commandClient = createCommandClient(); + JDABuilder builder = JDABuilder.createDefault(token, GatewayIntent.GUILD_MESSAGES, GatewayIntent.GUILD_MEMBERS, GatewayIntent.GUILD_MESSAGE_REACTIONS) .setMemberCachePolicy(MemberCachePolicy.ALL) .enableIntents(GatewayIntent.GUILD_MEMBERS) .setBulkDeleteSplittingEnabled(false) - .addEventListeners(eventWaiter, commandClient, + .addEventListeners(eventWaiter, new AlotListener(config, logger), new DotCommandsListener(config, logger), new InsultListener(config, logger), From 3ccd2878b8672e1cb45f5da77aae3e70a54695a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Mon, 13 Sep 2021 14:49:21 +0100 Subject: [PATCH 110/121] XKCD command, move FGuild --- .../paradaux/friendlybot/FBApplication.java | 2 +- .../bot/commands/image/DogCommand.java | 2 -- .../bot/commands/image/XKCDCommand.java | 19 +++++++------------ .../core/{ => data}/cache/GuildCache.java | 2 +- 4 files changed, 9 insertions(+), 16 deletions(-) rename src/main/java/io/paradaux/friendlybot/core/{ => data}/cache/GuildCache.java (97%) diff --git a/src/main/java/io/paradaux/friendlybot/FBApplication.java b/src/main/java/io/paradaux/friendlybot/FBApplication.java index 2feaf93a..5680e9ac 100644 --- a/src/main/java/io/paradaux/friendlybot/FBApplication.java +++ b/src/main/java/io/paradaux/friendlybot/FBApplication.java @@ -1,7 +1,7 @@ package io.paradaux.friendlybot; import io.paradaux.friendlybot.bot.FBot; -import io.paradaux.friendlybot.core.cache.GuildCache; +import io.paradaux.friendlybot.core.data.cache.GuildCache; import io.paradaux.friendlybot.core.data.config.FConfiguration; import io.paradaux.friendlybot.core.data.config.FConfigurationLoader; import io.paradaux.friendlybot.core.data.database.EBeanConnection; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/image/DogCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/image/DogCommand.java index adc55300..8cee5ee0 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/image/DogCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/image/DogCommand.java @@ -5,11 +5,9 @@ import io.paradaux.friendlybot.bot.command.DiscordCommand; import io.paradaux.friendlybot.core.data.database.models.FGuild; import io.paradaux.friendlybot.core.utils.NumberUtils; -import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import io.paradaux.http.HttpApi; import net.dv8tion.jda.api.EmbedBuilder; import org.json.JSONObject; -import org.slf4j.Logger; import java.net.http.HttpRequest; import java.net.http.HttpResponse; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/image/XKCDCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/image/XKCDCommand.java index 3b2ab075..d022733e 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/image/XKCDCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/image/XKCDCommand.java @@ -41,8 +41,9 @@ import java.net.http.HttpRequest; import java.net.http.HttpResponse; +import java.util.Arrays; -@Command(name = "", description = "", permission = "", aliases = {}) +@Command(name = "xkcd", description = "Links to the specified xkcd", permission = "command.xkcd") public class XKCDCommand extends DiscordCommand { private static final String XKCD_SEARCH_API = "https://relevantxkcd.appspot.com/process?action=xkcd&query=%s"; @@ -50,25 +51,19 @@ public class XKCDCommand extends DiscordCommand { private static final String XKCD_PAGE_FORMAT = "https://xkcd.com/%s/"; private static final String XKCD_ICON = "https://webcomicshub.com/uploads/webcomics/xkcd-1280x1024.png"; - public XKCDCommand(ConfigurationEntry config, Logger logger) { - super(config, logger); - this.name = "xkcd"; - this.help = "Links to the specified xkcd"; - } - @Override public void execute(FGuild guild, CommandBody body) { - Message message = event.getMessage(); - String args = event.getArgs(); + Message message = body.getMessage(); + String[] args = body.getArgs(); - if (args == null || args.isEmpty()) { - respondSyntaxError(message, ";xkcd "); + if (args == null || args.length == 0) { + syntaxError(message); return; } HttpApi http = new HttpApi(getLogger()); - HttpRequest request = http.plainRequest(String.format(XKCD_SEARCH_API, args.replace(" ", "%20"))); + HttpRequest request = http.plainRequest(String.format(XKCD_SEARCH_API, String.join("%20", args))); http.sendAsync(request, HttpResponse.BodyHandlers.ofString()).thenAccept((response) -> { String returnedId = response.body().split(" ")[2].replaceAll("\n",""); diff --git a/src/main/java/io/paradaux/friendlybot/core/cache/GuildCache.java b/src/main/java/io/paradaux/friendlybot/core/data/cache/GuildCache.java similarity index 97% rename from src/main/java/io/paradaux/friendlybot/core/cache/GuildCache.java rename to src/main/java/io/paradaux/friendlybot/core/data/cache/GuildCache.java index 4e5b06af..1d33f785 100644 --- a/src/main/java/io/paradaux/friendlybot/core/cache/GuildCache.java +++ b/src/main/java/io/paradaux/friendlybot/core/data/cache/GuildCache.java @@ -1,4 +1,4 @@ -package io.paradaux.friendlybot.core.cache; +package io.paradaux.friendlybot.core.data.cache; import io.paradaux.friendlybot.core.data.database.models.FGuild; import io.paradaux.friendlybot.core.data.database.models.query.QFGuild; From d786f811808183ed6f10f773e5af7c5a70c01b8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Mon, 13 Sep 2021 14:51:53 +0100 Subject: [PATCH 111/121] registerCommand vararg --- .../friendlybot/bot/command/CommandListener.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/main/java/io/paradaux/friendlybot/bot/command/CommandListener.java b/src/main/java/io/paradaux/friendlybot/bot/command/CommandListener.java index 35678d3e..f2eb5200 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/command/CommandListener.java +++ b/src/main/java/io/paradaux/friendlybot/bot/command/CommandListener.java @@ -1,7 +1,7 @@ package io.paradaux.friendlybot.bot.command; import io.paradaux.friendlybot.bot.command.exception.CommandException; -import io.paradaux.friendlybot.core.cache.GuildCache; +import io.paradaux.friendlybot.core.data.cache.GuildCache; import io.paradaux.friendlybot.core.data.database.models.FGuild; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.Message; @@ -109,6 +109,15 @@ public void registerCommand(DiscordCommand command) { commands.add(command); } + /** + * Register a list of commands. + * */ + public void registerCommands(DiscordCommand... commands) { + for (DiscordCommand command : commands) { + registerCommand(command); + } + } + /** * Unregisters the requested command. From eaefad35283fd7d882d488f9567f71a95bab7403 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Mon, 13 Sep 2021 14:51:59 +0100 Subject: [PATCH 112/121] Register commands --- src/main/java/io/paradaux/friendlybot/bot/FBot.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/main/java/io/paradaux/friendlybot/bot/FBot.java b/src/main/java/io/paradaux/friendlybot/bot/FBot.java index d7a14568..1f531896 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/FBot.java +++ b/src/main/java/io/paradaux/friendlybot/bot/FBot.java @@ -2,7 +2,7 @@ import com.jagrosh.jdautilities.commons.waiter.EventWaiter; import io.paradaux.friendlybot.bot.command.CommandListener; -import io.paradaux.friendlybot.bot.commands.image.CatCommand; +import io.paradaux.friendlybot.bot.commands.image.*; import io.paradaux.friendlybot.core.data.config.FConfiguration; import net.dv8tion.jda.api.JDA; import net.dv8tion.jda.api.JDABuilder; @@ -27,7 +27,16 @@ public FBot(FConfiguration config) throws LoginException { } public void registerCommands() { - commandListener.registerCommand(new CatCommand()); + commandListener.registerCommand( + new CatCommand(), + new CoinFlipCommand(), + new DogCommand(), + new EightBallCommand(), + new InspireCommand(), + new MemeCommand(), + new MonkeyCommand(), + new XKCDCommand() + ); } /** From 05c83aa8094f086c4b1916a935b850ac5f06c220 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Mon, 13 Sep 2021 15:04:55 +0100 Subject: [PATCH 113/121] Image and joke commands migrated to new system --- .../paradaux/friendlybot/FBApplication.java | 3 ++ .../io/paradaux/friendlybot/bot/FBot.java | 2 +- .../bot/command/DiscordCommand.java | 6 ++++ .../bot/commands/image/MemeCommand.java | 10 +++--- .../bot/commands/image/MonkeyCommand.java | 13 ++------ .../bot/commands/joke/CharmanderCommand.java | 23 ++++++------- .../bot/commands/joke/LmgtfyCommand.java | 21 ++++++------ .../bot/commands/joke/MonkeCommand.java | 28 +++++++--------- .../bot/commands/joke/YodaifyCommand.java | 32 ++++++++----------- 9 files changed, 62 insertions(+), 76 deletions(-) diff --git a/src/main/java/io/paradaux/friendlybot/FBApplication.java b/src/main/java/io/paradaux/friendlybot/FBApplication.java index 5680e9ac..54a28b14 100644 --- a/src/main/java/io/paradaux/friendlybot/FBApplication.java +++ b/src/main/java/io/paradaux/friendlybot/FBApplication.java @@ -23,6 +23,9 @@ public class FBApplication { private static GuildCache guildCache; private static EBeanConnection eBeanConnection; + public static FConfiguration getConfig() { + return config; + } public static void main(String[] args) throws ConfigurateException, LoginException { localeManager = new LocaleManager(); diff --git a/src/main/java/io/paradaux/friendlybot/bot/FBot.java b/src/main/java/io/paradaux/friendlybot/bot/FBot.java index 1f531896..60ea47d9 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/FBot.java +++ b/src/main/java/io/paradaux/friendlybot/bot/FBot.java @@ -27,7 +27,7 @@ public FBot(FConfiguration config) throws LoginException { } public void registerCommands() { - commandListener.registerCommand( + commandListener.registerCommands( new CatCommand(), new CoinFlipCommand(), new DogCommand(), diff --git a/src/main/java/io/paradaux/friendlybot/bot/command/DiscordCommand.java b/src/main/java/io/paradaux/friendlybot/bot/command/DiscordCommand.java index 0b5c715c..0d4d358e 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/command/DiscordCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/command/DiscordCommand.java @@ -1,6 +1,8 @@ package io.paradaux.friendlybot.bot.command; import io.paradaux.friendlybot.FBApplication; +import io.paradaux.friendlybot.core.data.config.FConfiguration; +import io.paradaux.friendlybot.core.data.config.FConfigurationLoader; import io.paradaux.friendlybot.core.data.database.models.FGuild; import io.paradaux.friendlybot.core.utils.embeds.notices.SyntaxErrorEmbed; import io.paradaux.friendlybot.core.utils.models.enums.EmbedColour; @@ -51,6 +53,10 @@ public void syntaxError(Message message) { } + public FConfiguration getConfig() { + return FBApplication.getConfig(); + } + public void unregister() { isRegistered = false; } diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/image/MemeCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/image/MemeCommand.java index 920bfc9e..4157074b 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/image/MemeCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/image/MemeCommand.java @@ -136,11 +136,11 @@ public void execute(FGuild guild, CommandBody body) { bodyBuilder.addFormDataPart("text" + i, lines[i]); } - RequestBody body = bodyBuilder.build(); + RequestBody reqBody = bodyBuilder.build(); Request request = new Request.Builder() .url(CAPTION_MEMES_API) - .method("POST", body) + .method("POST", reqBody) .build(); HttpUtils.sendAsync(client, request).thenAccept((response -> { @@ -160,9 +160,9 @@ public void execute(FGuild guild, CommandBody body) { EmbedBuilder builder = new EmbedBuilder() .setImage(responseJson.getJSONObject("data").getString("url")) .setColor(NumberUtils.randomColor()) - .setFooter("For " + event.getAuthor().getName()); + .setFooter("For " + body.getUser().getName()); - event.getChannel().sendMessage(builder.build()).queue(); + body.getChannel().sendMessage(builder.build()).queue(); } catch (IOException ok) { getLogger().error("Error occurred whilst interacting with mailgun."); @@ -174,7 +174,7 @@ public void execute(FGuild guild, CommandBody body) { } default: { - respondSyntaxError(message, ";meme <| separated text blocks>"); + syntaxError(message); break; } diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/image/MonkeyCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/image/MonkeyCommand.java index 7301100e..0b4a413c 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/image/MonkeyCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/image/MonkeyCommand.java @@ -16,19 +16,12 @@ import java.net.http.HttpRequest; import java.net.http.HttpResponse; -@Command(name = "", description = "", permission = "", aliases = {}) +@Command(name = "monkey", description = "Get a monkey image !", permission = "command.monkey") public class MonkeyCommand extends DiscordCommand { private static final String MONKEY_API = "https://www.placemonkeys.com/500/350?random"; private static final String IMGUR_API = "https://api.imgur.com/3/upload/"; - public MonkeyCommand(ConfigurationEntry config, Logger logger) { - super(config, logger); - this.name = "monkey"; - this.aliases = new String[0]; - this.help = "Get a monkey image !"; - } - @Override public void execute(FGuild guild, CommandBody body) { @@ -47,9 +40,9 @@ public void execute(FGuild guild, CommandBody body) { EmbedBuilder builder = new EmbedBuilder() .setColor(NumberUtils.randomColor()) .setImage(imgurMeta.getJSONObject("data").getString("link")) - .setFooter("For " + event.getAuthor().getName()); + .setFooter("For " + body.getUser().getName()); - event.getChannel().sendMessage(builder.build()).queue(); + body.getChannel().sendMessageEmbeds(builder.build()).queue(); }).join(); } diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/joke/CharmanderCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/joke/CharmanderCommand.java index 2f150f2c..cf463df3 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/joke/CharmanderCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/joke/CharmanderCommand.java @@ -2,6 +2,9 @@ import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.bot.command.Command; +import io.paradaux.friendlybot.bot.command.CommandBody; +import io.paradaux.friendlybot.bot.command.DiscordCommand; +import io.paradaux.friendlybot.core.data.database.models.FGuild; import io.paradaux.friendlybot.core.utils.NumberUtils; import io.paradaux.friendlybot.core.utils.RandomUtils; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; @@ -13,36 +16,28 @@ import java.util.Collections; import java.util.List; -@Command(name = "", description = "", permission = "", aliases = {}) -public class CharmanderCommand extends BaseCommand { +@Command(name = "charmander", description = "Cute charmander pics!", permission = "command.charmander", aliases = {"charm"}) +public class CharmanderCommand extends DiscordCommand { private static final String CHARMANDER_API = "https://cdn.paradaux.io/static/charmander/"; private static final int CHARMANDER_COUNT = 38; private static final List GIFS = new ArrayList<>(); - private final RandomUtils random; + private final RandomUtils random = new RandomUtils(); static { Collections.addAll(GIFS, 26); } - public CharmanderCommand(ConfigurationEntry config, Logger logger) { - super(config, logger); - this.name = "charmander"; - this.aliases = new String[]{"charm"}; - this.help = "Cute charmander pics!"; - this.random = new RandomUtils(); - } - @Override - protected void execute(CommandEvent event) { + public void execute(FGuild guild, CommandBody body) { int id = random.pickRandomNumber(1, CHARMANDER_COUNT); EmbedBuilder builder = new EmbedBuilder() .setImage(CHARMANDER_API + id + (GIFS.contains(id) ? ".gif" : ".jpg")) .setColor(NumberUtils.randomColor()) - .setFooter("For " + event.getAuthor().getName() + " Charmander ID: " + id); + .setFooter("For " + body.getUser().getName() + " Charmander ID: " + id); - event.getMessage().getChannel().sendMessage(builder.build()).queue(); + body.getMessage().getChannel().sendMessageEmbeds(builder.build()).queue(); } } diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/joke/LmgtfyCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/joke/LmgtfyCommand.java index 16b36390..184d1961 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/joke/LmgtfyCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/joke/LmgtfyCommand.java @@ -27,30 +27,27 @@ import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.bot.command.Command; +import io.paradaux.friendlybot.bot.command.CommandBody; +import io.paradaux.friendlybot.bot.command.DiscordCommand; +import io.paradaux.friendlybot.core.data.database.models.FGuild; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.Message; import org.slf4j.Logger; -@Command(name = "", description = "", permission = "", aliases = {}) -public class LmgtfyCommand extends BaseCommand { +@Command(name = "lmgtfy", description = "Let me lmgtfy for you...", permission = "command.lmgtfy") +public class LmgtfyCommand extends DiscordCommand { private static final String LMGTFY_LINK = "https://lmgtfy.com/?q="; - public LmgtfyCommand(ConfigurationEntry config, Logger logger) { - super(config, logger); - this.name = "lmgtfy"; - this.help = "Let me lmgtfy for you..."; - } - @Override - protected void execute(CommandEvent event) { - Message message = event.getMessage(); - String query = event.getArgs(); + public void execute(FGuild guild, CommandBody body) { + Message message = body.getMessage(); + String query = String.join(" ", body.getArgs()); if (query.isEmpty()) { - respondSyntaxError(message, ";lmgtfy "); + syntaxError(message); return; } diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/joke/MonkeCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/joke/MonkeCommand.java index 6ad65669..69af5d9d 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/joke/MonkeCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/joke/MonkeCommand.java @@ -2,7 +2,10 @@ import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.bot.command.Command; +import io.paradaux.friendlybot.bot.command.CommandBody; +import io.paradaux.friendlybot.bot.command.DiscordCommand; import io.paradaux.friendlybot.bot.commands.image.MemeCommand; +import io.paradaux.friendlybot.core.data.database.models.FGuild; import io.paradaux.friendlybot.core.utils.HttpUtils; import io.paradaux.friendlybot.core.utils.NumberUtils; import io.paradaux.friendlybot.core.utils.RandomUtils; @@ -22,8 +25,8 @@ import java.util.Collections; import java.util.HashSet; -@Command(name = "", description = "", permission = "", aliases = {}) -public class MonkeCommand extends BaseCommand { +@Command(name = "monke", description = "MONKE.", permission = "command.monke", aliases = {}) +public class MonkeCommand extends DiscordCommand { private static final HashSet MONKE_IDS = new HashSet<>(); @@ -31,15 +34,8 @@ public class MonkeCommand extends BaseCommand { Collections.addAll(MONKE_IDS, "289081819", "200213111"); } - public MonkeCommand(ConfigurationEntry config, Logger logger) { - super(config, logger); - this.name = "monke"; - this.aliases = new String[]{"MONKE"}; - this.help = "MONKE."; - } - @Override - protected void execute(CommandEvent event) { + public void execute(FGuild guild, CommandBody body) { OkHttpClient client = new OkHttpClient().newBuilder() .build(); @@ -48,20 +44,20 @@ protected void execute(CommandEvent event) { .addFormDataPart("username", getConfig().getImgflipUsername()) .addFormDataPart("password", getConfig().getImgflipPassword()); - String[] lines = event.getArgs().split("\\|"); + String[] lines = String.join(" ", body.getArgs()).split("\\|"); if (lines.length != 2) { - respondSyntaxError(event.getMessage(), ";monke this is line one | this is line 2"); + syntaxError(body.getMessage()); } bodyBuilder.addFormDataPart("text0", lines[0]); bodyBuilder.addFormDataPart("text1", lines[1]); - RequestBody body = bodyBuilder.build(); + RequestBody reqBody = bodyBuilder.build(); Request request = new Request.Builder() .url(MemeCommand.CAPTION_MEMES_API) - .method("POST", body) + .method("POST", reqBody) .build(); HttpUtils.sendAsync(client, request).thenAccept((response -> { @@ -78,9 +74,9 @@ protected void execute(CommandEvent event) { JSONObject responseJson = new JSONObject(strBuilder.toString()); - MessageEmbed embed = new EmbedBuilder().setImage(responseJson.getJSONObject("data").getString("url")).setColor(NumberUtils.randomColor()).setFooter("For " + event.getAuthor().getName()).build(); + MessageEmbed embed = new EmbedBuilder().setImage(responseJson.getJSONObject("data").getString("url")).setColor(NumberUtils.randomColor()).setFooter("For " + body.getUser().getName()).build(); - event.getChannel().sendMessage(embed).queue(); + body.getChannel().sendMessage(embed).queue(); } catch (IOException ok) { getLogger().error("Error occurred whilst interacting with Imgflip"); diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/joke/YodaifyCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/joke/YodaifyCommand.java index 391e6715..7eef77de 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/joke/YodaifyCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/joke/YodaifyCommand.java @@ -27,7 +27,10 @@ import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.bot.command.Command; +import io.paradaux.friendlybot.bot.command.CommandBody; +import io.paradaux.friendlybot.bot.command.DiscordCommand; import io.paradaux.friendlybot.bot.commands.image.MemeCommand; +import io.paradaux.friendlybot.core.data.database.models.FGuild; import io.paradaux.friendlybot.core.utils.HttpUtils; import io.paradaux.friendlybot.core.utils.NumberUtils; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; @@ -45,28 +48,21 @@ import java.io.IOException; import java.io.Reader; -@Command(name = "", description = "", permission = "", aliases = {}) -public class YodaifyCommand extends BaseCommand { +@Command(name = "yodaify", description = "Convert english into Yoga's Language!", permission = "command.yodaify", aliases = {"yoda", "yodify"}) +public class YodaifyCommand extends DiscordCommand { private static final String YODA_IMAGE_ID = "14371066"; - public YodaifyCommand(ConfigurationEntry config, Logger logger) { - super(config, logger); - this.name = "yodaify"; - this.aliases = new String[]{"yoda", "yodify"}; - this.help = "Convert english into Yoga's Language!"; - } - @Override - protected void execute(CommandEvent event) { - Message message = event.getMessage(); + public void execute(FGuild guild, CommandBody body) { + Message message = body.getMessage(); - if (event.getArgs().isEmpty()) { - respondSyntaxError(message, ";yoda "); + if (body.getArgs().length == 0) { + syntaxError(message); return; } - String[] tokenisedSentence = event.getArgs().split("\\. *"); + String[] tokenisedSentence = String.join(" ", body.getArgs()).split("\\. *"); StringBuilder builder = new StringBuilder(); @@ -89,11 +85,11 @@ protected void execute(CommandEvent event) { bodyBuilder.addFormDataPart("text0", builder.toString()); - RequestBody body = bodyBuilder.build(); + RequestBody reqBody = bodyBuilder.build(); Request request = new Request.Builder() .url(MemeCommand.CAPTION_MEMES_API) - .method("POST", body) + .method("POST", reqBody) .build(); HttpUtils.sendAsync(client, request).thenAccept((response -> { @@ -113,10 +109,10 @@ protected void execute(CommandEvent event) { MessageEmbed embed = new EmbedBuilder() .setImage(responseJson.getJSONObject("data").getString("url")) .setColor(NumberUtils.randomColor()) - .setFooter("For " + event.getAuthor().getName()) + .setFooter("For " + body.getUser().getName()) .build(); - event.getChannel().sendMessage(embed).queue(); + body.getChannel().sendMessage(embed).queue(); } catch (IOException ok) { getLogger().error("Error occurred whilst interacting with Imgflip"); From 55871522387a84b760fbc50b57d506ae92a8101c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Mon, 13 Sep 2021 17:14:36 +0100 Subject: [PATCH 114/121] Progress push --- .../bot/commands/util/ClearColorCommand.java | 17 ++++++----------- .../bot/commands/util/CommandsCommand.java | 7 +++++-- .../bot/commands/util/GoogleCommand.java | 7 +++++-- .../bot/commands/util/InviteCommand.java | 7 +++++-- .../bot/commands/util/MemeImagesCommand.java | 7 +++++-- .../bot/commands/util/PingCommand.java | 7 +++++-- .../bot/commands/util/RandomColorCommand.java | 7 +++++-- .../bot/commands/util/ServerInfoCommand.java | 7 +++++-- .../bot/commands/util/SetColorCommand.java | 7 +++++-- .../bot/commands/util/TagCommand.java | 7 +++++-- .../bot/commands/util/TagsCommand.java | 7 +++++-- .../bot/commands/util/UserInfoCommand.java | 7 +++++-- .../bot/commands/util/WeatherCommand.java | 7 +++++-- .../bot/commands/util/WolframAlphaCommand.java | 7 +++++-- 14 files changed, 71 insertions(+), 37 deletions(-) diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/util/ClearColorCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/util/ClearColorCommand.java index 3e64f98d..12356576 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/util/ClearColorCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/util/ClearColorCommand.java @@ -2,6 +2,9 @@ import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.bot.command.Command; +import io.paradaux.friendlybot.bot.command.CommandBody; +import io.paradaux.friendlybot.bot.command.DiscordCommand; +import io.paradaux.friendlybot.core.data.database.models.FGuild; import io.paradaux.friendlybot.core.utils.NumberUtils; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.core.utils.models.database.UserSettingsEntry; @@ -15,20 +18,12 @@ import java.util.List; -@Command(name = "", description = "", permission = "", aliases = {}) -public class ClearColorCommand extends BaseCommand { - - public ClearColorCommand(ConfigurationEntry config, Logger logger) { - super(config, logger); - this.name = "clearcolor"; - this.aliases = new String[]{"clearcolour"}; - this.help = "Clear a custom-color role."; - } +@Command(name = "clearcolor", description = "Clear a custom-color role.", permission = "util.color", aliases = {"clearcolour"}) +public class ClearColorCommand extends DiscordCommand { @Override - protected void execute(CommandEvent event) { + public void execute(FGuild guild, CommandBody body) { final Message message = event.getMessage(); - final Guild guild = event.getGuild(); UserSettingsManager settings = UserSettingsManager.getInstance(); UserSettingsEntry entry = settings.getProfileById(guild.getId(), event.getAuthor().getId()); diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/util/CommandsCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/util/CommandsCommand.java index ca30ddf2..d062bc82 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/util/CommandsCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/util/CommandsCommand.java @@ -27,6 +27,9 @@ import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.bot.command.Command; +import io.paradaux.friendlybot.bot.command.CommandBody; +import io.paradaux.friendlybot.bot.command.DiscordCommand; +import io.paradaux.friendlybot.core.data.database.models.FGuild; import io.paradaux.friendlybot.core.utils.TimeUtils; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; @@ -41,7 +44,7 @@ import java.util.stream.Collectors; @Command(name = "", description = "", permission = "", aliases = {}) -public class CommandsCommand extends BaseCommand { +public class CommandsCommand extends DiscordCommand { private static final String THUMBNAIL_IMAGE = "https://cdn.paradaux.io/img/ybv70.png"; private static final String THIS_EMOJI = ""; @@ -69,7 +72,7 @@ public CommandsCommand(ConfigurationEntry config, Logger logger) { } @Override - protected void execute(CommandEvent event) { + public void execute(FGuild guild, CommandBody body) { event.getMessage().delete().queue(); MessageEmbed funCommands = new EmbedBuilder() diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/util/GoogleCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/util/GoogleCommand.java index 6e90680c..2e92fde8 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/util/GoogleCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/util/GoogleCommand.java @@ -29,6 +29,9 @@ import com.google.gson.JsonParser; import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.bot.command.Command; +import io.paradaux.friendlybot.bot.command.CommandBody; +import io.paradaux.friendlybot.bot.command.DiscordCommand; +import io.paradaux.friendlybot.core.data.database.models.FGuild; import io.paradaux.friendlybot.core.utils.StringUtils; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; @@ -40,7 +43,7 @@ import java.net.http.HttpResponse; @Command(name = "", description = "", permission = "", aliases = {}) -public class GoogleCommand extends BaseCommand { +public class GoogleCommand extends DiscordCommand { private static final String QUERY_URL = "https://www.googleapis.com/customsearch/v1?key=%s&q=%s&safe=ACTIVE"; private final String apiKey; @@ -54,7 +57,7 @@ public GoogleCommand(ConfigurationEntry config, Logger logger) { } @Override - protected void execute(CommandEvent event) { + public void execute(FGuild guild, CommandBody body) { Message message = event.getMessage(); String query = event.getArgs(); diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/util/InviteCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/util/InviteCommand.java index ae18c1a5..5b34fb11 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/util/InviteCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/util/InviteCommand.java @@ -28,6 +28,9 @@ import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.FriendlyBot; import io.paradaux.friendlybot.bot.command.Command; +import io.paradaux.friendlybot.bot.command.CommandBody; +import io.paradaux.friendlybot.bot.command.DiscordCommand; +import io.paradaux.friendlybot.core.data.database.models.FGuild; import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; import net.dv8tion.jda.api.entities.Message; import org.slf4j.Logger; @@ -42,7 +45,7 @@ * */ @Command(name = "", description = "", permission = "", aliases = {}) -public class InviteCommand extends BaseCommand { +public class InviteCommand extends DiscordCommand { public InviteCommand(Logger logger) { super(logger); @@ -52,7 +55,7 @@ public InviteCommand(Logger logger) { } @Override - protected void execute(CommandEvent event) { + public void execute(FGuild guild, CommandBody body) { Message message = event.getMessage(); String inviteInfo = "This is a utility discord bot for moderating discord servers pertaining to computer science, with a " diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/util/MemeImagesCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/util/MemeImagesCommand.java index 9d6b12af..f3891d79 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/util/MemeImagesCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/util/MemeImagesCommand.java @@ -27,6 +27,9 @@ import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.bot.command.Command; +import io.paradaux.friendlybot.bot.command.CommandBody; +import io.paradaux.friendlybot.bot.command.DiscordCommand; +import io.paradaux.friendlybot.core.data.database.models.FGuild; import io.paradaux.friendlybot.core.utils.NumberUtils; import io.paradaux.friendlybot.core.utils.TimeUtils; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; @@ -42,7 +45,7 @@ import java.util.Date; @Command(name = "", description = "", permission = "", aliases = {}) -public class MemeImagesCommand extends BaseCommand { +public class MemeImagesCommand extends DiscordCommand { private static final String GET_MEMES_API = "https://api.imgflip.com/get_memes"; @@ -53,7 +56,7 @@ public MemeImagesCommand(ConfigurationEntry config, Logger logger) { } @Override - protected void execute(CommandEvent event) { + public void execute(FGuild guild, CommandBody body) { HttpApi http = new HttpApi(); HttpRequest request = http.plainRequest(GET_MEMES_API); diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/util/PingCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/util/PingCommand.java index 34a1fd87..c08ccc25 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/util/PingCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/util/PingCommand.java @@ -28,6 +28,9 @@ import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.FriendlyBot; import io.paradaux.friendlybot.bot.command.Command; +import io.paradaux.friendlybot.bot.command.CommandBody; +import io.paradaux.friendlybot.bot.command.DiscordCommand; +import io.paradaux.friendlybot.core.data.database.models.FGuild; import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; import org.slf4j.Logger; @@ -41,7 +44,7 @@ * */ @Command(name = "", description = "", permission = "", aliases = {}) -public class PingCommand extends BaseCommand { +public class PingCommand extends DiscordCommand { public PingCommand(Logger logger) { super(logger); @@ -50,7 +53,7 @@ public PingCommand(Logger logger) { } @Override - protected void execute(CommandEvent event) { + public void execute(FGuild guild, CommandBody body) { event.getChannel().sendMessage("Pong!").queue(); } } diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/util/RandomColorCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/util/RandomColorCommand.java index c04b74f4..d484b211 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/util/RandomColorCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/util/RandomColorCommand.java @@ -2,6 +2,9 @@ import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.bot.command.Command; +import io.paradaux.friendlybot.bot.command.CommandBody; +import io.paradaux.friendlybot.bot.command.DiscordCommand; +import io.paradaux.friendlybot.core.data.database.models.FGuild; import io.paradaux.friendlybot.core.utils.ImageUtils; import io.paradaux.friendlybot.core.utils.NumberUtils; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; @@ -17,7 +20,7 @@ import java.net.http.HttpResponse; @Command(name = "", description = "", permission = "", aliases = {}) -public class RandomColorCommand extends BaseCommand { +public class RandomColorCommand extends DiscordCommand { private static final String IMGUR_API = "https://api.imgur.com/3/upload/"; @@ -29,7 +32,7 @@ public RandomColorCommand(ConfigurationEntry config, Logger logger) { } @Override - protected void execute(CommandEvent event) { + public void execute(FGuild guild, CommandBody body) { short color = NumberUtils.randomColor(); EmbedBuilder embed = new EmbedBuilder() diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/util/ServerInfoCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/util/ServerInfoCommand.java index 4a9add62..fdcabb76 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/util/ServerInfoCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/util/ServerInfoCommand.java @@ -27,6 +27,9 @@ import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.bot.command.Command; +import io.paradaux.friendlybot.bot.command.CommandBody; +import io.paradaux.friendlybot.bot.command.DiscordCommand; +import io.paradaux.friendlybot.core.data.database.models.FGuild; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; import net.dv8tion.jda.api.EmbedBuilder; @@ -39,7 +42,7 @@ import java.util.List; @Command(name = "", description = "", permission = "", aliases = {}) -public class ServerInfoCommand extends BaseCommand { +public class ServerInfoCommand extends DiscordCommand { public ServerInfoCommand(ConfigurationEntry config, Logger logger) { super(config, logger); @@ -49,7 +52,7 @@ public ServerInfoCommand(ConfigurationEntry config, Logger logger) { } @Override - protected void execute(CommandEvent event) { + public void execute(FGuild guild, CommandBody body) { Message message = event.getMessage(); Guild guild = event.getGuild(); diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/util/SetColorCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/util/SetColorCommand.java index cbdb787d..fbe764b5 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/util/SetColorCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/util/SetColorCommand.java @@ -2,6 +2,9 @@ import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.bot.command.Command; +import io.paradaux.friendlybot.bot.command.CommandBody; +import io.paradaux.friendlybot.bot.command.DiscordCommand; +import io.paradaux.friendlybot.core.data.database.models.FGuild; import io.paradaux.friendlybot.core.utils.NumberUtils; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.core.utils.models.database.UserSettingsEntry; @@ -19,7 +22,7 @@ import java.util.regex.Pattern; @Command(name = "", description = "", permission = "", aliases = {}) -public class SetColorCommand extends BaseCommand { +public class SetColorCommand extends DiscordCommand { private static final short COOLDOWN = 7; private static final Pattern HEX_PATTERN = Pattern.compile("(0x)?[0-9a-f]+"); @@ -34,7 +37,7 @@ public SetColorCommand(ConfigurationEntry config, Logger logger, RoleManager rol } @Override - protected void execute(CommandEvent event) { + public void execute(FGuild guild, CommandBody body) { final Message message = event.getMessage(); final Guild guild = event.getGuild(); final String chosenColor = event.getArgs().replace("0x", "").toUpperCase(); diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/util/TagCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/util/TagCommand.java index ab55d423..a9feeffc 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/util/TagCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/util/TagCommand.java @@ -27,6 +27,9 @@ import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.bot.command.Command; +import io.paradaux.friendlybot.bot.command.CommandBody; +import io.paradaux.friendlybot.bot.command.DiscordCommand; +import io.paradaux.friendlybot.core.data.database.models.FGuild; import io.paradaux.friendlybot.core.utils.NumberUtils; import io.paradaux.friendlybot.core.utils.TimeUtils; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; @@ -44,7 +47,7 @@ import java.util.Locale; @Command(name = "", description = "", permission = "", aliases = {}) -public class TagCommand extends PrivilegedCommand { +public class TagCommand extends DiscordCommand { private final MongoManager mongo; @@ -56,7 +59,7 @@ public TagCommand(ConfigurationEntry config, Logger logger, MongoManager mongo) } @Override - protected void execute(CommandEvent event) { + public void execute(FGuild guild, CommandBody body) { Message message = event.getMessage(); String[] args = getArgs(event.getArgs()); diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/util/TagsCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/util/TagsCommand.java index 4100485b..40572e90 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/util/TagsCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/util/TagsCommand.java @@ -2,13 +2,16 @@ import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.bot.command.Command; +import io.paradaux.friendlybot.bot.command.CommandBody; +import io.paradaux.friendlybot.bot.command.DiscordCommand; +import io.paradaux.friendlybot.core.data.database.models.FGuild; import io.paradaux.friendlybot.core.utils.NumberUtils; import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; import net.dv8tion.jda.api.EmbedBuilder; import org.slf4j.Logger; @Command(name = "", description = "", permission = "", aliases = {}) -public class TagsCommand extends BaseCommand { +public class TagsCommand extends DiscordCommand { private static final String TAGS_URL = "https://paradaux.io/projects/friendlybot/tools/tag_viewer.html?serverid=%s"; @@ -19,7 +22,7 @@ public TagsCommand(Logger logger) { } @Override - protected void execute(CommandEvent event) { + public void execute(FGuild guild, CommandBody body) { event.getChannel().sendMessage(new EmbedBuilder() .setColor(NumberUtils.randomColor()).setDescription("**You can view all tags for this guild here**: \n" + String.format(TAGS_URL, event.getGuild().getId())).build()).queue(); diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/util/UserInfoCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/util/UserInfoCommand.java index a9b1c569..b275a64c 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/util/UserInfoCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/util/UserInfoCommand.java @@ -27,6 +27,9 @@ import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.bot.command.Command; +import io.paradaux.friendlybot.bot.command.CommandBody; +import io.paradaux.friendlybot.bot.command.DiscordCommand; +import io.paradaux.friendlybot.core.data.database.models.FGuild; import io.paradaux.friendlybot.core.utils.StringUtils; import io.paradaux.friendlybot.core.utils.TimeUtils; import io.paradaux.friendlybot.core.utils.embeds.command.UserInfoEmbed; @@ -40,7 +43,7 @@ import java.util.List; @Command(name = "", description = "", permission = "", aliases = {}) -public class UserInfoCommand extends PrivilegedCommand { +public class UserInfoCommand extends DiscordCommand { public UserInfoCommand(ConfigurationEntry config, Logger logger, PermissionManager permissionManager) { super(config, logger, permissionManager); @@ -50,7 +53,7 @@ public UserInfoCommand(ConfigurationEntry config, Logger logger, PermissionManag } @Override - protected void execute(CommandEvent event) { + public void execute(FGuild guild, CommandBody body) { Member member; String argument = event.getArgs(); diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/util/WeatherCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/util/WeatherCommand.java index b80f472d..50d7c523 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/util/WeatherCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/util/WeatherCommand.java @@ -4,6 +4,9 @@ import com.google.gson.JsonParser; import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.bot.command.Command; +import io.paradaux.friendlybot.bot.command.CommandBody; +import io.paradaux.friendlybot.bot.command.DiscordCommand; +import io.paradaux.friendlybot.core.data.database.models.FGuild; import io.paradaux.friendlybot.core.utils.NumberUtils; import io.paradaux.friendlybot.core.utils.StringUtils; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; @@ -18,7 +21,7 @@ import java.net.http.HttpResponse; @Command(name = "", description = "", permission = "", aliases = {}) -public class WeatherCommand extends BaseCommand { +public class WeatherCommand extends DiscordCommand { private static final String WEATHER_API = "https://api.openweathermap.org/data/2.5/weather?q=%s&appid=%s"; private static final String MORE_INFORMATION_LINK = "https://openweathermap.org/city/%d"; @@ -33,7 +36,7 @@ public WeatherCommand(ConfigurationEntry config, Logger logger) { } @Override - protected void execute(CommandEvent event) { + public void execute(FGuild guild, CommandBody body) { Message message = event.getMessage(); HttpApi http = new HttpApi(getLogger()); diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/util/WolframAlphaCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/util/WolframAlphaCommand.java index 5411a9df..3660fdec 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/util/WolframAlphaCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/util/WolframAlphaCommand.java @@ -27,6 +27,9 @@ import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.bot.command.Command; +import io.paradaux.friendlybot.bot.command.CommandBody; +import io.paradaux.friendlybot.bot.command.DiscordCommand; +import io.paradaux.friendlybot.core.data.database.models.FGuild; import io.paradaux.friendlybot.core.utils.NumberUtils; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; @@ -40,7 +43,7 @@ import java.net.http.HttpResponse; @Command(name = "", description = "", permission = "", aliases = {}) -public class WolframAlphaCommand extends BaseCommand { +public class WolframAlphaCommand extends DiscordCommand { private static final String WOLFRAM_API = "https://api.wolframalpha.com/v1/result?i=%s&appid=%s&"; private static final String WOLFRAM_USER_LINK = "https://www.wolframalpha.com/input/?i=%s"; @@ -55,7 +58,7 @@ public WolframAlphaCommand(ConfigurationEntry config, Logger logger) { } @Override - protected void execute(CommandEvent event) { + public void execute(FGuild guild, CommandBody body) { Message message = event.getMessage(); String args = event.getArgs(); From 9ff91a372a3098916d03c2f6fa7dcee7c677dcd0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Sun, 19 Sep 2021 02:47:13 +0100 Subject: [PATCH 115/121] Progress push on command migration + optimise imports --- .../friendlybot/bot/command/CommandBody.java | 8 ++ .../bot/command/DiscordCommand.java | 67 ++++++++++++++- .../bot/command/PermissionHandler.java | 4 + .../bot/commands/image/CoinFlipCommand.java | 3 - .../bot/commands/image/EightBallCommand.java | 4 - .../bot/commands/image/InspireCommand.java | 4 - .../bot/commands/image/MemeCommand.java | 4 - .../bot/commands/image/MonkeyCommand.java | 4 - .../bot/commands/image/XKCDCommand.java | 5 -- .../bot/commands/joke/CharmanderCommand.java | 4 - .../bot/commands/joke/LmgtfyCommand.java | 4 - .../bot/commands/joke/MonkeCommand.java | 4 - .../bot/commands/joke/YodaifyCommand.java | 4 - .../bot/commands/util/ClearColorCommand.java | 19 ++--- .../bot/commands/util/CommandsCommand.java | 18 ++--- .../bot/commands/util/GoogleCommand.java | 81 ------------------- .../bot/commands/util/InviteCommand.java | 21 +---- .../bot/commands/util/MemeImagesCommand.java | 16 +--- .../bot/commands/util/PingCommand.java | 13 +-- .../bot/commands/util/RandomColorCommand.java | 17 +--- .../bot/commands/util/ServerInfoCommand.java | 31 +++---- .../bot/commands/util/SetColorCommand.java | 37 ++++----- .../bot/commands/util/TagCommand.java | 56 ++++++------- .../bot/commands/util/TagsCommand.java | 2 - .../bot/commands/util/UserInfoCommand.java | 20 +---- .../bot/commands/util/WeatherCommand.java | 26 ++---- .../commands/util/WolframAlphaCommand.java | 2 - .../friendlybot/core/utils/StringUtils.java | 8 ++ .../managers/DiscordBotManager.java | 14 +--- 29 files changed, 173 insertions(+), 327 deletions(-) create mode 100644 src/main/java/io/paradaux/friendlybot/bot/command/PermissionHandler.java delete mode 100644 src/main/java/io/paradaux/friendlybot/bot/commands/util/GoogleCommand.java diff --git a/src/main/java/io/paradaux/friendlybot/bot/command/CommandBody.java b/src/main/java/io/paradaux/friendlybot/bot/command/CommandBody.java index 0a1a90fe..2bc430c0 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/command/CommandBody.java +++ b/src/main/java/io/paradaux/friendlybot/bot/command/CommandBody.java @@ -41,6 +41,14 @@ public CommandBody(Message message, String command, String permission, String de this.user = member.getUser(); } + public String getArgStr() { + return String.join(" ", getArgs()); + } + + public boolean isArgsEmpty() { + return getArgs().length == 0; + } + public JDA getJda() { return jda; } diff --git a/src/main/java/io/paradaux/friendlybot/bot/command/DiscordCommand.java b/src/main/java/io/paradaux/friendlybot/bot/command/DiscordCommand.java index 0d4d358e..bb852084 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/command/DiscordCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/command/DiscordCommand.java @@ -2,17 +2,22 @@ import io.paradaux.friendlybot.FBApplication; import io.paradaux.friendlybot.core.data.config.FConfiguration; -import io.paradaux.friendlybot.core.data.config.FConfigurationLoader; import io.paradaux.friendlybot.core.data.database.models.FGuild; -import io.paradaux.friendlybot.core.utils.embeds.notices.SyntaxErrorEmbed; import io.paradaux.friendlybot.core.utils.models.enums.EmbedColour; +import io.paradaux.friendlybot.core.utils.models.exceptions.NoSuchUserException; import net.dv8tion.jda.api.EmbedBuilder; +import net.dv8tion.jda.api.entities.Guild; +import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Message; +import net.dv8tion.jda.api.entities.User; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import javax.annotation.CheckReturnValue; +import javax.annotation.Nullable; import java.util.ArrayList; import java.util.List; +import java.util.concurrent.ExecutionException; @Command(name = "undefined", description = "undefined", permission = "undefined") public abstract class DiscordCommand { @@ -52,6 +57,64 @@ public void syntaxError(Message message) { message.getChannel().sendMessageEmbeds(builder.build()).queue(); } + /** + * Used for commands which take a user as a parameter. Tries three ways of parsing the user. The first being by an @mention, the second + * by a tag (Username#Discriminator) then finally via their discord id. Returns the user object if found, otherwise null. + * */ + @CheckReturnValue + @Nullable + public User parseTarget(Message message, String userInput) throws NoSuchUserException { + try { + if (message.getMentionedMembers().size() == 1) { + return message.getMentionedMembers().get(0).getUser(); + } + + User user; + try { + user = message.getGuild().getJDA().getUserByTag(userInput); + } catch (IllegalArgumentException ex) { + user = message.getJDA().retrieveUserById(userInput).submit().get(); + } + + return user; + } catch (InterruptedException | ExecutionException | NumberFormatException exception) { + throw new NoSuchUserException(exception.getMessage()); + } + } + + /** + * Gets a message by guild and user id. + * */ + @CheckReturnValue + @Nullable + public Member retrieveMember(Guild guild, String userId) { + try { + return guild.retrieveMemberById(userId) + .submit() + .get(); + } catch (InterruptedException | ExecutionException e) { + logger.error("Interrupted Exception", e); + } + + return null; + } + + /** + * Gets a message by guild and User. + * */ + @CheckReturnValue + @Nullable + public Member retrieveMember(Guild guild, User user) { + try { + return guild.retrieveMember(user) + .submit() + .get(); + } catch (InterruptedException | ExecutionException e) { + logger.error("Interrupted Exception", e); + } + + return null; + } public FConfiguration getConfig() { return FBApplication.getConfig(); diff --git a/src/main/java/io/paradaux/friendlybot/bot/command/PermissionHandler.java b/src/main/java/io/paradaux/friendlybot/bot/command/PermissionHandler.java new file mode 100644 index 00000000..7b310f72 --- /dev/null +++ b/src/main/java/io/paradaux/friendlybot/bot/command/PermissionHandler.java @@ -0,0 +1,4 @@ +package io.paradaux.friendlybot.bot.command; + +public class PermissionHandler { +} diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/image/CoinFlipCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/image/CoinFlipCommand.java index aeb48b1b..eaa3ee2f 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/image/CoinFlipCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/image/CoinFlipCommand.java @@ -6,11 +6,8 @@ import io.paradaux.friendlybot.core.data.database.models.FGuild; import io.paradaux.friendlybot.core.utils.NumberUtils; import io.paradaux.friendlybot.core.utils.RandomUtils; -import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import net.dv8tion.jda.api.EmbedBuilder; -import net.dv8tion.jda.api.entities.Message; import net.dv8tion.jda.api.entities.MessageEmbed; -import org.slf4j.Logger; import java.util.concurrent.TimeUnit; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/image/EightBallCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/image/EightBallCommand.java index eabafdca..b21b8147 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/image/EightBallCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/image/EightBallCommand.java @@ -30,19 +30,15 @@ import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.stream.JsonReader; -import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.bot.command.Command; import io.paradaux.friendlybot.bot.command.CommandBody; import io.paradaux.friendlybot.bot.command.DiscordCommand; import io.paradaux.friendlybot.core.data.database.models.FGuild; import io.paradaux.friendlybot.core.utils.NumberUtils; import io.paradaux.friendlybot.core.utils.RandomUtils; -import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.Message; import net.dv8tion.jda.api.entities.MessageEmbed; -import org.slf4j.Logger; import java.io.InputStream; import java.io.InputStreamReader; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/image/InspireCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/image/InspireCommand.java index e952e93d..7924a2b7 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/image/InspireCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/image/InspireCommand.java @@ -25,17 +25,13 @@ package io.paradaux.friendlybot.bot.commands.image; -import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.bot.command.Command; import io.paradaux.friendlybot.bot.command.CommandBody; import io.paradaux.friendlybot.bot.command.DiscordCommand; import io.paradaux.friendlybot.core.data.database.models.FGuild; import io.paradaux.friendlybot.core.utils.NumberUtils; -import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; import io.paradaux.http.HttpApi; import net.dv8tion.jda.api.EmbedBuilder; -import org.slf4j.Logger; import java.net.http.HttpRequest; import java.net.http.HttpResponse; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/image/MemeCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/image/MemeCommand.java index 4157074b..b47227e5 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/image/MemeCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/image/MemeCommand.java @@ -25,16 +25,13 @@ package io.paradaux.friendlybot.bot.commands.image; -import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.bot.command.Command; import io.paradaux.friendlybot.bot.command.CommandBody; import io.paradaux.friendlybot.bot.command.DiscordCommand; import io.paradaux.friendlybot.core.data.database.models.FGuild; import io.paradaux.friendlybot.core.utils.HttpUtils; import io.paradaux.friendlybot.core.utils.NumberUtils; -import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.core.utils.models.exceptions.VerificationException; -import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; import io.paradaux.http.HttpApi; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.Message; @@ -45,7 +42,6 @@ import okhttp3.RequestBody; import org.json.JSONArray; import org.json.JSONObject; -import org.slf4j.Logger; import java.io.IOException; import java.io.Reader; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/image/MonkeyCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/image/MonkeyCommand.java index 0b4a413c..2ca524e4 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/image/MonkeyCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/image/MonkeyCommand.java @@ -1,17 +1,13 @@ package io.paradaux.friendlybot.bot.commands.image; -import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.bot.command.Command; import io.paradaux.friendlybot.bot.command.CommandBody; import io.paradaux.friendlybot.bot.command.DiscordCommand; import io.paradaux.friendlybot.core.data.database.models.FGuild; import io.paradaux.friendlybot.core.utils.NumberUtils; -import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; import io.paradaux.http.HttpApi; import net.dv8tion.jda.api.EmbedBuilder; import org.json.JSONObject; -import org.slf4j.Logger; import java.net.http.HttpRequest; import java.net.http.HttpResponse; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/image/XKCDCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/image/XKCDCommand.java index d022733e..fc8a0e02 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/image/XKCDCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/image/XKCDCommand.java @@ -25,23 +25,18 @@ package io.paradaux.friendlybot.bot.commands.image; -import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.bot.command.Command; import io.paradaux.friendlybot.bot.command.CommandBody; import io.paradaux.friendlybot.bot.command.DiscordCommand; import io.paradaux.friendlybot.core.data.database.models.FGuild; import io.paradaux.friendlybot.core.utils.NumberUtils; -import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; import io.paradaux.http.HttpApi; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.Message; import org.json.JSONObject; -import org.slf4j.Logger; import java.net.http.HttpRequest; import java.net.http.HttpResponse; -import java.util.Arrays; @Command(name = "xkcd", description = "Links to the specified xkcd", permission = "command.xkcd") public class XKCDCommand extends DiscordCommand { diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/joke/CharmanderCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/joke/CharmanderCommand.java index cf463df3..21a54c2a 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/joke/CharmanderCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/joke/CharmanderCommand.java @@ -1,16 +1,12 @@ package io.paradaux.friendlybot.bot.commands.joke; -import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.bot.command.Command; import io.paradaux.friendlybot.bot.command.CommandBody; import io.paradaux.friendlybot.bot.command.DiscordCommand; import io.paradaux.friendlybot.core.data.database.models.FGuild; import io.paradaux.friendlybot.core.utils.NumberUtils; import io.paradaux.friendlybot.core.utils.RandomUtils; -import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; import net.dv8tion.jda.api.EmbedBuilder; -import org.slf4j.Logger; import java.util.ArrayList; import java.util.Collections; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/joke/LmgtfyCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/joke/LmgtfyCommand.java index 184d1961..4610c58e 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/joke/LmgtfyCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/joke/LmgtfyCommand.java @@ -25,16 +25,12 @@ package io.paradaux.friendlybot.bot.commands.joke; -import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.bot.command.Command; import io.paradaux.friendlybot.bot.command.CommandBody; import io.paradaux.friendlybot.bot.command.DiscordCommand; import io.paradaux.friendlybot.core.data.database.models.FGuild; -import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.Message; -import org.slf4j.Logger; @Command(name = "lmgtfy", description = "Let me lmgtfy for you...", permission = "command.lmgtfy") public class LmgtfyCommand extends DiscordCommand { diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/joke/MonkeCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/joke/MonkeCommand.java index 69af5d9d..269b8347 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/joke/MonkeCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/joke/MonkeCommand.java @@ -1,6 +1,5 @@ package io.paradaux.friendlybot.bot.commands.joke; -import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.bot.command.Command; import io.paradaux.friendlybot.bot.command.CommandBody; import io.paradaux.friendlybot.bot.command.DiscordCommand; @@ -9,8 +8,6 @@ import io.paradaux.friendlybot.core.utils.HttpUtils; import io.paradaux.friendlybot.core.utils.NumberUtils; import io.paradaux.friendlybot.core.utils.RandomUtils; -import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.MessageEmbed; import okhttp3.MultipartBody; @@ -18,7 +15,6 @@ import okhttp3.Request; import okhttp3.RequestBody; import org.json.JSONObject; -import org.slf4j.Logger; import java.io.IOException; import java.io.Reader; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/joke/YodaifyCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/joke/YodaifyCommand.java index 7eef77de..0e0cf496 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/joke/YodaifyCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/joke/YodaifyCommand.java @@ -25,7 +25,6 @@ package io.paradaux.friendlybot.bot.commands.joke; -import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.bot.command.Command; import io.paradaux.friendlybot.bot.command.CommandBody; import io.paradaux.friendlybot.bot.command.DiscordCommand; @@ -33,8 +32,6 @@ import io.paradaux.friendlybot.core.data.database.models.FGuild; import io.paradaux.friendlybot.core.utils.HttpUtils; import io.paradaux.friendlybot.core.utils.NumberUtils; -import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.Message; import net.dv8tion.jda.api.entities.MessageEmbed; @@ -43,7 +40,6 @@ import okhttp3.Request; import okhttp3.RequestBody; import org.json.JSONObject; -import org.slf4j.Logger; import java.io.IOException; import java.io.Reader; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/util/ClearColorCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/util/ClearColorCommand.java index 12356576..e1baefbe 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/util/ClearColorCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/util/ClearColorCommand.java @@ -1,55 +1,50 @@ package io.paradaux.friendlybot.bot.commands.util; -import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.bot.command.Command; import io.paradaux.friendlybot.bot.command.CommandBody; import io.paradaux.friendlybot.bot.command.DiscordCommand; import io.paradaux.friendlybot.core.data.database.models.FGuild; import io.paradaux.friendlybot.core.utils.NumberUtils; -import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.core.utils.models.database.UserSettingsEntry; -import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; import io.paradaux.friendlybot.managers.UserSettingsManager; import net.dv8tion.jda.api.EmbedBuilder; -import net.dv8tion.jda.api.entities.Guild; import net.dv8tion.jda.api.entities.Message; import net.dv8tion.jda.api.entities.Role; -import org.slf4j.Logger; import java.util.List; -@Command(name = "clearcolor", description = "Clear a custom-color role.", permission = "util.color", aliases = {"clearcolour"}) +@Command(name = "clearcolor", description = "Clear a custom-color role.", permission = "util.usercolor", aliases = {"clearcolour"}) public class ClearColorCommand extends DiscordCommand { @Override public void execute(FGuild guild, CommandBody body) { - final Message message = event.getMessage(); + Message message = body.getMessage(); UserSettingsManager settings = UserSettingsManager.getInstance(); - UserSettingsEntry entry = settings.getProfileById(guild.getId(), event.getAuthor().getId()); + UserSettingsEntry entry = settings.getProfileById(guild.getGuild().getId(), body.getUser().getId()); if (entry.getCustomColorRole() == null) { message.reply("You do not have a custom color.").queue(); return; } - List customRoles = guild.getRolesByName(entry.getCustomColorRole(), true); + List customRoles = guild.getGuild().getRolesByName(entry.getCustomColorRole(), true); if (customRoles.size() == 0) { message.reply("An error occurred in that you appear to have an invalid custom color.").queue(); return; } - guild.removeRoleFromMember(event.getMember(), customRoles.get(0)).queue((success) -> { + guild.getGuild().removeRoleFromMember(body.getMember(), customRoles.get(0)).queue((success) -> { String customColor = entry.getCustomColorRole(); entry.setCustomColorRole(null); settings.updateSettingsProfile(entry); - if (settings.getProfileCountByColor(guild.getId(), customColor) == 0) { + if (settings.getProfileCountByColor(guild.getGuild().getId(), customColor) == 0) { customRoles.get(0).delete().queue(); } - message.getChannel().sendMessage(new EmbedBuilder() + message.getChannel().sendMessageEmbeds(new EmbedBuilder() .setColor(NumberUtils.randomColor()) .setTitle("Your custom color role has been cleared.") .setDescription("This has not had any effect on your 3-day cooldown, you may not modify your color again until that has expired.") diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/util/CommandsCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/util/CommandsCommand.java index d062bc82..65a8d54a 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/util/CommandsCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/util/CommandsCommand.java @@ -25,17 +25,13 @@ package io.paradaux.friendlybot.bot.commands.util; -import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.bot.command.Command; import io.paradaux.friendlybot.bot.command.CommandBody; import io.paradaux.friendlybot.bot.command.DiscordCommand; import io.paradaux.friendlybot.core.data.database.models.FGuild; import io.paradaux.friendlybot.core.utils.TimeUtils; -import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.MessageEmbed; -import org.slf4j.Logger; import java.io.BufferedReader; import java.io.InputStream; @@ -43,7 +39,7 @@ import java.util.Date; import java.util.stream.Collectors; -@Command(name = "", description = "", permission = "", aliases = {}) +@Command(name = "commands", description = "Command Information Embed", permission = "command.commands", aliases = {}) public class CommandsCommand extends DiscordCommand { private static final String THUMBNAIL_IMAGE = "https://cdn.paradaux.io/img/ybv70.png"; @@ -53,11 +49,7 @@ public class CommandsCommand extends DiscordCommand { private final String utilityCommandContent2; - public CommandsCommand(ConfigurationEntry config, Logger logger) { - super(config, logger); - this.name = "commands"; - this.help = "Command Information Embed"; - + public CommandsCommand() { InputStream inputStream = getClass().getResourceAsStream("/data/funcommands.txt"); BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream)); this.funCommandContent = reader.lines().collect(Collectors.joining("\n")); @@ -73,7 +65,7 @@ public CommandsCommand(ConfigurationEntry config, Logger logger) { @Override public void execute(FGuild guild, CommandBody body) { - event.getMessage().delete().queue(); + body.getMessage().delete().queue(); MessageEmbed funCommands = new EmbedBuilder() .setTitle("FriendlyBot » Commands") @@ -89,7 +81,7 @@ public void execute(FGuild guild, CommandBody body) { .setFooter("Last updated: " + TimeUtils.formatTime(new Date()), "https://cdn.paradaux.io/img/fteuv.png") .build(); - event.getChannel().sendMessage(funCommands).queue(); - event.getChannel().sendMessage(utilityCommands).queue(); + body.getChannel().sendMessageEmbeds(funCommands).queue(); + body.getChannel().sendMessageEmbeds(utilityCommands).queue(); } } diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/util/GoogleCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/util/GoogleCommand.java deleted file mode 100644 index 2e92fde8..00000000 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/util/GoogleCommand.java +++ /dev/null @@ -1,81 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2021 Rían Errity - * io.paradaux.friendlybot.commands.utility.GoogleCommand : 06/02/2021, 11:08 - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package io.paradaux.friendlybot.bot.commands.util; - -import com.google.gson.JsonObject; -import com.google.gson.JsonParser; -import com.jagrosh.jdautilities.command.CommandEvent; -import io.paradaux.friendlybot.bot.command.Command; -import io.paradaux.friendlybot.bot.command.CommandBody; -import io.paradaux.friendlybot.bot.command.DiscordCommand; -import io.paradaux.friendlybot.core.data.database.models.FGuild; -import io.paradaux.friendlybot.core.utils.StringUtils; -import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; -import io.paradaux.http.HttpApi; -import net.dv8tion.jda.api.entities.Message; -import org.slf4j.Logger; - -import java.net.http.HttpRequest; -import java.net.http.HttpResponse; - -@Command(name = "", description = "", permission = "", aliases = {}) -public class GoogleCommand extends DiscordCommand { - - private static final String QUERY_URL = "https://www.googleapis.com/customsearch/v1?key=%s&q=%s&safe=ACTIVE"; - private final String apiKey; - - public GoogleCommand(ConfigurationEntry config, Logger logger) { - super(config, logger); - this.name = "google"; - this.aliases = new String[]{"googleit"}; - this.help = "Google via discord!"; - this.apiKey = ""; - } - - @Override - public void execute(FGuild guild, CommandBody body) { - Message message = event.getMessage(); - String query = event.getArgs(); - - if (query.isEmpty()) { - respondSyntaxError(message, ";google "); - return; - } - - HttpApi http = new HttpApi(getLogger()); - HttpRequest request = http.jsonRequest(String.format(QUERY_URL, apiKey, StringUtils.urlEncode(query.replace(' ','+')))); - - http.sendAsync(request, HttpResponse.BodyHandlers.ofString()).thenAccept((response -> { - JsonObject json = JsonParser.parseString(response.body()).getAsJsonObject(); - - - - })).join(); - - - } -} diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/util/InviteCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/util/InviteCommand.java index 5b34fb11..a1a73691 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/util/InviteCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/util/InviteCommand.java @@ -25,15 +25,11 @@ package io.paradaux.friendlybot.bot.commands.util; -import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.FriendlyBot; import io.paradaux.friendlybot.bot.command.Command; import io.paradaux.friendlybot.bot.command.CommandBody; import io.paradaux.friendlybot.bot.command.DiscordCommand; import io.paradaux.friendlybot.core.data.database.models.FGuild; -import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; -import net.dv8tion.jda.api.entities.Message; -import org.slf4j.Logger; /** * This is a command which provides the user with an invite link to the current discord server. @@ -44,25 +40,14 @@ * @see FriendlyBot * */ -@Command(name = "", description = "", permission = "", aliases = {}) +@Command(name = "invite", description = "Provides the user with an invite link to invite the bot.", permission = "commands.invite", aliases = {}) public class InviteCommand extends DiscordCommand { - public InviteCommand(Logger logger) { - super(logger); - this.name = "invite"; - this.aliases = new String[]{"inv", "i"}; - this.help = "Provides the user with an invite link to invite the bot."; - } - @Override public void execute(FGuild guild, CommandBody body) { - Message message = event.getMessage(); - - String inviteInfo = "This is a utility discord bot for moderating discord servers pertaining to computer science, with a " + body.getMessage().getChannel().sendMessage("This is a utility discord bot for moderating discord servers pertaining to computer science, with a " + "markov chain-backed artificial intelligence. This particular instance of the bot is hosted by Rían#6500.\n\n" + "There " + "is nothing stopping anyone from starting their own instance, but you will require an SMTP Login to make use " + "of the" - + " email verification, and a mongodb database for everything else."; - - message.getChannel().sendMessage(inviteInfo).queue(); + + " email verification, and a mongodb database for everything else.").queue(); } } diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/util/MemeImagesCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/util/MemeImagesCommand.java index f3891d79..ff7982ca 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/util/MemeImagesCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/util/MemeImagesCommand.java @@ -25,36 +25,26 @@ package io.paradaux.friendlybot.bot.commands.util; -import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.bot.command.Command; import io.paradaux.friendlybot.bot.command.CommandBody; import io.paradaux.friendlybot.bot.command.DiscordCommand; import io.paradaux.friendlybot.core.data.database.models.FGuild; import io.paradaux.friendlybot.core.utils.NumberUtils; import io.paradaux.friendlybot.core.utils.TimeUtils; -import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; import io.paradaux.http.HttpApi; import net.dv8tion.jda.api.EmbedBuilder; import org.json.JSONArray; import org.json.JSONObject; -import org.slf4j.Logger; import java.net.http.HttpRequest; import java.net.http.HttpResponse; import java.util.Date; -@Command(name = "", description = "", permission = "", aliases = {}) +@Command(name = "memeimages", description = "Shows every possible meme image", permission = "commands.memeimages", aliases = {}) public class MemeImagesCommand extends DiscordCommand { private static final String GET_MEMES_API = "https://api.imgflip.com/get_memes"; - public MemeImagesCommand(ConfigurationEntry config, Logger logger) { - super(config, logger); - this.name = "memeimages"; - this.help = "Shows every possible meme image"; - } - @Override public void execute(FGuild guild, CommandBody body) { HttpApi http = new HttpApi(); @@ -74,7 +64,7 @@ public void execute(FGuild guild, CommandBody body) { .setDescription("**ID:** " + meme.getString("id") + "\n**Line count:** " + meme.getInt("box_count")) .setImage(meme.getString("url")); - event.getChannel().sendMessage(builder.build()).queue(); + body.getChannel().sendMessage(builder.build()).queue(); } EmbedBuilder builder = new EmbedBuilder() @@ -87,7 +77,7 @@ public void execute(FGuild guild, CommandBody body) { .addField(";meme caption 222403160 Meme Documentation | For you to read the documentation", "Caption memes by specifying the ID, then each line separated by a pipe (|)", false) .setFooter("Last updated: " + TimeUtils.formatTime(new Date()), "https://cdn.paradaux.io/img/fteuv.png"); - event.getChannel().sendMessage(builder.build()).queue(); + body.getChannel().sendMessage(builder.build()).queue(); }).join(); } } \ No newline at end of file diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/util/PingCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/util/PingCommand.java index c08ccc25..937fd2d6 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/util/PingCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/util/PingCommand.java @@ -25,14 +25,11 @@ package io.paradaux.friendlybot.bot.commands.util; -import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.FriendlyBot; import io.paradaux.friendlybot.bot.command.Command; import io.paradaux.friendlybot.bot.command.CommandBody; import io.paradaux.friendlybot.bot.command.DiscordCommand; import io.paradaux.friendlybot.core.data.database.models.FGuild; -import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; -import org.slf4j.Logger; /** * Ping Command is used to gauge DiscordAPI Latency. @@ -43,17 +40,11 @@ * @see FriendlyBot * */ -@Command(name = "", description = "", permission = "", aliases = {}) +@Command(name = "ping", description = "Test bot latency", permission = "commands.ping", aliases = {}) public class PingCommand extends DiscordCommand { - public PingCommand(Logger logger) { - super(logger); - this.name = "ping"; - this.help = "Latency Test Command."; - } - @Override public void execute(FGuild guild, CommandBody body) { - event.getChannel().sendMessage("Pong!").queue(); + body.getChannel().sendMessage("Pong!").queue(); } } diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/util/RandomColorCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/util/RandomColorCommand.java index d484b211..ef49c49f 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/util/RandomColorCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/util/RandomColorCommand.java @@ -1,36 +1,25 @@ package io.paradaux.friendlybot.bot.commands.util; -import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.bot.command.Command; import io.paradaux.friendlybot.bot.command.CommandBody; import io.paradaux.friendlybot.bot.command.DiscordCommand; import io.paradaux.friendlybot.core.data.database.models.FGuild; import io.paradaux.friendlybot.core.utils.ImageUtils; import io.paradaux.friendlybot.core.utils.NumberUtils; -import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; import io.paradaux.http.HttpApi; import net.dv8tion.jda.api.EmbedBuilder; import org.json.JSONObject; -import org.slf4j.Logger; import java.awt.image.BufferedImage; import java.io.IOException; import java.net.http.HttpRequest; import java.net.http.HttpResponse; -@Command(name = "", description = "", permission = "", aliases = {}) +@Command(name = "randomcolor", description = "Get a random Hex RGB Color", permission = "commands.randomcolor", aliases = {"randomcolour"}) public class RandomColorCommand extends DiscordCommand { private static final String IMGUR_API = "https://api.imgur.com/3/upload/"; - public RandomColorCommand(ConfigurationEntry config, Logger logger) { - super(config, logger); - this.name = "randomcolor"; - this.aliases = new String[]{"randomcolour"}; - this.help = "Get a random Hex RGB Color"; - } - @Override public void execute(FGuild guild, CommandBody body) { short color = NumberUtils.randomColor(); @@ -45,7 +34,7 @@ public void execute(FGuild guild, CommandBody body) { imageRaw = ImageUtils.imageToBytes(image, "png"); } catch (IOException ok) { getLogger().error("An error occurred while creating a solid-color image."); - event.getMessage().reply("An error occurred whilst creating a solid-color image").queue(); + body.getMessage().reply("An error occurred whilst creating a solid-color image").queue(); return; } @@ -57,7 +46,7 @@ public void execute(FGuild guild, CommandBody body) { http.sendAsync(request, HttpResponse.BodyHandlers.ofString()).thenAccept((response -> { JSONObject imgurMeta = new JSONObject(response.body()); embed.setImage(imgurMeta.getJSONObject("data").getString("link")); - event.getChannel().sendMessage(embed.build()).queue(); + body.getChannel().sendMessage(embed.build()).queue(); })).join(); } } diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/util/ServerInfoCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/util/ServerInfoCommand.java index fdcabb76..868f9556 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/util/ServerInfoCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/util/ServerInfoCommand.java @@ -25,38 +25,26 @@ package io.paradaux.friendlybot.bot.commands.util; -import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.bot.command.Command; import io.paradaux.friendlybot.bot.command.CommandBody; import io.paradaux.friendlybot.bot.command.DiscordCommand; import io.paradaux.friendlybot.core.data.database.models.FGuild; -import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.Emote; -import net.dv8tion.jda.api.entities.Guild; import net.dv8tion.jda.api.entities.Message; import net.dv8tion.jda.api.entities.MessageEmbed; -import org.slf4j.Logger; import java.util.List; -@Command(name = "", description = "", permission = "", aliases = {}) +@Command(name = "serverinfo", description = "Provides information about the server", permission = "commands.serverinfo", aliases = {"si", "srvinfo"}) public class ServerInfoCommand extends DiscordCommand { - public ServerInfoCommand(ConfigurationEntry config, Logger logger) { - super(config, logger); - this.name = "serverinfo"; - this.help = "Provides information about the server."; - this.aliases = new String[]{"si, srvinfo"}; - } - @Override public void execute(FGuild guild, CommandBody body) { - Message message = event.getMessage(); - Guild guild = event.getGuild(); + Message message = body.getMessage(); + - List emotes = guild.getEmotes(); + List emotes = guild.getGuild().getEmotes(); StringBuilder builder = new StringBuilder(); for (final var emote : emotes) { @@ -64,14 +52,13 @@ public void execute(FGuild guild, CommandBody body) { } MessageEmbed embed = new EmbedBuilder() - .setTitle(guild.getName() + " » Server Information") + .setTitle(guild.getGuild().getName() + " » Server Information") .setColor(0x009999) - .setThumbnail(guild.getIconUrl()) - .addField("Owner", retrieveMember(guild, guild.getOwnerId()).getUser().getAsTag(), true) - .addField("Member Count", String.valueOf(guild.getMemberCount()), true) -// .addField("Emojis", emotes.size() + ": " + builder.toString(), false) + .setThumbnail(guild.getGuild().getIconUrl()) + .addField("Owner", retrieveMember(guild.getGuild(), guild.getGuild().getOwnerId()).getUser().getAsTag(), true) + .addField("Member Count", String.valueOf(guild.getGuild().getMemberCount()), true) .build(); - message.getChannel().sendMessage(embed).queue(); + message.getChannel().sendMessageEmbeds(embed).queue(); } } diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/util/SetColorCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/util/SetColorCommand.java index fbe764b5..11def3ee 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/util/SetColorCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/util/SetColorCommand.java @@ -1,27 +1,23 @@ package io.paradaux.friendlybot.bot.commands.util; -import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.bot.command.Command; import io.paradaux.friendlybot.bot.command.CommandBody; import io.paradaux.friendlybot.bot.command.DiscordCommand; import io.paradaux.friendlybot.core.data.database.models.FGuild; import io.paradaux.friendlybot.core.utils.NumberUtils; -import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.core.utils.models.database.UserSettingsEntry; -import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; import io.paradaux.friendlybot.managers.RoleManager; import io.paradaux.friendlybot.managers.UserSettingsManager; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.Guild; import net.dv8tion.jda.api.entities.Message; import net.dv8tion.jda.api.entities.Role; -import org.slf4j.Logger; import java.util.Date; import java.util.List; import java.util.regex.Pattern; -@Command(name = "", description = "", permission = "", aliases = {}) +@Command(name = "setcolor", description = "Set your own user color!", permission = "util.usercolor", aliases = {"setcolour"}) public class SetColorCommand extends DiscordCommand { private static final short COOLDOWN = 7; @@ -29,21 +25,18 @@ public class SetColorCommand extends DiscordCommand { private final RoleManager roles; - public SetColorCommand(ConfigurationEntry config, Logger logger, RoleManager roles) { - super(config, logger); - this.name = "setcolor"; - this.aliases = new String[]{"setcolour"}; + public SetColorCommand(RoleManager roles) { this.roles = roles; } @Override public void execute(FGuild guild, CommandBody body) { - final Message message = event.getMessage(); - final Guild guild = event.getGuild(); - final String chosenColor = event.getArgs().replace("0x", "").toUpperCase(); + final Message message = body.getMessage(); + final Guild jDuild = guild.getGuild(); + final String chosenColor = body.getArgStr().replace("0x", "").toUpperCase(); - if (event.getArgs().isEmpty()) { - event.getChannel().sendMessage(new EmbedBuilder() + if (body.isArgsEmpty()) { + body.getChannel().sendMessageEmbeds(new EmbedBuilder() .setColor(NumberUtils.randomColor()) .setTitle("Setting Your Uniquely Coloured Role") .setDescription("To get your own coloured role, run `;setcolour `. This has a 3 day cooldown, so make sure " @@ -54,7 +47,7 @@ public void execute(FGuild guild, CommandBody body) { } if (!(HEX_PATTERN.matcher(chosenColor).results().count() > 0)) { - message.getChannel().sendMessage(new EmbedBuilder() + message.getChannel().sendMessageEmbeds(new EmbedBuilder() .setColor(0xeb5132) .setTitle("Invalid Hex Color") .setDescription("Please format your color as a hex string between `000000` and `FFFFFF`") @@ -63,7 +56,7 @@ public void execute(FGuild guild, CommandBody body) { } UserSettingsManager settings = UserSettingsManager.getInstance(); - UserSettingsEntry entry = settings.getProfileById(guild.getId(), event.getAuthor().getId()); + UserSettingsEntry entry = settings.getProfileById(jDuild.getId(), body.getUser().getId()); if (entry.getLastSetColor() != null && !settings.hasCooldownElapsed(entry)) { message.reply("You must wait until your cooldown expires before running this command again.").queue(); return; @@ -74,16 +67,16 @@ public void execute(FGuild guild, CommandBody body) { return; } - List allRoles = guild.getRolesByName("Color Roles Begin Here", true); + List allRoles = jDuild.getRolesByName("Color Roles Begin Here", true); if (allRoles.isEmpty()) { throw new RuntimeException("Color role separator not present."); } Role separatorRole = allRoles.get(0); - if (roles.checkForConflicts(guild, chosenColor)) { + if (roles.checkForConflicts(jDuild, chosenColor)) { // role already exists, let's not create a duplicate - guild.addRoleToMember(event.getMember(), guild.getRolesByName(chosenColor, true).get(0)).queue(); + jDuild.addRoleToMember(body.getMember(), jDuild.getRolesByName(chosenColor, true).get(0)).queue(); entry.setCustomColorRole(chosenColor) .setLastSetColor(new Date()); @@ -92,9 +85,9 @@ public void execute(FGuild guild, CommandBody body) { return; } - roles.createRole(guild, chosenColor).queue((role -> { - guild.modifyRolePositions().selectPosition(role).moveTo(separatorRole.getPosition() - 1).queue(); - guild.addRoleToMember(event.getMember(), role).queue(); + roles.createRole(jDuild, chosenColor).queue((role -> { + jDuild.modifyRolePositions().selectPosition(role).moveTo(separatorRole.getPosition() - 1).queue(); + jDuild.addRoleToMember(body.getMember(), role).queue(); entry.setCustomColorRole(chosenColor) .setLastSetColor(new Date()); diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/util/TagCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/util/TagCommand.java index a9feeffc..b9d6b9fb 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/util/TagCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/util/TagCommand.java @@ -16,7 +16,7 @@ * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO body SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE @@ -25,46 +25,40 @@ package io.paradaux.friendlybot.bot.commands.util; -import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.bot.command.Command; import io.paradaux.friendlybot.bot.command.CommandBody; import io.paradaux.friendlybot.bot.command.DiscordCommand; import io.paradaux.friendlybot.core.data.database.models.FGuild; import io.paradaux.friendlybot.core.utils.NumberUtils; +import io.paradaux.friendlybot.core.utils.StringUtils; import io.paradaux.friendlybot.core.utils.TimeUtils; -import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.core.utils.models.database.TagEntry; -import io.paradaux.friendlybot.core.utils.models.types.PrivilegedCommand; import io.paradaux.friendlybot.managers.MongoManager; import io.paradaux.friendlybot.managers.TagManager; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Message; import net.dv8tion.jda.api.entities.MessageEmbed; -import org.slf4j.Logger; import java.util.Date; import java.util.Locale; -@Command(name = "", description = "", permission = "", aliases = {}) +@Command(name = "tag", description = "Manage tags", permission = "util.managetags", aliases = {"t"}) public class TagCommand extends DiscordCommand { private final MongoManager mongo; - public TagCommand(ConfigurationEntry config, Logger logger, MongoManager mongo) { - super(config, logger); + public TagCommand(MongoManager mongo) { this.mongo = mongo; - this.name = "tag"; - this.help = "Manage tags. privileged"; } @Override public void execute(FGuild guild, CommandBody body) { - Message message = event.getMessage(); - String[] args = getArgs(event.getArgs()); + Message message = body.getMessage(); + String[] args = body.getArgs(); if (args.length == 0) { - respondSyntaxError(message, ";tag [id] [content]"); + syntaxError(message); return; } @@ -72,23 +66,23 @@ public void execute(FGuild guild, CommandBody body) { switch (args[0]) { case "create": { - TagEntry entry = tags.getTagById(event.getGuild().getId(), args[1].toLowerCase(Locale.ROOT)); + TagEntry entry = tags.getTagById(guild.getGuild().getId(), args[1].toLowerCase(Locale.ROOT)); if (entry != null) { MessageEmbed embed = new EmbedBuilder() .setColor(0xeb5132) .setTitle("This tag already exists") - .setDescription("This tag is owned by " + retrieveMember(event.getGuild(), entry.getDiscordId())) + .setDescription("This tag is owned by " + retrieveMember(guild.getGuild(), entry.getDiscordId())) .build(); - message.getChannel().sendMessage(embed).queue(); + message.getChannel().sendMessageEmbeds(embed).queue(); } // Tag doesn't exist, make a new one. entry = new TagEntry() .setId(args[1].toLowerCase(Locale.ROOT)) - .setContent(parseSentance(2, args)) - .setDiscordId(event.getAuthor().getId()) - .setGuildId(event.getGuild().getId()) + .setContent(StringUtils.parseSentence(2, args)) + .setDiscordId(body.getUser().getId()) + .setGuildId(guild.getGuild().getId()) .setTimeCreated(new Date()); tags.addTag(entry); @@ -98,29 +92,29 @@ public void execute(FGuild guild, CommandBody body) { .setColor(0x00cc99) .build(); - event.getChannel().sendMessage(embed).queue(); + body.getChannel().sendMessageEmbeds(embed).queue(); break; } case "delete": { - TagEntry entry = tags.getTagById(event.getGuild().getId(), args[1]); + TagEntry entry = tags.getTagById(guild.getGuild().getId(), args[1]); if (entry == null) { MessageEmbed embed = new EmbedBuilder() .setColor(0xeb5132) .setTitle("This tag does not exist.") .build(); - message.getChannel().sendMessage(embed).queue(); + message.getChannel().sendMessageEmbeds(embed).queue(); return; } - if (!(entry.getDiscordId().equals(event.getAuthor().getId()) || isStaff(event.getGuild(), event.getAuthor().getId()))) { + if (!(entry.getDiscordId().equals(body.getUser().getId()) || isStaff(body.getGuild(), body.getAuthor().getId()))) { // Not staff, not the owner. MessageEmbed embed = new EmbedBuilder() .setColor(0xeb5132) .setTitle("You do not have permission to modify this tag.") - .setDescription("This tag is owned by " + retrieveMember(event.getGuild(), entry.getDiscordId())) + .setDescription("This tag is owned by " + retrieveMember(guild.getGuild(), entry.getDiscordId())) .build(); - message.getChannel().sendMessage(embed).queue(); + message.getChannel().sendMessageEmbeds(embed).queue(); return; } @@ -131,23 +125,23 @@ public void execute(FGuild guild, CommandBody body) { .setColor(0x00cc99) .build(); - message.getChannel().sendMessage(embed).queue(); + message.getChannel().sendMessageEmbeds(embed).queue(); break; } case "view": { - TagEntry entry = tags.getTagById(event.getGuild().getId(), args[1].toLowerCase(Locale.ROOT)); + TagEntry entry = tags.getTagById(guild.getGuild().getId(), args[1].toLowerCase(Locale.ROOT)); if (entry == null) { MessageEmbed embed = new EmbedBuilder() .setColor(0xeb5132) .setTitle("This tag does not exist.") .build(); - message.getChannel().sendMessage(embed).queue(); + message.getChannel().sendMessageEmbeds(embed).queue(); return; } - Member owner = retrieveMember(event.getGuild(), entry.getDiscordId()); + Member owner = retrieveMember(guild.getGuild(), entry.getDiscordId()); String tag = owner != null ? owner.getUser().getAsTag() : "User no longer in guild."; MessageEmbed embed = new EmbedBuilder() @@ -157,12 +151,12 @@ public void execute(FGuild guild, CommandBody body) { .addField("Created", TimeUtils.formatTime(entry.getTimeCreated()), true) .build(); - message.getChannel().sendMessage(embed).queue(); + message.getChannel().sendMessageEmbeds(embed).queue(); break; } default: { - respondSyntaxError(message, ";tag [id] [content]"); + syntaxError(message); } } } diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/util/TagsCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/util/TagsCommand.java index 40572e90..45ffb197 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/util/TagsCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/util/TagsCommand.java @@ -1,12 +1,10 @@ package io.paradaux.friendlybot.bot.commands.util; -import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.bot.command.Command; import io.paradaux.friendlybot.bot.command.CommandBody; import io.paradaux.friendlybot.bot.command.DiscordCommand; import io.paradaux.friendlybot.core.data.database.models.FGuild; import io.paradaux.friendlybot.core.utils.NumberUtils; -import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; import net.dv8tion.jda.api.EmbedBuilder; import org.slf4j.Logger; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/util/UserInfoCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/util/UserInfoCommand.java index b275a64c..ccc91de6 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/util/UserInfoCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/util/UserInfoCommand.java @@ -25,7 +25,6 @@ package io.paradaux.friendlybot.bot.commands.util; -import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.bot.command.Command; import io.paradaux.friendlybot.bot.command.CommandBody; import io.paradaux.friendlybot.bot.command.DiscordCommand; @@ -33,25 +32,14 @@ import io.paradaux.friendlybot.core.utils.StringUtils; import io.paradaux.friendlybot.core.utils.TimeUtils; import io.paradaux.friendlybot.core.utils.embeds.command.UserInfoEmbed; -import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.core.utils.models.types.PrivilegedCommand; -import io.paradaux.friendlybot.managers.PermissionManager; import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Role; -import org.slf4j.Logger; import java.util.List; -@Command(name = "", description = "", permission = "", aliases = {}) +@Command(name = "userinfo", description = "Shows information about yourself or the specified user.", permission = "commands.userinfo", aliases = {"info", "ui"}) public class UserInfoCommand extends DiscordCommand { - public UserInfoCommand(ConfigurationEntry config, Logger logger, PermissionManager permissionManager) { - super(config, logger, permissionManager); - this.name = "userinfo"; - this.aliases = new String[]{"info", "ui"}; - this.help = "Shows information about yourself or the specified user."; - } - @Override public void execute(FGuild guild, CommandBody body) { Member member; @@ -61,11 +49,11 @@ public void execute(FGuild guild, CommandBody body) { member = retrieveMember(event.getGuild(), parseTarget(event.getMessage(), getArgs(argument)[0])); if (member == null) { - respondSyntaxError(event.getMessage(), ";userinfo "); + syntaxError(body.getMessage()); return; } } else { - member = event.getMember(); + member = body.getMember(); } String tag = member.getUser().getAsTag(); @@ -89,7 +77,7 @@ public void execute(FGuild guild, CommandBody body) { builder.append(roles.get(i).getName()).append(" ]"); UserInfoEmbed embed = new UserInfoEmbed(tag, avatarUrl, status, accountCreated, joinedServer, builder.toString(), nickname); - embed.sendEmbed(event.getTextChannel()); + embed.sendEmbed(guild.getGuild().getJDA().getTextChannelById(body.getMessage().getChannel().getId())); } } diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/util/WeatherCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/util/WeatherCommand.java index 50d7c523..89e3c7b0 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/util/WeatherCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/util/WeatherCommand.java @@ -2,25 +2,21 @@ import com.google.gson.JsonObject; import com.google.gson.JsonParser; -import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.bot.command.Command; import io.paradaux.friendlybot.bot.command.CommandBody; import io.paradaux.friendlybot.bot.command.DiscordCommand; import io.paradaux.friendlybot.core.data.database.models.FGuild; import io.paradaux.friendlybot.core.utils.NumberUtils; import io.paradaux.friendlybot.core.utils.StringUtils; -import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; import io.paradaux.http.HttpApi; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.Message; import net.dv8tion.jda.api.entities.MessageEmbed; -import org.slf4j.Logger; import java.net.http.HttpRequest; import java.net.http.HttpResponse; -@Command(name = "", description = "", permission = "", aliases = {}) +@Command(name = "weather", description = "View weather information", permission = "commands.weather", aliases = {"w"}) public class WeatherCommand extends DiscordCommand { private static final String WEATHER_API = "https://api.openweathermap.org/data/2.5/weather?q=%s&appid=%s"; @@ -29,32 +25,26 @@ public class WeatherCommand extends DiscordCommand { private static final String TEMPERATURE_FORMAT = "%.2f°C (%.2f°F)"; private static final String WIND_FORMAT = "%.1fm/s %.0f° (%s)"; - public WeatherCommand(ConfigurationEntry config, Logger logger) { - super(config, logger); - this.name = "weather"; - this.help = "View weather information"; - } - @Override public void execute(FGuild guild, CommandBody body) { - Message message = event.getMessage(); + Message message = body.getMessage(); HttpApi http = new HttpApi(getLogger()); - if (event.getArgs().isEmpty()) { - respondSyntaxError(message, ";weather "); + if (body.getArgs().length == 0) { + syntaxError(message); return; } - String place = StringUtils.toTitleCase(event.getArgs()); + String place = StringUtils.toTitleCase(String.join(" ", body.getArgs())); - HttpRequest request = http.plainRequest(String.format(WEATHER_API, place.replace(" ", "%20"), getConfig().getWeatherApiKey())); + HttpRequest request = http.plainRequest(String.format(WEATHER_API, place.replace(" ", "%20"), getConfig().getOpenWeatherMapApiKey())); http.sendAsync(request, HttpResponse.BodyHandlers.ofString()).thenAccept((response) -> { JsonObject weatherData = JsonParser.parseString(response.body()).getAsJsonObject(); if (!(weatherData.get("cod").getAsInt() == 200)) { - event.getChannel().sendMessage(new EmbedBuilder() + body.getChannel().sendMessage(new EmbedBuilder() .setColor(0xeb5132) .setTitle("Error: " + weatherData.get("cod").getAsInt()) .setDescription("**Message**: " + weatherData.get("message").getAsString()) @@ -94,7 +84,7 @@ public void execute(FGuild guild, CommandBody body) { .setFooter("Weather Information reflects the current weather conditions, this information is provided courtesy of OpenWeatherMap.org") .build(); - event.getChannel().sendMessage(embed).queue(); + body.getChannel().sendMessageEmbeds(embed).queue(); }).join(); } } diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/util/WolframAlphaCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/util/WolframAlphaCommand.java index 3660fdec..89882f96 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/util/WolframAlphaCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/util/WolframAlphaCommand.java @@ -25,14 +25,12 @@ package io.paradaux.friendlybot.bot.commands.util; -import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.bot.command.Command; import io.paradaux.friendlybot.bot.command.CommandBody; import io.paradaux.friendlybot.bot.command.DiscordCommand; import io.paradaux.friendlybot.core.data.database.models.FGuild; import io.paradaux.friendlybot.core.utils.NumberUtils; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; -import io.paradaux.friendlybot.core.utils.models.types.BaseCommand; import io.paradaux.http.HttpApi; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.Message; diff --git a/src/main/java/io/paradaux/friendlybot/core/utils/StringUtils.java b/src/main/java/io/paradaux/friendlybot/core/utils/StringUtils.java index bfe620ae..e858aaf4 100644 --- a/src/main/java/io/paradaux/friendlybot/core/utils/StringUtils.java +++ b/src/main/java/io/paradaux/friendlybot/core/utils/StringUtils.java @@ -28,6 +28,7 @@ import javax.annotation.Nullable; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; +import java.util.Arrays; import java.util.Base64; import java.util.Random; import java.util.regex.Pattern; @@ -156,4 +157,11 @@ public static boolean parseBoolean(String str) { throw new IllegalArgumentException("Argument did not contain boolean value."); } + + /** + * Parses a sentence from the specified arguments, beginning at the specified array index. + * */ + public static String parseSentence(int startElement, String[] args) { + return String.join(" ", Arrays.copyOfRange(args, startElement, args.length)); + } } diff --git a/src/main/java/io/paradaux/friendlybot/managers/DiscordBotManager.java b/src/main/java/io/paradaux/friendlybot/managers/DiscordBotManager.java index eca23dfd..9c2b5c07 100644 --- a/src/main/java/io/paradaux/friendlybot/managers/DiscordBotManager.java +++ b/src/main/java/io/paradaux/friendlybot/managers/DiscordBotManager.java @@ -25,16 +25,7 @@ package io.paradaux.friendlybot.managers; -import com.jagrosh.jdautilities.command.CommandClient; -import com.jagrosh.jdautilities.command.CommandClientBuilder; import com.jagrosh.jdautilities.commons.waiter.EventWaiter; -import io.paradaux.friendlybot.bot.commands.image.*; -import io.paradaux.friendlybot.bot.commands.joke.CharmanderCommand; -import io.paradaux.friendlybot.bot.commands.joke.LmgtfyCommand; -import io.paradaux.friendlybot.bot.commands.joke.MonkeCommand; -import io.paradaux.friendlybot.bot.commands.joke.YodaifyCommand; -import io.paradaux.friendlybot.bot.commands.privileged.*; -import io.paradaux.friendlybot.bot.commands.util.*; import io.paradaux.friendlybot.core.utils.models.configuration.ConfigurationEntry; import io.paradaux.friendlybot.core.utils.models.exceptions.ManagerNotReadyException; import io.paradaux.friendlybot.discord.listeners.*; @@ -49,7 +40,10 @@ import io.paradaux.friendlybot.discord.listeners.verification.VerificationEmailReceivedListener; import net.dv8tion.jda.api.JDA; import net.dv8tion.jda.api.JDABuilder; -import net.dv8tion.jda.api.entities.*; +import net.dv8tion.jda.api.entities.Guild; +import net.dv8tion.jda.api.entities.Role; +import net.dv8tion.jda.api.entities.TextChannel; +import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.requests.GatewayIntent; import net.dv8tion.jda.api.utils.MemberCachePolicy; import org.slf4j.Logger; From 226c877a1fa420e5bfdc9e7fcf65f7b1dcc5e5ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Sun, 19 Sep 2021 03:16:45 +0100 Subject: [PATCH 116/121] Moving privileged commands into package structure --- .../{privileged => staff/admin}/AnnouncementCommand.java | 2 +- .../bot/commands/{privileged => staff/admin}/BanCommand.java | 2 +- .../bot/commands/{privileged => staff/admin}/PruneCommand.java | 2 +- .../bot/commands/{privileged => staff/admin}/SayCommand.java | 2 +- .../commands/{privileged => staff/admin}/SendEmbedCommand.java | 2 +- .../{privileged => staff/admin}/VerificationCommand.java | 2 +- .../bot/commands/{privileged => staff/mod}/CiteCommand.java | 2 +- .../bot/commands/{privileged => staff/mod}/DmCommand.java | 2 +- .../bot/commands/{privileged => staff/mod}/KickCommand.java | 2 +- .../bot/commands/{privileged => staff/mod}/LookupCommand.java | 2 +- .../bot/commands/{privileged => staff/mod}/RespondCommand.java | 2 +- .../bot/commands/{privileged => staff/mod}/TempBanCommand.java | 2 +- .../bot/commands/{privileged => staff/mod}/TicketCommand.java | 2 +- .../bot/commands/{privileged => staff/mod}/WarnCommand.java | 2 +- 14 files changed, 14 insertions(+), 14 deletions(-) rename src/main/java/io/paradaux/friendlybot/bot/commands/{privileged => staff/admin}/AnnouncementCommand.java (98%) rename src/main/java/io/paradaux/friendlybot/bot/commands/{privileged => staff/admin}/BanCommand.java (98%) rename src/main/java/io/paradaux/friendlybot/bot/commands/{privileged => staff/admin}/PruneCommand.java (98%) rename src/main/java/io/paradaux/friendlybot/bot/commands/{privileged => staff/admin}/SayCommand.java (97%) rename src/main/java/io/paradaux/friendlybot/bot/commands/{privileged => staff/admin}/SendEmbedCommand.java (99%) rename src/main/java/io/paradaux/friendlybot/bot/commands/{privileged => staff/admin}/VerificationCommand.java (98%) rename src/main/java/io/paradaux/friendlybot/bot/commands/{privileged => staff/mod}/CiteCommand.java (98%) rename src/main/java/io/paradaux/friendlybot/bot/commands/{privileged => staff/mod}/DmCommand.java (98%) rename src/main/java/io/paradaux/friendlybot/bot/commands/{privileged => staff/mod}/KickCommand.java (98%) rename src/main/java/io/paradaux/friendlybot/bot/commands/{privileged => staff/mod}/LookupCommand.java (99%) rename src/main/java/io/paradaux/friendlybot/bot/commands/{privileged => staff/mod}/RespondCommand.java (98%) rename src/main/java/io/paradaux/friendlybot/bot/commands/{privileged => staff/mod}/TempBanCommand.java (98%) rename src/main/java/io/paradaux/friendlybot/bot/commands/{privileged => staff/mod}/TicketCommand.java (99%) rename src/main/java/io/paradaux/friendlybot/bot/commands/{privileged => staff/mod}/WarnCommand.java (98%) diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/AnnouncementCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/staff/admin/AnnouncementCommand.java similarity index 98% rename from src/main/java/io/paradaux/friendlybot/bot/commands/privileged/AnnouncementCommand.java rename to src/main/java/io/paradaux/friendlybot/bot/commands/staff/admin/AnnouncementCommand.java index b4f34e30..ac98f159 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/AnnouncementCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/staff/admin/AnnouncementCommand.java @@ -1,4 +1,4 @@ -package io.paradaux.friendlybot.bot.commands.privileged; +package io.paradaux.friendlybot.bot.commands.staff.admin; import com.jagrosh.jdautilities.command.CommandEvent; import com.jagrosh.jdautilities.commons.waiter.EventWaiter; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/BanCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/staff/admin/BanCommand.java similarity index 98% rename from src/main/java/io/paradaux/friendlybot/bot/commands/privileged/BanCommand.java rename to src/main/java/io/paradaux/friendlybot/bot/commands/staff/admin/BanCommand.java index 62b353a2..7cba62bc 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/BanCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/staff/admin/BanCommand.java @@ -23,7 +23,7 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.bot.commands.privileged; +package io.paradaux.friendlybot.bot.commands.staff.admin; import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.FriendlyBot; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/PruneCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/staff/admin/PruneCommand.java similarity index 98% rename from src/main/java/io/paradaux/friendlybot/bot/commands/privileged/PruneCommand.java rename to src/main/java/io/paradaux/friendlybot/bot/commands/staff/admin/PruneCommand.java index 12eacd04..bf0d897e 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/PruneCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/staff/admin/PruneCommand.java @@ -23,7 +23,7 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.bot.commands.privileged; +package io.paradaux.friendlybot.bot.commands.staff.admin; import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.bot.command.Command; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/SayCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/staff/admin/SayCommand.java similarity index 97% rename from src/main/java/io/paradaux/friendlybot/bot/commands/privileged/SayCommand.java rename to src/main/java/io/paradaux/friendlybot/bot/commands/staff/admin/SayCommand.java index eb837432..2575a6e0 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/SayCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/staff/admin/SayCommand.java @@ -23,7 +23,7 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.bot.commands.privileged; +package io.paradaux.friendlybot.bot.commands.staff.admin; import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.bot.command.Command; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/SendEmbedCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/staff/admin/SendEmbedCommand.java similarity index 99% rename from src/main/java/io/paradaux/friendlybot/bot/commands/privileged/SendEmbedCommand.java rename to src/main/java/io/paradaux/friendlybot/bot/commands/staff/admin/SendEmbedCommand.java index 477e6e87..49119f3a 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/SendEmbedCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/staff/admin/SendEmbedCommand.java @@ -23,7 +23,7 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.bot.commands.privileged; +package io.paradaux.friendlybot.bot.commands.staff.admin; import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.bot.command.Command; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/VerificationCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/staff/admin/VerificationCommand.java similarity index 98% rename from src/main/java/io/paradaux/friendlybot/bot/commands/privileged/VerificationCommand.java rename to src/main/java/io/paradaux/friendlybot/bot/commands/staff/admin/VerificationCommand.java index 9977117f..dcfe6454 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/VerificationCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/staff/admin/VerificationCommand.java @@ -23,7 +23,7 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.bot.commands.privileged; +package io.paradaux.friendlybot.bot.commands.staff.admin; import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.bot.command.Command; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/CiteCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/staff/mod/CiteCommand.java similarity index 98% rename from src/main/java/io/paradaux/friendlybot/bot/commands/privileged/CiteCommand.java rename to src/main/java/io/paradaux/friendlybot/bot/commands/staff/mod/CiteCommand.java index ecac44b9..0c41ac28 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/CiteCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/staff/mod/CiteCommand.java @@ -23,7 +23,7 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.bot.commands.privileged; +package io.paradaux.friendlybot.bot.commands.staff.mod; import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.bot.command.Command; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/DmCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/staff/mod/DmCommand.java similarity index 98% rename from src/main/java/io/paradaux/friendlybot/bot/commands/privileged/DmCommand.java rename to src/main/java/io/paradaux/friendlybot/bot/commands/staff/mod/DmCommand.java index d5163895..8f7ea431 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/DmCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/staff/mod/DmCommand.java @@ -23,7 +23,7 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.bot.commands.privileged; +package io.paradaux.friendlybot.bot.commands.staff.mod; import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.bot.command.Command; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/KickCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/staff/mod/KickCommand.java similarity index 98% rename from src/main/java/io/paradaux/friendlybot/bot/commands/privileged/KickCommand.java rename to src/main/java/io/paradaux/friendlybot/bot/commands/staff/mod/KickCommand.java index 1859e250..5615d4b9 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/KickCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/staff/mod/KickCommand.java @@ -23,7 +23,7 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.bot.commands.privileged; +package io.paradaux.friendlybot.bot.commands.staff.mod; import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.FriendlyBot; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/LookupCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/staff/mod/LookupCommand.java similarity index 99% rename from src/main/java/io/paradaux/friendlybot/bot/commands/privileged/LookupCommand.java rename to src/main/java/io/paradaux/friendlybot/bot/commands/staff/mod/LookupCommand.java index 981ba625..4706f4cc 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/LookupCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/staff/mod/LookupCommand.java @@ -23,7 +23,7 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.bot.commands.privileged; +package io.paradaux.friendlybot.bot.commands.staff.mod; import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.bot.command.Command; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/RespondCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/staff/mod/RespondCommand.java similarity index 98% rename from src/main/java/io/paradaux/friendlybot/bot/commands/privileged/RespondCommand.java rename to src/main/java/io/paradaux/friendlybot/bot/commands/staff/mod/RespondCommand.java index d30b4579..f25da514 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/RespondCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/staff/mod/RespondCommand.java @@ -23,7 +23,7 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.bot.commands.privileged; +package io.paradaux.friendlybot.bot.commands.staff.mod; import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.bot.command.Command; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/TempBanCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/staff/mod/TempBanCommand.java similarity index 98% rename from src/main/java/io/paradaux/friendlybot/bot/commands/privileged/TempBanCommand.java rename to src/main/java/io/paradaux/friendlybot/bot/commands/staff/mod/TempBanCommand.java index 1c3b64f0..19ff7240 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/TempBanCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/staff/mod/TempBanCommand.java @@ -23,7 +23,7 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.bot.commands.privileged; +package io.paradaux.friendlybot.bot.commands.staff.mod; import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.bot.command.Command; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/TicketCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/staff/mod/TicketCommand.java similarity index 99% rename from src/main/java/io/paradaux/friendlybot/bot/commands/privileged/TicketCommand.java rename to src/main/java/io/paradaux/friendlybot/bot/commands/staff/mod/TicketCommand.java index a9a094e2..e4847a57 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/TicketCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/staff/mod/TicketCommand.java @@ -23,7 +23,7 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.bot.commands.privileged; +package io.paradaux.friendlybot.bot.commands.staff.mod; import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.bot.command.Command; diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/WarnCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/staff/mod/WarnCommand.java similarity index 98% rename from src/main/java/io/paradaux/friendlybot/bot/commands/privileged/WarnCommand.java rename to src/main/java/io/paradaux/friendlybot/bot/commands/staff/mod/WarnCommand.java index 54b8001d..b04880a6 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/privileged/WarnCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/staff/mod/WarnCommand.java @@ -23,7 +23,7 @@ * SOFTWARE. */ -package io.paradaux.friendlybot.bot.commands.privileged; +package io.paradaux.friendlybot.bot.commands.staff.mod; import com.jagrosh.jdautilities.command.CommandEvent; import io.paradaux.friendlybot.FriendlyBot; From 740bc0eec3166fd1cb3e32aa492cc0b018b00e88 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Sun, 19 Sep 2021 03:16:54 +0100 Subject: [PATCH 117/121] New user schema --- .../core/data/database/models/FUser.java | 81 +++++++++++++++++++ src/sql/user.sql | 14 ++++ 2 files changed, 95 insertions(+) create mode 100644 src/main/java/io/paradaux/friendlybot/core/data/database/models/FUser.java create mode 100644 src/sql/user.sql diff --git a/src/main/java/io/paradaux/friendlybot/core/data/database/models/FUser.java b/src/main/java/io/paradaux/friendlybot/core/data/database/models/FUser.java new file mode 100644 index 00000000..d4e141d8 --- /dev/null +++ b/src/main/java/io/paradaux/friendlybot/core/data/database/models/FUser.java @@ -0,0 +1,81 @@ +package io.paradaux.friendlybot.core.data.database.models; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.ManyToOne; +import javax.persistence.Table; +import java.util.Date; + +@Entity +@Table(name = "users") +public class FUser { + + @Id + private long id; + + @ManyToOne(optional = false) + private FGuild guild; + + private String guildId; + private String userId; + + private String customColorRole; + private String discordTag; + private Date lastChangedColor; + + public long getId() { + return id; + } + + public FGuild getGuild() { + return guild; + } + + public String getGuildId() { + return guildId; + } + + public String getUserId() { + return userId; + } + + public String getCustomColorRole() { + return customColorRole; + } + + public String getDiscordTag() { + return discordTag; + } + + public Date getLastChangedColor() { + return lastChangedColor; + } + + public void setId(long id) { + this.id = id; + } + + public void setGuild(FGuild guild) { + this.guild = guild; + } + + public void setGuildId(String guildId) { + this.guildId = guildId; + } + + public void setUserId(String userId) { + this.userId = userId; + } + + public void setCustomColorRole(String customColorRole) { + this.customColorRole = customColorRole; + } + + public void setDiscordTag(String discordTag) { + this.discordTag = discordTag; + } + + public void setLastChangedColor(Date lastChangedColor) { + this.lastChangedColor = lastChangedColor; + } +} diff --git a/src/sql/user.sql b/src/sql/user.sql new file mode 100644 index 00000000..1a8d0a90 --- /dev/null +++ b/src/sql/user.sql @@ -0,0 +1,14 @@ +create table users +( + id serial + constraint users_pk + primary key, + guild_id varchar(20), + user_id varchar(20), + custom_color_role varchar(7), + discord_tag varchar(40), + last_changed_color timestamp +); + +alter table users + owner to postgres; \ No newline at end of file From fa4bfa886a421b9802b82d3d45dec5ba99e69183 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Sun, 19 Sep 2021 03:17:01 +0100 Subject: [PATCH 118/121] User mapping --- .../core/data/database/models/FGuild.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/main/java/io/paradaux/friendlybot/core/data/database/models/FGuild.java b/src/main/java/io/paradaux/friendlybot/core/data/database/models/FGuild.java index 900b2e4c..5fe905da 100644 --- a/src/main/java/io/paradaux/friendlybot/core/data/database/models/FGuild.java +++ b/src/main/java/io/paradaux/friendlybot/core/data/database/models/FGuild.java @@ -5,10 +5,7 @@ import net.dv8tion.jda.api.entities.Guild; import javax.annotation.Nullable; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; -import javax.persistence.Transient; +import javax.persistence.*; import java.util.List; @Entity @@ -42,6 +39,9 @@ public class FGuild extends Model { @DbJsonB private List administrators; + @OneToMany(mappedBy="guild", cascade=CascadeType.ALL) + private List users; + private Integer lastIncidentId; private Integer lastTicketId; @@ -161,6 +161,14 @@ public void setAdministrators(List administrators) { this.administrators = administrators; } + public List getUsers() { + return users; + } + + public void setUsers(List users) { + this.users = users; + } + public Integer getLastIncidentId() { return lastIncidentId; } From 0636de1bc971014085b5507fcad529b0410f8177 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Sun, 19 Sep 2021 03:17:08 +0100 Subject: [PATCH 119/121] Temp test command --- .../io/paradaux/friendlybot/bot/FBot.java | 4 ++- .../bot/commands/test/CreateUser.java | 28 +++++++++++++++++++ 2 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 src/main/java/io/paradaux/friendlybot/bot/commands/test/CreateUser.java diff --git a/src/main/java/io/paradaux/friendlybot/bot/FBot.java b/src/main/java/io/paradaux/friendlybot/bot/FBot.java index 60ea47d9..5a390c25 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/FBot.java +++ b/src/main/java/io/paradaux/friendlybot/bot/FBot.java @@ -3,6 +3,7 @@ import com.jagrosh.jdautilities.commons.waiter.EventWaiter; import io.paradaux.friendlybot.bot.command.CommandListener; import io.paradaux.friendlybot.bot.commands.image.*; +import io.paradaux.friendlybot.bot.commands.test.CreateUser; import io.paradaux.friendlybot.core.data.config.FConfiguration; import net.dv8tion.jda.api.JDA; import net.dv8tion.jda.api.JDABuilder; @@ -35,7 +36,8 @@ public void registerCommands() { new InspireCommand(), new MemeCommand(), new MonkeyCommand(), - new XKCDCommand() + new XKCDCommand(), + new CreateUser() ); } diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/test/CreateUser.java b/src/main/java/io/paradaux/friendlybot/bot/commands/test/CreateUser.java new file mode 100644 index 00000000..90bfc94d --- /dev/null +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/test/CreateUser.java @@ -0,0 +1,28 @@ +package io.paradaux.friendlybot.bot.commands.test; + +import io.paradaux.friendlybot.bot.command.Command; +import io.paradaux.friendlybot.bot.command.CommandBody; +import io.paradaux.friendlybot.bot.command.DiscordCommand; +import io.paradaux.friendlybot.core.data.database.models.FGuild; +import io.paradaux.friendlybot.core.data.database.models.FUser; + +import java.util.Date; + +@Command(name="createuser", permission = "commands.createuser", description = "wefwe") +public class CreateUser extends DiscordCommand { + + @Override + public void execute(FGuild guild, CommandBody body) { + FUser user = new FUser(); + + user.setId(0); + user.setUserId("wefwef"); + user.setCustomColorRole("wefwef"); + user.setGuild(guild); + user.setLastChangedColor(new Date()); + + + guild.getUsers().add(user); + guild.save(); + } +} From 9122e96ffe1ee4db7658e3039c74e8c9c712799f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Sun, 19 Sep 2021 03:17:21 +0100 Subject: [PATCH 120/121] Commenting out broken code so it builds for now --- .../bot/commands/util/TagCommand.java | 20 ++--- .../bot/commands/util/TagsCommand.java | 12 +-- .../bot/commands/util/UserInfoCommand.java | 48 +++++------ .../commands/util/WolframAlphaCommand.java | 86 ++++++++++--------- 4 files changed, 82 insertions(+), 84 deletions(-) diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/util/TagCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/util/TagCommand.java index b9d6b9fb..8f82a392 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/util/TagCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/util/TagCommand.java @@ -107,16 +107,16 @@ public void execute(FGuild guild, CommandBody body) { return; } - if (!(entry.getDiscordId().equals(body.getUser().getId()) || isStaff(body.getGuild(), body.getAuthor().getId()))) { - // Not staff, not the owner. - MessageEmbed embed = new EmbedBuilder() - .setColor(0xeb5132) - .setTitle("You do not have permission to modify this tag.") - .setDescription("This tag is owned by " + retrieveMember(guild.getGuild(), entry.getDiscordId())) - .build(); - message.getChannel().sendMessageEmbeds(embed).queue(); - return; - } +// if (!(entry.getDiscordId().equals(body.getUser().getId()) || isStaff(guild.getGuild(), body.getUser().getId()))) { +// // Not staff, not the owner. +// MessageEmbed embed = new EmbedBuilder() +// .setColor(0xeb5132) +// .setTitle("You do not have permission to modify this tag.") +// .setDescription("This tag is owned by " + retrieveMember(guild.getGuild(), entry.getDiscordId())) +// .build(); +// message.getChannel().sendMessageEmbeds(embed).queue(); +// return; +// } tags.removeTag(entry); diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/util/TagsCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/util/TagsCommand.java index 45ffb197..db687d14 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/util/TagsCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/util/TagsCommand.java @@ -8,21 +8,15 @@ import net.dv8tion.jda.api.EmbedBuilder; import org.slf4j.Logger; -@Command(name = "", description = "", permission = "", aliases = {}) +@Command(name = "tags", description = "Sends a link to the tag web viewer, so you can see all of the tags currently set in the given guild.", permission = "command.tags", aliases = {}) public class TagsCommand extends DiscordCommand { private static final String TAGS_URL = "https://paradaux.io/projects/friendlybot/tools/tag_viewer.html?serverid=%s"; - public TagsCommand(Logger logger) { - super(logger); - this.name = "tags"; - this.help = "Sends a link to the tag web viewer, so you can see all of the tags currently set in the given guild."; - } - @Override public void execute(FGuild guild, CommandBody body) { - event.getChannel().sendMessage(new EmbedBuilder() + body.getChannel().sendMessageEmbeds(new EmbedBuilder() .setColor(NumberUtils.randomColor()).setDescription("**You can view all tags for this guild here**: \n" - + String.format(TAGS_URL, event.getGuild().getId())).build()).queue(); + + String.format(TAGS_URL, guild.getGuild().getId())).build()).queue(); } } diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/util/UserInfoCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/util/UserInfoCommand.java index ccc91de6..06ea4b3a 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/util/UserInfoCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/util/UserInfoCommand.java @@ -43,41 +43,41 @@ public class UserInfoCommand extends DiscordCommand { @Override public void execute(FGuild guild, CommandBody body) { Member member; - String argument = event.getArgs(); + String argument = body.getArgStr(); - if (!argument.isEmpty() && isStaff(event.getGuild(), event.getAuthor().getId())) { - member = retrieveMember(event.getGuild(), parseTarget(event.getMessage(), getArgs(argument)[0])); +// if (!argument.isEmpty() && isStaff(guild.getGuild(), body.getUser().getId())) { +// member = retrieveMember(guild.getGuild(), parseTarget(body.getMessage(), body.getArgs()[0])); +// +// if (member == null) { +// syntaxError(body.getMessage()); +// return; +// } +// } else { +// member = body.getMember(); +// } - if (member == null) { - syntaxError(body.getMessage()); - return; - } - } else { - member = body.getMember(); - } +// String tag = member.getUser().getAsTag(); + // String avatarUrl = member.getUser().getAvatarUrl(); - String tag = member.getUser().getAsTag(); - String avatarUrl = member.getUser().getAvatarUrl(); + // String status = StringUtils.toTitleCase(member.getOnlineStatus().toString()); - String status = StringUtils.toTitleCase(member.getOnlineStatus().toString()); + // String accountCreated = TimeUtils.formatTime(member.getUser().getTimeCreated()); + // String joinedServer = TimeUtils.formatTime(member.getTimeJoined()); + // String nickname = member.getNickname() != null ? member.getNickname() : "No Nickname."; - String accountCreated = TimeUtils.formatTime(member.getUser().getTimeCreated()); - String joinedServer = TimeUtils.formatTime(member.getTimeJoined()); - String nickname = member.getNickname() != null ? member.getNickname() : "No Nickname."; - - List roles = member.getRoles(); + //List roles = member.getRoles(); StringBuilder builder = new StringBuilder(); builder.append("[ "); int i = 0; - for (; i < member.getRoles().size()-1; i++) { - builder.append(member.getRoles().get(i).getName()).append(", "); - } + // for (; i < member.getRoles().size()-1; i++) { + // builder.append(member.getRoles().get(i).getName()).append(", "); + // } - builder.append(roles.get(i).getName()).append(" ]"); + //builder.append(roles.get(i).getName()).append(" ]"); - UserInfoEmbed embed = new UserInfoEmbed(tag, avatarUrl, status, accountCreated, joinedServer, builder.toString(), nickname); - embed.sendEmbed(guild.getGuild().getJDA().getTextChannelById(body.getMessage().getChannel().getId())); + // UserInfoEmbed embed = new UserInfoEmbed(tag, avatarUrl, status, accountCreated, joinedServer, builder.toString(), nickname); + // embed.sendEmbed(guild.getGuild().getJDA().getTextChannelById(body.getMessage().getChannel().getId())); } } diff --git a/src/main/java/io/paradaux/friendlybot/bot/commands/util/WolframAlphaCommand.java b/src/main/java/io/paradaux/friendlybot/bot/commands/util/WolframAlphaCommand.java index 89882f96..934f1c1f 100644 --- a/src/main/java/io/paradaux/friendlybot/bot/commands/util/WolframAlphaCommand.java +++ b/src/main/java/io/paradaux/friendlybot/bot/commands/util/WolframAlphaCommand.java @@ -42,50 +42,54 @@ @Command(name = "", description = "", permission = "", aliases = {}) public class WolframAlphaCommand extends DiscordCommand { - - private static final String WOLFRAM_API = "https://api.wolframalpha.com/v1/result?i=%s&appid=%s&"; - private static final String WOLFRAM_USER_LINK = "https://www.wolframalpha.com/input/?i=%s"; - private static final String IMGUR_API = "https://api.imgur.com/3/upload/"; - private static final String WOLFRAM_ICON = "https://www.wolframalpha.com/_next/static/images/share_3G6HuGr6.png"; - - public WolframAlphaCommand(ConfigurationEntry config, Logger logger) { - super(config, logger); - this.name = "wolframalpha"; - this.aliases = new String[]{"wa"}; - this.help = "Queries WolframAlpha's API."; - } - @Override public void execute(FGuild guild, CommandBody body) { - Message message = event.getMessage(); - String args = event.getArgs(); - - if (args == null || args.isEmpty()) { - respondSyntaxError(message, ";wa "); - return; - } - - HttpApi http = new HttpApi(getLogger()); - - // Get's the image from WA - HttpRequest request = http.plainRequest(String.format(WOLFRAM_API, args.replace(" ", "%20"), getConfig().getWolframAlphaApplicationId())); - http.sendAsync(request, HttpResponse.BodyHandlers.ofByteArray()).thenAccept((response) -> { - // Send that image to imgur - String[] headers = {"Authorization", "Client-ID " + getConfig().getImgurClientId()}; - HttpRequest request2 = http.postBytes(IMGUR_API, response.body(), headers); - - HttpResponse response2 = http.sendSync(request2, HttpResponse.BodyHandlers.ofString()); - JSONObject imgurMeta = new JSONObject(response2.body()); - - EmbedBuilder builder = new EmbedBuilder() - .setAuthor("Wolfram Alpha Query.", String.format(WOLFRAM_USER_LINK, args.replace(" ", "%20")), WOLFRAM_ICON) - .setColor(NumberUtils.randomColor()) - .setImage(imgurMeta.getJSONObject("data").getString("link")) - .setFooter("Query: " + args); - - message.getChannel().sendMessage(builder.build()).queue(); - }).join(); } +// private static final String WOLFRAM_API = "https://api.wolframalpha.com/v1/result?i=%s&appid=%s&"; +// private static final String WOLFRAM_USER_LINK = "https://www.wolframalpha.com/input/?i=%s"; +// private static final String IMGUR_API = "https://api.imgur.com/3/upload/"; +// private static final String WOLFRAM_ICON = "https://www.wolframalpha.com/_next/static/images/share_3G6HuGr6.png"; +// +// public WolframAlphaCommand(ConfigurationEntry config, Logger logger) { +// super(config, logger); +// this.name = "wolframalpha"; +// this.aliases = new String[]{"wa"}; +// this.help = "Queries WolframAlpha's API."; +// } +// +// @Override +// public void execute(FGuild guild, CommandBody body) { +// Message message = event.getMessage(); +// String args = event.getArgs(); +// +// if (args == null || args.isEmpty()) { +// respondSyntaxError(message, ";wa "); +// return; +// } +// +// HttpApi http = new HttpApi(getLogger()); +// +// // Get's the image from WA +// HttpRequest request = http.plainRequest(String.format(WOLFRAM_API, args.replace(" ", "%20"), getConfig().getWolframAlphaApplicationId())); +// http.sendAsync(request, HttpResponse.BodyHandlers.ofByteArray()).thenAccept((response) -> { +// // Send that image to imgur +// String[] headers = {"Authorization", "Client-ID " + getConfig().getImgurClientId()}; +// HttpRequest request2 = http.postBytes(IMGUR_API, response.body(), headers); +// +// HttpResponse response2 = http.sendSync(request2, HttpResponse.BodyHandlers.ofString()); +// JSONObject imgurMeta = new JSONObject(response2.body()); +// +// EmbedBuilder builder = new EmbedBuilder() +// .setAuthor("Wolfram Alpha Query.", String.format(WOLFRAM_USER_LINK, args.replace(" ", "%20")), WOLFRAM_ICON) +// .setColor(NumberUtils.randomColor()) +// .setImage(imgurMeta.getJSONObject("data").getString("link")) +// .setFooter("Query: " + args); +// +// message.getChannel().sendMessage(builder.build()).queue(); +// }).join(); +// +// } + } From c840af6c45994ce15a4d55007633edd9b1961f86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=ADan=20Errity?= Date: Tue, 21 Sep 2021 13:50:01 +0100 Subject: [PATCH 121/121] Update gradlew permissions to allow execution --- gradlew | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 gradlew diff --git a/gradlew b/gradlew old mode 100644 new mode 100755