Add DiscordJoinListener to handle member join events
Introduced `DiscordJoinListener` to manage actions when a Discord user joins the server, ensuring linked players are assigned appropriate roles. Integrated the listener into the bot's event handlers in `Bot.java`. This enhances the user experience by maintaining role synchronization.
This commit is contained in:
parent
7083235d68
commit
8ddbfcd521
|
|
@ -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())
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user