2017-07-19 59 views
-4

當他走過指定的區塊時,我正試圖給玩家一定的魔藥效果。不幸的是我無法弄清楚。Minecraft Bukkit插件 - PotionEffect通過走過一個塊?

我已經嘗試過:

-I在YouTube上搜尋教程,但沒有發現任何

+0

@ Apply55gx雖然我很感激你已經付出努力來清除問題,但你的時間將會更值得編輯,而這些問題不會被認爲是SO的主題。其中一個原因是其他原因。請不要把這當作批評,事實並非如此。這只是一些友好的建議。 – Bugs

回答

5

我不知道這是絕對的最佳途徑,但是這是我會怎樣做到這一點。我會創建一個playerMoveEvent(每當玩家移動時調用)。然後通過獲取播放器的位置來查看該播放器下面的塊,然後將該塊對象設置爲等於位置類中的getblock方法。之後,測試它是否是您想要的區塊,然後應用魔藥效果!如果您需要添加事件到您的插件幫助你可以閱讀更多關於它here

@EventHandler 
public void onPlayerMove(PlayerMoveEvenet event) { 
    Player p = event.getPlayer(); 
    //This might not be the way to get the players location. Bukkit vs Spigot thing 
    Location l = p.getLocation(); 
    l.add(0, -1, 0); 
    Block b = l.getBlock(); 
    if(b.getType() == Material.WHATEVERBLOCKITIS){ 
     p.addPotionEffect(WHATEVERPOTIONEFFECT); 
    } 
} 

例(以鹽的糧食,我沒有一個環境,現在來測試這個權利) 。

+0

這可能是唯一的方法。我不認爲Bukkit有一個關於球員在球場上行走的事件(例如紅石礦石在跳躍時做的事情),這個事件被廣泛用於* all *塊。 – Draco18s

+0

這是我認爲最好的方法。另一個解決方案是創建一個調度程序,但是性能要大得多 – Squiddie