Skip to content

Releases: qs5668/DokodemoDoor

v1.0.10 — 稳定性修复:审计任务分时预算化

Choose a tag to compare

@qs5668 qs5668 released this 23 Aug 23:09

稳定性版本 —— 看门狗强制关服事故修复

背景

v1.0.9 在生产服务器(Leaves 1.21.8 / 物理 / GraalVM 25)上触发一次 Paper Watchdog 60 秒超时强制关服。完整日志定位:审计任务 AuditTask 在主线程一次性同步扫描全部门记录,无时间预算——宿主机任何一次抖动(GC 停顿 / 内存换页 / CPU 争抢)都会被这个循环放大成主线程长时间失速。

修复内容

# 改动 说明
1 审计任务分时预算化 快照队列 + 20ms 单轮预算 + 最多 256 扇分批 + 断点续扫;环境劣化时提前刹车下一轮再继续;单圈累计耗时超 500ms 输出告警
2 门索引 O(k) 重写 注销不再全索引扫描;双子门索引仅在布局实际变化时刷新,消除每轮 O(D²) 重注册
3 门判定零克隆 isDoor 改用 Tag.DOORS 材料标签,不再每次克隆 BlockData
4 消除主线程同步区块加载 玩家走门 / 实体传送遇冷目的区块时不再同步加载——玩家路径交由 Paper teleportAsync 解析,实体路径跳过本轮
5 跨线程可见性修复 DoorRecord 可变字段 volatile 化(主线程写 / DDoor-Writer 线程读)
6 内存治理 传送冷却表每小时清理;实体冷却表每分钟清理一次

兼容性

  • 无配置变更、无数据库变更,直接替换 jar 即可
  • 门数据与 v1.0.9 完全互通
文件 适用服务端
ddoor-1.0.10-paper.jar Paper / Leaves / Purpur 1.21 – 1.21.8+
ddoor-1.0.10-paper-1.20.jar Paper / Leaves / Purpur 1.20.1 – 1.20.6
ddoor-1.0.10-spigot.jar Spigot / CraftBukkit 1.21+

v1.0.9 — 门对限时体系

Choose a tag to compare

@qs5668 qs5668 released this 23 Aug 13:41

门对限时体系(V1.0.9)

有效期模型重构:钥匙永不过期,时限作用在门对上。

核心变更

  • 钥匙永不过期 —— 门之钥·实体不用就一直在仓库里;旧版"钥匙从合成起 48 小时过期"的设定废除(entity-key.expire-hours 配置项移除)
  • 七档时限钥匙 —— 合成档位固定 3h / 8h / 12h / 20h / 35h / 42h / 48h:3h 档为工作台基础配方(紫晶×4 + 末影珍珠×4 + 恶魂之泪×1 → 1 把),更高档位两把同档合成一把高一档(材料成本逐档翻倍),全部配方进服自动解锁,时限直接印在钥匙 Lore 上
  • 到期自动解绑 —— 配对那一刻门对开始计时,到期自动解绑(门方块保留,可重新配对);每秒巡检 + 传送时拦截双保险,在线所有者收到到期通知,交互记录写入 System UNLINK
  • 腐竹自由发放 —— /ddoor key entity <小时> [数量] [玩家] 可发放任意时长钥匙(0 = 永久门对,上限 100000 小时),Tab 补全提示全部档位,适合商店分档定价
  • GUI 时限可视化 —— 门对列表与详情页新增"门对时限"行,实时显示剩余时间(小时/分钟)或"永久"

兼容与迁移

  • 旧版(≤1.0.7)实体钥匙无档位标记,一律按 48h 档处理
  • 已存在的旧门对视为永久门对,不受影响
  • SQLite / MySQL 自动迁移新增 expires_at 列,无需手工改库

下载

文件 适用服务端
ddoor-1.0.9-paper.jar Paper / Leaves / Purpur 1.21 – 1.21.8+
ddoor-1.0.9-paper-1.20.jar Paper / Leaves / Purpur 1.20.1 – 1.20.6
ddoor-1.0.9-spigot.jar Spigot / CraftBukkit 1.21+

v1.0.7 — 门之钥·实体:玩家与生物通用传送门

Choose a tag to compare

@qs5668 qs5668 released this 23 Aug 13:02

门之钥·实体 — 玩家与生物通用传送门

新增

  • 门之钥·实体:第二种钥匙(紫晶×4 + 末影珍珠×4 + 恶魂之泪×1 → 1 把,独立配方,进服自动解锁)。用它配对的门玩家与生物通用——牛、马、村民等生物走进门框同样传送到对侧。两种钥匙不可混用:普通钥配普通门,实体钥配实体门;GUI 列表与详情页均标注「实体穿越」状态(深色橡木门图标区分)。
  • 实体钥匙有效期:默认 48 小时(entity-key.expire-hours,0 = 永久),从合成/发放时起算,Lore 直接过期时刻;过期后无法用于配对,配好的门对不受影响。entity-key.craftable: false 可关闭合成,仅经 /ddoor key entity 发放(适合商店售卖)。
  • 实体传送引擎:周期扫描已加载区块中的实体门,生物进框即传;落点复用玩家侧安全校验(含左右探测),不安全则静默跳过。排除玩家/盔甲架/载具与被骑乘生物;单生物冷却默认 5 秒;entity.named-only: true 可限制只传送有名字的生物;传送计入门对统计与交互记录。
  • /ddoor key [normal|entity] [数量] [玩家] 支持钥匙类型参数与 Tab 补全,旧语法完全兼容。

