2016-04-29 39 views
0

產卵所以我得到了別人的驗證碼,他說這會工作,我很感激(現在也是),但它似乎以某種方式閃電箭,但閃電不會在

代碼不工作這是我的主文件

package me.Pixel; 

import java.util.ArrayList; 
import java.util.List; 

import org.bukkit.entity.Arrow; 
import org.bukkit.event.EventHandler; 
import org.bukkit.event.Listener; 
import org.bukkit.event.entity.EntityShootBowEvent; 
import org.bukkit.plugin.java.JavaPlugin; 

public class Main extends JavaPlugin implements Listener { 

    public Main plugin; 
    public List<String> spells = new ArrayList<String>(); 
    public getTargets getTargets = new getTargets(); 

    @Override 
    public void onEnable() { 
     plugin = this; 
     getCommand("bow").setExecutor(new BowCommand()); 
    } 

    @EventHandler 
    public void onEntityShootBow(EntityShootBowEvent event) { 
     if(event.getProjectile() instanceof Arrow) { 
      Arrow arrow = (Arrow) event.getProjectile(); 
      new LightningShot(arrow).runTaskTimer(this, 0, 1); 
     } 
    } 
} 

這是我LightningShot文件

package me.Pixel; 

import org.bukkit.entity.Arrow; 
import org.bukkit.scheduler.BukkitRunnable; 

public class LightningShot extends BukkitRunnable { 

    private Arrow arrow; 
    private int tick = 1; 

    public LightningShot(Arrow arrow) { 
     this.arrow = arrow; 
    } 

    @Override 
    public void run() { 
     if (arrow == null || arrow.isOnGround() || tick++ > 20 * 10) { 
      this.cancel(); 
     } else { 
      arrow.getWorld().strikeLightning(arrow.getLocation()); 
     } 
    } 
} 

要清楚This is what i want it to look like但隨後代替雪球的散發出來弓的箭。 我希望你們能幫助我。這一定非常棒。

回答

0

看來你還沒有註冊你的聽衆。儘管聽衆是你的主類,你仍然需要在你的onEnable法進行註冊:

this.getServer().getPluginManager().registerEvents(this, this); 

然後代碼將在箭頭位置產卵閃電如預期(我測試的代碼)。

+0

Ty ty,我可以問你,從 – Pixel

+0

學到什麼指南或其他來源是非常棒的。如果你是google「bukkit listener」,最好的結果是[Event API Reference](http://wiki.bukkit。 org/Event_API_Reference)(在尋找解決方案時首先查閱API文檔總是很好的)。你也可以試着用google搜索這個問題,有時甚至會找到有用的教程,或者看看[Bukkit插件開發論壇](https://bukkit.org/forums/plugin-development.5/)。 –

+0

真棒,感謝兄弟 – Pixel