Links
Tags
Creators
Details
3.0.0
Compatibility
Changes
HimDungeons v3.0
编辑器系统全面重写 · GUI 全流程覆盖 · 交互白名单落地 · 死代码清零
Complete editor rewrite · Full GUI workflow coverage · Interaction whitelist · Dead code removed
概述 · Overview
v3.0 是一次以"可用性"为核心的版本。上一版把数据存储和生命周期修好了,但管理界面还停留在 v0.4 时代——平铺一页、title 字符串匹配、配置编辑器和房间编辑器各自为战。v3.0 把整套编辑器重写成统一的页面树,每个功能都有明确归属的页面、明确的返回路径、明确的权限节点。
v3.0 is a usability-focused release. The previous version fixed data storage and lifecycle, but the admin UI was still stuck in the v0.4 era — one flat page, title-string matching, and a config editor disconnected from the room editor. v3.0 rewrites the entire editor into a unified page tree, where every function has a clearly assigned page, a well-defined back path, and its own permission node.
同时,这一版把 v0.5 遗留下来的死代码全部清掉,删除了 4 个整文件、约 1700 行冗余,并修复了多个长期潜伏的 bug。
At the same time, this release removes all dead code left over from v0.5 — four entire files and roughly 1700 lines — and fixes several long-standing latent bugs.
⚠️ 破坏性变更 · Breaking Changes
以下内容在 v3.0 中必须在升级时注意:
The following must be reviewed when upgrading to v3.0:
旧的 /dg edit 行为完全改变。 v0.5 时 /dg edit 打开的是 DungeonManagerGUI 的单页管理界面;v3.0 中 /dg edit 打开的是主页面,/dg edit <地牢名> 打开的才是具体地牢的编辑选择页。旧命令 /dg edit 带参数的行为也需要按新命令表调整。
The old /dg edit behavior is completely replaced. In v0.5, /dg edit opened the single-page DungeonManagerGUI. In v3.0, /dg edit opens the main editor page, while /dg edit <dungeon> opens the dungeon-specific editor. Any existing scripts invoking /dg edit with arguments must be updated to the new command table.
以下四个类被删除:DungeonManagerGUI、ConfigEditorUtil、PlayerDataManager、RoomSelectorUtil。任何通过反射或外部插件调用它们的代码都会失效。同时 plugin.getManagerGUI() 之类的旧访问器已移除。
Four classes have been deleted: DungeonManagerGUI, ConfigEditorUtil, PlayerDataManager, RoomSelectorUtil. Any external code that references them via reflection or plugin API will break. Old accessors such as plugin.getManagerGUI() are also removed.
权限节点被重新分层。 旧的 himdungeons.admin 仍然有效(作为父节点),但具体操作现在需要 himdungeons.admin.gui、himdungeons.admin.edit 或 himdungeons.admin.world。只授予 himdungeons.admin 会通过 children 自动获得这三个子节点,但如果你的权限组之前只授予了其中一个字符串,需要确认。
Permission nodes are now layered. The old himdungeons.admin remains valid as a parent node, but specific actions now require himdungeons.admin.gui, himdungeons.admin.edit, or himdungeons.admin.world. Granting himdungeons.admin automatically grants all three children, but if your permission group previously granted only that one string, verify the setup.
新增命令 · New Commands
| 命令 / Command | 打开页面 / Opens | 权限 / Permission |
|---|---|---|
/dg edit |
主页面 / Main editor | himdungeons.admin.gui |
/dg edit .RootConfig |
根配置编辑 / Root config | himdungeons.admin.edit |
/dg edit .RoomList |
实例选择 / Dungeon list | himdungeons.admin.gui |
/dg edit <地牢名> |
实例修改选择 / Dungeon editor | himdungeons.admin.gui |
/dg edit <地牢名> config |
配置分类选择 / Config category | himdungeons.admin.edit |
/dg edit <地牢名> config root |
实例根配置 / Instance root | himdungeons.admin.edit |
/dg edit <地牢名> config gen |
生成算法 / Generation | himdungeons.admin.edit |
/dg edit <地牢名> config world |
世界规则和状态 / World rules | himdungeons.admin.edit |
/dg edit <地牢名> config player |
玩家配置 / Player config | himdungeons.admin.edit |
/dg edit <地牢名> config boss |
Boss 配置 / Boss config | himdungeons.admin.edit |
/dg edit <地牢名> config economy |
入场费结算和奖励 / Economy | himdungeons.admin.edit |
/dg edit <地牢名> config soft |
软依赖配置 / Soft dependencies | himdungeons.admin.edit |
/dg edit <地牢名> roomConfig |
房间配置列表 / Room list | himdungeons.admin.edit |
/dg edit <地牢名> codeFiles |
脚本文件只读列表 / Code files | himdungeons.admin.gui |
所有子命令都支持 Tab 补全:/dg edit 后自动列出 .RootConfig、.RoomList 和所有地牢名;/dg edit <地牢> 后列出 config、roomConfig、codeFiles;/dg edit <地牢> config 后列出 7 个分类。
All subcommands support tab completion: /dg edit lists .RootConfig, .RoomList, and every dungeon; /dg edit <dungeon> lists config, roomConfig, codeFiles; /dg edit <dungeon> config lists the seven categories.
新增权限节点 · New Permission Nodes
| 节点 / Node | 默认 / Default | 说明 / Description |
|---|---|---|
himdungeons.admin.gui |
op |
打开任何 GUI(只读)/ Open any GUI (read-only) |
himdungeons.admin.edit |
op |
修改配置、增删房间 / 门 / 箱子 / 出生点 / 存档点 / Edit config, add/remove rooms, doors, chests, spawns, checkpoints |
himdungeons.admin.world |
op |
生成测试、删除测试世界 / Generate and delete test worlds |
himdungeons.admin 作为父节点,children 自动指向以上三项。若你之前只给管理员授予 himdungeons.admin,行为与旧版一致,无需改动。
himdungeons.admin serves as the parent node, with children automatically pointing to the three above. If you previously granted only himdungeons.admin to admins, behavior matches the old version — no changes needed.
GUI 系统完整重写 · Complete GUI System Rewrite
新的页面层级 · New Page Hierarchy
v3.0 的编辑器是一个严格的树形结构,每一层只有一个职责:
The v3.0 editor is a strict tree; each level has exactly one responsibility:
主页面 / Main
├── 根配置 / Root config
├── 实例选择 / Dungeon list
│ └── 实例修改选择 / Dungeon editor
│ ├── 配置分类 / Config categories (7 sections)
│ ├── 房间列表 / Room list
│ │ └── 单房间 / Single room
│ │ ├── 门列表 → 单门 / Door list → single door
│ │ ├── 箱子列表 → 单箱子 / Chest list → single chest
│ │ ├── 出生点 / Spawn point
│ │ └── 存档点 / Checkpoint
│ └── 脚本文件 / Code files (read-only, recursive)
└── 加入游戏 / Join game
所有页面用 EditorHolder 标识,不再依赖 title 字符串匹配。这解决了一直存在的"三个页面都叫地牢实例列表导致点击串味"的问题。
All pages are identified by EditorHolder, no longer relying on title-string matching. This resolves the long-standing issue where three pages shared the same title and click events routed to the wrong handler.
主页面 · Main Page
27 格。四个功能:根配置、实例配置、重载插件、跳转加入游戏。
27 slots. Four functions: root config, instance config, reload plugin, jump to join game.
根配置编辑 · Root Config Editor
27 格。5 个可编辑项 + 保存 + 跳转 + 返回。原理图版本 V2/V3 通过点击循环切换。
27 slots. Five editable items, plus save, jump, and back. The schematic format toggles between V2 and V3 on click.
实例选择 · Dungeon List
54 格分页。每个地牢一个图标,点击进入实例编辑器。
54 slots with pagination. Each dungeon has an icon; click to enter the dungeon editor.
实例修改选择 · Dungeon Editor
54 格。这是 v3.0 变化最大的页面。所有管理操作都在这里:
54 slots. This is the page with the biggest change in v3.0. All admin operations live here:
- 添加房间 / 添加门锚点 / 添加箱子 / 添加出生点 / 添加存档点
- 移除房间 / 移除门锚点 / 移除箱子 / 移除出生点 / 移除存档点
- 更改配置文件 / 更新配置文件 / 更改房间配置 / 恢复默认配置 / 扫描并注册新房间 / 脚本文件管理
- 生成测试 / 删除测试世界 / 加入此实例进行游戏 / 返回 / 回主页
关键改进:v0.5 的 DungeonManagerGUI 虽然有"添加房间""添加门锚点"这类按钮,但移除操作只能通过聊天输入框手动完成,且没有"移除出生点"和"移除存档点"的 GUI 按钮。v3.0 把添加和移除全部对称化,每一类资源都有对应的添加按钮和移除按钮,都走聊天输入 + 确认流程。
Key improvement: v0.5's DungeonManagerGUI had "add room" and "add door" buttons, but removal could only be done via chat input, and there were no GUI buttons for "remove spawn point" or "remove checkpoint". v3.0 makes add/remove fully symmetric — every resource type has a matching add button and remove button, both going through chat input with confirmation.
配置分类 · Config Categories
27 格。7 个分类入口:
27 slots. Seven category entries:
- 实例根配置:enable / displayName / fileName / msgPrefix / lobby
- 生成算法:11 个生成相关配置项
- 世界规则和状态:keepInventory / deepCloneInventory / time / dungeonTime / advanceTime / weather / difficulty / allowMobs
- 玩家配置:commands / build / break / interaction(新增)
- Boss 配置:
useMythicMobForBoss(新增)/mythicMobBossName(新增)/ bossType / bossNbt - 入场费结算和奖励:rewards.vault / rewards.playerPoints / rewards.consoleCommands / enterCost.vault / enterCost.playerPoints / enterCost.consoleCommands
- 软依赖配置:allowParties / allowSlimefun / useMythicMobs
配置项交互规则:
Config item interaction rules:
| 类型 / Type | 点击行为 / Click behavior |
|---|---|
| Boolean | 立即切换 / Immediately toggles |
| ListType | 点击切换 white ↔ black(本次修复) / Toggles white ↔ black (fixed in this version) |
| List | 打开列表编辑器 / Opens list editor |
| Map (vault / playerPoints) | 打开键值编辑器 / Opens map editor |
| int / string | 聊天输入 / Chat input |
特别说明:commandsAllowListType、buildSettingsListType、breakSettingsListType、interactionSettingsListType 这 4 个是白/黑名单模式切换器,它们控制相邻那个 SETTING 列表的语义。v3.0 修复了之前的 bug:这 4 个键以 ListType 结尾,之前被误判进 List 编辑器(因为它们也以 "Settings" 结尾),现在按后缀精确匹配,优先走 white/black 切换。
Important note: commandsAllowListType, buildSettingsListType, breakSettingsListType, and interactionSettingsListType are whitelist/blacklist mode toggles that control the semantics of the adjacent SETTING list. v3.0 fixes a previous bug: these four keys end in ListType but were mistakenly routed to the List editor (because they also end in "Settings"). They are now matched exactly by suffix and prioritize the white/black toggle.
房间配置列表 · Room Config List
54 格分页。数据源是 dungeonInstance.structureChoose 的所有 key——每个 key 就是一个房间。每个房间图标显示当前权重。
54 slots with pagination. The data source is every key in dungeonInstance.structureChoose — each key is a room. Each icon displays the current weight.
单房间配置 · Single Room Config
9 格 1 行:权重 / 门文件 / 箱子文件 / 出生点文件 / 存档点文件 / 返回。点击权重走聊天输入,点击其他四个打开对应的编辑子页。
9 slots in one row: weight, door file, chest file, spawn file, checkpoint file, back. Click weight for chat input; click any of the other four for their editor subpage.
门 / 箱子 编辑 · Door / Chest Editors
门列表:54 格分页,每行一个门,显示 (x, y, z) facing type weight。槽 45 添加新门——使用当前选区内 + 玩家注视的方块计算相对坐标。点击单个门进入门编辑页:x/y/z 输入、朝向循环、类型循环、权重输入、删除。
Door list: 54 slots with pagination, one door per entry showing (x, y, z) facing type weight. Slot 45 adds a new door — using the block the player is looking at within the current selection to compute relative coordinates. Click a door to enter its editor: x/y/z inputs, facing cycle, type cycle, weight input, delete.
箱子列表:54 格分页,每行一个箱子,显示 (x, y, z) 概率 物品ID 数量。槽 45 添加新箱子——多步聊天输入:先输路径,然后手持物品输入概率(可反复),最后 done 完成,cancel 取消。
Chest list: 54 slots with pagination, one chest per entry showing (x, y, z) chance item amount. Slot 45 adds a new chest — multi-step chat input: enter path, then input chance with an item in hand (repeatable), then done to finish or cancel to abort.
出生点 / 存档点 编辑 · Spawn / Checkpoint Editors
27 格。显示当前 x/y/z,槽 13 "用当前位置覆盖"(同样需要选区),槽 22 保存。这与 v0.5 的行为一致,唯一的区别是选区校验现在更明确:无选区时给出清晰提示。
27 slots. Displays current x/y/z, slot 13 "overwrite with current position" (also requires a selection), slot 22 saves. Behavior matches v0.5; the only difference is clearer selection validation — explicit error message when no selection exists.
脚本文件列表 · Code Files Browser
54 格分页,只读。递归扫描 <地牢名>/code/ 下的所有文件和子目录。目录点击进入下一层,文件点击在聊天框打印行数和前 20 行。
54 slots with pagination, read-only. Recursively scans every file and subdirectory under <dungeon>/code/. Click a directory to enter, click a file to print its line count and first 20 lines into chat.
列表 / 键值编辑器 · List / Map Editors
配置项中出现 List 或 Map 时,打开独立的 54 格分页编辑器:
When a config item is a List or Map, a dedicated 54-slot paginated editor opens:
- List 编辑器:每条显示当前值,左键删除;槽 45 添加新条目
- Map 编辑器:每条显示
key = value,左键改值,右键删除;槽 45 添加新条目(key=value格式)
返回路径修复:v0.5 中,列表/键值编辑器的返回按钮固定回到"玩家配置"。v3.0 引入了 EditorHolder.returnSection 字段,记录来源分类。从"生成算法"进入的列表编辑器,返回就回到"生成算法";从"入场费结算和奖励"进入的键值编辑器,返回就回到"入场费结算和奖励"。
Back-path fix: In v0.5, the List/Map editor's back button always returned to "Player Config". v3.0 introduces EditorHolder.returnSection to record the source category. A list editor opened from "Generation" returns to "Generation"; a map editor opened from "Economy" returns to "Economy".
新增配置键 · New Configuration Keys
| 键 / Key | 类型 / Type | 默认 / Default | 说明 / Description |
|---|---|---|---|
scanAndRegisterNewRooms |
boolean | true |
全局:定时扫描 rooms 并注册新房间 / Global: periodic scan of rooms directory |
dungeonInstance.interactionSettingsListType |
string | white |
交互白/黑名单模式 / Interaction whitelist/blacklist mode |
dungeonInstance.interactionSettings |
list | [] |
允许/禁止交互的方块 ID / Interaction-allowed block IDs |
dungeonInstance.useMythicMobForBoss |
boolean | false |
Boss 是否使用 MythicMobs / Whether bosses use MythicMobs |
dungeonInstance.mythicMobBossName |
string | "" |
MythicMobs Boss 内部名 / MythicMobs boss internal name |
useMythicMobForBoss 与 useMythicMobs 的关系:前者专门控制 Boss 是否用 MythicMobs 生成;后者控制小怪是否允许 MythicMobs。两者互不影响。若 useMythicMobForBoss = true 但 mythicMobBossName 为空,自动降级为原版 Boss。
Relationship between useMythicMobForBoss and useMythicMobs: the former controls whether bosses are spawned via MythicMobs; the latter controls whether regular mobs allow MythicMobs. They are independent. If useMythicMobForBoss = true but mythicMobBossName is empty, the plugin automatically falls back to a vanilla boss.
交互白名单落地 · Interaction Whitelist Enforcement
问题 · The problem
v0.5 已经有 interactionSettingsListType / interactionSettings 两个配置键,但从未在任何监听器里被读取。配置了也不起作用。
v0.5 already defined interactionSettingsListType and interactionSettings, but no listener ever read them. Configuring them had no effect.
v3.0 的做法 · What v3.0 does
DungeonPlayerListener.onPlayerInteract 现在会拦截所有可交互方块的右键:容器(箱子、木桶、潜影盒)、工作方块(熔炉、工作台、铁砧、附魔台)、开关(按钮、拉杆、压力板)、门(包括活板门和栅栏门)、床、以及各类 GUI 方块(唱片机、音符盒、红石元件、信标等)。
DungeonPlayerListener.onPlayerInteract now intercepts right-clicks on every interactive block: containers, workstations, switches, doors (including trapdoors and fence gates), beds, and various GUI blocks.
白名单模式(默认):列表为空则全部禁止;列表非空则只有列表内的方块可交互。 黑名单模式:列表为空则全部允许;列表非空则只有列表内的方块被禁止。
Whitelist mode (default): empty list → all blocked; non-empty list → only listed blocks interactable. Blacklist mode: empty list → all allowed; non-empty list → only listed blocks blocked.
与现有白名单的区别:
buildSettings控制能否放置某个方块breakSettings控制能否破坏某个方块interactionSettings控制能否与某个方块交互
三者独立。你可以允许玩家放置箱子(buildSettings 含 CHEST),同时禁止打开箱子(interactionSettings 不含 CHEST),从而实现"能放不能开"的玩法设计。
Relationship with existing whitelists: buildSettings controls whether a block can be placed; breakSettings controls whether it can be broken; interactionSettings controls whether it can be interacted with. All three are independent — you can allow placing a chest while blocking opening it.
测试世界与恢复默认 · Test World and Reset to Default
生成测试世界 · Generate test world
实例编辑器槽 49 "生成测试,不进行游戏":创建一个世界名带 _test_ 前缀的地牢实例(dungeon_<name>_test_<timestamp>),传送管理员进入观察。该世界不会被写入 dungeonNameToWorld,因此不会与正式地牢冲突。
Slot 49 in the dungeon editor, "Generate test (no gameplay)": creates a dungeon instance with a _test_ prefix in the world name and teleports the admin inside for observation. The world is not written to dungeonNameToWorld, so it never conflicts with a real dungeon run.
删除测试世界 · Delete test world
槽 50 "删除测试世界":只删除 dungeon_<name>_test_* 前缀的世界,不影响正式地牢。已加载的世界走 WorldUtil.deleteWorldAndRelease,未加载的孤儿目录直接递归删除。若当前地牢没有测试世界,按钮灰显。
Slot 50, "Delete test world": removes only worlds prefixed dungeon_<name>_test_*; real dungeon runs are unaffected. Loaded worlds go through WorldUtil.deleteWorldAndRelease; orphan directories are recursively deleted. If no test world exists, the button is greyed out.
恢复默认配置 · Reset to default
槽 30 "恢复配置文件到默认值":聊天确认后,用 buildDefaultInstanceConfig(dungeonName) 生成的标准配置覆盖 config.yml。同时清空当前会话的未保存修改。为避免误操作,需要玩家输入 confirm 才会执行。
Slot 30, "Reset config to default": after chat confirmation, the standard configuration from buildDefaultInstanceConfig(dungeonName) overwrites config.yml, and unsaved session changes are cleared. Requires typing confirm to proceed.
死代码清理 · Dead Code Removal
删除的完整文件(4 个):
Entire files removed (4):
| 文件 / File | 原因 / Reason |
|---|---|
gui/DungeonManagerGUI.java |
被 EditorGuiManager 完全替代 / Fully replaced by EditorGuiManager |
util/ConfigEditorUtil.java |
被 EditorGuiManager 的配置编辑器替代 / Replaced by new config editor |
util/PlayerDataManager.java |
已被 SqliteBackupStorage + WinStorage 替代 / Replaced by SQLite storage + WinStorage |
util/RoomSelectorUtil.java |
从未被调用 / Never called |
删除的方法(部分列举):
Removed methods (partial list):
HimDungeons:setPlayerBackup/getPlayerBackup/restorePlayerInventory/startCleanupTimer/playerBackups字段 /DungeonInstance.cleanupTaskId/DungeonInstance.lastActiveTimeDungeonGenerator:spawnBossEntity1(旧版本遗留)/computeRequiredRotationConfigUtil:getInstanceStructureWeight(单键版)ConfigApplier:deepCloneInventoryTransformUtil:computeRequiredRotation/rotateVectorBlockDataRotator:rotateFacing(与TransformUtil.rotateFacing重复,且实现顺序不一致)WorldEditUtil:isSchematicValid/getActualBoundsMessageUtil:sendColored
清理量:约 1700 行代码移除,jar 编译速度提升,类加载链简化。
Cleanup volume: roughly 1700 lines removed; faster compilation; simpler class-loading chain.
修复 · Bug Fixes
LIST_TYPE 误判修复 · LIST_TYPE misrouting fix
配置项 commandsAllowListType、buildSettingsListType、breakSettingsListType、interactionSettingsListType 都以 "SettingsListType" 或 "AllowListType" 结尾,之前被误判成 List 类型配置(因为它们也匹配 endsWith("Settings") 或 endsWith("Allow")),导致点击时错误地打开列表编辑器,而不是切换 white/black。v3.0 在 clickConfigSection 中增加了一个前置判断:路径以 ListType 结尾则直接切换 white/black。
The config keys commandsAllowListType, buildSettingsListType, breakSettingsListType, and interactionSettingsListType all end in "SettingsListType" or "AllowListType" and were mistakenly routed to the List editor (because they also matched endsWith("Settings") or endsWith("Allow")). v3.0 adds a pre-check in clickConfigSection: if the path ends in ListType, toggle white/black directly.
列表/键值编辑器返回路径修复 · Back-path fix for List/Map editors
v0.5 中,从"生成算法"打开一个列表编辑器,返回时落在"玩家配置"分类。v3.0 引入 EditorHolder.returnSection 记录来源,返回时正确回到来源分类。
In v0.5, opening a list editor from "Generation" returned to "Player Config" on back. v3.0 introduces EditorHolder.returnSection to record the source and returns to the correct category.
生成箱子的随机性优化 · Chest loot randomness
DungeonGenerator.fillChests 中每次开箱都 new Random(),导致随机性丢失。改为类字段 private final Random chestRand = new Random();,确保同一实例内随机序列连续。
DungeonGenerator.fillChests instantiated new Random() for every chest, degrading randomness. Changed to a class field private final Random chestRand = new Random(); for consistent randomness within an instance.
移除功能对称性修复 · Remove-operation symmetry
v0.5 的 DungeonManagerGUI 有"添加出生点"和"添加存档点"按钮,但没有对应的移除按钮。v3.0 补全了"移除出生点"(槽 21)和"移除存档点"(槽 22)。
v0.5's DungeonManagerGUI had "Add Spawn" and "Add Checkpoint" buttons but no remove counterparts. v3.0 adds "Remove Spawn" (slot 21) and "Remove Checkpoint" (slot 22).
选区原点统一 · Unified selection origin
v0.5 中,不同功能对选区原点的校验时机不一致。v3.0 统一走 originOf(p),从 SelectionManager 获取选区原点,无选区时给出明确错误提示。
In v0.5, selection-origin validation was inconsistent across features. v3.0 uniformly calls originOf(p), retrieving the origin from SelectionManager, and displays a clear error when no selection exists.
升级建议 · Upgrade Notes
-
备份
plugins/HimDungeons/全目录(含backup.db和所有stats.yml) -
更新权限组:确认管理员拥有
himdungeons.admin或三个子节点 -
替换 jar
-
测试流程:
/dg edit→ 主页面 → 根配置 → 实例选择 → 实例编辑 → 配置分类 → 房间列表 → 门/箱子编辑 → 生成测试 → 删除测试 → 正常生成 → Boss 击杀 -
若有自动化脚本调用
/dg edit <参数>,按新命令表更新 -
Back up the entire
plugins/HimDungeons/directory (includingbackup.dband allstats.ymlfiles) -
Update permission groups: ensure admins have
himdungeons.adminor all three child nodes -
Replace the jar
-
Test the flow:
/dg edit→ main → root → dungeon list → dungeon editor → config categories → room list → door/chest editors → generate test → delete test → real run → boss kill -
If any automation invokes
/dg edit <arg>, update to the new command table
已知问题 · Known Issues
-
useMythicMobForBoss已接入DungeonGenerator.spawnBossEntity,但 MythicMobs API 的反射调用路径依赖 MythicMobs 版本。当前实测版本为 5.x,4.x 未经测试。 -
interactionSettings只拦截右键交互,不拦截左键。左键破坏由breakSettings独立控制。 -
EditorGuiManager.originOf依赖SelectionManager,选区数据在内存中,服务器重启后丢失。配置编辑不依赖选区,但门/箱子/出生点/存档点的新建需要重新框选。 -
useMythicMobForBossis wired intoDungeonGenerator.spawnBossEntity, but the MythicMobs API reflection path depends on the MythicMobs version. Tested against 5.x; 4.x is untested. -
interactionSettingsonly intercepts right-click interactions, not left-click. Block breaking is controlled separately bybreakSettings. -
EditorGuiManager.originOfdepends onSelectionManager, whose data lives in memory and is lost on server restart. Config editing does not need a selection, but creating new doors/chests/spawns/checkpoints requires re-selecting the region.
完整改动统计 · Changelog Summary
| 类别 / Category | 数量 / Count |
|---|---|
| 新增文件 / New files | 3(EditorHolder / EditorSession / EditorGuiManager) |
| 删除文件 / Removed files | 4 |
| 新增命令 / New commands | 14 |
| 新增权限 / New permissions | 3 |
| 新增配置键 / New config keys | 5 |
| 新增 GUI 页面 / New GUI pages | 20+ |
| 修复 bug / Bug fixes | 5 |
| 删除代码行 / Lines removed | ~1700 |
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:gMUkJbNM:rlH27MPU"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:gMUkJbNM:rlH27MPU"
}

