From fb43e3c8d718e3e5b36715b02b885b79232bd977 Mon Sep 17 00:00:00 2001 From: alisolarflare Date: Sun, 4 Sep 2016 21:22:17 -0400 Subject: [PATCH] Finalized the RandomTP --- plugin.yml | 4 +- src/alisolarflare/RandomTP.java | 45 ++++++++++++++++--- src/alisolarflare/listeners/CompassLobby.java | 26 +++++++++++ .../ConflictCompassCraftingListener.java | 18 +++++--- 4 files changed, 80 insertions(+), 13 deletions(-) create mode 100644 src/alisolarflare/listeners/CompassLobby.java diff --git a/plugin.yml b/plugin.yml index 13eb73d..cd81552 100644 --- a/plugin.yml +++ b/plugin.yml @@ -3,4 +3,6 @@ name: HelloWorldPlugin commands: HelloWorld: - description: Command that says Hello World! \ No newline at end of file + description: Command that says Hello World! + debugRTP: + description: Command that randomly teleports someone inside the hardcore world \ No newline at end of file diff --git a/src/alisolarflare/RandomTP.java b/src/alisolarflare/RandomTP.java index f9c1016..78b2094 100644 --- a/src/alisolarflare/RandomTP.java +++ b/src/alisolarflare/RandomTP.java @@ -3,10 +3,15 @@ package alisolarflare; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.World; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +import iie.HelloWorldPlugin; -public class RandomTP{ + +public class RandomTP implements CommandExecutor{ private int conflictX; private int conflictZ; @@ -15,6 +20,12 @@ public class RandomTP{ private boolean southUsed; private boolean eastUsed; private boolean westUsed; + @SuppressWarnings("unused") + private HelloWorldPlugin helloWorldPlugin; + public RandomTP(HelloWorldPlugin helloWorldPlugin) { + this.helloWorldPlugin = helloWorldPlugin; + } + //every 4 players who use it will be teleported near each other. //ex. iie > 1200, ali -> 1210, byz -> 1190, charles -> 1195, wind -> 300, zan -> 310, etc public void conflictRtp(Player player, World world, Location minLocation, Location maxLocation){ @@ -121,26 +132,31 @@ public class RandomTP{ //Randomly teleports a player, into the hardcore world public void rtp(Player player, World world, Location minLocation, Location maxLocation){ - + player.sendMessage("TELEPORT INITIATED"); + player.sendMessage("minLocation: " + minLocation.toString()); + player.sendMessage("maxLocation: " + maxLocation.toString()); + player.sendMessage("world : " + world.toString()); + player.sendMessage("player : " + player.toString()); //INIT - xDifference, xAverage int xdifference = minLocation.getBlockX() - maxLocation.getBlockX(); int xAverage = (int) Math.floor(minLocation.getBlockX() + maxLocation.getBlockX() / 2); - + //INIT - zDifference, zAverage int zdifference = minLocation.getBlockX() - maxLocation.getBlockY(); int zAverage = (int) Math.floor(minLocation.getBlockZ() + maxLocation.getBlockZ()); - + player.sendMessage("Averages : " + xAverage + "|" + zAverage); //TELEPORTS - Tries 20 times to find a location for(int i = 0; i < 20; i ++){ - + //INIT - attemptedX, attemptedZ int attemptedX = (int) Math.floor((Math.random()-0.5)*xdifference) + xAverage; int attemptedZ = (int) Math.floor((Math.random()-0.5)*zdifference) + zAverage; - + player.sendMessage("TAKE " + i + " : " + attemptedX + ", "+ attemptedZ); //CHECKS - if ground is safe boolean groundisSafe = world.getHighestBlockAt(attemptedX, attemptedZ).getType() != Material.WATER; if (groundisSafe){ + player.sendMessage("SAFE GROUND, TELEPORTING"); player.teleport(world.getHighestBlockAt(attemptedX, attemptedZ).getLocation()); return; } @@ -148,4 +164,21 @@ public class RandomTP{ //player.teleport(arg0) } } + + @Override + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + if(!(sender instanceof Player)){ + sender.sendMessage("You must be a Player to use this command!"); + sender.sendMessage(sender.toString()); + return false; + } + Player player = (Player) sender; + if(player.getWorld().getName() != "hardcore"){ + sender.sendMessage("You must be in the hardcore world to use this command!"); + sender.sendMessage("Current World: " + player.getWorld().getName()); + return false; + } + rtp(player, player.getWorld(), new Location(player.getWorld(), 644, 65, -944), new Location(player.getWorld(), 1700, 65, 464)); + return false; + } } diff --git a/src/alisolarflare/listeners/CompassLobby.java b/src/alisolarflare/listeners/CompassLobby.java new file mode 100644 index 0000000..a07f676 --- /dev/null +++ b/src/alisolarflare/listeners/CompassLobby.java @@ -0,0 +1,26 @@ +package alisolarflare.listeners; + +import org.bukkit.Bukkit; +import org.bukkit.Material; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerJoinEvent; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.ItemStack; + + +public class CompassLobby implements Listener{ + @EventHandler + public void onPlayerJoin(PlayerJoinEvent event){ + openGUI(event.getPlayer()); + } + public void openGUI(Player p){ + //format: null, size of inventory (must be divisible by 9), "GUI name" + Inventory inv = Bukkit.createInventory(null, 9, "GUI Name"); + inv.setItem(0, new ItemStack(Material.GRASS)); + inv.setItem(1, new ItemStack(Material.IRON_SWORD)); + inv.setItem(8, new ItemStack(Material.BARRIER)); + p.openInventory(inv); + } +} diff --git a/src/alisolarflare/listeners/ConflictCompassCraftingListener.java b/src/alisolarflare/listeners/ConflictCompassCraftingListener.java index ee2c355..ab26daf 100644 --- a/src/alisolarflare/listeners/ConflictCompassCraftingListener.java +++ b/src/alisolarflare/listeners/ConflictCompassCraftingListener.java @@ -14,21 +14,27 @@ import org.bukkit.event.inventory.CraftItemEvent; import org.bukkit.inventory.ItemStack; public class ConflictCompassCraftingListener implements Listener{ + public static void main(String[] args){ + String nulltest = null; + if(nulltest == null){ + System.out.println("NUUUUULL"); + } + } @EventHandler public boolean onConflictCompassCraft(CraftItemEvent event){ //SANITATION - HARDCORE - if(event.getWhoClicked().getWorld().getName() != "hardcore"){ + if(event.getWhoClicked().getWorld().getName() != "hardcore") return false; - } + //INIT - targetItem ItemStack targetItem = event.getRecipe().getResult(); //SANITATION - NOT COMPASS - if(targetItem.getType() != Material.COMPASS){ + if(targetItem.getType() != Material.COMPASS) return false; - } + event.setCancelled(true); //GIVE - chainmail chestplate @@ -60,9 +66,9 @@ public class ConflictCompassCraftingListener implements Listener{ nearestPlayer = player; } } - if(nearestPlayer == null){ + if(nearestPlayer == null) return "METAL"; - } + return nearestPlayer.toString(); } }