@@ -0,0 +1,1553 @@
+package top.quantic.sentry.discord;%0A%0Aimport org.slf4j.Logger;%0Aimport org.slf4j.LoggerFactory;%0Aimport org.springframework.stereotype.Component;%0Aimport sx.blah.discord.api.events.Event;%0Aimport sx.blah.discord.api.events.EventSubscriber;%0Aimport sx.blah.discord.handle.impl.events.DisconnectedEvent;%0Aimport sx.blah.discord.handle.impl.events.ReadyEvent;%0Aimport sx.blah.discord.handle.impl.events.ReconnectFailureEvent;%0Aimport sx.blah.discord.handle.impl.events.ReconnectSuccessEvent;%0Aimport top.quantic.sentry.discord.module.DiscordSubscriber;%0A%0A@Component%0Apublic class Supervisor implements DiscordSubscriber %7B%0A%0A    private static final Logger log = LoggerFactory.getLogger(Supervisor.class);%0A%0A    @EventSubscriber%0A    public void onReady(ReadyEvent event) %7B%0A        log.info(%22%5B%7B%7D%5D Discord bot is ready%22, getOurName(event));%0A    %7D%0A%0A    @EventSubscriber%0A    public void onReconnectSuccess(ReconnectSuccessEvent event) %7B%0A        log.info(%22%5B%7B%7D%5D Discord bot reconnect succeeded%22, getOurName(event));%0A    %7D%0A%0A    @EventSubscriber%0A    public void onReconnectFailure(ReconnectFailureEvent event) %7B%0A        log.warn(%22%5B%7B%7D%5D Discord bot reconnect failed after %7B%7D attempt%7B%7D ***%22, getOurName(event), event.getCurAttempt() + 1, event.getCurAttempt() + 1 == 1 ? %22%22 : %22s%22);%0A    %7D%0A%0A    @EventSubscriber%0A    public void onDisconnect(DisconnectedEvent event) %7B%0A        log.warn(%22%5B%7B%7D%5D Discord bot disconnected due to %7B%7D%22, getOurName(event), event.getReason());%0A    %7D%0A%0A    private String getOurName(Event event) %7B%0A        return event.getClient().getOurUser().getName();%0A    %7D%0A%7D%0A

Add initial implementation of Supervisor