本帖最后由 GhostSkyV9 于 2021-5-8 03:13 编辑
我使用BukkitAPI自带的JavaPlugin#reloadConfig方法重载不了config文件的内容,然后自己又写了一个reloadConfig还是不行,具体原因不知道咋回事,以前用BukkitAPI自带的reloadConfig都能正常加载到config文件的内容,难道这次是因为版本太高的缘故?
API版本:1.15.2
测试环境:1.16.5
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
Player player = (Player) sender;
if (player.isOp() && args.length == 1 && args[0].equalsIgnoreCase("reload")) {
ConfigManage.reloadConfig();
player.sendMessage("Config重载完成!");
} else if (player.isOp() && args.length == 1 && args[0].equalsIgnoreCase("get")) {
player.getInventory().addItem(ItemProtec.onItem());
player.sendMessage("你获得了一个保护装置");
}
return false;
}
}
public class ConfigManage {
private static DeathDropExp deathDropExp = DeathDropExp.getInstance();
private static FileConfiguration configuration = deathDropExp.getConfig();
private static int loseExp;
private static String itemName;
private static String itemData;
private static List<String> lore;
static {
loseExp = configuration.getInt("settings.exp-lose-percentage");
itemName = configuration.getString("settings.item-name");
itemData = configuration.getString("settings.item-data");
lore = configuration.getStringList("settings.item-lore");
}
public static int getLoseExp() {
return loseExp;
}
public static String getItemName() {
return itemName;
}
public static String getItemData() {
return itemData;
}
public static List<String> getLore() {
return lore;
}
public static void reloadConfig() {
File file = new File(deathDropExp.getDataFolder(), "config.yml");
if (!file.exists()) {
deathDropExp.saveDefaultConfig();
}
loseExp = configuration.getInt("settings.exp-lose-percentage");
itemName = configuration.getString("settings.item-name");
itemData = configuration.getString("settings.item-data");
lore = configuration.getStringList("settings.item-lore");
}
}
我使用BukkitAPI自带的JavaPlugin#reloadConfig方法重载不了config文件的内容,然后自己又写了一个reloadConfig还是不行,具体原因不知道咋回事,以前用BukkitAPI自带的reloadConfig都能正常加载到config文件的内容,难道这次是因为版本太高的缘故?
API版本:1.15.2
测试环境:1.16.5
我使用BukkitAPI自带的JavaPlugin#reloadConfig方法重载不了config文件的内容,然后自己又写了一个reloadConfig还是不行,具体原因不知道咋回事,以前用BukkitAPI自带的reloadConfig都能正常加载到config文件的内容,难道这次是因为版本太高的缘故?
API版本:1.15.2
测试环境:1.16.5
2021.12 数据,可能有更多内容
public class CommandHandle implements CommandExecutor {@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
Player player = (Player) sender;
if (player.isOp() && args.length == 1 && args[0].equalsIgnoreCase("reload")) {
ConfigManage.reloadConfig();
player.sendMessage("Config重载完成!");
} else if (player.isOp() && args.length == 1 && args[0].equalsIgnoreCase("get")) {
player.getInventory().addItem(ItemProtec.onItem());
player.sendMessage("你获得了一个保护装置");
}
return false;
}
}
public class ConfigManage {
private static DeathDropExp deathDropExp = DeathDropExp.getInstance();
private static FileConfiguration configuration = deathDropExp.getConfig();
private static int loseExp;
private static String itemName;
private static String itemData;
private static List<String> lore;
static {
loseExp = configuration.getInt("settings.exp-lose-percentage");
itemName = configuration.getString("settings.item-name");
itemData = configuration.getString("settings.item-data");
lore = configuration.getStringList("settings.item-lore");
}
public static int getLoseExp() {
return loseExp;
}
public static String getItemName() {
return itemName;
}
public static String getItemData() {
return itemData;
}
public static List<String> getLore() {
return lore;
}
public static void reloadConfig() {
File file = new File(deathDropExp.getDataFolder(), "config.yml");
if (!file.exists()) {
deathDropExp.saveDefaultConfig();
}
loseExp = configuration.getInt("settings.exp-lose-percentage");
itemName = configuration.getString("settings.item-name");
itemData = configuration.getString("settings.item-data");
lore = configuration.getStringList("settings.item-lore");
}
}
我使用BukkitAPI自带的JavaPlugin#reloadConfig方法重载不了config文件的内容,然后自己又写了一个reloadConfig还是不行,具体原因不知道咋回事,以前用BukkitAPI自带的reloadConfig都能正常加载到config文件的内容,难道这次是因为版本太高的缘故?
API版本:1.15.2
测试环境:1.16.5
if (!file.exists()) {
deathDropExp.saveDefaultConfig();
}
????
不是saveDefaultConfig()而是reloadConfig()
deathDropExp.saveDefaultConfig();
}
????
不是saveDefaultConfig()而是reloadConfig()
a8105 发表于 2021-5-8 03:51
if (!file.exists()) {
deathDropExp.saveDefaultConfig();
}
还是不行呀,它这个数据重载了以后还是跟重载前一样的数据,没有变
我来刷个任务回复主题的那个
没见过这么奇怪的写法。。 把getString()方法写到重载里..
尝试删除你的reloadConfig()静态方法 , 使用Bukkit的reloadConfig()方法
尝试删除你的reloadConfig()静态方法 , 使用Bukkit的reloadConfig()方法
- public static void reloadConfig() {
- File file = new File(deathDropExp.getDataFolder(), "config.yml");
- if (!file.exists()) {
- deathDropExp.saveDefaultConfig();
- }
- loseExp = configuration.getInt("settings.exp-lose-percentage");
- itemName = configuration.getString("settings.item-name");
- itemData = configuration.getString("settings.item-data");
- lore = configuration.getStringList("settings.item-lore");
- }
不知道你自己有没有注意到 你这个方法里面你只是重新保存了默认的配置文件
并没有更新你的configuration
本帖最后由 lliiooll 于 2021-5-9 13:23 编辑
你应该先保存,后载入的
复制代码
你应该先保存,后载入的
- public static void reloadConfig() {
- File file = new File(deathDropExp.getDataFolder(), "config.yml");
- if (!file.exists()) {
- deathDropExp.saveDefaultConfig();
- }
- deathDropExp.reloadConfig();
- loseExp = configuration.getInt("settings.exp-lose-percentage");
- itemName = configuration.getString("settings.item-name");
- itemData = configuration.getString("settings.item-data");
- lore = configuration.getStringList("settings.item-lore");
- }