-
Notifications
You must be signed in to change notification settings - Fork 38
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
对枪包升级逻辑的重构 #354
base: 1.20.1
Are you sure you want to change the base?
对枪包升级逻辑的重构 #354
Conversation
代码应该还能优化...明天看看,先draft一下 parseEntryName 的结果应该是可以复用的 |
文件夹是故意没写的其实(,因为有默认枪包和其他模组的导出枪包这个因素在,而且有部分枪包本身做的有问题“必须解压运行”(一般是塞了非法的文件名),所以强制要求自行压缩后转换 |
有种白干的感觉 hah
默认枪包其实好解决,skip就完事了
必须解压运行的枪包没见过,如果说存在非法文件名的话压缩回去不会把文件名再带进去?
导出枪包有点太 special case 了 :/ 这个确实没啥好办法,除非知道怎么识别
|
嘛,其实还挺挺多的,特别是有些人喜欢装着optifine之类的东西做包,那种会把原版rl的校验干掉,塞了大写路径什么的自己也意识不到,或者干脆塞了点错误的文件(比如写错的配方或者其他配置,或者mp4爆改ogg,对,mp4,一个文件二十多m),压缩转换了大概率还是用不了,主要其实还是不想背这锅()他们只会觉得转换写的有问题;导出枪包其实也挺常见的,我自己的模组就有用,虽然可以拉一个不自动转换的黑名单,但是我觉得把这种东西内置进去未免太丑了一点) |
又想了一下,我觉得导出枪包不能作为一个 special case 。也不排除模组导出一个ZIP的可能
另外,如果资源文件有问题,在以文件夹形式存在的时候就应该已经出问题了,为什么说转换后才会出问题? 所以这个问题也不成立
综上,我觉得只需要把 RL 换成自行实现的无校验版本就可以了。其实刚开始写的时候就是自定义RL,叫PackEntry,但是写着写着觉得好像就是RL就用RL替换了,没想到这一层。
不自动转换的list只需要一个tacz_default_gun就完事了啊 :/
|
因为原版的奇怪机制,压缩包会直接崩游戏,解压了反而不会,貌似错误的文件就被忽略了,这个问题原版的资源包就有,导出枪包因为我当初给的示例是文件夹,然后大家用的都是文件夹(),主要传播的还挺广的,我那包下载量有本体的四分之一了,这个因素不得不考虑 |
要不这样吧,我们直接往配置文件里丢个不自动进行转换的黑名单得了) |
解压的文件有 Windows/Unix 路径分隔符等平台特定内容的影响,压缩包没有,所以检验更简单。
这个可以 |
我现在没空解决这个了 :/ 可能要晚上看看 |
解决 |
过长时间的转换可能会导致像 spark 之类的分析器模组认为 TACZ 存在性能问题
现在支持文件夹格式枪包的直接转换,相对于压缩包格式的可能效率略低?
文件夹格式有关的翻译条目没有更改,若合并这个功能,则还请自行删除
另外修复了潜在的编码问题
两个晚上无聊写的(((