Advertisement
Ravenbvutt

Untitled

Aug 15th, 2017
8,779
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.32 KB | None | 0 0
  1. package me.nextgeneric.random;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.List;
  5. import org.bukkit.Bukkit;
  6. import org.bukkit.Location;
  7. import org.bukkit.World;
  8. import org.bukkit.block.Biome;
  9. import org.bukkit.block.Block;
  10. import org.bukkit.command.Command;
  11. import org.bukkit.command.CommandExecutor;
  12. import org.bukkit.command.CommandSender;
  13. import org.bukkit.command.PluginCommand;
  14. import org.bukkit.entity.Player;
  15. import org.bukkit.plugin.java.JavaPlugin;
  16. import org.bukkit.scheduler.BukkitScheduler;
  17.  
  18. public class RandomLocation extends JavaPlugin
  19. {
  20. List<String> cooldowns = new ArrayList();
  21.  
  22. public RandomLocation() {}
  23.  
  24. public Location getSafeLocation(World w) { int randomX = (int)(Math.random() * 1000.0D);
  25. int randomZ = (int)(Math.random() * 1000.0D);
  26. int randomY = w.getHighestBlockYAt(randomX, randomZ);
  27. Location randomLocation = new Location(w, randomX, randomY, randomZ);
  28. if (randomLocation.getBlock().getBiome().toString().contains("OCEAN")) {
  29. return getSafeLocation(w);
  30. }
  31. return randomLocation.add(0.0D, 1.0D, 0.0D);
  32. }
  33.  
  34.  
  35. public void onEnable()
  36. {
  37. getCommand("rtp").setExecutor(new CommandExecutor()
  38. {
  39. public boolean onCommand(CommandSender commandSender, Command command, String s, String[] strings) {
  40. if (((commandSender instanceof Player)) &&
  41. (command.getName().equalsIgnoreCase("rtp"))) {
  42. tp((Player)commandSender);
  43. return true;
  44. }
  45.  
  46. return false;
  47. }
  48. });
  49. }
  50.  
  51.  
  52. public void tp(Player p)
  53. {
  54. final String name = p.getName();
  55. if (!cooldowns.contains(name)) {
  56. cooldowns.add(name);
  57. p.sendMessage("§aПодбираю безопасную локацию...");
  58. Location loc = getSafeLocation(p.getWorld()).clone();
  59. p.sendMessage("§aЛокация найдена. Телепортируемся...");
  60. p.teleport(loc);
  61. long delay = p.hasPermission("randomtp.donor") ? 10L : 30L;
  62. Bukkit.getScheduler().scheduleSyncDelayedTask(this, new Runnable()
  63. {
  64.  
  65. public void run() { cooldowns.remove(name); } }, 20L * delay);
  66. }
  67. else
  68. {
  69. p.sendMessage("§cЭтим можно пользоваться раз в тридцать секунд. А донатерам - раз в 10.");
  70. }
  71. }
  72. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement