我正在使用Java 7的Bukkit 1.8.3 API。Bukkit drop分解塊
我有代碼在分解時會爆炸塊。它發起了一場爆炸,打破了剛爆發的街區周圍的街區。我的問題是,爆炸塊沒有下降,只是玩家已經破壞的那個。我有試圖加入本次活動以固定(也,我的事件註冊):
@EventHandler
public void onEntityDamage(EntityDamageByBlockEvent e)
{
if(e.getCause().equals(DamageCause.BLOCK_EXPLOSION))
{
if (explosive)
{
e.setCancelled(true);
}
}
}
這被損壞停止播放器,而不是從塊被丟棄。我認爲,由於下降的塊是一個實體,這將工作。但事實並非如此。那麼如何讓爆炸塊掉落?
這是我使用爆炸的塊在第一位置的代碼:
loc.getWorld().createExplosion(loc, lvl1);
loc
是塊位置。 lvl1
是爆炸半徑的浮點數。
我知道爆炸是否是由我的插件引起的,因爲爆炸時爆炸布爾值設置爲true。根據我的理解,沒有BlockExplodeEvent。沒有進口,因此給我一個錯誤。 – JarFile
@JF文件BlockExplodeEvent是bukkit 1.8.3的新增功能 - 如果您在插件中使用1.7.10(用於編譯),它不會在那裏。我會確保你在你的POM中使用1.8.3。 (完整的包是'org.bukkit.event.block.BlockExplodeEvent')。 – Pokechu22
更新了它,現在該事件起作用,但setYield不在那裏,我的主類有一個關於引用的錯誤。我不知道我是否使用了正確版本的api。我以爲我是。 – JarFile