package de.steamwar.bausystem; import de.steamwar.bausystem.commands.*; import de.steamwar.bausystem.sql.Bauwelt; import de.steamwar.bausystem.world.ArenaSection; import de.steamwar.bausystem.world.RegionListener; import de.steamwar.bausystem.world.TNTTracer; import de.warking.hunjy.MySQL.WarkingUser; import org.bukkit.Bukkit; import org.bukkit.configuration.InvalidConfigurationException; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.entity.PlayerDeathEvent; import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.permissions.PermissionAttachment; import org.bukkit.plugin.java.JavaPlugin; import java.io.File; import java.io.IOException; import java.util.List; import java.util.UUID; public class BauSystem extends JavaPlugin implements Listener { private static BauSystem plugin; private static UUID owner; private static Bauwelt welt; private static TNTTracer tracer; private static List sections; public static final String PREFIX = "§eBauSystem§8» §7"; public static final String SECTION_PATH = "/home/minecraft/backbone/server/UserBau/"; @Override public void onEnable() { plugin = this; try{ owner = UUID.fromString(Bukkit.getWorlds().get(0).getName()); }catch(IllegalArgumentException e){ e.printStackTrace(); Bukkit.shutdown(); return; } welt = Bauwelt.getBauwelt(owner); tracer = new TNTTracer(); try { CommandRemover.removeCommand("tp"); CommandRemover.injectCommand(new CommandTeleport()); CommandRemover.removeCommand("gamemode"); CommandRemover.injectCommand(new CommandGamemode()); CommandRemover.removeCommand("time"); CommandRemover.injectCommand(new CommandTime()); } catch (Exception e) { e.printStackTrace(); Bukkit.shutdown(); return; } try { sections = ArenaSection.loadFromFile(new File(Bukkit.getWorldContainer().getPath() + '/' + owner.toString() + "/sections.yml")); } catch (IOException | InvalidConfigurationException e) { e.printStackTrace(); Bukkit.shutdown(); return; } getCommand("trace").setExecutor(new CommandTrace()); getCommand("nightvision").setExecutor(new CommandNV()); getCommand("reset").setExecutor(new CommandReset()); getCommand("speed").setExecutor(new CommandSpeed()); getCommand("tnt").setExecutor(new CommandTNT()); getCommand("fire").setExecutor(new CommandFire()); getCommand("testblock").setExecutor(new CommandTestblock()); getCommand("bau").setExecutor(new CommandBau()); getCommand("bauinfo").setExecutor(new CommandInfo()); getCommand("protect").setExecutor(new CommandProtect()); getCommand("skull").setExecutor(new CommandSkull()); Bukkit.getPluginManager().registerEvents(this, this); Bukkit.getPluginManager().registerEvents(new RegionListener(), this); } public static BauSystem getPlugin(){ return plugin; } public static UUID getOwner(){ return owner; } public static Bauwelt getWelt(){ return welt; } public static TNTTracer getTracer(){ return tracer; } public static List getSections(){ return sections; } public static int getOwnerID(){ return WarkingUser.get(owner).getId(); } @EventHandler public void onDeath(PlayerDeathEvent e) { e.setDeathMessage(null); } @EventHandler public void onJoin(PlayerJoinEvent e) { Player p = e.getPlayer(); PermissionAttachment attachment = p.addAttachment(this); attachment.setPermission("F3NPerm.use", true); attachment.setPermission("fawe.permpack.basic", true); attachment.setPermission("worldedit.navigation.jumpto.tool", true); attachment.setPermission("worldedit.navigation.thru.tool", true); } @EventHandler public void onLeave(PlayerQuitEvent e){ if(Bukkit.getOnlinePlayers().isEmpty() || (Bukkit.getOnlinePlayers().size() == 1 && Bukkit.getOnlinePlayers().contains(e.getPlayer()))) Bukkit.shutdown(); } }