You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Minecraft 1.19.2模组集成Twitch4J时类找不到问题求助

解决Forge 1.19.2模组中Twitch4J依赖打包后找不到类的问题

出现com.github.twitch4j.TwitchClientBuilder找不到的问题,本质是Shadow插件没有正确将Twitch4J及其依赖打包进模组Jar,或者Forge的类加载器无法识别未重定位的第三方类。按以下步骤排查修复:

1. 修正Shadow插件的Gradle配置

Forge的Gradle构建体系有特殊的依赖处理逻辑,必须明确配置Shadow要打包的依赖,并对第三方包进行重定位(避免和其他模组或Forge自带库冲突)。

在你的build.gradle中添加或调整Shadow相关配置:

plugins {
    id 'net.minecraftforge.gradle' version '5.1.+'
    id 'com.github.johnrengelman.shadow' version '7.1.2' // 选择与Forge 1.19.2兼容的Shadow版本
}

// ... 保留原有的Forge配置(如minecraft、dependencies块) ...

// 配置ShadowJar任务
shadowJar {
    // 明确包含Twitch4J核心及你用到的子模块
    dependencies {
        include(dependency('com.github.twitch4j:twitch4j:1.19.0')) // 替换为你使用的Twitch4J版本
        include(dependency('com.github.twitch4j:twitch4j-chat:1.19.0'))
        // 根据你的需求添加其他子模块,如twitch4j-auth、twitch4j-common等
    }

    // 重定位Twitch4J的包到你的模组包名下,避免类路径冲突
    relocate 'com.github.twitch4j', 'com.yourmodid.twitch4j' // 替换yourmodid为你的模组ID
    relocate 'okhttp3', 'com.yourmodid.okhttp3' // 可选:重定位Twitch4J依赖的okhttp,避免和Forge版本冲突
    relocate 'com.fasterxml.jackson', 'com.yourmodid.jackson' // 可选:重定位jackson依赖

    // 设置ShadowJar的输出后缀
    archiveClassifier.set('shadow')
}

// 让build任务依赖ShadowJar,确保打包时生成带依赖的Jar
build.dependsOn(shadowJar)

// 禁用默认Jar任务,让Forge使用ShadowJar作为输出
jar {
    enabled = false
    from shadowJar.archiveFile
}

2. 检查IntelliJ运行配置

IDEA默认运行的可能是未包含依赖的普通模组Jar,需修改运行配置:

  • 打开Run/Debug Configurations
  • 找到你的Minecraft Client运行配置
  • 在"Mods"选项卡中,移除原模组Jar,添加build/libs目录下带-shadow后缀的Jar文件
  • 保存配置后重新启动客户端

3. 验证打包后的Jar内容

用压缩工具打开build/libs下的ShadowJar文件,检查是否存在以下内容:

  • 重定位后的包路径(如com/yourmodid/twitch4j)
  • Twitch4J的核心类(如TwitchClientBuilder.class)
    如果没有这些内容,说明Shadow配置未生效,需重新检查dependencies块中的依赖是否正确引入,或是否有其他Gradle规则排除了Twitch4J依赖。

4. 排查依赖冲突或排除问题

执行./gradlew dependencies命令查看依赖树,确认:

  • Twitch4J及其子模块没有被标记为exclude
  • 传递依赖(如okhttp、jackson)没有被Forge自动排除
    若发现依赖被意外排除,可在dependencies块中手动添加并强制包含:
dependencies {
    // ... 原有的Forge依赖 ...
    implementation('com.github.twitch4j:twitch4j-chat:1.19.0') {
        exclude group: 'some.conflicting.group' // 仅排除确实冲突的依赖,不要盲目操作
    }
}

内容的提问来源于stack exchange,提问作者Alerto

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 05:40:14