Skip to content

危险物品限制功能文档

功能概述

危险物品限制是 EsbpmPlugin 提供的安全管理功能,用于阻止玩家使用可能破坏服务器环境、影响游戏平衡或造成性能问题的物品。此功能特别适用于公共服务器、PvP服务器或不希望玩家使用某些物品的特殊主题服务器。

被限制物品列表

插件默认限制以下危险物品:

物品名称物品ID限制原因
TNTTNT可能破坏地形,造成服务器损伤
TNT矿车TNT_MINECART可能破坏地形,造成服务器损伤
末影珍珠ENDER_PEARL可能被用于快速移动、逃脱或进入受限区域
末影水晶END_CRYSTAL可能造成大量爆炸伤害,破坏地形
打火石FLINT_AND_STEEL可能引发火灾,破坏建筑或自然环境
岩浆桶LAVA_BUCKET可能引发大面积火灾,破坏地形和建筑
水桶BUCKET防止放置水(间接防止水的滥用)

限制机制

物品使用限制

当玩家尝试使用被限制的物品时,插件会:

  1. 取消玩家的操作
  2. 向玩家发送提示消息,告知该物品已被服务器禁止使用
  3. 记录相关操作(可选,需要配置日志功能)

适用操作

物品限制功能适用于以下操作类型:

  • 放置方块(如TNT、TNT矿车)
  • 使用物品(如打火石点燃、末影珍珠传送、末影水晶放置)
  • 交互操作(如水桶和岩浆桶的使用)

技术实现细节

物品列表初始化

  • 插件在加载时通过 initializeBannedItems() 方法初始化被禁止物品的集合
  • 该集合存储的是 Minecraft 的 Material 枚举值
  • 当前版本中,被禁止物品列表是硬编码的,无法通过配置文件修改

事件处理

  • 物品交互事件 (PlayerInteractEvent):当玩家尝试使用物品时,系统会检查物品是否在禁止列表中,如果是,则取消操作并发送提示消息
  • 方块放置事件:当玩家尝试放置被禁止的方块时,操作会被取消

最佳实践

  1. 服务器安全

    • 对于公共服务器,建议保持所有危险物品的限制,以防止恶意破坏
    • 对于私人或信任玩家的服务器,可以根据需要修改源代码以调整限制列表
  2. 玩家体验

    • 建议在服务器规则或欢迎信息中明确告知玩家哪些物品被禁止使用
    • 可以在游戏内设置告示牌或使用其他插件显示被禁止物品列表
  3. 自定义需求

    • 如果需要添加或移除被禁止物品,当前版本需要修改源代码中的 initializeBannedItems() 方法并重新编译插件
    • 未来版本可能会支持通过配置文件自定义被禁止物品列表

常见问题

Q: 如何添加或移除被禁止的物品? A: 当前版本中,被禁止的物品列表是在插件代码中硬编码的。如需修改,需要编辑源代码中的 initializeBannedItems() 方法并重新编译插件。

Q: 为什么水桶也被禁止使用? A: 水桶被禁止是为了防止玩家放置水,这在某些服务器环境(如空岛生存、特定主题地图)中可能会破坏游戏平衡或地图设计。

Q: 被禁止物品的限制对OP玩家也有效吗? A: 是的,当前版本中,物品限制对所有玩家有效,包括OP玩家。如需为OP玩家提供绕过功能,需要修改插件源代码。