本帖最后由 LING_Y_ 于 2023-1-11 14:49 编辑
当前Yml文件如下复制代码先定义path="Players."+玩家变量+".Guild"
当服务器 get(path),若玩家为<player> 会返回 xxx (这不废话吗)
但是当玩家为<player1>时,get(path)时就会找不着对象了,并且会在Yml内莫名其妙的定义一些东西
,就是说当get不到path时,就是找不到"Player.<player1>.Guild" 就会跳过这个路径,变成"Players",至于为什么是"ATest" 我就不知道了,
//=======
情况是这样的,
本来player1的Guild值是ATest 但我set("Players.<player1>.Guild",null)
但同时,也发生了上面的问题
//=======
我在插件里写了一个这样的方法
复制代码但我一开始没想过,如果get不到,最多返回个""或者null,我看 了下Configuration 的类里是这样写的
(defaults 就是config)
说的是如果 get不到时就返回默认值,我没定义,那就是"",
但是这里的get不到的意思是 get的值当值不 instanceof String 时,返回def,当path出问题时,get到的肯定就不是String(在我目前整个yml是这样)
所以我想问,当get的path有问题,get不到该怎么办,设不设默认值都会在Yml文件里莫名其妙的生成东西
当前Yml文件如下
- Players:
- <player>:
- Guild: xxx
- <player1>:
当服务器 get(path),若玩家为<player> 会返回 xxx (这不废话吗)
但是当玩家为<player1>时,get(path)时就会找不着对象了,并且会在Yml内莫名其妙的定义一些东西

,就是说当get不到path时,就是找不到"Player.<player1>.Guild" 就会跳过这个路径,变成"Players",至于为什么是"ATest" 我就不知道了,
//=======
情况是这样的,
本来player1的Guild值是ATest 但我set("Players.<player1>.Guild",null)
但同时,也发生了上面的问题
//=======
我在插件里写了一个这样的方法
- getGuildName(Player){
- return config.getString("Players."+Player.getName+".Guild")
- }


(defaults 就是config)
说的是如果 get不到时就返回默认值,我没定义,那就是"",

但是这里的get不到的意思是 get的值当值不 instanceof String 时,返回def,当path出问题时,get到的肯定就不是String(在我目前整个yml是这样)
所以我想问,当get的path有问题,get不到该怎么办,设不设默认值都会在Yml文件里莫名其妙的生成东西