• 欢迎加入MineBBS QQ讨论群:点击查看所有的官方讨论群
  • 我们将于近期对服务器进行迁移,服务可能中断至多2日。请各位安排好自己的访问计划,造成不便敬请谅解!
  • MineBBS入站考试已经上线!想要成为【正式会员】解锁更多功能吗?快来参与吧!【点我去看】
[1.7-1.21+] WarZKeyAccess —— 一款高仿搜打撤游戏的高级钥匙 & 门禁系统插件|实体/虚拟钥匙包|GUI 管理|Folia

原创 付费 [1.7-1.21+] WarZKeyAccess —— 一款高仿搜打撤游戏的高级钥匙 & 门禁系统插件|实体/虚拟钥匙包|GUI 管理|Folia 1.1.4

请登录后获取
[MD] ### v1.1.4 (Virtual Keyring Slot Preservation Fix) - **修复**: 修复虚拟钥匙包在权限降级或高位槽位失效后,原本放在锁定槽位里的物品会被当成“脏数据”直接清空的问题。 - **原因**: 旧逻辑在保存/重载虚拟钥匙包时,会把超出当前可用范围的内容直接置空,导致玩家误以为卡被“吞掉”。 - **解决**: - 现在只会清理锁定槽位里的屏障占位物,不再删除真实物品数据。 - 锁定槽位中的内容会继续保留在存档里,等槽位重新解锁后自动显示回来。 - 钥匙包信息栏会显示当前保留的隐藏物品数量,并明确提示锁定槽位不会吞卡。 - **兼容性**: 本次为向后兼容热修,不修改命令、权限、配置结构或 [/MD]
  • 启动时自动关闭异常开启的受管门,未加载区块会在首次加载时处理。
  • 停服时关闭已加载区块中的受管门作为兜底。
  • 修复 WORLD_EMPTY 临时解锁到期后丢失关门记录。
  • 修复 BOTH 条件未同时满足时不再继续检查。
  • /key reload 不会误关正常使用中的门。
  • 增加旧版本门类型保护,避免修改门原位置上的其他方块。
修复:
- 修复 Paper 1.21.8 上右键交互钥匙包时报错的问题。
- 解决 item-nbt-api 旧版本在 1.21.8 上 NMS 映射初始化失败导致的 ReflectionMethod / ExceptionInInitializerError 报错。
  • 修复虚拟钥匙包解锁后屏障方块不会自动消失的问题。
  • 虚拟钥匙包不再保存锁定槽位的屏障占位物。
  • 打开虚拟钥匙包时会自动清理旧的屏障残留数据。
  • 修复虚拟钥匙包翻页时可能导致槽位数据错位的问题。
  • 版本更新为 v1.1.1。
[MD] ### v1.0.17 (World Empty Relock Fix) - **修复**: 在 `WORLD_EMPTY` / `BOTH` 模式下,世界无人触发自动关门后,门现在会**同步结束临时解锁状态**。 - 修复此前“门虽然自动关上了,但临时解锁倒计时仍继续、期间仍可无钥匙再次开门”的问题。 - **优化**: 统一版本号显示,修正默认 `config.yml` 头部注释中的旧版本号。 [/MD]
[MD] ### v1.0.16 (Temp Unlock Countdown Fix) - **修复**: 门在临时解锁期间再次被打开时,不再重复刷新解锁倒计时。 - 现在只有首次成功开锁时才会重新计时,避免“每次开门都重置剩余时间”的问题。 [/MD]
  • 修复插件启动时部分门绑定未读取、必须手动 /key reload 才恢复的问题。
  • 启动时未加载世界中的门数据现在会先暂存,等世界加载后自动补读。
  • 插件启用完成后会追加一次延迟重试,进一步兼容多世界/延迟加载场景。
  • 保存 doors.yml 时会保留待补读门数据,避免被覆盖丢失。
  • 统一并修正版本号显示,避免 pom、plugin.yml、启动日志不一致。
