KajetansMod.java 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189
  1. package me.km;
  2. import me.kcm.command.ModServerCommandManager;
  3. import me.km.blockprotections.BlockProtection;
  4. import me.km.module.Module;
  5. import me.km.module.SimpleConfig;
  6. import me.km.databank.DataBank;
  7. import me.km.world.ModWorldGeneration;
  8. import me.km.networking.ModPacketHandler;
  9. import me.km.playerbank.PlayerManager;
  10. import me.km.plots.ProtectionBank;
  11. import me.km.scheduler.SnuviScheduler;
  12. import me.km.snuviscript.ScriptModule;
  13. import me.km.world.ChangeWorldEvent;
  14. import net.minecraft.server.MinecraftServer;
  15. import net.minecraft.util.text.TextFormatting;
  16. import net.minecraftforge.fluids.FluidRegistry;
  17. import net.minecraftforge.fml.common.Mod;
  18. import net.minecraftforge.fml.common.SidedProxy;
  19. import net.minecraftforge.fml.common.event.FMLInitializationEvent;
  20. import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
  21. import net.minecraftforge.fml.common.event.FMLServerStartingEvent;
  22. import net.minecraftforge.fml.common.event.FMLServerAboutToStartEvent;
  23. import net.minecraftforge.fml.common.event.FMLServerStoppingEvent;
  24. import net.minecraftforge.fml.common.registry.GameRegistry;
  25. import net.minecraftforge.fml.relauncher.Side;
  26. import net.minecraftforge.fml.relauncher.SideOnly;
  27. @Mod(modid = KajetansMod.MODID, version = KajetansMod.VERSION, name = KajetansMod.NAME)
  28. public class KajetansMod
  29. {
  30. @SideOnly(Side.SERVER)
  31. public static SimpleConfig conf;
  32. public static Module error;
  33. public static DataBank databank;
  34. @SideOnly(Side.SERVER)
  35. public static SnuviScheduler scheduler;
  36. public static PlayerManager playerbank;
  37. public static ProtectionBank plots;
  38. public static BlockProtection blocks;
  39. public static ScriptModule scripts;
  40. @SideOnly(Side.SERVER)
  41. public static PermissionManager perms;
  42. @SidedProxy(serverSide = "me.km.CommonProxy", clientSide = "me.km.ClientProxy")
  43. public static CommonProxy proxy;
  44. public static final String MODID = "km";
  45. public static final String NAME = "Kajetans Mod";
  46. public static final String VERSION = "0.0.35";
  47. @Mod.Instance(MODID)
  48. public static KajetansMod instance;
  49. public static MinecraftServer server;
  50. public static boolean debugMode;
  51. public static boolean singlePlayer;
  52. static
  53. {
  54. FluidRegistry.enableUniversalBucket();
  55. }
  56. @Mod.EventHandler
  57. public void preInit(FMLPreInitializationEvent e)
  58. {
  59. System.out.println(NAME + " is loading!");
  60. ModPacketHandler.init();
  61. GameRegistry.registerWorldGenerator(new ModWorldGeneration(), 3);
  62. DamageUtils.init();
  63. /*net.minecraftforge.common.MinecraftForge.EVENT_BUS.register(new Object()
  64. {
  65. @net.minecraftforge.fml.common.eventhandler.SubscribeEvent
  66. public void wusi2(net.minecraftforge.event.ServerChatEvent e)
  67. {
  68. BlockPos.MutableBlockPos pos = new BlockPos.MutableBlockPos(0, 0, 0);
  69. = Utils.getTargetBlock(e.getPlayer());
  70. e.getPlayer().sendMessage(new TextComponentString(pos.toString()));
  71. }
  72. });*/
  73. }
  74. @Mod.EventHandler
  75. public void init(FMLInitializationEvent e)
  76. {
  77. proxy.init();
  78. }
  79. @Mod.EventHandler
  80. public void beforeStart(FMLServerAboutToStartEvent e)
  81. {
  82. // takes place after setting of playerlist but before world load
  83. server = e.getServer();
  84. }
  85. @Mod.EventHandler
  86. public void serverStarting(FMLServerStartingEvent e)
  87. {
  88. singlePlayer = e.getServer().isSinglePlayer();
  89. if(singlePlayer)
  90. {
  91. return;
  92. }
  93. // configuration and error-dummy
  94. error = new Module("ERROR", TextFormatting.RED);
  95. conf = new SimpleConfig(error, "", "config", true);
  96. debugMode = conf.getBoolean("debug", false);
  97. if(debugMode)
  98. {
  99. System.out.println("------------------------------------------------");
  100. System.out.println("Starting server in debug mode");
  101. System.out.println("------------------------------------------------");
  102. }
  103. else
  104. {
  105. System.out.println("------------------------------------------------");
  106. System.out.println("Starting server without debug mode");
  107. System.out.println("------------------------------------------------");
  108. }
  109. // Datenbankverbindung
  110. databank = new DataBank("DataBank", TextFormatting.RED, conf.getString("user", "root"), conf.getString("password", ""));
  111. if(!databank.openDataBankConnection())
  112. {
  113. System.out.println("------------------------------------------------");
  114. System.out.println("Starting server with dummy databank");
  115. System.out.println("------------------------------------------------");
  116. }
  117. // Scheduler
  118. scheduler = new SnuviScheduler("Scheduler", TextFormatting.GREEN);
  119. scheduler.registerEvents("me.km.scheduler");
  120. databank.startReconnecting(scheduler);
  121. // Spielerdatenbank
  122. playerbank = new PlayerManager("PlayerBank", TextFormatting.RED, databank);
  123. // Plot-System
  124. plots = new ProtectionBank();
  125. // block protections
  126. blocks = new BlockProtection();
  127. // Worldmanager
  128. Module.registerEvent(new ChangeWorldEvent());
  129. // Scriptsystem
  130. scripts = new ScriptModule("Scripts", TextFormatting.LIGHT_PURPLE);
  131. scripts.registerCommands(e, "me.km.snuviscript");
  132. // Permissions
  133. perms = new PermissionManager("Perms", TextFormatting.DARK_PURPLE);
  134. setPermissionManager();
  135. scripts.startScript("startscript");
  136. }
  137. @SideOnly(Side.SERVER)
  138. private void setPermissionManager() // dependency workaround
  139. {
  140. if(server.commandManager instanceof ModServerCommandManager)
  141. {
  142. ((ModServerCommandManager) server.commandManager).setPermissionManager(perms);
  143. ((ModServerCommandManager) server.commandManager).registerRegistryEvent("com.sk89q");
  144. }
  145. }
  146. @Mod.EventHandler
  147. public void onServerStop(FMLServerStoppingEvent e)
  148. {
  149. if(singlePlayer)
  150. {
  151. return;
  152. }
  153. scripts.startScript("endscript");
  154. scheduler.stop();
  155. databank.closeDataBankConnection();
  156. scheduler.getWorker().stop();
  157. }
  158. }