Помогите Конфиг value.value.value

  • Автор темы Автор темы SashaX2
  • Дата начала Дата начала

SashaX2

Участник
Пользователь
Баллы
36
Имя в Minecraft
NOTXSK
Как можно сделать что то типа этого

upload_2018-8-12_18-26-33.png

- Подскажите как сделать такое и что-бы его можно было изменять, я пытался сам но у меня не получалось.

upload_2018-8-12_18-28-59.png

upload_2018-8-12_18-29-46.png
 

Вложения

  • upload_2018-8-12_18-26-7.png
    upload_2018-8-12_18-26-7.png
    5,4 КБ · Просмотры: 2
  • upload_2018-8-12_18-26-24.png
    upload_2018-8-12_18-26-24.png
    5,4 КБ · Просмотры: 2
А лучше как достать и отправить игроку весь список
 
Хм ошибка при релоуде если уже есть строки
```
[19:05:19 ERROR]: Cannot load plugins\plugin\data.yml
org.bukkit.configuration.InvalidConfigurationException: could not determine a constructor for the tag tag:yaml.org,2002:java.net.InetSocketAddress
in 'string', line 2, column 7:
ip: !!java.net.InetSocketAddress {}
^

at org.bukkit.configuration.file.YamlConfiguration.loadFromString(YamlConfiguration.java:55) ~[spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
at org.bukkit.configuration.file.FileConfiguration.load(FileConfiguration.java:162) ~[spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
at org.bukkit.configuration.file.FileConfiguration.load(FileConfiguration.java:130) ~[spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
at org.bukkit.configuration.file.YamlConfiguration.loadConfiguration(YamlConfiguration.java:178) [spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
at plugin.Main.onEnable(Main.java:30) [Chorus-Virus.jar:?]
at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:264) [spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:337) [spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:403) [spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
at org.bukkit.craftbukkit.v1_12_R1.CraftServer.enablePlugin(CraftServer.java:382) [spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
at org.bukkit.craftbukkit.v1_12_R1.CraftServer.enablePlugins(CraftServer.java:331) [spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
at org.bukkit.craftbukkit.v1_12_R1.CraftServer.reload(CraftServer.java:753) [spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
at org.bukkit.Bukkit.reload(Bukkit.java:525) [spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:27) [spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141) [spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
at org.bukkit.craftbukkit.v1_12_R1.CraftServer.dispatchCommand(CraftServer.java:649) [spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
at org.bukkit.craftbukkit.v1_12_R1.CraftServer.dispatchServerCommand(CraftServer.java:635) [spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
at net.minecraft.server.v1_12_R1.DedicatedServer.aP(DedicatedServer.java:444) [spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
at net.minecraft.server.v1_12_R1.DedicatedServer.D(DedicatedServer.java:407) [spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
at net.minecraft.server.v1_12_R1.MinecraftServer.C(MinecraftServer.java:679) [spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
at net.minecraft.server.v1_12_R1.MinecraftServer.run(MinecraftServer.java:577) [spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_171]
Caused by: org.yaml.snakeyaml.constructor.ConstructorException: could not determine a constructor for the tag tag:yaml.org,2002:java.net.InetSocketAddress
in 'string', line 2, column 7:
ip: !!java.net.InetSocketAddress {}
^

at org.yaml.snakeyaml.constructor.SafeConstructor$ConstructUndefined.construct(SafeConstructor.java:539) ~[spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
at org.yaml.snakeyaml.constructor.BaseConstructor.constructObjectNoCheck(BaseConstructor.java:207) ~[spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
at org.yaml.snakeyaml.constructor.BaseConstructor.constructObject(BaseConstructor.java:196) ~[spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
at org.yaml.snakeyaml.constructor.BaseConstructor.constructMapping2ndStep(BaseConstructor.java:462) ~[spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
at org.yaml.snakeyaml.constructor.SafeConstructor.constructMapping2ndStep(SafeConstructor.java:183) ~[spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
at org.yaml.snakeyaml.constructor.BaseConstructor.constructMapping(BaseConstructor.java:443) ~[spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
at org.yaml.snakeyaml.constructor.SafeConstructor$ConstructYamlMap.construct(SafeConstructor.java:519) ~[spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
at org.bukkit.configuration.file.YamlConstructor$ConstructCustomObject.construct(YamlConstructor.java:26) ~[spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
at org.yaml.snakeyaml.constructor.BaseConstructor.constructObjectNoCheck(BaseConstructor.java:207) ~[spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
at org.yaml.snakeyaml.constructor.BaseConstructor.constructObject(BaseConstructor.java:196) ~[spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
at org.yaml.snakeyaml.constructor.BaseConstructor.constructMapping2ndStep(BaseConstructor.java:462) ~[spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
at org.yaml.snakeyaml.constructor.SafeConstructor.constructMapping2ndStep(SafeConstructor.java:183) ~[spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
at org.yaml.snakeyaml.constructor.BaseConstructor.constructMapping(BaseConstructor.java:443) ~[spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
at org.yaml.snakeyaml.constructor.SafeConstructor$ConstructYamlMap.construct(SafeConstructor.java:519) ~[spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
at org.bukkit.configuration.file.YamlConstructor$ConstructCustomObject.construct(YamlConstructor.java:26) ~[spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
at org.yaml.snakeyaml.constructor.BaseConstructor.constructObjectNoCheck(BaseConstructor.java:207) ~[spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
at org.yaml.snakeyaml.constructor.BaseConstructor.constructObject(BaseConstructor.java:196) ~[spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
at org.yaml.snakeyaml.constructor.BaseConstructor.constructDocument(BaseConstructor.java:161) ~[spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
at org.yaml.snakeyaml.constructor.BaseConstructor.getSingleData(BaseConstructor.java:147) ~[spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
at org.yaml.snakeyaml.Yaml.loadFromReader(Yaml.java:524) ~[spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
at org.yaml.snakeyaml.Yaml.load(Yaml.java:437) ~[spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
at org.bukkit.configuration.file.YamlConfiguration.loadFromString(YamlConfiguration.java:53) ~[spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
... 20 more
[19:05:19 INFO]: Server permissions file permissions.yml is empty, ignoring it
[19:05:19 INFO]: CONSOLE: Reload complete.```
 
