123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213 |
- package me.km;
- import me.kcm.events.Hooks;
- import me.km.permissions.PermissionManager;
- import me.km.blockprotections.BlockProtection;
- import me.km.module.Module;
- import me.km.module.SimpleConfig;
- import me.km.databank.DataBank;
- import me.km.entities.ModEntities;
- import me.km.networking.ModPacketHandler;
- import me.km.overrides.ModPlayerList;
- import me.km.permissions.ModCommandManager;
- import me.km.playerbank.PlayerManager;
- import me.km.plots.DummyProtectionBank;
- import me.km.plots.ProtectionEvents;
- import me.km.plots.ProtectionBank;
- import me.km.scheduler.SnuviScheduler;
- import me.km.snuviscript.ScriptModule;
- import me.km.utils.ReflectionUtils;
- import net.minecraft.server.MinecraftServer;
- import net.minecraft.util.text.TextFormatting;
- import net.minecraftforge.api.distmarker.Dist;
- import net.minecraftforge.api.distmarker.OnlyIn;
- import net.minecraftforge.common.MinecraftForge;
- import net.minecraftforge.eventbus.api.SubscribeEvent;
- import net.minecraftforge.fluids.FluidRegistry;
- import net.minecraftforge.fml.DistExecutor;
- import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent;
- import net.minecraftforge.fml.event.lifecycle.FMLLoadCompleteEvent;
- import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;
- import net.minecraftforge.fml.event.lifecycle.FMLDedicatedServerSetupEvent;
- import net.minecraftforge.fml.event.server.FMLServerAboutToStartEvent;
- import net.minecraftforge.fml.event.server.FMLServerStartingEvent;
- import net.minecraftforge.fml.event.server.FMLServerStoppingEvent;
- import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
- import org.apache.logging.log4j.LogManager;
- import net.minecraftforge.fml.common.Mod;
- import me.km.plots.IProtectionBank;
- import net.minecraftforge.fml.DeferredWorkQueue;
- @Mod.EventBusSubscriber
- @Mod("km")
- public class KajetansMod
- {
- @OnlyIn(Dist.DEDICATED_SERVER)
- public static SimpleConfig conf;
-
- public static Module error;
- public static DataBank databank;
-
- @OnlyIn(Dist.DEDICATED_SERVER)
- public static SnuviScheduler scheduler;
- public static PlayerManager playerbank;
- public static IProtectionBank plots;
- public static BlockProtection blocks;
- public static ScriptModule scripts;
-
- @OnlyIn(Dist.DEDICATED_SERVER)
- public static PermissionManager perms;
-
- @OnlyIn(Dist.DEDICATED_SERVER)
- public static ModCommandManager commands;
-
- public static CommonProxy proxy = DistExecutor.runForDist(() -> ClientProxy::new, () -> CommonProxy::new);
- public static final String MODID = "km";
- public static final String NAME = "Kajetans Mod";
- public static final String VERSION = "0.0.35";
- public static KajetansMod instance;
-
- public static MinecraftServer server;
-
- public static boolean debugMode;
- public static boolean singlePlayer;
- static
- {
- FluidRegistry.enableUniversalBucket();
- }
-
- public KajetansMod()
- {
- instance = this;
-
- FMLJavaModLoadingContext.get().getModEventBus().addListener(this::init);
- FMLJavaModLoadingContext.get().getModEventBus().addListener(this::setupServer);
- FMLJavaModLoadingContext.get().getModEventBus().addListener(this::clientInit);
- FMLJavaModLoadingContext.get().getModEventBus().addListener(this::onServerStop);
- FMLJavaModLoadingContext.get().getModEventBus().addListener(this::postInit);
- }
-
- public void setupServer(FMLDedicatedServerSetupEvent e)
- {
- Hooks.setPlayerListFunction(ds ->
- {
- ds.setPlayerList(new ModPlayerList(ds));
- });
- }
-
- public void init(FMLCommonSetupEvent e)
- {
- DeferredWorkQueue.runLater(() -> ModPacketHandler.init());
- //GameRegistry.registerWorldGenerator(new ModWorldGeneration(), 3);
-
- DamageUtils.init();
- proxy.init();
- }
-
- public void clientInit(FMLClientSetupEvent e)
- {
- ModEntities.initClient();
- }
-
- public void postInit(FMLLoadCompleteEvent e)
- {
- proxy.postInit();
- }
- @SubscribeEvent
- public static void beforeStart(FMLServerAboutToStartEvent e)
- {
- server = e.getServer();
- }
-
- @SubscribeEvent
- public static void serverStarting(FMLServerStartingEvent e)
- {
- singlePlayer = e.getServer().isSinglePlayer();
- if(singlePlayer)
- {
- return;
- }
- setCommandManager();
-
- // configuration and error-dummy
- error = new Module("ERROR", TextFormatting.RED);
- conf = new SimpleConfig(error, "", "config", true);
-
- debugMode = conf.getBoolean("debug", false);
- if(debugMode)
- {
- LogManager.getLogger().info("------------------------------------------------");
- LogManager.getLogger().info("Starting server in debug mode");
- LogManager.getLogger().info("------------------------------------------------");
- }
- else
- {
- LogManager.getLogger().info("------------------------------------------------");
- LogManager.getLogger().info("Starting server without debug mode");
- LogManager.getLogger().info("------------------------------------------------");
- }
-
- // Datenbankverbindung
- databank = new DataBank("DataBank", TextFormatting.RED, conf.getString("user", "root"), conf.getString("password", ""));
- if(!databank.openDataBankConnection())
- {
- LogManager.getLogger().info("------------------------------------------------");
- LogManager.getLogger().info("Starting server with dummy databank");
- LogManager.getLogger().info("------------------------------------------------");
- }
-
- // Scheduler
- scheduler = new SnuviScheduler("Scheduler", TextFormatting.GREEN);
- scheduler.registerEvents("me.km.scheduler");
- databank.startReconnecting(scheduler);
- // Spielerdatenbank
- playerbank = new PlayerManager("PlayerBank", TextFormatting.RED, databank);
- // Plot-System
- if(databank.isDummyDatabank())
- {
- plots = new DummyProtectionBank();
- }
- else
- {
- plots = new ProtectionBank();
- }
- MinecraftForge.EVENT_BUS.register(new ProtectionEvents());
- // block protections
- blocks = new BlockProtection();
- // Scriptsystem
- scripts = new ScriptModule("Scripts", TextFormatting.LIGHT_PURPLE);
- scripts.registerCommands(e, "me.km.snuviscript");
- // Permissions
- perms = new PermissionManager("Perms", TextFormatting.DARK_PURPLE);
- scripts.startScript("startscript");
- }
-
- @OnlyIn(Dist.DEDICATED_SERVER)
- private static void setCommandManager()
- {
- commands = new ModCommandManager(server.isDedicatedServer());
- ReflectionUtils.setCommandManager(server, commands);
- }
- public void onServerStop(FMLServerStoppingEvent e)
- {
- if(singlePlayer)
- {
- return;
- }
- scripts.startScript("endscript");
- scheduler.stop();
- databank.closeDataBankConnection();
- scheduler.getWorker().stop();
- }
- }
|