Farm Protection for MC 1.16 - 1.21

Farm Protection for MC 1.16 - 1.21 - Farm Protection - 农场保护插件

防止玩家和生物破坏农田/耕地!
Bukkit / Spigot 作者 TaskID 支持版本 1.16 - 1.16
服务器使用量
未统计
服务玩家数
未统计
下载量
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);
            }
        }
    }
}
测试支持版本
1.16
版本分布
基本信息
插件名称 Farm Protection for MC 1.16 - 1.21
作者 TaskID
平台 Bukkit / Spigot
支持版本 1.16 - 1.16
点赞数 未统计
最近版本
暂无数据 -

友情链接: 网易我的世界 | 泰拉瑞亚 | 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