7474import org .spongepowered .configurate .ConfigurateException ;
7575import org .spongepowered .configurate .hocon .HoconConfigurationLoader ;
7676import org .spongepowered .configurate .reference .ConfigurationReference ;
77+ import org .spongepowered .configurate .serialize .TypeSerializerCollection ;
7778import org .sqlite .SQLiteDataSource ;
7879
7980import javax .security .auth .login .LoginException ;
8889import java .util .concurrent .TimeUnit ;
8990import java .util .function .Consumer ;
9091
92+ @ SuppressWarnings ("unused" )
9193public final class TheWatcher implements Bot {
94+ static final TypeSerializerCollection ADDED_SERIALIZERS = TypeSerializerCollection .defaults ()
95+ .childBuilder ()
96+ .register (Punishment .class , new Punishment .Serializer ())
97+ .register (SnowflakeValue .class , new SnowflakeValue .Serializer ())
98+ .build ();
9299
93100 public static final Logger LOGGER = LoggerFactory .getLogger ("TheWatcher" );
94101
@@ -199,7 +206,7 @@ public void start() {
199206 .emitComments (true )
200207 .prettyPrinting (true )
201208 .path (configPath )
202- .defaultOptions (opts -> opts .serializers (build -> build . register ( Punishment . class , new Punishment . Serializer ()) ))
209+ .defaultOptions (ops -> ops .serializers (ADDED_SERIALIZERS ))
203210 .build ();
204211 Objects .requireNonNull (loader .defaultOptions ().serializers ().get (Punishment .class ));
205212 final var cPair =
@@ -250,8 +257,11 @@ public void start() {
250257 final var coOwners = config .bot ().getOwners ().subList (1 , config .bot ().getOwners ().size ());
251258
252259 commandClient = new CommandClientBuilder ()
253- .setOwnerId (config .bot ().getOwners ().get (0 ))
254- .setCoOwnerIds (coOwners .toArray (String []::new ))
260+ .setOwnerId (config .bot ().getOwners ().get (0 ).asString ())
261+ .setCoOwnerIds (coOwners
262+ .stream ()
263+ .map (SnowflakeValue ::asString )
264+ .toArray (String []::new ))
255265 .setPrefixes (config .bot ().getPrefixes ().toArray (String []::new ))
256266 .setManualUpsert (true )
257267 .useHelpBuilder (false )
@@ -262,7 +272,7 @@ public void start() {
262272 COMMANDS_LISTENER .addListener ((EventListener ) commandClient );
263273
264274 final var upserter = new CommandUpserter (commandClient , config .bot ().areCommandsForcedGuildOnly (),
265- SnowflakeValue . of ( config .bot ().guild () ));
275+ config .bot ().guild ());
266276 COMMANDS_LISTENER .addListener (upserter );
267277
268278 // Buttons
@@ -278,9 +288,7 @@ public void start() {
278288 .create (dotenv .get ("BOT_TOKEN" ), INTENTS )
279289 .addEventListeners (listenerConsumer ((ReadyEvent event ) -> {
280290 getLogger ().warn ("The Watcher is ready to work! Logged in as {}" , event .getJDA ().getSelfUser ().getAsTag ());
281- Events .MISC_BUS .addListener (-1 , (TaskScheduler .CollectTasksEvent ctEvent ) -> {
282- ctEvent .addTask (new TaskScheduler .Task (new ChannelMessageChecker (event .getJDA ()), 0 , 1 , TimeUnit .DAYS ));
283- });
291+ Events .MISC_BUS .addListener (-1 , (TaskScheduler .CollectTasksEvent ctEvent ) -> ctEvent .addTask (new TaskScheduler .Task (new ChannelMessageChecker (event .getJDA ()), 0 , 1 , TimeUnit .DAYS )));
284292 }), COMMANDS_LISTENER , MISC_LISTENER , PUNISHABLE_ACTIONS_LISTENER )
285293 .setActivity (Activity .of (oldConfig .getActivityType (), oldConfig .getActivityName ()))
286294 .disableCache (CacheFlag .CLIENT_STATUS )
@@ -343,7 +351,17 @@ private static <E extends Event> EventListener listenerConsumer(final Consumer<E
343351 }
344352
345353 public static boolean isBotMaintainer (final Member member ) {
346- return member .getRoles ().stream ().anyMatch (r -> getInstance ().getConfig ().roles ().getBotMaintainers ().contains (r .getId ()));
354+ final var maintainers = getInstance ().getConfig ().roles ().getBotMaintainers ();
355+ return member .getRoles ()
356+ .stream ()
357+ .anyMatch (r -> {
358+ for (final var m : maintainers ) {
359+ if (m .test (r )) {
360+ return true ;
361+ }
362+ }
363+ return false ;
364+ });
347365 }
348366
349367 public static Jdbi database () {
0 commit comments