Repository navigation
Releases: qs5668/DokodemoDoor
Release list
v1.0.10 — 稳定性修复:审计任务分时预算化
稳定性版本 —— 看门狗强制关服事故修复
背景
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 — 门对限时体系
门对限时体系(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 — 门之钥·实体:玩家与生物通用传送门
门之钥·实体 — 玩家与生物通用传送门
新增
- 门之钥·实体:第二种钥匙(紫晶×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 — 传送方式自选 / 门对详情与设置 / 交互记录
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 菜单
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)与配置完全兼容。