Finalized the RandomTP

This commit is contained in:
alisolarflare 2016-09-04 21:22:17 -04:00
parent 172c1224f8
commit fb43e3c8d7
4 changed files with 80 additions and 13 deletions

View file

@ -4,3 +4,5 @@
commands:
HelloWorld:
description: Command that says Hello World!
debugRTP:
description: Command that randomly teleports someone inside the hardcore world

View file

@ -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,7 +132,11 @@ 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();
@ -130,17 +145,18 @@ public class RandomTP{
//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;
}
}

View file

@ -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);
}
}

View file

@ -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();
}
}