From 5a663bfff65b73501dc470b15cf6ac341d5ddc09 Mon Sep 17 00:00:00 2001 From: Yannick Lamprecht Date: Mon, 2 May 2022 22:33:11 +0200 Subject: [PATCH] Approach for fetching users --- bot/src/main/java/de/chojo/gamejam/Bot.java | 7 +++- .../listener/ReadyStateChangeListener.java | 42 +++++++++++++++++++ docker/kubernetes/kustomization.yaml | 1 - 3 files changed, 48 insertions(+), 2 deletions(-) create mode 100644 bot/src/main/java/de/chojo/gamejam/listener/ReadyStateChangeListener.java diff --git a/bot/src/main/java/de/chojo/gamejam/Bot.java b/bot/src/main/java/de/chojo/gamejam/Bot.java index 84f8316..b4356bb 100644 --- a/bot/src/main/java/de/chojo/gamejam/Bot.java +++ b/bot/src/main/java/de/chojo/gamejam/Bot.java @@ -17,6 +17,7 @@ import de.chojo.gamejam.data.GuildData; import de.chojo.gamejam.data.JamData; import de.chojo.gamejam.data.TeamData; +import de.chojo.gamejam.listener.ReadyStateChangeListener; import de.chojo.gamejam.util.LogNotify; import de.chojo.jdautil.command.SimpleCommand; import de.chojo.jdautil.command.dispatching.CommandHub; @@ -30,6 +31,7 @@ import de.chojo.sqlutil.updater.SqlType; import de.chojo.sqlutil.updater.SqlUpdater; import de.chojo.sqlutil.wrapper.QueryBuilderConfig; +import net.dv8tion.jda.api.hooks.AnnotatedEventManager; import net.dv8tion.jda.api.requests.GatewayIntent; import net.dv8tion.jda.api.requests.RestAction; import net.dv8tion.jda.api.sharding.DefaultShardManagerBuilder; @@ -110,6 +112,8 @@ public void start() throws IOException, SQLException, LoginException { buildCommands(); + // shardManager.addEventListener(new ReadyStateChangeListener(shardManager)); + Api.create(configuration, shardManager, teamData, jamData); } @@ -142,7 +146,8 @@ private void initBot() throws LoginException { GatewayIntent.GUILD_MEMBERS, GatewayIntent.DIRECT_MESSAGES, GatewayIntent.GUILD_MESSAGES) - .setMemberCachePolicy(MemberCachePolicy.DEFAULT) + .setMemberCachePolicy(MemberCachePolicy.ALL) + .setEventManagerProvider(id -> new AnnotatedEventManager()) .build(); RestAction.setDefaultFailure(throwable -> log.error("Unhandled exception occured: ", throwable)); } diff --git a/bot/src/main/java/de/chojo/gamejam/listener/ReadyStateChangeListener.java b/bot/src/main/java/de/chojo/gamejam/listener/ReadyStateChangeListener.java new file mode 100644 index 0000000..b126022 --- /dev/null +++ b/bot/src/main/java/de/chojo/gamejam/listener/ReadyStateChangeListener.java @@ -0,0 +1,42 @@ +/* + * SPDX-License-Identifier: AGPL-3.0-only + * + * Copyright (C) 2022 DevCord Team and Contributor + */ + +package de.chojo.gamejam.listener; + +import net.dv8tion.jda.api.entities.Activity; +import net.dv8tion.jda.api.entities.Guild; +import net.dv8tion.jda.api.events.ReadyEvent; +import net.dv8tion.jda.api.events.ShutdownEvent; +import net.dv8tion.jda.api.hooks.SubscribeEvent; +import net.dv8tion.jda.api.sharding.ShardManager; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class ReadyStateChangeListener { + + private final ShardManager shardManager; + private static final Logger log = LoggerFactory.getLogger(ReadyStateChangeListener.class); + + public ReadyStateChangeListener(ShardManager shardManager) { + this.shardManager = shardManager; + } + + @SubscribeEvent + public void finishedLoading(ReadyEvent readyEvent){ + log.warn("Available Guilds: {}",readyEvent.getGuildAvailableCount()); + shardManager.setActivity(Activity.playing("Plugin-Jam-Bot")); + for (Guild guild : shardManager.getGuilds()) { + guild.loadMembers(member -> { + log.warn("Loaded member \"{}\" of guild \"{}\"", member.getEffectiveName(), guild.getName()); + }); + } + } + + @SubscribeEvent + public void shutdown(ShutdownEvent shutdownEvent){ + shardManager.setActivity(null); + } +} diff --git a/docker/kubernetes/kustomization.yaml b/docker/kubernetes/kustomization.yaml index 6d2472c..0f57bb1 100644 --- a/docker/kubernetes/kustomization.yaml +++ b/docker/kubernetes/kustomization.yaml @@ -2,7 +2,6 @@ kind: Kustomization apiVersion: kustomize.config.k8s.io/v1beta1 resources: - - namespace.yaml - ingress.yaml - database.yaml - game-jam-bot.yaml