diff --git a/src/main/java/com/alttd/proxydiscordlink/bot/Bot.java b/src/main/java/com/alttd/proxydiscordlink/bot/Bot.java index be71bc4..97d0df1 100644 --- a/src/main/java/com/alttd/proxydiscordlink/bot/Bot.java +++ b/src/main/java/com/alttd/proxydiscordlink/bot/Bot.java @@ -1,8 +1,8 @@ package com.alttd.proxydiscordlink.bot; -import com.alttd.proxydiscordlink.JDAListener; import com.alttd.proxydiscordlink.DiscordLink; import com.alttd.proxydiscordlink.bot.commandManager.CommandManager; +import com.alttd.proxydiscordlink.bot.listeners.DiscordJoinListener; import com.alttd.proxydiscordlink.bot.listeners.DiscordRoleListener; import com.alttd.proxydiscordlink.bot.tasks.CheckLinkSync; import com.alttd.proxydiscordlink.config.BotConfig; @@ -41,6 +41,7 @@ public class Bot { jda.awaitReady(); ALogger.info("JDA ready"); jda.addEventListener( + new DiscordJoinListener(), new DiscordRoleListener()/*, new JDAListener(jda)*/); DiscordLink.getPlugin().getProxy().getScheduler().buildTask(DiscordLink.getPlugin(), new CheckLinkSync()) diff --git a/src/main/java/com/alttd/proxydiscordlink/bot/listeners/DiscordJoinListener.java b/src/main/java/com/alttd/proxydiscordlink/bot/listeners/DiscordJoinListener.java new file mode 100644 index 0000000..0b27955 --- /dev/null +++ b/src/main/java/com/alttd/proxydiscordlink/bot/listeners/DiscordJoinListener.java @@ -0,0 +1,30 @@ +package com.alttd.proxydiscordlink.bot.listeners; + +import com.alttd.proxydiscordlink.DiscordLink; +import com.alttd.proxydiscordlink.bot.objects.DiscordRole; +import com.alttd.proxydiscordlink.database.Database; +import com.alttd.proxydiscordlink.objects.DiscordLinkPlayer; +import net.dv8tion.jda.api.entities.User; +import net.dv8tion.jda.api.events.guild.member.GuildMemberJoinEvent; +import net.dv8tion.jda.api.hooks.ListenerAdapter; + +import java.util.stream.Collectors; + +public class DiscordJoinListener extends ListenerAdapter { + + @Override + public void onGuildMemberJoin(GuildMemberJoinEvent event) { + User user = event.getUser(); + Database database = DiscordLink.getPlugin().getDatabase(); + if (database.playerIsLinked(user.getIdLong())) { + DiscordLinkPlayer discordLinkPlayer = database.getPlayer(user.getIdLong()); + discordLinkPlayer.linkedRole(true); + discordLinkPlayer.updateDiscord( + DiscordRole.getDiscordRoles().stream() + .filter(role -> discordLinkPlayer.getRoles().contains(role.getInternalName())) + .collect(Collectors.toList()), + true); + } + } + +}