Links
Tags
Creators
Details
All versions
1.0.4
Beta
Enchant Enhancemen 1.0.4 for 1.20.1-1.20.45 months ago 39
Uploaded by
Compatibility
Minecraft: Java Edition
1.20.1–1.20.4
Platform
Fabric
Supported environments
Client and server
Required content
Any compatible version
Changes
Enchant Enhancemen 1.0.4 for 1.20.1-1.20.4
一、服务器配置同步(核心功能)
概述
服务器/主机修改配置后自动向所有在线玩家同步;玩家进入多人游戏时自动获取主机配置,本地修改不生效。
文件变更
| 文件 | 修改 |
|---|---|
EnchantEnhancement.java |
onInitialize() 中通过 ServerLifecycleEvents.SERVER_STARTING 统一处理专用服务器和 LAN 集成服务器的初始化 |
EnchantEnhancementClient.java |
新建 — 客户端入口:注册网络包接收器 + 加载本地配置 |
EnchantEnhancementServer.java |
已删除 — 逻辑已合并到主入口 |
fabric.mod.json |
client 增加 EnchantEnhancementClient;移除 server entrypoint |
ServerPlayerJoinListener.java |
ENTITY_LOAD → JOIN;40 tick 延迟队列;增加 syncToAllPlayers() 和 DISCONNECT 清理 |
EnchantmentConfig.java |
syncConfigToAllPlayers() 实现实际推送;syncConfig() 增加 if (isServer) return 防主机自锁 |
二、多人游戏配置 UI 行为
概述
多人游戏中配置界面始终可交互,但已从服务器同步后,UI 修改不会写入本地配置、不会生效。
行为对照
| 场景 | UI 可操作 | 修改是否生效/保存 |
|---|---|---|
| 单人游戏 | 是 | 是 |
| 主机(LAN/集成服务器) | 是 | 是 |
| 多人游戏客户端(已同步) | 是 | 否 |
文件变更
| 文件 | 修改 |
|---|---|
ConfigScreen.java |
新增 isReadOnly 标记;UI 始终可交互,已同步时所有 setter 调用和保存均跳过 |
三、附魔等级分组视觉优化
- 分组内展开条目向右缩进 18px
- 展开条目名称颜色变灰(
0xFFAAAAAA) - 展开条目输入框缩小(64×16 vs 78×18)
四、创造模式附魔书刷新
保存配置后直接返回游戏画面,确保重新打开创造物品栏时附魔书等级刷新。
五、依赖与环境修复
| 文件 | 修改 |
|---|---|
gradle.properties |
Fabric Loader 0.15.11 → 0.19.3;版本号 1.0.3 → 1.0.4 |
build.gradle |
移除 enchanting-infuser、puzzles-lib、forge-config-api-port 开发辅助 Mod |
fabric.mod.json |
fabricloader 最低版本 >=0.15.11 → >=0.16.10 |
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:83ePyWr3:XuLaQ50A"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:83ePyWr3:XuLaQ50A"
}

