Links
Tags
Creators
Details
All versions
1.4.3
Release
SerendiModGuarder 1.4.33 months ago 10
Compatibility
Minecraft: Java Edition
26.2
Platform
Fabric
Supported environments
Client and server
Changes
● SerendiModGuarder 1.4.3 更新日志
性能与稳定性优化
- 修复日志记录可能导致服务器卡死/死锁的问题。
- 模组业务逻辑不再直接同步调用 LOGGER.info/warn/error。
- 新增独立异步日志线程 SerendiModGuarder-Log。
- 日志队列使用有界队列,日志系统阻塞时不会拖死 MC 主线程或登录线程。
- 优化 PLAY 阶段网络回调。
- 网络回调中不再直接执行检测和踢人逻辑。
- 改为通过 server.execute() 切回服务器主线程处理,避免跨线程调用 Minecraft API。
- 优化 Tick 检测逻辑。
- pendingPlayCheck 改为无锁并发队列。
- 每 Tick 最多处理 16 个玩家,避免大量玩家同时进入服务器时单 Tick 卡顿。
- 优化延迟验证扫描。
- 延迟验证队列不再每 Tick 全表扫描。
- 改为每 20 Tick 扫描一次,降低在线人数较多时的固定 TPS 开销。
网络包安全与防卡顿
- 限制客户端上报的 Mod 列表大小。
- 最大 Mod 数:512。
- 单个 Mod ID 最大长度:128 字符。
- 防止异常或恶意客户端发送超大数据包导致服务端内存分配、排序、哈希计算压力过大。
- PLAY 阶段 Mod 列表 Payload 同步加入大小限制。
- 旧上限过大,可能造成网络解码和内存压力。
- 现在与登录阶段限制保持一致。
- 修复客户端与服务端 Mod 列表截断规则不一致的问题。
- 客户端登录响应也会按服务端规则截断。
- SHA256 签名基于截断后的列表计算,避免误判签名不匹配。
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:ZjTPMIxt:9uR00RlP"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:ZjTPMIxt:9uR00RlP"
}

