Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用gzip压缩NBT?_C#_.net_Minecraft - Fatal编程技术网

C# 如何使用gzip压缩NBT?

C# 如何使用gzip压缩NBT?,c#,.net,minecraft,C#,.net,Minecraft,我想得到一个NBT文件,解压缩它,修改它,然后重新压缩它。唯一的问题是重新压缩。与仅仅使用GZipStream并称之为“一天”不同,Minecraft(和独立的NBT编辑器)无法读取它 publicstaticvoidpatchnbt() { var data=File.ReadAllBytes(@“level.temp”);//读取未压缩NBT的所有字节 var GetDirectory=Path.Combine(Path.GetDirectoryName(Assembly.GetEntryA

我想得到一个NBT文件,解压缩它,修改它,然后重新压缩它。唯一的问题是重新压缩。与仅仅使用GZipStream并称之为“一天”不同,Minecraft(和独立的NBT编辑器)无法读取它

publicstaticvoidpatchnbt()
{
var data=File.ReadAllBytes(@“level.temp”);//读取未压缩NBT的所有字节
var GetDirectory=Path.Combine(Path.GetDirectoryName(Assembly.GetEntryAssembly().Location),“level.dat”);
Console.WriteLine(GetDirectory);
Console.ReadKey();
如果(File.Exists(“level.dat”))
{
File.Move(“level.dat”、“level.bak”);
}
Task.WaitAll();
writealBytes(GetDirectory,CompressGZip(data));
}
静态字节[]压缩gzip(字节[]原始)
{
使用(MemoryStream memory=new MemoryStream())
{
使用(GZipStream gzip=newgzipstream(内存,压缩级别.Optimal))
{
写入(raw,0,raw.Length);
}
返回内存。ToArray();
}
}

您正在使用.net修改minecraft?我可以问你怎么做吗?@JoãoVítorCosta我用Gzip解压了它,修改了我想要的,现在我被困在这里。你所做的是非法的,因为它破坏了Mojang的EULA,您应该使用受支持的modding框架,如Forge或Fabric。使用上述框架还可以使modding更容易,因为它们提供了适当的infrastructure@JoãoVítorCosta在这种情况下,特定的编辑也违反了EULA。Forge或Fabric用Java制作实际的MOD,我不想这样。祝你好运,但nbt不是标准格式,我相信它只被minecraft使用,因为minecraft是封闭源代码,你会发现关于该格式的文档很少