From 9452bb5a96184c6305ae0eae1278e1ba9852cdb7 Mon Sep 17 00:00:00 2001 From: Aleksei Date: Mon, 27 Jul 2020 17:27:34 -0400 Subject: [PATCH] Wmsg command --- .../commands/staff/WelcomeMessageCommand.java | 78 +++++++++++++++++-- 1 file changed, 73 insertions(+), 5 deletions(-) diff --git a/src/main/java/dev/salmonllama/fsbot/commands/staff/WelcomeMessageCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/staff/WelcomeMessageCommand.java index 62ee535..54333d5 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/staff/WelcomeMessageCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/staff/WelcomeMessageCommand.java @@ -6,16 +6,15 @@ package dev.salmonllama.fsbot.commands.staff; import dev.salmonllama.fsbot.config.BotConfig; +import dev.salmonllama.fsbot.database.controllers.ServerConfigController; +import dev.salmonllama.fsbot.database.models.ServerConfig; import dev.salmonllama.fsbot.guthix.Command; import dev.salmonllama.fsbot.guthix.CommandContext; import dev.salmonllama.fsbot.guthix.CommandPermission; import dev.salmonllama.fsbot.guthix.PermissionType; -import dev.salmonllama.fsbot.utilities.warnings.Warning; -import org.javacord.api.entity.channel.TextChannel; +import org.javacord.api.entity.message.embed.Embed; import org.javacord.api.entity.message.embed.EmbedBuilder; -import org.javacord.api.entity.server.Server; -import java.awt.*; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; @@ -30,6 +29,75 @@ public class WelcomeMessageCommand extends Command { @Override public void onCommand(CommandContext ctx) { - ctx.reply("This command is a WIP and will be available soon."); + if (ctx.isPrivateMessage()) { + ctx.reply("This command can only be used within a server"); + return; + } + + if (ctx.getArgs().length < 1) { + ctx.reply("You need to supply arguments for this command"); + return; + } + + String[] args = ctx.getArgs(); + switch (args[0]) { + case "get": + get(ctx); + case "set": // TODO: check for args here + set(ctx, args[1]); + } + } + + private void get(CommandContext ctx) { + ServerConfigController.get(ctx.getServer().get().getIdAsString()).thenAcceptAsync(possibleConf -> { + possibleConf.ifPresentOrElse(conf -> { + EmbedBuilder response = new EmbedBuilder() + .setTitle("Current Welcome Message") + .setDescription(conf.getWelcomeMessage()); + + ctx.reply(response); + }, () -> { + EmbedBuilder response = new EmbedBuilder() + .setTitle("Does not exist!") + .setDescription("No welcome message was found! use `~wmsg set` to set one!"); + + ctx.reply(response); + }); + }); + } + + private void set(CommandContext ctx, String newMsg) { + ServerConfigController.get(ctx.getServer().get().getIdAsString()).thenAcceptAsync(possibleConf -> { + possibleConf.ifPresentOrElse(conf -> { + // Update the config + ServerConfig config = new ServerConfig.ServerConfigBuilder().from(conf) + .setWelcomeMessage(newMsg) + .build(); + + ServerConfigController.update(config); + + EmbedBuilder response = new EmbedBuilder() + .setTitle("Welcome Message Set") + .addField("New Welcome Message:", config.getWelcomeMessage()); + + ctx.reply(response); + }, () -> { + // Create a config and set the welcome message + ServerConfig config = new ServerConfig.ServerConfigBuilder() + .setId(ctx.getServer().get().getIdAsString()) + .setPrefix(BotConfig.DEFAULT_PREFIX) + .setWelcomeMessage(newMsg) + .build(); + + ServerConfigController.insert(config); + + EmbedBuilder response = new EmbedBuilder() + .setTitle("Welcome Message Set!") + .setDescription("server conf has been created") + .addField("New Welcome Message:", newMsg); + + ctx.reply(response); + }); + }); } }