编写插件时遇到的问题,有没有大佬知道,感激不尽
领取红包用户

区块单独信息嗎?在db文件folder裡面区块数据
非常感谢!!!一些可以参考的文档
基岩版使用了修改后的Google的LevelDB(Zlib压缩格式)来储存世界格式资料。 Mojang修改了谷歌的原始LevelDB以加入对Zlib压缩格式和Windows系统的支持。代码可以在Github页面访问,且编写指引由Tommaso在此处提供。 对于Java版的LevelDB + Zlib,请见此Github页面。 Google的leveldb库自从Mojang在发布Minecraft后得到了极大的改变,但Mojang自己修改后的版本仍然可以独立运作,但代码需要一些小修改来实现兼容性:...minecraft.fandom.com
还有一个雪莉的博客,当初我在捣鼓这玩意的时候也是看ta的博客才懂的,只不过找不到了
应该不行大佬们,可以在服务器运行的时候读写吗?看了一下leveldb-mcpe的原话是:
- Only a single process (possibly multi-threaded) can access a particular database at a time.
主要是想看看创世神这类的插件能不能直接写入而不使用API(多个核心用一套代码)。看来这条路是走不通了应该不行
一个替代方法就是通过save命令保存存档后,复制一份进行读写
能给点例子吗,还是有点不明白一些可以参考的文档
基岩版使用了修改后的Google的LevelDB(Zlib压缩格式)来储存世界格式资料。 Mojang修改了谷歌的原始LevelDB以加入对Zlib压缩格式和Windows系统的支持。代码可以在Github页面访问,且编写指引由Tommaso在此处提供。 对于Java版的LevelDB + Zlib,请见此Github页面。 Google的leveldb库自从Mojang在发布Minecraft后得到了极大的改变,但Mojang自己修改后的版本仍然可以独立运作,但代码需要一些小修改来实现兼容性:...minecraft.fandom.com
还有一个雪莉的博客,当初我在捣鼓这玩意的时候也是看ta的博客才懂的,只不过找不到了
用插件调用bds的函数?应该不行
一个替代方法就是通过save命令保存存档后,复制一份进行读写
能给点例子吗,还是有点不明白
using System.Text;
using LevelDB;
// 打开数据库
var db = new DB(new(), "1/db");
var bytes = db.Get(new byte[] {
// 区块X坐标 Int32 小端序的Byte
0x11,
0x00,
0x00,
0x00,
// 区块Z坐标 Int32 小端序的Byte
0x08,
0x00,
0x00,
0x00,
// 要获取的区块键值格式 https://minecraft.fandom.com/zh/wiki/%E5%9F%BA%E5%B2%A9%E7%89%88%E4%B8%96%E7%95%8C%E6%A0%BC%E5%BC%8F#%E5%8C%BA%E5%9D%97%E9%94%AE%E5%80%BC%E6%A0%BC%E5%BC%8F
// 此处为获取子区块数据(47)
0x2F,
// 从下往上的区块Index,此处为第3个子区块(16x16x16)
0x02 });
// 将所有byte写入文件
File.WriteAllBytes("1.output", bytes);
// 关闭数据库
db.Close();