本帖最后由 qq2362975089 于 2020-8-8 11:21 编辑 
如图:我想获取 level.dat 文件中的 levelName 的 值 该 如何做?复制代码
我哪里写错了?求找出qwq
如图:我想获取 level.dat 文件中的 levelName 的 值 该 如何做?
- String level = NBTCompressedStreamTools.a(new FileInputStream(version_path+"\\world\\level.dat")).toString();
 
- Motd = level.substring(level.indexOf("LevelName:"")+11, level.lastIndexOf(""")); //获得 存档名
我哪里写错了?求找出qwq
 本帖最后由 洞穴夜莺 于 2020-8-8 11:40 编辑 
大哥,LevelName位于server.properties而不是level.dat
话说Bukkit没有API可以直接获取LevelName的吗?
大哥,LevelName位于server.properties而不是level.dat
话说Bukkit没有API可以直接获取LevelName的吗?
洞穴夜莺 发表于 2020-8-8 11:38
大哥,LevelName位于server.properties而不是level.dat
话说Bukkit没有API可以直接获取LevelName的吗?
...
我下载的是别人的地图,自然要获取别人的地图名字,而不是自己的
qq2362975089 发表于 2020-8-8 11:41
我下载的是别人的地图,自然要获取别人的地图名字,而不是自己的
好歹你用NBT读写工具读啊,干嘛弄成这么复杂
1. 不要在文件操作中直接用“\\”,因为你不知道目标平台
"\\"在windows下仅用于文件分隔,linux下却可以直接用于文件名
用File.separator代替
2. 既然NBTCompressedStreamTools.a之后获得了NBTTagCompound对象,就不要toString做字符操作了,直接用NBTTagCompound#get(String key)
"\\"在windows下仅用于文件分隔,linux下却可以直接用于文件名
用File.separator代替
2. 既然NBTCompressedStreamTools.a之后获得了NBTTagCompound对象,就不要toString做字符操作了,直接用NBTTagCompound#get(String key)
 本帖最后由 qq2362975089 于 2020-8-8 12:17 编辑 
复制代码没效果唉
疾风暗影 发表于 2020-8-8 11:48
1. 不要在文件操作中直接用“\\”,因为你不知道目标平台
"\\"在windows下仅用于文件分隔,linux下却可以直 ...
- NBTTagCompound level = NBTCompressedStreamTools.a(new FileInputStream(version_path+"\\world\\level.dat"));
 
- System.out.println("LevelName: ----"+level.get("LevelName"));