diff --git a/Achievements/Achievement.java b/Achievements/Achievement.java new file mode 100755 index 0000000..abad89c --- /dev/null +++ b/Achievements/Achievement.java @@ -0,0 +1,32 @@ +import java.util.logging.Logger; +import java.util.logging.Level; + +public class Achievement +{ + public boolean modified = false; + private int count; + static final Logger log = Logger.getLogger("Minecraft"); + + Achievement() + { + count = 0; + modified = false; + } + + public int getCount() + { + return count; + } + + public void put(int value) + { + count = value; + modified = true; + } + + public void incrementCount() + { + count++; + modified = true; + } +} \ No newline at end of file diff --git a/EntityClean/EntityClean.jar b/EntityClean/EntityClean.jar new file mode 100755 index 0000000..8dff061 Binary files /dev/null and b/EntityClean/EntityClean.jar differ diff --git a/EntityClean/EntityClean.java b/EntityClean/EntityClean.java new file mode 100755 index 0000000..d2109f8 --- /dev/null +++ b/EntityClean/EntityClean.java @@ -0,0 +1,142 @@ +import java.util.List; +import java.util.logging.Logger; + +import net.minecraft.server.MinecraftServer; + +public class EntityClean extends Plugin +{ + private String name = "EntityClean"; + private int version = 1; + + static final Logger log = Logger.getLogger("Minecraft"); + + public void enable() + { + log.info(name + " v" + version + " Plugin Enabled."); + etc.getInstance().addCommand("/eclean", " - Clean Entities."); + } + + public void disable() + { + log.info(name + " v" + version + " Plugin Disabled."); + } + + public void initialize() + { + new VersionCheck(name, version); + + ECListener listener = new ECListener(); + etc.getLoader().addListener(PluginLoader.Hook.COMMAND, listener, this, PluginListener.Priority.MEDIUM); + } + + public class ECListener extends PluginListener + { + public boolean onCommand(Player player, String[] split) + { + if (!player.canUseCommand("/eclean")) + return false; + + if (split[0].equalsIgnoreCase("/eclean")) + { + try { + List ml = etc.getServer().getMobList(); + for (Mob m: ml) + m.setHealth(-1); + ml = etc.getServer().getAnimalList(); + for (Mob m: ml) + m.setHealth(-1); + player.sendMessage(Colors.Rose + "Done."); + } catch (NoSuchMethodError ex) { + } + + return true; + } + + if (split[0].equalsIgnoreCase("/etpvh")) + { + List vehl = etc.getServer().getVehicleEntityList(); + for (BaseVehicle v: vehl) + { + v.teleportTo(player); + } + player.sendMessage("Done."); + return true; + } + + if (split[0].equalsIgnoreCase("/etpmob")) + { + List ml = etc.getServer().getMobList(); + for (Mob m: ml) + m.teleportTo(player); + player.sendMessage("Done."); + return true; + } + + if (split[0].equalsIgnoreCase("/etpani")) + { + List ml = etc.getServer().getAnimalList(); + for (Mob m: ml) + m.teleportTo(player); + player.sendMessage("Done."); + return true; + } + + if (split[0].equalsIgnoreCase("/ecount")) + { + player.sendMessage("Mob spawn rate: " + etc.getInstance().getMobSpawnRate()); + + try { + List pl = etc.getServer().getPlayerList(); + player.sendMessage("Player count: " + pl.size()); + } catch (NoSuchMethodError ex) { + } + + try { + List ml = etc.getServer().getMobList(); + player.sendMessage("Mob count: " + ml.size()); + } catch (NoSuchMethodError ex) { + } + + try { + List al = etc.getServer().getAnimalList(); + player.sendMessage("Animal count: " + al.size()); + } catch (NoSuchMethodError ex) { + } + + try { + List mcl = etc.getServer().getMinecartList(); + player.sendMessage("Minecart count: " + mcl.size()); + } catch (NoSuchMethodError ex) { + } + + try { + List bl = etc.getServer().getBoatList(); + player.sendMessage("Boat count: " + bl.size()); + } catch (NoSuchMethodError ex) { + } + + try { + List basel = etc.getServer().getEntityList(); + player.sendMessage("Base count: " + basel.size()); + } catch (NoSuchMethodError ex) { + } + + try { + List livingl = etc.getServer().getLivingEntityList(); + player.sendMessage("Living count: " + livingl.size()); + } catch (NoSuchMethodError ex) { + } + + try { + List vehl = etc.getServer().getVehicleEntityList(); + player.sendMessage("Vehicle count: " + vehl.size()); + } catch (NoSuchMethodError ex) { + } + + return true; + } + + return false; + } + } +} diff --git a/NoTp/NoTp.java b/NoTp/NoTp.java new file mode 100755 index 0000000..e6c5819 --- /dev/null +++ b/NoTp/NoTp.java @@ -0,0 +1,81 @@ +import java.util.ArrayList; +import java.util.logging.Logger; + +import net.minecraft.server.MinecraftServer; + + +public class NoTp extends Plugin +{ + private String name = "NoTp"; + private int version = 1; + private ArrayList notps = new ArrayList(); + + static final Logger log = Logger.getLogger("Minecraft"); + + public void enable() + { + log.info(name + " v" + version + " Plugin Enabled."); + etc.getInstance().addCommand("/notp", " - Prevent someone from teleporting."); + } + + public void disable() + { + log.info(name + " v" + version + " Plugin Disabled."); + } + + public void initialize() + { + new VersionCheck(name, version); + + NoTpListener listener = new NoTpListener(); + etc.getLoader().addListener(PluginLoader.Hook.COMMAND, listener, this, PluginListener.Priority.MEDIUM); + etc.getLoader().addListener(PluginLoader.Hook.TELEPORT, listener, this, PluginListener.Priority.HIGH); + } + + public class NoTpListener extends PluginListener + { + public boolean onCommand(Player player, String[] split) + { + if (!player.canUseCommand("/notp")) + return false; + if (split[0].equalsIgnoreCase("/notp")) + { + if (split.length < 2) + { + player.sendMessage(Colors.Rose + "Usage: /notp [player]"); + return true; + } + + Player target = etc.getServer().matchPlayer(split[1]); + + if (!player.isAdmin() && !player.hasControlOver(target)) + { + player.sendMessage(Colors.Rose + "You can't do that to them."); + target.sendMessage(Colors.Rose + player.getName() + " just tried to /notp you."); + return true; + } + + if (notps.contains(target.getName())) + { + player.sendMessage(Colors.Rose + "Removed."); + notps.remove(target.getName()); + return true; + } + + notps.add(target.getName()); + player.sendMessage(Colors.Rose + "Added."); + return true; + } + return false; + } + + public boolean onTeleport(Player player, Location from, Location to) + { + if (player.isAdmin()) + return false; + if (notps.contains(player.getName())) + return true; + return false; + } + } +} diff --git a/SinkHole/SinkHole.jar b/SinkHole/SinkHole.jar new file mode 100755 index 0000000..800cd7a Binary files /dev/null and b/SinkHole/SinkHole.jar differ diff --git a/SinkHole/SinkHole.java b/SinkHole/SinkHole.java new file mode 100755 index 0000000..414a99b --- /dev/null +++ b/SinkHole/SinkHole.java @@ -0,0 +1,185 @@ +import java.util.concurrent.LinkedBlockingQueue; +import java.util.Arrays; +import java.util.ArrayList; +import java.util.logging.*; + +import net.minecraft.server.MinecraftServer; + +public class SinkHole extends Plugin +{ + private static final String name = "SinkHole"; + private static final String command = "/shole"; + private static final int version = 1; + private static final int startY = 52; + static final Logger log = Logger.getLogger("Minecraft"); + + public void enable() + { + PropertiesFile properties = new PropertiesFile("server.properties"); + try { + } catch (Exception ex) { + log.log(Level.SEVERE, "Exception while reading from server.properties", ex); + } + + log.info(name + " v" + version + " Plugin Enabled."); + } + + public void disable() + { + log.info(name + " v" + version + " Plugin Disabled."); + } + + public void initialize() + { + new VersionCheck(name, version); + + SHListener listener = new SHListener(); + etc.getLoader().addListener(PluginLoader.Hook.COMMAND, listener, this, PluginListener.Priority.MEDIUM); + } + + public class SHListener extends PluginListener + { + public boolean onCommand(Player player, String[] split) + { + if (!split[0].equalsIgnoreCase(command) || !player.canUseCommand(command)) + return false; + + if (split.length < 2) + { + player.sendMessage(Colors.Rose + "Usage: " + command + " [blocks]"); + return true; + } + + int num; + try { + num = Integer.parseInt(split[1]); + } catch (NumberFormatException ex) { + player.sendMessage(Colors.Rose + "Usage: " + command + " [blocks]"); + return true; + } + + Preparer pq = new Preparer(); + + for (int x = (int)(player.getX()) - num; x < (int)(player.getX()) + num; x++) + for (int z = (int)(player.getZ()) - num; z < (int)(player.getZ()) + num; z++) + { + Block b = etc.getServer().getBlockAt(x, 0, z); + pq.add(b); + } + + player.sendMessage(Colors.Rose + "Sinking..."); + etc.getServer().addToServerQueue(pq, 100L); + + return true; + } + } + + private class Preparer implements Runnable + { + private LinkedBlockingQueue bqueue = new LinkedBlockingQueue(); + private Mover mover; + + Preparer() + { + mover = new Mover(); + } + + public void add(Block b) + { + bqueue.offer(b); + } + + public void run() + { + if (bqueue.isEmpty()) + { + etc.getServer().addToServerQueue(mover, 1000L); + return; + } + + int count = 0; + int x, z, type; + + while (count < 5000) + { + Block b = bqueue.poll(); + if (b == null) + break; + + x = b.getX(); + z = b.getZ(); + + if (etc.getServer().getBlockIdAt(x, 5, z) == 7) + continue; + + count++; + + mover.add(b); + etc.getServer().setBlockAt(7, x, 0, z); + for (int y = 1; y < startY; y++) + etc.getServer().setBlockAt(1, x, y, z); + + for (int y = startY; y <= 128; y++) + if (etc.getServer().getBlockIdAt(x, y, z) == 8 || etc.getServer().getBlockIdAt(x, y, z) == 9) + etc.getServer().setBlockAt(7, x, y, z); + } + + if (bqueue.isEmpty()) + etc.getServer().addToServerQueue(mover, 100L); + else + etc.getServer().addToServerQueue(this, 1000L); + } + } + + private class Mover implements Runnable + { + private LinkedBlockingQueue bqueue = new LinkedBlockingQueue(); + + public void add(Block b) + { + bqueue.offer(b); + } + + public void run() + { + if (bqueue.isEmpty()) + return; + + int count = 0; + int x, z, type; + + while (count < 5000) + { + Block b = bqueue.poll(); + if (b == null) + return; + + x = b.getX(); + z = b.getZ(); + + count++; + + for (int y = startY+1; y <= 128; y++) + { + type = etc.getServer().getBlockIdAt(x, y, z); + etc.getServer().setBlockAt(type, x, y-startY, z); + etc.getServer().setBlockAt(0, x, y, z); + } + etc.getServer().setBlockAt(0, x, 1, z); + etc.getServer().setBlockAt(0, x, 2, z); + etc.getServer().setBlockAt(0, x, 3, z); + etc.getServer().setBlockAt(0, x, 4, z); + etc.getServer().setBlockAt(7, x, 5, z); + + for (int y = 6; y <= 128 - startY; y++) + if (etc.getServer().getBlockIdAt(x, y, z) == 7) + etc.getServer().setBlockAt(9, x, y, z); + } + + if (bqueue.isEmpty()) + return; + + etc.getServer().addToServerQueue(this, 1000L); + } + } +} \ No newline at end of file