这是一个简单的插件,用于防止玩家和生物通过行走或跳跃破坏农田。已在 1.16.4 和 1.16.5 版本测试,理论上也适用于更低的 1.16 版本。
当任何实体(如生物、掉落物)与方块交互时触发。插件会检查被交互的方块是否为 FARMLAND(耕地),如果是,则取消该事件,阻止耕地被踩踏破坏。
当玩家与方块交互时触发。插件会检查交互动作是否为 PHYSICAL(物理交互,例如跳跃、行走),以及被点击的方块是否为 FARMLAND。如果条件满足,则取消事件,防止玩家踩坏耕地。
如果你想了解其实现原理,以便在自己的插件中使用,以下是核心监听器的代码:
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.Action;
import org.bukkit.event.entity.EntityInteractEvent;
import org.bukkit.event.player.PlayerInteractEvent;
public class FarmProtectionListener implements Listener {
@EventHandler
public void onEntityInteract(EntityInteractEvent event) {
Block block = event.getBlock();
if (block != null && block.getType() == Material.FARMLAND) {
event.setCancelled(true);
}
}
@EventHandler
public void onPlayerInteract(PlayerInteractEvent event) {
if (event.getAction() == Action.PHYSICAL) {
if (event.getClickedBlock().getType() == Material.FARMLAND) {
event.setCancelled(true);
}
}
}
}友情链接: 网易我的世界 | 泰拉瑞亚 | ocent云计算 | 米饭Minecraft插件文档 | 友链合作
历史访问人数:2,660,637 | 历史访问人次:3,225,007
今日访问人数:5,689 | 今日访问人次:5,985
昨日访问人数:30,655 | 昨日访问人次:36,381
Copyright © 2019-2026 我的世界服务器列表站. All rights reserved.
❤ Powered by GermMC 京ICP备17023959号-6