--- miscJava/bukkit-minecraft-plugins/HoerupUtils/src/dk/thoerup/bukkit/hoeruputils/HoerupUtilsPlugin.java 2011/12/09 17:06:52 1653 +++ miscJava/bukkit-minecraft-plugins/HoerupUtils/src/main/java/dk/thoerup/bukkit/hoeruputils/HoerupUtilsPlugin.java 2017/06/01 13:16:06 3203 @@ -1,72 +1,193 @@ package dk.thoerup.bukkit.hoeruputils; -import org.bukkit.event.Event; -import org.bukkit.event.Event.Priority; +import java.net.InetSocketAddress; +import java.util.ArrayList; +import java.util.List; +import java.util.logging.Level; + import org.bukkit.plugin.PluginManager; import org.bukkit.plugin.java.JavaPlugin; +import com.sun.net.httpserver.HttpServer; + +import dk.thoerup.bukkit.hoeruputils.chests.AdvancedChest; +import dk.thoerup.bukkit.hoeruputils.chests.ChestBean; +import dk.thoerup.bukkit.hoeruputils.creative.GeneralContractorCommands; +import dk.thoerup.bukkit.hoeruputils.message.MessageBean; +import dk.thoerup.bukkit.hoeruputils.message.MessageWrapper; import dk.thoerup.bukkit.hoeruputils.secretdoor.DoorBlockListener; -import dk.thoerup.bukkit.hoeruputils.web.MessageListener; +import dk.thoerup.bukkit.hoeruputils.web.BanListener; import dk.thoerup.bukkit.hoeruputils.web.StatusListener; +import dk.thoerup.bukkit.hoeruputils.web.WebUser; +import dk.thoerup.bukkit.hoeruputils.web.WebUserCommand; +import io.ebean.Ebean; +@SuppressWarnings("restriction") public class HoerupUtilsPlugin extends JavaPlugin { @Override public void onDisable() { - // TODO Auto-generated method stub + if ( server != null ) { + server.stop( 0 ); + } } + + MessageWrapper messageWrapper; + HttpServer server = null; @Override public void onEnable() { System.out.println("Loading HoerupUtils plugin"); + + Ebean.getDefaultServer(); + getCommand("whereis").setExecutor(new WhereisCommand(getServer())); //getCommand("mapgen").setExecutor(new MapgenCommand(this)); getCommand("eternalday").setExecutor(new EternalDayCommand(this)); getCommand("getpos").setExecutor( new GetposCommand() ); - getCommand("msg").setExecutor( new MsgCommand( getServer() ) ); - getCommand("spawn").setExecutor( new SpawnCommand() ); - getCommand("tp").setExecutor( new TeleportCommand() ); + getCommand("msg").setExecutor( new MsgCommand( this ) ); +// getCommand("tp").setExecutor( new TeleportCommand() ); getCommand("wall").setExecutor( new WallCommand() ); getCommand("weather").setExecutor( new WeatherCommand() ); + getCommand("gc").setExecutor( new GcCommand() ); + HomeCommand home = new HomeCommand(this); getCommand("home").setExecutor( home ); getCommand("sethome").setExecutor( home ); + getCommand("ophome").setExecutor( home ); + + DiverCommand diver = new DiverCommand(this ); + getCommand("diver").setExecutor( diver ); + + getCommand("opkill").setExecutor( new OpkillCommand() ); + GeneralContractorCommands generalContractor = new GeneralContractorCommands(); + getCommand("replay").setExecutor( generalContractor ); + getCommand("levelarea").setExecutor( generalContractor ); + getCommand("fillarea").setExecutor( generalContractor ); + getCommand("levelandfillarea").setExecutor( generalContractor ); + + getCommand("slopearea").setExecutor( generalContractor ); + getCommand("setsurface").setExecutor( generalContractor ); + getCommand("platform").setExecutor( generalContractor ); + getCommand("cylinder").setExecutor( generalContractor ); + getCommand("createcave").setExecutor( generalContractor ); + getCommand("spawn").setExecutor( new SpawnCommand() ); - PluginManager pm = getServer().getPluginManager(); - //pm.registerEvent(Event.Type.PLAYER_RESPAWN, new RespawnHandler(this), Priority.Normal, this); - //pm.registerEvent(Event.Type.ENTITY_DEATH, new RespawnHandler.PlayerDeathListener(this.getDataFolder()), Priority.Normal, this); + getCommand("template").setExecutor( new TemplateCommand(this) ); + getCommand("regenerate").setExecutor( new RegenerateCommand() ); - pm.registerEvent(Event.Type.ENDERMAN_PICKUP, new EndermanStopper(), Priority.Normal, this); + LogintimeHandler logintimeHandler = new LogintimeHandler( this.getDataFolder() ); - //register web plugins - pm.registerEvent(Event.Type.CUSTOM_EVENT, new StatusListener(getServer()), Priority.Normal, this); - pm.registerEvent(Event.Type.CUSTOM_EVENT, new MessageListener(getServer()), Priority.Normal, this); + PluginManager pm = getServer().getPluginManager(); + + + MotdHandler motd = new MotdHandler(this); + getCommand("motd").setExecutor( motd ); + pm.registerEvents( motd, this); + WayPoint wp = new WayPoint(this); + getCommand("waypoint").setExecutor( wp ); + getCommand("setwaypoint").setExecutor( wp ); + pm.registerEvents( wp, this); + + pm.registerEvents(logintimeHandler, this); + pm.registerEvents(logintimeHandler, this); + + pm.registerEvents(diver, this); + pm.registerEvents(new EndermanStopper(), this); + Jail jail = new Jail(this); + pm.registerEvents(jail, this); + getCommand("jail").setExecutor( jail ); + + StickyChunk chunks = new StickyChunk(); + pm.registerEvents(chunks, this); + getCommand("stickychunk").setExecutor(chunks); + + Mute mute = new Mute(this); + pm.registerEvents(mute, this); + getCommand("mute").setExecutor(mute); + getCommand("unmute").setExecutor(mute); + + + messageWrapper = new MessageWrapper(this); + pm.registerEvents( messageWrapper, this); + + AdvancedChest locked = new AdvancedChest(this); + getCommand("chest").setExecutor(locked); + pm.registerEvents( locked, this); - DoorBlockListener secretDoor = new DoorBlockListener(this); - pm.registerEvent(Event.Type.BLOCK_BREAK, secretDoor, Priority.Normal, this); - pm.registerEvent(Event.Type.SIGN_CHANGE, secretDoor, Priority.Normal, this); - pm.registerEvent(Event.Type.REDSTONE_CHANGE, secretDoor, Priority.Normal, this); - pm.registerEvent(Event.Type.PLAYER_INTERACT, secretDoor.getPlayerListener(), Priority.Normal, this); + getCommand("webuser").setExecutor( new WebUserCommand(this) ); + + + //register web plugins + //pm.registerEvent(Event.Type.CUSTOM_EVENT, new StatusListener(getServer(), logintimeHandler.getConfig(), home.getConfig() ), Priority.Normal, this); + //pm.registerEvent(Event.Type.CUSTOM_EVENT, new MessageListener(getServer()), Priority.Normal, this); + + /*try { + try { + //først probes om klassen i det hele taget findes + Class.forName("de.codeinfection.quickwango.ApiBukkit.ApiServer.ApiController"); //if it fails it throws an exception + WebLoader.getInstance().load(this, logintimeHandler.getConfig(), home.getConfig()); + + getLogger().info("ApiBukkit found, status listener registered"); + + } catch (ClassNotFoundException e) { + getLogger().warning("Could not find ApiBukkit - web status is disabled" ); + } + } catch (Throwable e) { //instead of ClassNotFoundException + NoSuchMethodException + InvocationTargetException + IllegalAccessException + getLogger().warning("Could not find ApiBukkit - web status is disabled (" + e.getClass().getName() + ":" + e.getMessage() + ")" ); + }*/ + + try { + InetSocketAddress adr = new InetSocketAddress("127.0.0.1", 9999); + server = HttpServer.create(adr, 20); + server.createContext("/bans", new BanListener(this, getServer()) ); + server.createContext("/webstatus", new StatusListener(this, getServer(),logintimeHandler.getConfig(), home.getConfig()) ); + server.start(); + + } catch(Exception e) { + getLogger().log(Level.SEVERE, "Error loading webserver", e); + + } + + + + + DoorBlockListener secretDoor = new DoorBlockListener(this); + pm.registerEvents(secretDoor, this); + pm.registerEvents(secretDoor.getPlayerListener(), this); + } + + + + + + public MessageWrapper getMessageWrapper() { + return messageWrapper; } + + + + /* private void deprecated() { -/* + getCommand("stoner").setExecutor( new StonerCommand() ); + getCommand("spawn").setExecutor( new SpawnCommand() ); getCommand("boom").setExecutor( new BoomCommand(this) ); getCommand("grass").setExecutor(new GrassCommand()); @@ -87,7 +208,11 @@ //pm.registerEvent(Event.Type.PROJECTILE_HIT, new ExplosiveSnowballs(), Priority.Normal, this); -*/ + //pm.registerEvent(Event.Type.PLAYER_RESPAWN, new RespawnHandler(this), Priority.Normal, this); + //pm.registerEvent(Event.Type.ENTITY_DEATH, new RespawnHandler.PlayerDeathListener(this.getDataFolder()), Priority.Normal, this); + + } + */ }