Minecraft Bukkit插件-走过街区时的PotioneEffect?

Minecraft Bukkit插件-走过街区时的PotioneEffect?,minecraft,bukkit,Minecraft,Bukkit,当玩家走过一个特定的街区时,我试图给他某种药剂效果。不幸的是,我想不出来 我已经尝试过的: -我在youtube上搜索教程,但没有找到任何我不确定这是否绝对是最好的方法,但我会这样做。我会创建一个playerMoveEvent(每当玩家移动时调用)。然后通过获取播放器的位置,然后在location类中设置与getblock方法相等的block对象,检查该播放器下的块是什么。之后,这是一个测试的问题,看看它是否是块你想要的,然后应用药剂效果 例如(以盐粒为例,我现在没有测试这个的环境): 如果您需

当玩家走过一个特定的街区时,我试图给他某种药剂效果。不幸的是,我想不出来

我已经尝试过的:


-我在youtube上搜索教程,但没有找到任何

我不确定这是否绝对是最好的方法,但我会这样做。我会创建一个playerMoveEvent(每当玩家移动时调用)。然后通过获取播放器的位置,然后在location类中设置与getblock方法相等的block对象,检查该播放器下的块是什么。之后,这是一个测试的问题,看看它是否是块你想要的,然后应用药剂效果

例如(以盐粒为例,我现在没有测试这个的环境):


如果您需要在插件中添加事件的帮助,您可以阅读更多信息。

这可能是唯一的方法。我不认为Bukkit有一个适用于玩家在方块上行走的事件(例如,当你跳上它时,Redstone Ore会做的那种事情),它适用于所有方块。@Apply55gx虽然我很感激你花了很多精力来澄清这个问题,但你的时间将值得编辑更多没有被认为是离题的问题。其中一个原因过于宽泛。请不要把这当作批评,这不是。这只是一些友好的建议。
@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);
    }
}