[MD] ### v1.0.14 (Lock Mode Update) - **新增**: 锁定模式配置选项 (`lock-mode`)。 - `TIMED`: 开锁后一定时间后自动锁定(使用 `auto-close-delay` 的值,默认行为) - `WORLD_EMPTY`: 等待该世界没有玩家后自动锁定 - `BOTH`: 同时满足以上两个条件才锁定(时间到了 且 世界无玩家) - **优化**: 针对不同锁定模式显示不同的提示消息。 [/MD]
[MD] ### 更新内容总结 (v1.0.13) 1. Mod 门兼容模式 ( mod-door-support ) - 新增被动鉴权机制,允许插件放行交互事件给 Mod 处理,解决了 Mod 门无法开启的问题。 - 新增 force-allow-interact 选项,可强制覆盖 WorldGuard 等插件的保护。 2. 超时强制传送与防困机制 (Anti-Stuck) - 持久化安全位置 :每次开门时记录并保存玩家的安全坐标到 doors.yml 。 - 超时自动踢出 :当临时解锁时间结束后,若玩家仍在门附近( kick-radius ),将自动传送到安全位置。 - 离线/重启保护 :玩家在门内下线或服务器重启后,上线时若处于锁定门范围内,也会被立即传送到安全位置,防止被困。 [/MD]
### v1.0.11 (Stability Update)
- **修复**: 在 1.7.10/1.12.2 等不支持 CustomModelData 的版本上,创建带有显示名称或 Lore 的钥匙时导致插件报错的问题。
- **原因**: 插件在保存钥匙信息时,未检查服务器版本就尝试读取 CustomModelData,导致 `NoSuchMethodError`。
- **解决**: 增加了版本检查和异常捕获,确保只在支持的版本(1.14+)读取 CustomModelData。
### v1.0.10 (Mod Item Support)
- **修复**: Mod 物品创建钥匙后无法在 GUI 显示且无法使用 `give` 指令的问题。
- **原因**: Mod 物品的 Material 名称可能无法被 XMaterial 识别,导致物品解析失败。
- **解决**: 新增 Material 直接匹配回退机制,如果 XMaterial 识别失败,将尝试直接使用 Bukkit Material。
- **优化**: 完善了对物品子ID (Data/Durability) 的支持。
- 现在 `create` 指令会正确保存物品的子ID(如羊毛颜色、Mod物品变种)。
- 生成钥匙时会正确应用子ID,确保 Mod 物品显示正确的变种。
### v1.0.9 (Legacy Compatibility++)
- **修复**: 针对 1.7.10 等低版本或部分 Mod 服可能出现的 NBT 数据丢失问题,新增 **视觉识别回退机制**。
- 当物品 NBT 丢失导致无法识别钥匙时,插件将自动尝试通过物品的 **材质** 和 **显示名称** 来匹配钥匙配置。
- 这解决了“工厂钥匙”等自定义物品无法绑定门的问题。
- **优化**: 改进 `getKeyUses` 逻辑,在 NBT 丢失时也能通过 Lore 恢复耐久度。
### v1.0.8 (Multi-Version Compatibility)
- **优化**: 全面重构手持物品交互逻辑,确保完美兼容 1.7.10 至 1.21+。
- **1.7.10**: 使用 `setItemInHand` 和无 `getHand()` 的逻辑,避免 `NoSuchMethodError`。
- **1.9+**: 使用反射调用 `getHand()`、`setItemInMainHand()` 和 `getItemInMainHand()`,并严格过滤副手交互,防止双重触发。
- **修复**: 修复 `KeyCaseListener` 中潜在的副手触发问题。
### v1.0.7 (Logic Fixes for 1.7.10)
- **修复**: 修复一次性门禁卡使用后不消耗的问题(针对 1.7.10 物品更新机制)。
- **修复**: 修复耐久钥匙更新时使用 `setItemInMainHand` 导致 1.7.10 崩溃的问题,替换为 `setItemInHand`。
- **优化**: 绑定门时增加权限提示。如果持有有效钥匙且潜行右键但无 `warz.key.admin` 权限,现在会提示 "You do not have permission to bind doors.",方便排查“绑定无效”问题。
### v1.0.6 (ActionBar Fix for 1.7.10)
- **修复**: 解决 1.7.10 上发送 ActionBar 消息导致的 `NoSuchMethodError`。
- 自动回退机制:如果服务器不支持 ActionBar,将以普通聊天消息形式发送提示,确保玩家能看到信息且不报错。
### v1.0.5 (Hotfix for 1.7.10 Key Case)
- **修复**: 彻底修复 `KeyCaseListener` 中 `isAir()` 方法导致的 `NoSuchMethodError`,确保 1.7.10 兼容性。
### v1.0.4 (1.7.10 Runtime Fixes)
- **修复**: 解决 1.7.10 上 `NoSuchMethodError: ItemMeta.setCustomModelData` 报错。
- 使用反射和版本检测,仅在支持的服务器版本 (1.14+) 上调用 CustomModelData 相关 API。
- **修复**: 解决 1.7.10 上 `KeyCaseManager` 材质解析失败导致的 `NullPointerException`。
- 为 `XMaterial.BARRIER` 和其他高版本材质增加了 1.7.10 兼容的回退 (使用 BEDROCK 或 CHEST)。
### v1.0.3 (Key Case Fix for 1.7.10)
- **修复**: 解决 1.7.10 核心上 `java.lang.NoSuchMethodError: org.bukkit.Material.isAir()` 报错。
- **修复**: 解决 1.7.10 核心上 `java.lang.NoSuchMethodError: PlayerInventory.getItemInMainHand()` 报错。
- **改进**: 对 1.7.10 版本的 GUI 材质 (BARRIER/STAINED_GLASS_PANE) 提供更完善的兼容性回退。
### v1.0.2 (Guava Compatibility Fix)
- **修复**: 解决 1.7.10 (Uranium/KCauldron) 核心上 `java.lang.NoSuchMethodError: guava10.com.google.common.cache.CacheBuilder` 报错。
- 内置并重定向 Guava 21.0 库 (`online.warz.warzkeyaccess.libs.guava`),确保 XSeries 等工具类使用正确的 API 版本,不再依赖服务器陈旧的 Guava 10。
### v1.0.1 (Hotfix for 1.7.10)
- **紧急修复**: 修复插件启动时因引用 `BlockData` (1.13+ API) 导致的 `NoClassDefFoundError` 报错。
- 将门控逻辑分离为 `LegacyDoorController` (1.7-1.12) 和 `ModernDoorController` (1.13+)。
- 确保 1.7.10 服务器不会加载或校验包含高版本 API 的类。
- **调试模式**: 增加了详细的调试日志,以便在 Uranium 等核心上排查问题。
- **兼容性**: 移除 `plugin.yml` 中的 `api-version`,增强对旧版本核心的兼容性。
后退
顶部 底部