package com.forgeessentials.playerlogger; import net.minecraftforge.permission.PermissionLevel; import com.forgeessentials.api.APIRegistry; import com.forgeessentials.core.ForgeEssentials; import com.forgeessentials.core.misc.FECommandManager; import com.forgeessentials.core.moduleLauncher.FEModule; import com.forgeessentials.playerlogger.command.CommandPlayerlogger; import com.forgeessentials.playerlogger.command.CommandRollback; import com.forgeessentials.util.events.FEModuleEvent.FEModuleInitEvent; import com.forgeessentials.util.events.FEModuleEvent.FEModuleServerPreInitEvent; import com.forgeessentials.util.events.FEModuleEvent.FEModuleServerStoppedEvent; import cpw.mods.fml.common.eventhandler.SubscribeEvent; @FEModule(name = "PlayerLogger", parentMod = ForgeEssentials.class) public class ModulePlayerLogger { public static final String PERM = "fe.pl"; public static final String PERM_WAND = PERM + ".wand"; public static final String PERM_COMMAND = PERM + ".cmd"; private static PlayerLogger logger; @SuppressWarnings("unused") private PlayerLoggerEventHandler eventHandler; /* @Preconditions public boolean checkLibraries() { String[] compulsoryLibs = { "antlr.Version", "org.dom4j.Text", "org.hibernate.annotations.common.Version", "org.hibernate.Version", "org.hibernate.jpa.AvailableSettings", "javax.persistence.Version", "org.jboss.jandex.Main", "javassist.CtClass", "org.jboss.logging.Logger", "org.jboss.logging.annotations.Message", "javax.transaction.Status" }; List<String> erroredLibs = new ArrayList<String>(); for (String clazz : compulsoryLibs) { try { Launch.classLoader.findClass(clazz); } catch (ClassNotFoundException cnfe) { erroredLibs.add(clazz); cnfe.printStackTrace(); } } if (!erroredLibs.isEmpty()) { LoggingHandler.felog.error("[ForgeEssentials] You are missing the following library files."); for (Object error : erroredLibs.toArray()) { System.err.println(error); } LoggingHandler.felog.error("[PlayerLogger] As the necessary files could not be loaded, PlayerLogger will be disabled."); LoggingHandler.felog.error("[PlayerLogger] Please verify that the necessary files are present if you wish to use PlayerLogger."); return false; } return true; } */ @SubscribeEvent public void load(FEModuleInitEvent e) { logger = new PlayerLogger(); eventHandler = new PlayerLoggerEventHandler(); ForgeEssentials.getConfigManager().registerLoader("PlayerLogger", new PlayerLoggerConfig()); FECommandManager.registerCommand(new CommandRollback()); FECommandManager.registerCommand(new CommandPlayerlogger()); // FECommandManager.registerCommand(new CommandTestPlayerlogger()); } @SubscribeEvent public void serverPreInit(FEModuleServerPreInitEvent e) { registerPermissions(); logger.loadDatabase(); } private void registerPermissions() { APIRegistry.perms.registerPermission(PERM, PermissionLevel.OP, "Player logger permisssions"); APIRegistry.perms.registerPermission(PERM_WAND, PermissionLevel.OP, "Allow usage of player loggger wand (clock)"); } @SubscribeEvent public void serverStopped(FEModuleServerStoppedEvent e) { if (logger != null) logger.close(); } public static PlayerLogger getLogger() { return logger; } }