2025-10-15 21:12:07 +08:00
package moe.sob.events.server ;
2023-03-28 19:24:11 +08:00
2025-10-15 21:12:07 +08:00
import moe.sob.DiscordWebhook ;
import moe.sob.Main ;
import moe.sob.ServerUtils ;
import moe.sob.Utils ;
2023-03-28 19:24:11 +08:00
import org.bukkit.Bukkit ;
import org.bukkit.event.EventHandler ;
import org.bukkit.event.Listener ;
import org.bukkit.event.server.ServerLoadEvent ;
import java.awt.* ;
import java.io.IOException ;
import java.util.Date ;
2025-10-15 21:12:07 +08:00
import moe.sob.DiscordWebhook.EmbedObject ;
2023-03-28 19:24:11 +08:00
2025-10-15 21:12:07 +08:00
import static moe.sob.ServerUtils.address ;
2023-03-29 14:50:28 +08:00
public class ServerLoad implements Listener {
2023-03-28 19:24:11 +08:00
public static int timesCalled = 0 ;
@EventHandler
public void onServerStart ( ServerLoadEvent event ) {
Bukkit . getConsoleSender ( ) . sendMessage ( " Triggered ServerLoad event. " ) ;
if ( timesCalled < 1 ) {
2023-04-19 00:33:46 +08:00
Bukkit . getConsoleSender ( ) . sendMessage ( " Checking if server is up on " + ServerUtils . address + " with port " + Bukkit . getServer ( ) . getPort ( ) + " ... " ) ;
2023-03-29 16:36:55 +08:00
if ( ServerUtils . serverIsUp ( address , Bukkit . getServer ( ) . getPort ( ) ) ) {
2025-10-15 21:12:07 +08:00
// System.out.println(ServerUtils.webhook_messages); // What the fuck!!
// System.out.println(ServerUtils.webhook_notify);
2023-03-28 19:24:11 +08:00
DiscordWebhook notify = new DiscordWebhook ( Main . getNotifyWebhook ( ) ) ;
EmbedObject embedObject = new EmbedObject ( ) . setTitle ( " Server started up successfully " ) . setDescription ( String . format ( " The server at %s:%d has started successfully. " , Utils . getServerHostPublicIP ( ) , Bukkit . getServer ( ) . getPort ( ) ) )
. addField ( " Date of start " , new Date ( ) . toString ( ) , false )
. setColor ( Color . GREEN ) ;
2025-10-15 21:12:07 +08:00
if ( ! Main . configR . getBoolean ( " log " ) )
2023-03-28 19:24:11 +08:00
embedObject . addField ( " Extra notes " , " The server will not try to log any events. " , false ) ;
notify . addEmbed ( embedObject ) ;
try {
notify . execute ( ) ;
} catch ( IOException e ) {
throw new RuntimeException ( e ) ;
}
timesCalled + + ;
} else {
Bukkit . getConsoleSender ( ) . sendMessage ( " OnServerStart was called, but the server is currently offline... This may trigger more than once. " ) ;
}
} else {
Bukkit . getConsoleSender ( ) . sendMessage ( " (debug) server start event was called more than 1 time " ) ;
}
}
}