Bukkit config.yml сбрасывается при изменении данных - PullRequest
1 голос
/ 17 марта 2020

У меня проблема с моим файлом config.yml. Когда я запускаю свой
плагин, он автоматически генерирует файл по умолчанию config.yml
. Это предустановка по умолчанию:

#This Plugin was made by Yuki
#Version 0.0.1
Spawn:
  World: 
  X: 
  Y: 
  Z: 
  Yaw: 
  Pitch: 

Я создал комментарий (/ setspawn), который вводит данные в
config.yml. Эта часть работает нормально, с небольшой проблемой,
, которая возникает при каждом стирании файла config.yml.

config.yml после вставки данных:

Spawn:
  World: world
  X: -155.45080613398784
  Y: 82.0
  Z: -57.60431500946787
  Yaw: -27.600231
  Pitch: 29.550203

Я вставляю данные со следующими строками:

public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
    if(sender instanceof Player) {
        Player player = (Player) sender;
        if(sender.hasPermission("cc.command.setSpawn")) {
            FileConfiguration config = Main.getPlugin().getConfig();
            config.set("Spawn.World", player.getWorld().getName());
            config.set("Spawn.X", player.getLocation().getX());
            config.set("Spawn.Y", player.getLocation().getY());
            config.set("Spawn.Z", player.getLocation().getZ());
            config.set("Spawn.Yaw", player.getLocation().getYaw());
            config.set("Spawn.Pitch", player.getLocation().getPitch());
            Main.getPlugin().saveConfig();
            player.sendMessage("Der Spawn wurde gesetzt!");
        }
    }
    return false;
}

Основной класс:

public class Main extends JavaPlugin {

    private static Main plugin;

    public void onEnable() {
        plugin = this;
        this.saveDefaultConfig();
        System.out.println("\033[1;36m"+"["+"\033[1;35m"+"CC"+"\033[1;36m"+"]"+"\033[0;35m"+"Crystal Cake is online"+"\033[0m");
        //commands
        getCommand("heal").setExecutor(new HealAndFood());
        getCommand("setspawn").setExecutor(new SetSpawnCommand());

        //Listeners
        Bukkit.getPluginManager().registerEvents(new JoinLeaveListener(), this);
        Bukkit.getPluginManager().registerEvents(new KillListener(), this);

    }

    public void onDisable() {
        System.out.println("\033[1;36m"+"["+"\033[1;35m"+"CC"+"\033[1;36m"+"]"+"\033[0;35m"+"Crystal Cake is offline"+"\033[0m");

    }

    public static Main getPlugin() {
        return plugin;
    }
}

1 Ответ

0 голосов
/ 17 марта 2020

Пожалуйста, включите код onEnable ().

Я предполагаю, что там есть что-то, что эквивалентно saveDefaultConfig() при запуске плагина. :)

РЕДАКТИРОВАТЬ: Я скопировал ваш код в другой мой плагин. У меня нет проблем. После запуска сервера конфигурация остается в соответствии с назначением. Есть ли сообщения в логах?

...