Skip to content

feat(NS): 添加识别码示例#6045

Open
502y wants to merge 11 commits into
mainfrom
feat/namespace_identifier
Open

feat(NS): 添加识别码示例#6045
502y wants to merge 11 commits into
mainfrom
feat/namespace_identifier

Conversation

@502y

@502y 502y commented Jun 13, 2026

Copy link
Copy Markdown
Collaborator

No description provided.

@cfpa-bot cfpa-bot Bot added 1+ 行数标签 config PR 中的更改涉及 Config 文件夹 labels Jun 13, 2026
@boring-cyborg boring-cyborg Bot added 1.12.x Minecraft 版本标签 Forge 包含 Forge 模组 labels Jun 13, 2026
@cfpa-bot

cfpa-bot Bot commented Jun 14, 2026

Copy link
Copy Markdown
Contributor


ℹ 此 PR 没有检测到 CurseForge/Modrinth 模组修改。


ℹ 此 PR 没有更改语言文件或者 PR-Packer 出现了问题。


⚠ 检测到一个语言文件,但提交路径不正常。请检查提交路径:Unofficial/lang/zh_cn.lang
⚠ 检测到一个语言文件,但提交路径不正常。请检查提交路径:Stuff/lang/zh_cn.lang


🔛 Diff:


🐖 命令列表 | 问题反馈

  • 🔄 勾选这个复选框来强制刷新

Comment thread config/packer/1.12.2.json Outdated
@cfpa-bot cfpa-bot Bot added 10+ 行数标签 source and removed 1+ 行数标签 labels Jun 15, 2026
@cfpa-bot cfpa-bot Bot removed the source label Jun 21, 2026
@502y 502y requested review from dovisutu and mamaruo June 21, 2026 12:11
@SlimeSB

SlimeSB commented Jun 23, 2026

Copy link
Copy Markdown
Collaborator

LGTM,实际看下来有些散在各处了
或许构建manifest的活可以交给packer干。

我目前的想法是同一个ns的discriminator必须来源一致,不然没法下发和比较,放local-config会有多个重复

感觉或许不用这个spec?不过更灵活的或许yagni,就是怕再加就晚了。毕竟还有create一大坨联动等等。

"namespaceDiscriminator": "AE2 Stuff"

suggest:

"nsCutMatch": "AE2 Stuff"

"namespaceDiscriminator": {
    "ae2-stuff": "displayName"
}

suggest:

"nsPickRule": {
    "ae2-stuff": "displayName"
}

@SlimeSB

SlimeSB commented Jun 23, 2026

Copy link
Copy Markdown
Collaborator

refactor: 将全局config中nsPickRule移动到**/local-config.json

将config/packer/1.12.2.json中:

"namespaceDiscriminator": {
    "ae2-stuff": "displayName"
}

改为nsPickRule,并移动到projects/assets/ae2-stuff/1.12.2/ae2stuff/local-config.json
原namespaceDiscriminator改为nsCutMatch
移动后:

...

  "destinationReplacement": {},
  "nsPickRule": "displayName",
  "nsCutMatch": "AE2 Stuff"
}

@mamaruo

mamaruo commented Jun 24, 2026

Copy link
Copy Markdown
Member

支持两种字段不同名。其他看 @dovisutu 的实现意见

@502y 502y marked this pull request as ready for review June 28, 2026 09:09
SlimeSB

This comment was marked as outdated.

Comment thread config/packer/namespace-discriminator.json Outdated
Co-authored-by: SlimeSB <86453765+SlimeSB@users.noreply.github.com>

@SlimeSB SlimeSB left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

GGWP

@dovisutu

dovisutu commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

——所以说有谁总结一下Packer要做什么适配吗
还是说不用做适配(

@502y

502y commented Jul 4, 2026

Copy link
Copy Markdown
Collaborator Author

——所以说有谁总结一下Packer要做什么适配吗 还是说不用做适配(

处理按照识别码规则处理一下资源包内的ns避免被合并,并且把ns生成识别段的规则写进资源包的一个文件。详见下文:

Manifest.json,位于压缩包的根路径下,包含blackList和rules两部分(注,如果不需要blackList,则Rules单独成Rules.json)

下文可能使用的简写:NS,指包含-CFPA-XXX识别段或不包含识别段的裸namespace;rawNS,指不包含识别段的裸namespace

  1. blackList和packer的exclusionNamespaces(exclusionMods)等价,用于指引客户端删除本地的cache,格式为Array

  2. rules为-CFPA-XXX识别段的生成规则,用于指引客户端生成识别段区分不同模组来源的namespace,格式为Map<rawNS, Identifier>

  3. Identifier包含三类取值
    2.1. "author",表示NS的XXX部分为模组authors的字典排序后第一个值
    2.2. "displayName",表示NS的XXX部分为模组的displayName
    2.3. 任意路径,表示NS的XXX部分为模组对应路径文件的md5
    2.4. 对于任意Identifier,若模组不满足此生成条件,则客户端使用rawNS进行后续流程,避免丢失翻译

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

1.12.x Minecraft 版本标签 10+ 行数标签 config PR 中的更改涉及 Config 文件夹 Forge 包含 Forge 模组

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants