- Баллы
- 76
Всем привет!
Третий день всё не могу разобраться с работой с конфигами. Пишу плагин, который объединит в себе функции warp и home, но даже с, казалось бы простым, home не удаётся получить должного результата.
Что я делаю не так? Банально даже команда /sethome не работает. Команда определяется сервером, но не исполняется, даже sendMessage не происходит
Третий день всё не могу разобраться с работой с конфигами. Пишу плагин, который объединит в себе функции warp и home, но даже с, казалось бы простым, home не удаётся получить должного результата.
Код:
public class Main extends JavaPlugin {
//Переменые
public static FileConfiguration config;
public static FileConfiguration homes;
public static FileConfiguration warps;
public static File file;
//Запуск
public void onEnable(){
if (!new File(this.getDataFolder() + File.separator + "config.yml").exists()){
this.saveResource("config.yml",false);
}
Main.config = (FileConfiguration) YamlConfiguration.loadConfiguration(new File(this.getDataFolder() + File.separator + "config.yml"));
if(!new File(this.getDataFolder() + File.separator + "homes.yml").exists()){
this.saveResource("homes.yml", false);
}
Main.file = new File(this.getDataFolder(), "homes.yml");
Main.homes = (FileConfiguration)YamlConfiguration.loadConfiguration(new File(this.getDataFolder() + File.separator + "homes.yml"));
getCommand("sethome").setExecutor(new setHome(this));
}
public static void saveHome (FileConfiguration homes, String name, Location loc){
homes.set(name + ".world", loc.getWorld().getName());
homes.set(name + ".X", loc.getX());
homes.set(name + ".Y", loc.getY());
homes.set(name + ".Z", loc.getZ());
homes.set(name + ".Yaw", loc.getYaw());
homes.set(name + ".Pitch", loc.getPitch());
}
public static Location getHome(String name){
Location loc = new Location(Bukkit.getWorld(homes.getString(name + ".world")),
homes.getDouble(name + ".X"), homes.getDouble(name + ".Y"), homes.getDouble(name + ".Z"), homes.getInt(name + "Yaw"), homes.getInt(name + "Pitch"));
return loc;
}
}
Код:
public class setHome implements CommandExecutor {
private Main plugin;
public setHome (final Main plugin){
this.plugin = plugin;
}
@Override
public boolean onCommand(CommandSender sender, Command cmd, String lbl, String[] args) {
/* if (!(sender instanceof Player)) {
System.out.println("Эта команда только для игроков");
return true;
}*/
if (cmd.getName().equalsIgnoreCase("sethome")){
Player p = (Player) sender;
Main.saveHome(Main.homes, p.getName(), p.getLocation());
p.sendMessage("Дом установлен");
return true;
}
return true;
}
}