Mixin 黑名单

Mixin 黑名单

通过配置禁用其他模组中的混入

Mixin Blacklist 允许通过配置文件禁用其他模组的 Mixin。这适用于整合包场景:当某个模组的 Mixin 导致问题且必须禁用,但该模组的许可证禁止分发修改后的 jar 包,或者你只是想避免在 mrpack 中嵌入 jar 包。

如果使用了 Mixin Blacklist,某些模组行为可能无法正常工作。请不要将此类问题报告给原模组作者,整合包作者对此负责。

配置

首次运行时会在 config/mixinblacklist.json 创建配置文件

  • "common":在客户端和服务端均禁用的 Mixin
    • "mixinClassNames":要禁用的 Mixin 类的完全限定类名列表,例如 archives.tater.dyedvoid.mixin.ItemEntityMixin
    • "targetClassNames":要禁用其所有 Mixin 的 Mixin 目标类的完全限定类名列表,例如 net.minecraft.item.GlassBottleItem。
  • "client":仅在客户端禁用的 Mixin
    • "mixinClassNames":要禁用的 Mixin 类的完全限定类名列表,例如 archives.tater.dyedvoid.mixin.ItemRendererMixin
    • "targetClassNames":要禁用其所有 Mixin 的 Mixin 目标类的完全限定类名列表,例如 net.minecraft.item.ItemRenderer。

目标类名必须与当前使用的映射匹配。在开发环境之外,(Neo)Forge 使用 Mojmap,Fabric 使用 Intermediary。你可以使用 Linkie 在映射之间进行转换。一般来说,大多数情况下你不需要使用目标类名。

配置示例
{
  "client": {
    "mixinClassNames": [
      "archives.tater.dyedvoid.client.mixin.ItemRendererMixin"
    ],
    "targetClassNames": []
  },
  "common": {
    "mixinClassNames": [
      "archives.tater.eatbottle.mixin.ItemsMixin",
      "archives.tater.dyedvoid.mixin.ItemEntityMixin"
    ],
    "targetClassNames": [
      "net.minecraft.item.GlassBottleItem"
    ]
  }
}

支持

只要你使用 Java 17+,该模组应该能在任何版本上运行,也能在 Sinytra connector 上运行,即使当前未标记为支持。如果在某些环境中无法运行,请提交 issue。