Bukkit config.yml 更改数据时重置
Bukkit config.yml resets when changing data
我的 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;
}
主要class:
public class Main extends JavaPlugin {
private static Main plugin;
public void onEnable() {
plugin = this;
this.saveDefaultConfig();
System.out.println("3[1;36m"+"["+"3[1;35m"+"CC"+"3[1;36m"+"]"+"3[0;35m"+"Crystal Cake is online"+"3[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("3[1;36m"+"["+"3[1;35m"+"CC"+"3[1;36m"+"]"+"3[0;35m"+"Crystal Cake is offline"+"3[0m");
}
public static Main getPlugin() {
return plugin;
}
}
请包含 onEnable() 代码。
我猜测其中有一些东西在启动插件时相当于 saveDefaultConfig()
。 :)
编辑:我已将您的代码复制到我的另一个插件中。我没有问题。启动服务器后,配置保持原样。日志中有任何消息吗?
我的 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;
}
主要class:
public class Main extends JavaPlugin {
private static Main plugin;
public void onEnable() {
plugin = this;
this.saveDefaultConfig();
System.out.println("3[1;36m"+"["+"3[1;35m"+"CC"+"3[1;36m"+"]"+"3[0;35m"+"Crystal Cake is online"+"3[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("3[1;36m"+"["+"3[1;35m"+"CC"+"3[1;36m"+"]"+"3[0;35m"+"Crystal Cake is offline"+"3[0m");
}
public static Main getPlugin() {
return plugin;
}
}
请包含 onEnable() 代码。
我猜测其中有一些东西在启动插件时相当于 saveDefaultConfig()
。 :)
编辑:我已将您的代码复制到我的另一个插件中。我没有问题。启动服务器后,配置保持原样。日志中有任何消息吗?