Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package de.msgamerhd.instabridge;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.UUID;
- import org.bukkit.Bukkit;
- import org.bukkit.Location;
- import org.bukkit.Material;
- import org.bukkit.entity.Player;
- import org.bukkit.entity.Projectile;
- import org.bukkit.entity.Snowball;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.Listener;
- import org.bukkit.event.entity.ProjectileHitEvent;
- import org.bukkit.event.entity.ProjectileLaunchEvent;
- import org.bukkit.plugin.java.JavaPlugin;
- import org.bukkit.scheduler.BukkitRunnable;
- /**
- * Class created by MsGamerHD on 18.08.2016
- */
- public class Main extends JavaPlugin implements Listener{
- private HashMap<UUID, ArrayList<Location>> way = new HashMap<>();
- @Override
- public void onEnable() {
- Bukkit.getPluginManager().registerEvents(this, this);
- }
- @Override
- public void onDisable() {
- }
- @EventHandler
- public void on(ProjectileLaunchEvent e){
- if(e.getEntity() instanceof Snowball && e.getEntity().getShooter() instanceof Player){
- Player p = (Player) e.getEntity().getShooter();
- p.sendMessage("§6Der Weg wird erfasst...");
- recordWay(e.getEntity());
- }
- }
- @EventHandler
- public void on(ProjectileHitEvent e){
- if(e.getEntity() instanceof Snowball && e.getEntity().getShooter() instanceof Player){
- Player p = (Player) e.getEntity().getShooter();
- p.sendMessage("§aDie Brücke wird errichtet...");
- ArrayList<Location> locs = way.get(e.getEntity().getUniqueId());
- for(Location loc : locs){
- loc.getBlock().setType(Material.RED_SANDSTONE);
- }
- way.remove(e.getEntity().getUniqueId());
- }
- }
- private void recordWay(Projectile en) {
- way.put(en.getUniqueId(), new ArrayList<Location>());
- new BukkitRunnable() {
- @Override
- public void run() {
- if(!(en.isDead() || en == null)){
- ArrayList<Location> locs = way.get(en.getUniqueId());
- Location loc = en.getLocation();
- if(loc.getBlock().getType() == Material.AIR){
- locs.add(loc);
- way.put(en.getUniqueId(), locs);
- }
- } else {
- cancel();
- }
- }
- }.runTaskTimer(this, 0, 1);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement