Skip to content

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

Merged
dovisutu merged 13 commits into
mainfrom
feat/namespace_identifier
Jul 14, 2026
Merged

feat(NS): 添加识别码示例#6045
dovisutu merged 13 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 所打包的资源包:


⚠ 检测到一个语言文件,但提交路径不正常。请检查提交路径: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 previously approved these changes Jul 2, 2026

@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进行后续流程,避免丢失翻译

@cfpa-bot cfpa-bot Bot added 100+ 行数标签 source and removed 10+ 行数标签 labels Jul 5, 2026
@502y

502y commented Jul 5, 2026

Copy link
Copy Markdown
Collaborator Author

@dovisutu take a look ?
74f4826

@dovisutu dovisutu left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

这ai生成的代码质量看着倒还可以(

Comment thread src/Packer/Helpers/EnumerationHelper.cs Outdated
Comment thread src/Packer/Program.cs Outdated
@dovisutu dovisutu closed this Jul 10, 2026
@dovisutu
dovisutu deleted the feat/namespace_identifier branch July 10, 2026 14:39
@dovisutu
dovisutu restored the feat/namespace_identifier branch July 10, 2026 14:40
@dovisutu dovisutu reopened this Jul 10, 2026
@dovisutu
dovisutu merged commit 2e624ff into main Jul 14, 2026
16 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants