Guest User

Untitled

a guest
Nov 21st, 2018
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.69 KB | None | 0 0
  1. package net.openprog.simpletp;
  2.  
  3. import java.util.HashMap;
  4. import java.util.Map;
  5. import java.util.logging.Level;
  6. import java.util.logging.Logger;
  7.  
  8. import org.bukkit.ChatColor;
  9. import org.bukkit.command.Command;
  10. import org.bukkit.command.CommandSender;
  11. import org.bukkit.entity.Player;
  12. import org.bukkit.plugin.java.JavaPlugin;
  13.  
  14. public class SimpleTP extends JavaPlugin {
  15. Logger log = Logger.getLogger("Minecraft");
  16. Map<String, Long> tpaCooldown = new HashMap<String, Long>();
  17. Map<String, String> currentRequest = new HashMap<String, String>();
  18.  
  19. public void onEnable() {
  20. loadConfig();
  21. log.log(Level.INFO, String.format("[%s] Successfully enabled version %s!", getDescription().getName(), getDescription().getVersion()));
  22. }
  23.  
  24. public void onDisable() {
  25. log.log(Level.INFO, String.format("[%s] Successfully disabled version %s!", getDescription().getName(), getDescription().getVersion()));
  26. }
  27.  
  28. public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) {
  29. Player p = null;
  30. if (sender instanceof Player) {
  31. p = (Player) sender;
  32. }
  33.  
  34. if (cmd.getName().equalsIgnoreCase("tpa")) {
  35. if (!(p == null)) {
  36. if (p.hasPermission("simpletp.overridecooldown")) {
  37.  
  38. } else {
  39. int cooldown = getConfig().getInt("tpa-cooldown");
  40. if (tpaCooldown.containsKey(p.getName())) {
  41. long diff = (System.currentTimeMillis() - tpaCooldown.get(sender.getName())) / 1000;
  42. if (diff < cooldown) {
  43. p.sendMessage(ChatColor.RED + "Error: You must wait a " + cooldown + " second cooldown in between teleport requests!");
  44. return false;
  45. }
  46. }
  47. }
  48.  
  49. if (args.length > 0) {
  50. final Player target = getServer().getPlayer(args[0]);
  51. long keepAlive = getConfig().getLong("keep-alive") * 20;
  52.  
  53. if (target == null) {
  54. sender.sendMessage(ChatColor.RED + "Error: You can only send a teleport request to online players!");
  55. return false;
  56. }
  57.  
  58. if (target == p) {
  59. sender.sendMessage(ChatColor.RED + "Error: You can't teleport to yourself!");
  60. return false;
  61. }
  62.  
  63. sendRequest(p, target);
  64.  
  65. getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
  66. public void run() {
  67. killRequest(target.getName());
  68. }
  69. }, keepAlive);
  70.  
  71. tpaCooldown.put(p.getName(), System.currentTimeMillis());
  72. } else {
  73. p.sendMessage("Send a teleport request to a player.");
  74. p.sendMessage("/tpa <player>");
  75. }
  76. } else {
  77. sender.sendMessage(ChatColor.RED + "Error: The console can't teleport to people, silly!");
  78. return false;
  79. }
  80. return true;
  81. }
  82.  
  83. if (cmd.getName().equalsIgnoreCase("tpaccept")) {
  84. if (!(p == null)) {
  85. if (currentRequest.containsKey(p.getName())) {
  86.  
  87. Player heIsGoingOutOnADate = getServer().getPlayer(currentRequest.get(p.getName()));
  88. currentRequest.remove(p.getName());
  89.  
  90. if (!(heIsGoingOutOnADate == null)) {
  91. heIsGoingOutOnADate.teleport(p);
  92. p.sendMessage(ChatColor.GRAY + "Teleporting...");
  93. heIsGoingOutOnADate.sendMessage(ChatColor.GRAY + "Teleporting...");
  94. } else {
  95. sender.sendMessage(ChatColor.RED + "Error: It appears that the person trying to teleport to you doesn't exist anymore. WHOA!");
  96. return false;
  97. }
  98. } else {
  99. sender.sendMessage(ChatColor.RED + "Error: It doesn't appear that there are any current tp requests. Maybe it timed out?");
  100. return false;
  101. }
  102. } else {
  103. sender.sendMessage(ChatColor.RED + "Error: The console can't accept teleport requests, silly!");
  104. return false;
  105. }
  106. return true;
  107. }
  108.  
  109. if (cmd.getName().equalsIgnoreCase("tpdeny")) {
  110. if (!(p == null)) {
  111. if (currentRequest.containsKey(p.getName())) {
  112. Player poorRejectedGuy = getServer().getPlayer(currentRequest.get(p.getName()));
  113. currentRequest.remove(p.getName());
  114.  
  115. if (!(poorRejectedGuy == null)) {
  116. poorRejectedGuy.sendMessage(ChatColor.RED + p.getName() + " rejected your teleport request! :(");
  117. p.sendMessage(ChatColor.GRAY + poorRejectedGuy.getName() + " was rejected!");
  118. return true;
  119. }
  120. } else {
  121. sender.sendMessage(ChatColor.RED + "Error: It doesn't appear that there are any current tp requests. Maybe it timed out?");
  122. return false;
  123. }
  124. } else {
  125. sender.sendMessage(ChatColor.RED + "Error: The console can't deny teleport requests, silly!");
  126. return false;
  127. }
  128. return true;
  129. }
  130. return false;
  131. }
  132.  
  133. public boolean killRequest(String key) {
  134. if (currentRequest.containsKey(key)) {
  135. Player loser = getServer().getPlayer(currentRequest.get(key));
  136. if (!(loser == null)) {
  137. loser.sendMessage(ChatColor.RED + "Your teleport request timed out.");
  138. }
  139.  
  140. currentRequest.remove(key);
  141.  
  142. return true;
  143. } else {
  144. return false;
  145. }
  146. }
  147.  
  148. public void sendRequest(Player sender, Player recipient) {
  149. sender.sendMessage("Sending a teleport request to " + recipient.getName() + ".");
  150.  
  151. String sendtpaccept = "";
  152. String sendtpdeny = "";
  153.  
  154. if (recipient.hasPermission("simpletp.tpaccept")) {
  155. sendtpaccept = " To accept the teleport request, type " + ChatColor.RED + "/tpaccept" + ChatColor.RESET + ".";
  156. } else {
  157. sendtpaccept = "";
  158. }
  159.  
  160. if (recipient.hasPermission("simpletp.tpdeny")) {
  161. sendtpdeny = " To deny the teleport request, type " + ChatColor.RED + "/tpdeny" + ChatColor.RESET + ".";
  162. } else {
  163. sendtpdeny = "";
  164. }
  165.  
  166. recipient.sendMessage(ChatColor.RED + sender.getName() + ChatColor.RESET + " has sent a request to teleport to you." + sendtpaccept + sendtpdeny);
  167. currentRequest.put(recipient.getName(), sender.getName());
  168. }
  169.  
  170. public void loadConfig() {
  171. getConfig().addDefault("tpa-cooldown", 5);
  172. getConfig().addDefault("keep-alive", 30);
  173. getConfig().options().copyDefaults(true);
  174. saveConfig();
  175. }
  176. }
Add Comment
Please, Sign In to add comment