make bukkit plugin

Discussion in 'Plugin Development' started by Rokky__, Jun 19, 2019.

Thread Status:
Not open for further replies.
  1. Offline

    Rokky__

    I want to make a laser gun.
    I tried to make it for trial but it didn't work well.
    Please tell me what to do.


    Code:
    package r.test;
    
    import org.bukkit.*;
    import org.bukkit.entity.Entity;
    import org.bukkit.entity.LivingEntity;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.block.Action;
    import org.bukkit.event.player.PlayerInteractEvent;
    import org.bukkit.plugin.java.JavaPlugin;
    import org.bukkit.scheduler.BukkitRunnable;
    import org.bukkit.util.Vector;
    
    public final class Test extends JavaPlugin implements Listener {
    
    
    
    
        @EventHandler
        public void effect2(PlayerInteractEvent event){
            if(event.getAction()== Action.RIGHT_CLICK_AIR){
                if(event.getItem().getItemMeta().getDisplayName().equalsIgnoreCase("boom 1")){
                    final Player player = event.getPlayer();
                    Location lo = player.getLocation();
                    final Location loc = lo.add(0,1.5,0);
                    new BukkitRunnable(){
                        double t = 0;
                        Vector di =loc.getDirection().normalize();
                        public void run(){
                            t = t + 0.5;
                            double x = di.getX() * t;
                            double y = di.getY() * t;
                            double z = di.getZ() * t;
                            loc.add(x,y,z);
                            event.getPlayer().getWorld().spawnParticle(Particle.FIREWORKS_SPARK,loc,1,0,0,0,0);
                            loc.subtract(x,y,z);
    
    
                            for(Entity e : loc.getWorld().getEntities())
                                if (e instanceof LivingEntity) {
                                    if(loc.getBlock()==e.getLocation().getBlock()){}
                                    player.sendMessage("a");
                                    double damage = 4.0;
                                    ((LivingEntity) e).damage(damage);
                                }
    
                            }
    
                            if(t>30){
                                this.cancel();
                            }
                        }
                    }.runTaskTimerAsynchronously(this,0,0);
                }
            }
        }
    }
     
  2. Online

    timtower Administrator Administrator Moderator

    @Rokky__ runTaskTimer, not runTaskTimerAsynchronously.
    And set both values to 1
     
Thread Status:
Not open for further replies.

Share This Page