А лучше как достать и отправить игроку весь список
Ващет в твоём не надо лишний раз париться, поэтому прям так получай и отправляй.
И да, лучше используй конфиг для каждого игрока отдельно.
https://github.com/alexandrage/Example/blob/master/src/Example/sfg/Configs.java
https://github.com/alexandrage/Example/blob/master/src/Example/sfg/CustomConfig.java
Автор @alexandrage
 
Я не много привёл в порядок [ИМХО], не понимаю, что у тебя за reload.
Крч попробуй так:
PHP:
public final class Main extends JavaPlugin {

    private File configFile = new File(getDataFolder(), "data.yml");
    private FileConfiguration config;

    @Override
    public void onEnable() {
        super.onEnable();

        if (!this.configFile.exists()) {
            try {
                this.configFile.createNewFile();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

        this.config = YamlConfiguration.loadConfiguration(this.configFile);

        //saveData(); - НЕ НАДО, Конфиг сам сохранится при выключении сервера.

        Bukkit.getPluginManager().registerEvents(new EventsHandler(this), this);

    }

    void saveData() {
        try {
            this.config.save(this.configFile);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public FileConfiguration getDataConfig() {
        return config;
    }

    @Override
    public void onDisable() {
        super.onDisable();
        saveData();
    }

}

public final class EventsHandler implements Listener {

    private final Main main;

    public EventsHandler(Main main) {
        this.main = main;
    }

    @EventHandler
    public void onPlayerJoin(PlayerJoinEvent event) {

        final FileConfiguration config = this.main.getDataConfig();
        final Player player = event.getPlayer();
        final UUID uuid = player.getUniqueId();
        final String name = player.getName();

        if (!config.contains(name)) {
            config.set(name + ".ip", player.getAddress().getAddress()); //UPD
            config.set(name + ".uuid", uuid);
            player.sendMessage("Your uuid: " + uuid);
            //main.SaveData(); - НЕ НАДО, Конфиг сам сохранится при выключении сервера.
        }
     
    }

}
.
 
Последнее редактирование:
Жалуется на знаки восклицания походу.
Короче, так делать нельзя:
PHP:
config.set(name + ".ip", player.getAddress());
Этим ты пытаешься объект сокета в конфиг пихнуть.

Убери сохранение IP в конфиг и просто выводи через sout в консоль player.getAddress(), там будет объект сокета возвращаться, тебе из него вроде надо сделать ещё раз getAddress(), т.е. player.getAddress().getAddress(); чтобы получить корректный IP. Вот как только получишь - тогда и сохраняй в конфиг.

На баките при тестировании плагинов(не всегда) сервер лучше перезапускать, а ещё лучше научиться пользоваться дебагом. Поищи в разделе, где то тема была с инструкцией. Там типо запуск сервера из IDE и рефрешить изменённые классы плагина прям в памяти уже запущенного сервера с этим плагином. Очень удобно и перезапускать ничего не придётся. Но reload работает криво.
 
Код:
        ConfigurationSection nickname = this.getConfig().getConfigurationSection("nickname");
        nickname.set("ip", "localhost");
        nickname.set("port", 100);
        nickname.set("uuid", "uuid");
        nickname.getString("ip");
        nickname.getInt("port");
        nickname.getString("uuid");
 
Почему когда я изменяю конфиг он возращает назад на прежнее значение ?
 
Почему когда я изменяю конфиг он возращает назад на прежнее значение ?
Потому, что логика в коде не предусмотрена, взяв при старте сервера все данные в ОЗУ и возвращая их при завершении, парсив новый поверх существующего файла конфига.
Останови сервер и тогда редактируй.
 
Назад
Верх