Advertisement
Guest User

SimpleTeleportListener.java

a guest
Oct 14th, 2013
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.58 KB | None | 0 0
  1. package com.gmail.bigbeno37.SimpleTeleport;
  2.  
  3. import org.bukkit.Location;
  4. import org.bukkit.Material;
  5. import org.bukkit.block.Block;
  6. import org.bukkit.entity.Player;
  7. import org.bukkit.event.EventHandler;
  8. import org.bukkit.event.Listener;
  9. import org.bukkit.event.block.Action;
  10. import org.bukkit.event.player.PlayerInteractEvent;
  11. import org.bukkit.event.player.PlayerMoveEvent;
  12. import org.bukkit.inventory.ItemStack;
  13.  
  14. public class SimpleTeleportListener implements Listener{
  15.    
  16.     //Variables to add to tpBlocks in SimpleTeleport
  17.     private static Location l = null;
  18.     private static Location l2 = null;
  19.     private static Block b = null;
  20.    
  21.     SimpleTeleport plugin;
  22.    
  23.     SimpleTeleportListener(SimpleTeleport p){
  24.         plugin = p;
  25.     }
  26.    
  27.     @EventHandler
  28.     public void onPlayerRightClick(PlayerInteractEvent e){
  29.         Player player = e.getPlayer();
  30.         ItemStack stack = new ItemStack(Material.NETHER_STAR);
  31.        
  32.         if(e.getAction() == Action.RIGHT_CLICK_BLOCK){ //If the player right clicks a block..
  33.             if(player.getItemInHand().isSimilar(stack)){ //with a nether star...
  34.                 if(SimpleTeleport.secondBlock == false){ //and secondBlock (see SimpleTeleport) is false...
  35.                     l = e.getClickedBlock().getLocation();
  36.                    
  37.                     player.sendMessage("Click the other block you want this to connect to!");
  38.                    
  39.                     SimpleTeleport.secondBlock = true;
  40.                     b = e.getClickedBlock();
  41.                 }else if(SimpleTeleport.secondBlock == true){ //else if secondBlock (see SimpleTeleport) is true...
  42.                     l2 = e.getClickedBlock().getLocation();
  43.                    
  44.                     player.sendMessage("The blocks have been set! To teleport, step on one of the blocks!");
  45.                    
  46.                     b.setType(Material.BEDROCK);
  47.                     e.getClickedBlock().setType(Material.BEDROCK);
  48.                    
  49.                     SimpleTeleport.tpBlocks.put(l, l2);
  50.                     SimpleTeleport.tpBlocks.put(l2, l);
  51.                    
  52.                     SimpleTeleport.secondBlock = false;
  53.                 }
  54.             }
  55.         }
  56.     }
  57.    
  58.     @EventHandler
  59.     public void onPlayerMoveTo(PlayerMoveEvent e){
  60.         System.out.println("onPlayerMoveTo executed!");
  61.        
  62.         //if tpBlocks contains the location the player is moving to in either a key or value...
  63.         if(SimpleTeleport.tpBlocks.containsKey(e.getTo()) || SimpleTeleport.tpBlocks.containsValue(e.getTo())){
  64.             e.getPlayer().sendMessage("getTo worked!");
  65.            
  66.             e.getPlayer().teleport(SimpleTeleport.tpBlocks.get(e.getTo().add(2, 0, 2))); //To avoid an endless loop
  67.         }else if(SimpleTeleport.tpBlocks.containsKey(e.getFrom()) || SimpleTeleport.tpBlocks.containsValue(e.getFrom())){
  68.             e.getPlayer().sendMessage("getFrom worked!");
  69.            
  70.             e.getPlayer().teleport(SimpleTeleport.tpBlocks.get(e.getFrom().add(2, 0, 2)));
  71.         }
  72.     }
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement