服务器使用量
未统计
服务玩家数
未统计
下载量
23,776
插件详细介绍
FarmProtection for MC 1.16
这是一个简单的插件,用于防止玩家和生物通过行走或跳跃破坏农田。已在 1.16.4 和 1.16.5 版本测试,理论上也适用于更低的 1.16 版本。
工作原理
插件通过监听并取消两个关键事件来实现保护
实体交互事件 (EntityInteractEvent)
当任何实体(如生物、掉落物)与方块交互时触发。插件会检查被交互的方块是否为 FARMLAND(耕地),如果是,则取消该事件,阻止耕地被踩踏破坏。
玩家交互事件 (PlayerInteractEvent)
当玩家与方块交互时触发。插件会检查交互动作是否为 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);
}
}
}
}测试支持版本
版本分布
基本信息
插件名称
Farm Protection for MC 1.16 - 1.21
作者
TaskID
平台
Bukkit / Spigot
支持版本
1.16 - 1.16
点赞数
未统计
最近版本
暂无数据
-