Advertisement
MsGamerHD

Untitled

Aug 17th, 2016
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.17 KB | None | 0 0
  1. package de.msgamerhd.instabridge;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.HashMap;
  5. import java.util.UUID;
  6.  
  7. import org.bukkit.Bukkit;
  8. import org.bukkit.Location;
  9. import org.bukkit.Material;
  10. import org.bukkit.entity.Player;
  11. import org.bukkit.entity.Projectile;
  12. import org.bukkit.entity.Snowball;
  13. import org.bukkit.event.EventHandler;
  14. import org.bukkit.event.Listener;
  15. import org.bukkit.event.entity.ProjectileHitEvent;
  16. import org.bukkit.event.entity.ProjectileLaunchEvent;
  17. import org.bukkit.plugin.java.JavaPlugin;
  18. import org.bukkit.scheduler.BukkitRunnable;
  19.  
  20. /**
  21.  * Class created by MsGamerHD on 18.08.2016
  22.  */
  23. public class Main extends JavaPlugin implements Listener{
  24.  
  25.     private HashMap<UUID, ArrayList<Location>> way = new HashMap<>();
  26.    
  27.     @Override
  28.     public void onEnable() {
  29.         Bukkit.getPluginManager().registerEvents(this, this);
  30.     }
  31.    
  32.     @Override
  33.     public void onDisable() {
  34.        
  35.     }
  36.    
  37.     @EventHandler
  38.     public void on(ProjectileLaunchEvent e){
  39.         if(e.getEntity() instanceof Snowball && e.getEntity().getShooter() instanceof Player){
  40.             Player p = (Player) e.getEntity().getShooter();
  41.            
  42.             p.sendMessage("§6Der Weg wird erfasst...");
  43.             recordWay(e.getEntity());
  44.         }
  45.     }
  46.    
  47.     @EventHandler
  48.     public void on(ProjectileHitEvent e){
  49.         if(e.getEntity() instanceof Snowball && e.getEntity().getShooter() instanceof Player){
  50.             Player p = (Player) e.getEntity().getShooter();
  51.            
  52.             p.sendMessage("§aDie Brücke wird errichtet...");
  53.            
  54.             ArrayList<Location> locs = way.get(e.getEntity().getUniqueId());
  55.            
  56.             for(Location loc : locs){
  57.                 loc.getBlock().setType(Material.RED_SANDSTONE);
  58.             }
  59.            
  60.             way.remove(e.getEntity().getUniqueId());
  61.         }
  62.     }
  63.  
  64.     private void recordWay(Projectile en) {
  65.         way.put(en.getUniqueId(), new ArrayList<Location>());
  66.        
  67.         new BukkitRunnable() {
  68.            
  69.             @Override
  70.             public void run() {
  71.                 if(!(en.isDead() || en == null)){
  72.                     ArrayList<Location> locs = way.get(en.getUniqueId());
  73.                     Location loc = en.getLocation();
  74.                    
  75.                     if(loc.getBlock().getType() == Material.AIR){
  76.                         locs.add(loc);
  77.                         way.put(en.getUniqueId(), locs);
  78.                     }
  79.                 } else {
  80.                     cancel();
  81.                 }
  82.             }
  83.         }.runTaskTimer(this, 0, 1);
  84.     }
  85.    
  86. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement