123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343 |
- package me.km;
- import me.km.capabilities.CapabilitiesEvents;
- import me.km.api.Module;
- import me.km.api.SimpleConfig;
- import me.km.api.CommandOverloader;
- import me.km.api.Utils;
- import me.km.blockprotections.BlockProtectionBank;
- import me.km.capabilities.DamageUtils;
- import me.km.chatmanager.ChatManager;
- import me.km.databank.DataBank;
- import me.km.dimensions.ModWorldGeneration;
- import me.km.dimensions.WorldData;
- import me.km.effects.EffectUtils;
- import me.km.entities.EntityHuman;
- import me.km.fluids.ModFluids;
- import me.km.jobsystem.JobAPI;
- import me.km.networking.ModPacketHandler;
- import me.km.permissions.PermissionManager;
- import me.km.playerbank.PlayerManager;
- import me.km.plots.ProtectionBank;
- import me.km.scheduler.SnuviScheduler;
- import me.km.scoreboard.ScoreboardAPI;
- import me.km.skills.SkillManager;
- import me.km.snuviscript.ScriptModule;
- import me.km.snuviscript.ScriptBank;
- import net.minecraft.server.MinecraftServer;
- import net.minecraft.util.text.TextFormatting;
- import net.minecraftforge.fluids.FluidRegistry;
- import net.minecraftforge.fml.common.Mod;
- import net.minecraftforge.fml.common.SidedProxy;
- import net.minecraftforge.fml.common.event.FMLInitializationEvent;
- import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
- import net.minecraftforge.fml.common.event.FMLServerStartingEvent;
- import net.minecraftforge.fml.common.event.FMLServerAboutToStartEvent;
- import net.minecraftforge.fml.common.event.FMLServerStoppingEvent;
- import net.minecraftforge.fml.common.event.FMLServerStartedEvent;
- import net.minecraftforge.fml.common.registry.GameRegistry;
- import net.minecraftforge.fml.relauncher.Side;
- import net.minecraftforge.fml.relauncher.SideOnly;
- @Mod(modid = KajetansMod.MODID, version = KajetansMod.VERSION, name = KajetansMod.NAME)
- public class KajetansMod
- {
- @SideOnly(Side.SERVER)
- public static SimpleConfig conf;
-
- public static Module error;
- public static DataBank databank;
- @SideOnly(Side.SERVER)
- public static SnuviScheduler scheduler;
- public static PlayerManager playerbank;
- public static Module generalCommands;
- public static ChatManager chatManager;
- public static Module afkManager;
- public static Module plots;
- public static Module blocks;
- public static Module datatools;
- public static WorldData worldManager;
- public static Module environment;
- public static ScriptModule scripts;
- public static JobAPI jobs;
- public static EffectUtils effects;
- public static SkillManager skills;
- public static Module scrolls;
- public static ScoreboardAPI scoreboard;
- public static PermissionManager perms;
-
- @SidedProxy(serverSide = "me.km.CommonProxy", clientSide = "me.km.ClientProxy")
- public static CommonProxy proxy;
- public static final String MODID = "km";
- public static final String NAME = "Kajetans Mod";
- public static final String VERSION = "0.0.15";
- @Mod.Instance(MODID)
- public static KajetansMod instance;
-
- public static MinecraftServer server;
-
- public static boolean debugMode;
- public static boolean singlePlayer;
- static
- {
- FluidRegistry.enableUniversalBucket();
- }
-
- @Mod.EventHandler
- public void preInit(FMLPreInitializationEvent e)
- {
- System.out.println(NAME + " is loading!");
- ModPacketHandler.init();
- ModFluids.init();
- GameRegistry.registerWorldGenerator(new ModWorldGeneration(), 3);
-
- DamageUtils.init();
- CapabilitiesEvents.init();
-
- net.minecraftforge.common.MinecraftForge.EVENT_BUS.register(new Object()
- {
- public me.km.inventory.InventoryBase inv = null;
-
- @net.minecraftforge.fml.common.eventhandler.SubscribeEvent
- public void wusi(net.minecraftforge.client.event.ClientChatEvent e)
- {
- net.minecraft.client.entity.EntityPlayerSP p = net.minecraft.client.Minecraft.getMinecraft().player;
- }
-
- @net.minecraftforge.fml.common.eventhandler.SubscribeEvent
- public void wusi2(net.minecraftforge.event.ServerChatEvent e)
- {
- net.minecraft.entity.player.EntityPlayerMP p = e.getPlayer();
- /*if(inv == null)
- {
- System.out.println("NEU");
- inv = new me.km.inventory.InventoryBase("Test Titel", "21102111", p);
- }
- new me.km.inventory.CustomContainer(inv, p).openForPlayer();*/
- try
- {
- String[] parts = e.getMessage().split(" ");
- switch(parts[0])
- {
- case "spawn":
- {
- EntityHuman h = new EntityHuman(p.world);
- h.setPosition(p.posX, p.posY, p.posZ);
- p.world.spawnEntity(h);
- break;
- }
- case "name":
- {
- Utils.getEntities(p.world, p.posX, p.posY, p.posZ, 2, EntityHuman.class).forEach(h -> h.setName(parts[1]));
- break;
- }
- case "slim":
- {
- Utils.getEntities(p.world, p.posX, p.posY, p.posZ, 2, EntityHuman.class).forEach(h -> h.setSlim(!h.isSlim()));
- break;
- }
- default:
- float f = Float.parseFloat(e.getMessage());
- Utils.getEntities(p.world, p.posX, p.posY, p.posZ, 5, EntityHuman.class).forEach(h -> h.setScale(f));
- }
-
- }
- catch(Exception ex)
- {
- }
- }
- });
- }
-
- @Mod.EventHandler
- public void init(FMLInitializationEvent e)
- {
- proxy.init();
- }
-
- @Mod.EventHandler
- public void beforeStart(FMLServerAboutToStartEvent e)
- {
- // takes place after setting of playerlist but before world load
- server = e.getServer();
- proxy.overloadPlayerList(server);
- }
-
- private FMLServerStartingEvent event;
-
- @Mod.EventHandler
- public void serverStarting(FMLServerStartingEvent e)
- {
- singlePlayer = e.getServer().isSinglePlayer();
- // Workaround
- event = e;
- if(singlePlayer)
- {
- return;
- }
- // configuration and error-dummy
- error = new Module("ERROR", "ERROR", TextFormatting.RED);
- conf = new SimpleConfig(error, "", "config", true);
- debugMode = conf.getBoolean("debug", false);
- if(debugMode)
- {
- System.out.println("------------------------------------------------");
- System.out.println("Starting server in debug mode");
- System.out.println("------------------------------------------------");
- }
- else
- {
- System.out.println("------------------------------------------------");
- System.out.println("Starting server without debug mode");
- System.out.println("------------------------------------------------");
- }
-
- // Datenbankverbindung
- databank = new DataBank("DataBank", "DataBank", TextFormatting.RED, conf.getString("user", "root"), conf.getString("password", ""));
- if(!databank.openDataBankConnection())
- {
- return;
- }
- // Scheduler
- scheduler = new SnuviScheduler("Scheduler", "Scheduler", TextFormatting.GREEN);
- scheduler.registerEvents("me.km.scheduler");
- // Spielerdatenbank
- playerbank = new PlayerManager("PlayerBank", "PlayerBank", TextFormatting.RED, databank.getConnection());
- // databank is initialized in JobAPI in order to have a reference
- playerbank.registerEvents("me.km.playerbank");
-
- // Grundlegende Commands
- generalCommands = new Module("GeneralCommands", "Commands", TextFormatting.GOLD);
- generalCommands.registerCommands(e, "me.km.commands");
-
- // Chatmanager
- chatManager = new ChatManager("ChatManager", "Chat", TextFormatting.BLUE);
- chatManager.registerCommands(e, "me.km.chatmanager");
- chatManager.registerEvents("me.km.chatmanager");
- // AFK-Manager
- afkManager = new Module("AfkManager", "AFK", TextFormatting.GRAY);
- afkManager.registerCommands(e, "me.km.afk");
- afkManager.registerEvents("me.km.afk");
- // Plot-System
- plots = new Module("Plots", "Plots", TextFormatting.GOLD);
- plots.setDataBank(new ProtectionBank(plots, databank.getConnection()));
- plots.registerCommands(e, "me.km.plots");
- plots.registerEvents("me.km.plots");
- // Chests- und Co-Protections
- blocks = new Module("BlockProtections", "Blocks", TextFormatting.BLUE);
- blocks.setDataBank(new BlockProtectionBank(blocks, databank.getConnection()));
- blocks.registerCommands(e, "me.km.blockprotections");
- blocks.registerEvents("me.km.blockprotections");
- // DataTools
- datatools = new Module("DataTools", "DataTools", TextFormatting.GRAY);
- datatools.registerCommands(e, "me.km.datatools");
- datatools.registerEvents("me.km.datatools");
- // Worldmanager
- worldManager = new WorldData("WorldManager", "Worlds", TextFormatting.RED);
- worldManager.registerCommands(e, "me.km.dimensions");
- worldManager.registerEvents("me.km.dimensions");
- // Scriptsystem
- scripts = new ScriptModule("Scripts", "Scripts", TextFormatting.LIGHT_PURPLE);
- scripts.setDataBank(new ScriptBank(scripts, databank.getConnection()));
- scripts.registerCommands(e, "me.km.snuviscript");
- scripts.registerEvents("me.km.snuviscript");
- // Jobsystem
- jobs = new JobAPI("JobSystem", "Jobs", TextFormatting.GREEN);
- // databank is initialized in JobAPI in order to have a reference
- jobs.registerCommands(e, "me.km.jobsystem");
- jobs.registerEvents("me.km.jobsystem");
- // Effectsystem
- effects = new EffectUtils("Effects", "Effects", TextFormatting.BLUE);
- effects.registerCommands(e, "me.km.effects");
- effects.registerEvents("me.km.effects.passive");
- // Skills
- skills = new SkillManager("SkillSystem", "Skills", TextFormatting.BLUE);
- skills.registerCommands(e, "me.km.skills");
- skills.registerEvents("me.km.skills");
- // Scrollsystem
- scrolls = new Module("Scrolls", "Scrolls", TextFormatting.BLUE);
- scrolls.registerCommands(e, "me.km.scrolls");
- // Environment
- environment = new Module("Environment", "Environment", TextFormatting.GREEN);
- environment.registerCommands(e, "me.km.environment");
- environment.registerEvents("me.km.environment");
- // Scoreboard
- scoreboard = new ScoreboardAPI("Scoreboard", "Scoreboard", TextFormatting.GOLD);
- scoreboard.registerEvents("me.km.scoreboard");
- // Permissions
- perms = new PermissionManager("Permissions", "Perms", TextFormatting.DARK_PURPLE);
- perms.registerEvents("me.km.permissions");
- scripts.startScript(server, "startscript");
- }
-
- @Mod.EventHandler
- public void overwriteCommandsOnFullStart(FMLServerStartedEvent e)
- {
- if(singlePlayer)
- {
- return;
- }
- // Workaround
- KajetansMod.scheduler.scheduleTask(() ->
- {
- CommandOverloader.overloadCommands(event, generalCommands);
- event = null;
- }, 60);
- }
-
- @Mod.EventHandler
- public void onServerStop(FMLServerStoppingEvent e)
- {
- if(singlePlayer)
- {
- return;
- }
- scripts.startScript(server, "endscript");
- databank.closeDataBankConnection();
- }
- /*public static void main(String[] args)
- {
- // Erstellt alle Enums für die aktiven Effekte
- PackageHelper.getClassesInIde("me.km.effects.active").stream()
- .forEach(s ->
- {
- StringBuilder en = new StringBuilder(s.substring(0, s.length() - 6));
- int i = 1;
- while(i < en.length())
- {
- if(Character.isUpperCase(en.charAt(i)))
- {
- en.insert(i, "_");
- i++;
- }
- i++;
- }
- String wusi = " (true, " + s + "),";
- wusi = en.toString().toUpperCase() + wusi.substring(en.length());
- System.out.println(wusi);
- });
- }*/
- }
-
|