kiafumi/src/main/java/moe/oko/Kiafumi/listener/MainListener.java

77 lines
3.6 KiB
Java
Raw Normal View History

2022-03-24 04:10:50 +00:00
package moe.oko.Kiafumi.listener;
import moe.oko.Kiafumi.Kiafumi;
import net.dv8tion.jda.api.entities.Activity;
import net.dv8tion.jda.api.entities.Guild;
import net.dv8tion.jda.api.events.ReadyEvent;
2022-03-24 04:10:50 +00:00
import net.dv8tion.jda.api.events.guild.GuildJoinEvent;
import net.dv8tion.jda.api.events.user.update.GenericUserPresenceEvent;
2022-03-24 04:10:50 +00:00
import net.dv8tion.jda.api.hooks.ListenerAdapter;
import org.jetbrains.annotations.NotNull;
import java.util.Timer;
import java.util.TimerTask;
2022-03-24 04:10:50 +00:00
import static moe.oko.Kiafumi.Kiafumi.info;
2022-03-24 04:28:51 +00:00
/**
* Main Listener
* Used for all utility garbage like guild handling and persistence. (Also LOL prevention).
*/
2022-03-24 04:10:50 +00:00
public class MainListener extends ListenerAdapter {
2022-03-24 04:28:51 +00:00
/**
* GuildJoin event listener, that ensures that a discord has a profile created for it.
* @param event - event to be handled...
*/
2022-03-24 04:10:50 +00:00
@Override
public void onGuildJoin(@NotNull GuildJoinEvent event) {
2022-03-24 04:10:50 +00:00
//Automatically create our default information for the server if we don't have it already.
info("Joined a new guild, NAME: " + event.getGuild().getName() + " ID: " + event.getGuild().getId());
2022-03-26 05:04:24 +00:00
Kiafumi.instance.getServerManager().createNewDefaultServer(event.getGuild());
Kiafumi.instance.registerForGuild(event.getGuild());
2022-03-24 04:10:50 +00:00
}
/**
* Shoots a message into console when the bot is defined as "Ready" by Discord.
*/
@Override
public void onReady(@NotNull ReadyEvent event) {
info("Received READY signal from Discord, bot is now logged in." +
" Guilds Active: " + event.getGuildAvailableCount() + " Guilds Unavailable: " + event.getGuildUnavailableCount());
}
/**
* Game Prevention, is a global mechanic :^)
* @param event - GenericUserPresenceEvent event to be used.
*/
@Override
public void onGenericUserPresence(@NotNull GenericUserPresenceEvent event) {
if(Kiafumi.instance.config.isGamePreventionEnabled()) {
//Proceed.
if(event.getMember().getActivities().contains(Activity.playing(Kiafumi.instance.config.getGameToPrevent()))) {
//THEY ARE PLAYING THE BIG BAD GAME!!!! WARN THE MIMMEDIATELYOYUITHTHHT
event.getMember().getUser().openPrivateChannel().complete().sendMessage("**YOU ARE PLAYING THE BIG BAD GAME STOP STOP STOP** " +
"(in " + Kiafumi.instance.config.getGameCheckTime() + " minutes i wll EVAPORATE you from every server i am IN.").queue();
Timer timer = new Timer();
int timeInMilisToKill = (Kiafumi.instance.config.getGameCheckTime() * 60) * 1000;
timer.schedule(new TimerTask() {
@Override
public void run() {
if(event.getMember().getActivities().contains(Activity.playing(Kiafumi.instance.config.getGameToPrevent()))) {
event.getMember().getUser().openPrivateChannel().complete().sendMessage("**I warned you, NOW SUFFER MY RAGE**").queue();
for(Guild guild : event.getJDA().getGuilds()) {
if(guild.isMember(event.getMember().getUser())) {
guild.ban(guild.getMember(event.getMember().getUser()), 0, "PLAYED A HORRIBLE GAME").queue();
}
}
} else {
event.getMember().getUser().openPrivateChannel().complete().sendMessage("Thank you for not playing that shitty game anymore.").queue();
}
}
}, timeInMilisToKill);
}
}
}
2022-03-24 04:10:50 +00:00
}