晴路卡
版本1.15+(废话)
试着找了些解压Gzip的代码拼凑了以下
可是生成的输出文件里没有得到数据,只有标签的名称和乱码- -



所以想问下用读命令存储数据的正确姿势是什么(最好是JAVA代码吧
顺便这是实际的storage:




纱夜
本帖最后由 阴阳师元素祭祀 于 2020-4-10 16:34 编辑

我翻了半天文件也找不到storage.nbt或者可能的文件
java有个类
DataInputStream
从mojang给出的nbt一些值后缀来看
是按照类型直接存相关字节的

比如那个number
似乎是int
那么
DataInputStream#.readInt()
即可将接下来的文件4个字节 读成intjx
字符前面应该有标志 用来告诉接下来有几个字符
可是我真的找不到文件

可以参看这个

https://wiki.biligame.com/mc/NBT%E6%A0%BC%E5%BC%8F
另如果是UTF8
可以直接试试DataInputStream#readUTF()来读字符

纱夜
本帖最后由 阴阳师元素祭祀 于 2020-4-10 18:23 编辑

为了提醒楼主 就在恢复了一次
dat是加密了的 我相信楼主会解密
解密之后
按照wiki提示读即可


很简陋
输出是

  1. {
  2.     data {
  3.         contents {
  4.             ljyys {
  5.                 ljyys {
  6.                     9
  7.                 }
  8.                 中文 {
  9.                     16
  10.                 }
  11.                 }
  12.             }
  13.         }
  14.     DataVersion {
  15.         2230
  16.     }
  17.     }
  18. }
复制代码


对 我懒得找bug了

测试用的文件是 (因为不会发附件 所以发字节了)

命令输出
>>>data get storage ljyys
[17:34:54] [Server thread/INFO]: Storage minecraft:ljyys has the following contents: {"中文": 16, ljyys: 9}

Q: 为什么不包装成类 库 或者 缩进优化 代码优化 强制指定编码保证不出错
A: 能跑就行 性能丢掉莉.yys 其他人环境也丢掉莉
It works on my machine!




Y制杖杖
阴阳师元素祭祀 发表于 2020-4-10 17:20
为了提醒楼主 就在恢复了一次
dat是加密了的 我相信楼主会解密
解密之后

学习了
请问大佬知道mca文件怎么解密吗