修复

  • ddoor.create 权限此前未生效——服主回收该权限后玩家仍可配对,现已统一校验。
  • deny-vehicles 配置此前未生效——骑乘状态(马/船/矿车)的玩家照样被传送,现在走近与点击模式均先拦截并提示离开载具。

数据库

  • ddoor_doors 新增 entity_support 列(SQLite / MySQL 自动迁移,无需手工改库)

下载

平台 文件 适用
Paper / Leaves / Purpur ddoor-1.0.7-paper.jar MC 1.21.x
Paper / Leaves / Purpur ddoor-1.0.7-paper-1.20.jar MC 1.20.1 – 1.20.6
Spigot / CraftBukkit ddoor-1.0.7-spigot.jar MC 1.21+

升级直接替换 jar 重启即可;文档站 https://dokodemodoor.plugin.midream.top

DokodemoDoor v1.0.5 — 传送方式自选 / 门对详情与设置 / 交互记录

Choose a tag to compare

@qs5668 qs5668 released this 23 Aug 05:09

DokodemoDoor v1.0.5

配对式跨世界传送门插件,面向 Paper / Leaves / Purpur / Spigot MC 1.20.1 – 1.21.x(Java 21)。

下载选择

文件 适用服务端
ddoor-1.0.5-paper-1.20.jar Paper / Leaves / Purpur 1.20.1 – 1.20.6
ddoor-1.0.5-paper.jar Paper / Leaves / Purpur 1.21 – 1.21.8+
ddoor-1.0.5-spigot.jar Spigot / CraftBukkit 1.21+(内置重定位 Adventure)

本次更新

传送触发方式三选一

在 /ddoor gui → 个人设置 中切换:

  • 走近传送(默认):走进门框即传送
  • 右键传送:对门右键点击传送
  • 左键传送:对门左键点击传送(潜行 = 原版操作,不影响开门/破坏)

手持门之钥时永远优先配对流程。

GUI 全面升级

  • 门对详情页(列表右键门对):两端完整信息(世界/坐标/朝向/群系/穿越次数)、创建时间
  • 门对管理:启用/停用开关(停用暂停传送不删门)、聊天栏重命名、解除配对、传送到 A/B 端
  • 交互记录:谁在何时传送/配对/解绑/破坏,分页可查,仅门主与管理员可见
  • 个人设置:传送方式切换、详细/简化信息显示切换

详细报错

传送失败默认报出具体原因——哪个坐标的什么方块挡住了落点、对侧门在哪个世界哪个坐标被破坏。可在设置中开启简化信息显示降噪。

其他

  • 门之钥配方自动解锁至配方书(进服即见)
  • /ddoor stats 个人统计对全部玩家开放
  • 数据库自动迁移(enabled 列 + 两张新表),从 v1.0.2 升级替换 jar 重启即可

从旧版升级

替换 plugins/ 中的 jar 并重启即可。数据(SQLite/MySQL)自动迁移,配置与语言文件向后兼容。

DokodemoDoor v1.0.2 — GPL-3.0 / 双平台构建 / GUI 菜单

Choose a tag to compare

@qs5668 qs5668 released this 23 Aug 03:28

DokodemoDoor v1.0.2

配对式跨世界传送门插件,面向 Paper / Leaves / Purpur / Spigot MC 1.20.1 – 1.21.x(Java 21)。

下载选择

文件 适用服务端
ddoor-1.0.2-paper-1.20.jar Paper / Leaves / Purpur 1.20.1 – 1.20.6
ddoor-1.0.2-paper.jar Paper / Leaves / Purpur 1.21 – 1.21.8+
ddoor-1.0.2-spigot.jar Spigot / CraftBukkit 1.21+(内置重定位 Adventure)

新增

MC 1.20.1 – 1.20.6 支持

新增 paper-120 构建 profile,以 paper-api 1.20.1 为最低基线编译。版本支持范围从此覆盖 MC 1.20.1 – 1.21.x 全系。

GUI 门对管理菜单

/ddoor gui 打开 54 格箱子界面:

  • 分页展示自己的门对列表(每页 45 个)
  • 左键点击门对 → 直接传送到该门
  • Shift+右键 → 解除配对
  • 个人统计(门对数 / 上限 / 累计穿越)
  • 门之钥合成配方提示

Spigot / CraftBukkit 支持

新增 TextAdapter 平台抽象层,一套业务代码编译为三个发行包(见上表)。

GPL-3.0 开源

添加 LICENSE 全文与全部源码文件头。

修复

  • 旧版语言文件升级兼容:从 v1.0.0 升级时已存在的 lang/*.yml 缺失新增文案键会显示原始键名,现以包内语言文件作为 defaults 合并解析(本地自定义仍优先)
  • 药水效果枚举跨版本兼容:抗性效果在 1.20.5 由 DAMAGE_RESISTANCE 改名为 RESISTANCE,改为运行时按名称解析
  • 落点安全校验改用 Material#isSolid(),兼容 Spigot API

从 v1.0.0 升级

替换 plugins/ 中的 jar 并重启即可,数据(SQLite/MySQL)与配置完全兼容。