2022-03-24 04:10:50 +00:00
|
|
|
package moe.oko.Kiafumi.listener;
|
|
|
|
|
|
|
|
import moe.oko.Kiafumi.Kiafumi;
|
2022-03-29 11:52:52 +00:00
|
|
|
import moe.oko.Kiafumi.util.EmbedUI;
|
2022-03-28 06:13:14 +00:00
|
|
|
import net.dv8tion.jda.api.EmbedBuilder;
|
2022-03-28 05:42:03 +00:00
|
|
|
import net.dv8tion.jda.api.events.ReadyEvent;
|
2022-03-24 04:10:50 +00:00
|
|
|
import net.dv8tion.jda.api.events.guild.GuildJoinEvent;
|
2022-03-28 16:54:55 +00:00
|
|
|
import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
|
2022-03-24 04:10:50 +00:00
|
|
|
import net.dv8tion.jda.api.hooks.ListenerAdapter;
|
2022-03-28 05:42:03 +00:00
|
|
|
import org.jetbrains.annotations.NotNull;
|
|
|
|
|
2022-03-28 16:54:55 +00:00
|
|
|
import java.time.ZonedDateTime;
|
2022-03-24 04:10:50 +00:00
|
|
|
|
2022-05-22 05:41:04 +00:00
|
|
|
import static moe.oko.Kiafumi.util.LoggingManager.info;
|
2022-03-24 04:10:50 +00:00
|
|
|
|
2022-03-24 04:28:51 +00:00
|
|
|
/**
|
|
|
|
* Main Listener
|
2022-05-21 08:37:44 +00:00
|
|
|
* Used for all essential utility listeners, such as guild handling and persistence.
|
2022-04-01 17:59:40 +00:00
|
|
|
* @author Kay, oko, Tiddy
|
2022-03-24 04:28:51 +00:00
|
|
|
*/
|
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
|
2022-03-28 05:42:03 +00:00
|
|
|
public void onGuildJoin(@NotNull GuildJoinEvent event) {
|
2022-05-17 01:50:46 +00:00
|
|
|
// Automatically create our default information for the server if we don't have it already.
|
2022-03-24 04:10:50 +00:00
|
|
|
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());
|
2022-03-27 06:04:24 +00:00
|
|
|
Kiafumi.instance.registerForGuild(event.getGuild());
|
2022-03-24 04:10:50 +00:00
|
|
|
}
|
|
|
|
|
2022-03-28 05:42:03 +00:00
|
|
|
/**
|
|
|
|
* Shoots a message into console when the bot is defined as "Ready" by Discord.
|
|
|
|
*/
|
|
|
|
@Override
|
|
|
|
public void onReady(@NotNull ReadyEvent event) {
|
2022-05-22 02:05:53 +00:00
|
|
|
info("""
|
|
|
|
Received READY signal from Discord, bot is now logged in.
|
|
|
|
--------------------------------
|
|
|
|
Active Guilds: [%s]
|
|
|
|
Guilds Unavailable: [%s]
|
2022-05-22 05:41:04 +00:00
|
|
|
--------------------------------""".formatted(event.getGuildAvailableCount(), event.getGuildUnavailableCount()));
|
2022-03-28 05:42:03 +00:00
|
|
|
}
|
|
|
|
|
2022-03-28 16:54:55 +00:00
|
|
|
/**
|
|
|
|
* Quick Response for if someone pings me.
|
|
|
|
*/
|
|
|
|
public void onMessageReceived(MessageReceivedEvent event) {
|
|
|
|
if(event.getMessage().getMentionedUsers().contains(Kiafumi.JDA.getSelfUser())) {
|
2022-05-20 02:41:32 +00:00
|
|
|
info("Sent about message in " + event.getGuild().getId());
|
2022-05-17 01:50:46 +00:00
|
|
|
var eb = new EmbedBuilder()
|
2022-03-29 11:52:52 +00:00
|
|
|
.setColor(EmbedUI.INFO)
|
2022-03-28 16:54:55 +00:00
|
|
|
.setTitle("Hi, i'm Kiafumi!")
|
2022-03-29 11:52:52 +00:00
|
|
|
.setDescription("I was summoned on October 6th 2017! My goal is to explore the metaverse and help people in it!")
|
2022-03-30 03:52:10 +00:00
|
|
|
.setThumbnail(Kiafumi.JDA.getSelfUser().getAvatarUrl())
|
2022-03-28 16:54:55 +00:00
|
|
|
.setTimestamp(ZonedDateTime.now())
|
2022-03-29 11:52:52 +00:00
|
|
|
.setFooter(EmbedUI.BRAND);
|
2022-03-28 16:54:55 +00:00
|
|
|
event.getChannel().sendMessageEmbeds(eb.build()).queue();
|
|
|
|
}
|
|
|
|
}
|
2022-03-24 04:10:50 +00:00
|
|
|
}
|