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

65 lines
2.6 KiB
Java

package moe.oko.Kiafumi.listener;
import moe.oko.Kiafumi.Kiafumi;
import moe.oko.Kiafumi.util.EmbedUI;
import net.dv8tion.jda.api.EmbedBuilder;
import net.dv8tion.jda.api.events.ReadyEvent;
import net.dv8tion.jda.api.events.guild.GuildJoinEvent;
import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
import net.dv8tion.jda.api.hooks.ListenerAdapter;
import org.jetbrains.annotations.NotNull;
import java.time.ZonedDateTime;
import static moe.oko.Kiafumi.util.LoggingManager.info;
/**
* Main Listener
* Used for all essential utility listeners, such as guild handling and persistence.
* @author Kay, oko, Tiddy
*/
public class MainListener extends ListenerAdapter {
/**
* GuildJoin event listener, that ensures that a discord has a profile created for it.
* @param event - event to be handled...
*/
@Override
public void onGuildJoin(@NotNull GuildJoinEvent event) {
// 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());
Kiafumi.instance.getServerManager().createNewDefaultServer(event.getGuild());
Kiafumi.instance.registerForGuild(event.getGuild());
}
/**
* 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.
--------------------------------
Active Guilds: [%s]
Guilds Unavailable: [%s]
--------------------------------""".formatted(event.getGuildAvailableCount(), event.getGuildUnavailableCount()));
}
/**
* Quick Response for if someone pings me.
*/
public void onMessageReceived(MessageReceivedEvent event) {
if(event.getMessage().getMentionedUsers().contains(Kiafumi.JDA.getSelfUser())) {
info("Sent about message in " + event.getGuild().getId());
var eb = new EmbedBuilder()
.setColor(EmbedUI.INFO)
.setTitle("Hi, i'm Kiafumi!")
.setDescription("I was summoned on October 6th 2017! My goal is to explore the metaverse and help people in it!")
.setThumbnail(Kiafumi.JDA.getSelfUser().getAvatarUrl())
.setTimestamp(ZonedDateTime.now())
.setFooter(EmbedUI.BRAND);
event.getChannel().sendMessageEmbeds(eb.build()).queue();
}
}
}