package de.makrede.randomtp;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.Server;
import org.bukkit.World;
import org.bukkit.block.Block;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.Action;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin;
public class Main extends JavaPlugin implements Listener{
public void onEnable(){
getServer().getPluginManager().registerEvents(this, this);
}
public List<Player> getPlayersInRadius(Location location, int size){
for (Player p : location.getWorld().getPlayers()) {
if (location.distance(p.getLocation()) <= size) {
players.add(p);
}
}
return players;
}
@EventHandler
public void onInteract(PlayerInteractEvent e){
if ((e.
getAction() == Action.
RIGHT_CLICK_BLOCK) && (e.
getClickedBlock().
getType() == Material.
STONE_BUTTON)){
Location block = e.getClickedBlock().getLocation().add(1.0D, 0.0D, 0.0D);
Location block1 = e.getClickedBlock().getLocation().add(-1.0D, 0.0D, 0.0D);
Location block2 = e.getClickedBlock().getLocation().add(0.0D, 0.0D, 1.0D);
Location block3 = e.getClickedBlock().getLocation().add(0.0D, 0.0D, -1.0D);
if ((block.getBlock().getType() == Material.BEDROCK) || (block1.getBlock().getType() == Material.BEDROCK) || (block2.getBlock().getType() == Material.BEDROCK) || (block3.getBlock().getType() == Material.BEDROCK)) {
for (Player p : getPlayersInRadius(e.getClickedBlock().getLocation(), 5)){
double x = rand.nextDouble() * 10000.0D - 5000.0D;
double z = rand.nextDouble() * 10000.0D - 5000.0D;
Location loc = new Location(e.getPlayer().getWorld(), x, e.getPlayer().getWorld().getHighestBlockYAt((int)x, (int)z), z);
e.getPlayer().teleport(loc);
Location ploc = new Location(e.getPlayer().getWorld(), e.getPlayer().getLocation().getX(), e.getPlayer().getLocation().getY(), e.getPlayer().getLocation().getZ());
ploc.setY(e.getPlayer().getLocation().getY() + 5.0D);
e.getPlayer().teleport(ploc);
p.teleport(e.getPlayer().getLocation());
p.sendMessage(ChatColor.GOLD + "[LastCraft] Przeteleportowano w losowe koordynaty! ");
}
}
if ((block.getBlock().getType() == Material.SPONGE) || (block1.getBlock().getType() == Material.SPONGE) || (block2.getBlock().getType() == Material.SPONGE) || (block3.getBlock().getType() == Material.SPONGE)){
double x = rand.nextDouble() * 10000.0D - 5000.0D;
double z = rand.nextDouble() * 10000.0D - 5000.0D;
Location loc = new Location(e.getPlayer().getWorld(), x, e.getPlayer().getWorld().getHighestBlockYAt((int)x, (int)z), z);
e.getPlayer().teleport(loc);
Location ploc = new Location(e.getPlayer().getWorld(), e.getPlayer().getLocation().getX(), e.getPlayer().getLocation().getY(), e.getPlayer().getLocation().getZ());
ploc.setY(e.getPlayer().getLocation().getY() + 5.0D);
e.getPlayer().teleport(ploc);
e.getPlayer().sendMessage(ChatColor.GOLD + "[LastCraft] Przeteleportowano w losowe koordynaty!");
}
}
}
}