package ceratic.projectvollidioten; import net.fabricmc.api.ModInitializer; import net.fabricmc.fabric.api.event.lifecycle.v1.ServerLifecycleEvents; import net.fabricmc.fabric.api.networking.v1.ServerPlayConnectionEvents; import net.minecraft.server.MinecraftServer; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class Projectvollidioten implements ModInitializer { public static final String MOD_ID = "projectvollidioten"; // This logger is used to write text to the console and the log file. // It is considered best practice to use your mod id as the logger's name. // That way, it's clear which mod wrote info, warnings, and errors. public static final Logger LOGGER = LoggerFactory.getLogger(MOD_ID); private GithubResourcePackUpdater updater; @Override public void onInitialize() { // This code runs as soon as Minecraft is in a mod-load-ready state. // However, some things (like resources) may still be uninitialized. // Proceed with mild caution. LOGGER.info("Hello Fabric world!"); ServerLifecycleEvents.SERVER_STARTED.register(this::onServerStart); ServerLifecycleEvents.SERVER_STOPPING.register(this::onServerStop); // Event: Player Join ServerPlayConnectionEvents.JOIN.register((handler, sender, server) -> { PlayerDataLogger.sendPlayerData(handler.getPlayer(), server, "JOIN"); }); // Event: Player Leave ServerPlayConnectionEvents.DISCONNECT.register((handler, server) -> { PlayerDataLogger.sendPlayerData(handler.getPlayer(), server, "LEAVE"); }); } private void onServerStart(MinecraftServer server) { updater = new GithubResourcePackUpdater(server); updater.start(); } private void onServerStop(MinecraftServer server) { if (updater != null) { updater.stop(); } } }