From 567a6585aef24da3f26ae381201f357071ef7e81 Mon Sep 17 00:00:00 2001 From: salmonllama Date: Sat, 3 Oct 2020 18:51:35 -0400 Subject: [PATCH] Added 5 minute Member role to NewMember workflow --- .../salmonllama/fsbot/config/BotConfig.java | 3 +++ .../fsbot/listeners/NewMemberListener.java | 12 +++++++++++- .../fsbot/utilities/AddMemberRole.java | 18 ++++++++++++++++++ 3 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 src/main/java/dev/salmonllama/fsbot/utilities/AddMemberRole.java diff --git a/src/main/java/dev/salmonllama/fsbot/config/BotConfig.java b/src/main/java/dev/salmonllama/fsbot/config/BotConfig.java index f202a66..5424747 100644 --- a/src/main/java/dev/salmonllama/fsbot/config/BotConfig.java +++ b/src/main/java/dev/salmonllama/fsbot/config/BotConfig.java @@ -63,6 +63,9 @@ public class BotConfig { @ConfigurationOption public static String HYDRIX_ROLE = "hydrix role id here"; + @ConfigurationOption + public static String MEMBER_ROLE = "member role id here"; + @ConfigurationOption public static String IMGUR_ID = "imgur_id_here"; diff --git a/src/main/java/dev/salmonllama/fsbot/listeners/NewMemberListener.java b/src/main/java/dev/salmonllama/fsbot/listeners/NewMemberListener.java index 458b439..de11c98 100644 --- a/src/main/java/dev/salmonllama/fsbot/listeners/NewMemberListener.java +++ b/src/main/java/dev/salmonllama/fsbot/listeners/NewMemberListener.java @@ -7,22 +7,32 @@ package dev.salmonllama.fsbot.listeners; import dev.salmonllama.fsbot.config.BotConfig; import dev.salmonllama.fsbot.database.controllers.ServerConfigController; +import dev.salmonllama.fsbot.utilities.AddMemberRole; import org.javacord.api.event.server.member.ServerMemberJoinEvent; import org.javacord.api.listener.server.member.ServerMemberJoinListener; +import java.util.concurrent.TimeUnit; + public class NewMemberListener implements ServerMemberJoinListener { + ServerMemberJoinEvent event; + public void onServerMemberJoin(ServerMemberJoinEvent event) { + this.event = event; if (!event.getServer().getIdAsString().equals(BotConfig.HOME_SERVER)) { // Only active in the Fashionscape server, currently. return; } - // TODO: Use the ServerConfig to retrieve the welcome channel as well. + // Send the welcome message in the welcome channel event.getApi().getServerTextChannelById(BotConfig.WELCOME_CHANNEL).ifPresent( // Get the Welcome Channel channel -> ServerConfigController.get(event.getServer().getIdAsString()).thenAcceptAsync( // Fetch the server config, if set. possibleConfig -> possibleConfig.ifPresent( // If config exists config -> channel.sendMessage(String.format(config.getWelcomeMessage(), event.getUser().getMentionTag()))))); // Send the welcome message + + // Add the Member role after 5 minutes + var roleAdder = new AddMemberRole(event); + event.getApi().getThreadPool().getScheduler().schedule(roleAdder, 5, TimeUnit.MINUTES); } } diff --git a/src/main/java/dev/salmonllama/fsbot/utilities/AddMemberRole.java b/src/main/java/dev/salmonllama/fsbot/utilities/AddMemberRole.java new file mode 100644 index 0000000..84c3548 --- /dev/null +++ b/src/main/java/dev/salmonllama/fsbot/utilities/AddMemberRole.java @@ -0,0 +1,18 @@ +package dev.salmonllama.fsbot.utilities; + +import dev.salmonllama.fsbot.config.BotConfig; +import org.javacord.api.event.server.member.ServerMemberJoinEvent; + +public class AddMemberRole implements Runnable{ + + ServerMemberJoinEvent event; + + public AddMemberRole(ServerMemberJoinEvent event) { + this.event = event; + } + + @Override + public void run() { + event.getApi().getRoleById(BotConfig.MEMBER_ROLE).ifPresent(role -> role.addUser(event.getUser())); + } +}