Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package me.nextgeneric.random;
- import java.util.ArrayList;
- import java.util.List;
- import org.bukkit.Bukkit;
- import org.bukkit.Location;
- import org.bukkit.World;
- import org.bukkit.block.Biome;
- import org.bukkit.block.Block;
- import org.bukkit.command.Command;
- import org.bukkit.command.CommandExecutor;
- import org.bukkit.command.CommandSender;
- import org.bukkit.command.PluginCommand;
- import org.bukkit.entity.Player;
- import org.bukkit.plugin.java.JavaPlugin;
- import org.bukkit.scheduler.BukkitScheduler;
- public class RandomLocation extends JavaPlugin
- {
- List<String> cooldowns = new ArrayList();
- public RandomLocation() {}
- public Location getSafeLocation(World w) { int randomX = (int)(Math.random() * 1000.0D);
- int randomZ = (int)(Math.random() * 1000.0D);
- int randomY = w.getHighestBlockYAt(randomX, randomZ);
- Location randomLocation = new Location(w, randomX, randomY, randomZ);
- if (randomLocation.getBlock().getBiome().toString().contains("OCEAN")) {
- return getSafeLocation(w);
- }
- return randomLocation.add(0.0D, 1.0D, 0.0D);
- }
- public void onEnable()
- {
- getCommand("rtp").setExecutor(new CommandExecutor()
- {
- public boolean onCommand(CommandSender commandSender, Command command, String s, String[] strings) {
- if (((commandSender instanceof Player)) &&
- (command.getName().equalsIgnoreCase("rtp"))) {
- tp((Player)commandSender);
- return true;
- }
- return false;
- }
- });
- }
- public void tp(Player p)
- {
- final String name = p.getName();
- if (!cooldowns.contains(name)) {
- cooldowns.add(name);
- p.sendMessage("§aПодбираю безопасную локацию...");
- Location loc = getSafeLocation(p.getWorld()).clone();
- p.sendMessage("§aЛокация найдена. Телепортируемся...");
- p.teleport(loc);
- long delay = p.hasPermission("randomtp.donor") ? 10L : 30L;
- Bukkit.getScheduler().scheduleSyncDelayedTask(this, new Runnable()
- {
- public void run() { cooldowns.remove(name); } }, 20L * delay);
- }
- else
- {
- p.sendMessage("§cЭтим можно пользоваться раз в тридцать секунд. А донатерам - раз в 10.");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement