Advertisement
Guest User

Untitled

a guest
May 12th, 2014
157
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.18 KB | None | 0 0
  1. package me.TopTobster5.Relative;
  2.  
  3. import java.util.HashMap;
  4. import java.util.Map;
  5.  
  6. import org.bukkit.Bukkit;
  7. import org.bukkit.ChatColor;
  8. import org.bukkit.Location;
  9. import org.bukkit.command.Command;
  10. import org.bukkit.command.CommandSender;
  11. import org.bukkit.entity.Player;
  12. import org.bukkit.event.Listener;
  13. import org.bukkit.event.block.BlockBreakEvent;
  14. import org.bukkit.event.player.PlayerJoinEvent;
  15. import org.bukkit.event.player.PlayerQuitEvent;
  16. import org.bukkit.plugin.java.JavaPlugin;
  17.  
  18. public class Relative extends JavaPlugin implements Listener{
  19.    
  20.     Map<String, Location> loc = new HashMap <String, Location>();
  21.     Map<String, Integer> Mode = new HashMap <String, Integer>();
  22.    
  23.     int diffx;
  24.     int diffy;
  25.     int diffz;
  26.    
  27.     public void onEnable() {
  28.         this.getServer().getPluginManager().registerEvents(this, this);
  29.         getLogger().info("Relative has been enabled!");
  30.         for (Player player : Bukkit.getOnlinePlayers()) {
  31.             Mode.put(player.getName(), 0);
  32.         }
  33.     }
  34.    
  35.     public void onDisable() {
  36.         Mode.clear();
  37.         getLogger().info("Relative has been disabled");
  38.     }
  39.    
  40.     public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
  41.         if (label.equalsIgnoreCase("relative")) {
  42.             if (sender instanceof Player) {
  43.                 Player player = (Player) sender;
  44.                 String name = player.getName();
  45.                 if (player.hasPermission("relative.get")) {
  46.                     int mode = Mode.get(name);
  47.                     if (mode == 0) {
  48.                         Mode.put(name, 1);
  49.                         player.sendMessage(ChatColor.AQUA + "Break to select a block, and then break to select the relative command block.");
  50.                         return true;
  51.                     } else {
  52.                         Mode.put(name, 0);
  53.                         player.sendMessage(ChatColor.AQUA + "Selecting cancelled.");
  54.                         return true;
  55.                     }
  56.                 } else {
  57.                     player.sendMessage(ChatColor.AQUA + "You don't have permission to do that!");
  58.                     return true;
  59.                 }
  60.             } else {
  61.                 sender.sendMessage(ChatColor.AQUA + "Only players can do that!");
  62.                 return true;
  63.             }
  64.         } else {
  65.             return false;
  66.         }
  67.     }
  68.    
  69.     public void onPlayerJoin (PlayerJoinEvent event) {
  70.         Mode.put(event.getPlayer().getName(), 0);
  71.     }
  72.    
  73.     public void onPlayerLeave (PlayerQuitEvent event) {
  74.         Mode.remove(event.getPlayer().getName());
  75.     }
  76.    
  77.     public void onBlockBreak(BlockBreakEvent event) {
  78.         event.getPlayer().sendMessage("Running");
  79.         String name = event.getPlayer().getName();
  80.         if (Mode.get(name) == 1) {
  81.             Location loc1 = event.getBlock().getLocation();
  82.             loc.put(name, loc1);
  83.             event.getPlayer().sendMessage(ChatColor.AQUA + "Block selected. Now select the relative command block by breaking it.");
  84.             Mode.put(name, 2);
  85.             event.setCancelled(true);
  86.         } else if (Mode.get(name) == 2) {
  87.             Location loc1 = loc.get(name);
  88.             Location loc2 = event.getBlock().getLocation();
  89.             diffx = loc1.getBlockX() - loc2.getBlockX();
  90.             diffy = loc1.getBlockY() - loc2.getBlockY();
  91.             diffz = loc1.getBlockZ() - loc2.getBlockZ();
  92.             event.getPlayer().sendMessage(ChatColor.AQUA + "Block selected. The relative coordanates are X:"+ ChatColor.RED + "~" + diffx + ChatColor.AQUA + "Y:" + ChatColor.RED + "~" + diffy + ChatColor.AQUA + "Z:" + ChatColor.RED + "~" + diffz);
  93.             Mode.put(name, 0);
  94.             event.setCancelled(true);
  95.         }
  96.        
  97.     }
  98. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement