Помогите База данных в YAML

Sirfluffs

Новичок
Пользователь
Баллы
21
Имя в Minecraft
xSirfluffsXx
Здравствуйте! Как сделать базу данных только чтобы имена например записывались в конфиг (пример: users.yml) как в AAC. (/aacban)
 
Вот лови.

PHP:
        //TODO кастомный конфиг.
        CustomConfig cfg = new CustomConfig(null, "users", false);
        //TODO мапа игроков.
        Map<String, String> users = new HashMap<String, String>();
        //TODO читаем записи из конфига и пишем в мап.
        if (cfg.getCfg().get("Ban") != null) {
            MemorySection section = (MemorySection) cfg.getCfg().get("Ban");
            for (String value : section.getKeys(false)) {
                users.put(value, (String) section.get(value));
            }
        }
        //TODO запись игрока в мап.
        users.put("player", "Ban hamer!");
        //TODO получение игрока из мап.
        users.get("player");
        //TODO запись мапы в конфиг.
        cfg.getCfg().set("Ban", users);
        //TODO запись конфига на диск.
        cfg.saveCfg();
CustomConfig не находит upload_2017-12-10_21-39-58.png
 
А как например в 1 HashMap распределить причину, кто забанил и сам ник игрока, как это парсить?
PHP:
        CustomConfig cfg = new CustomConfig(this, "users", false);
        //TODO мапа игроков.
        Map<String, Map<String, String>> users = new HashMap<String, Map<String, String>>();
        //TODO читаем записи из конфига и пишем в мапу.
        if (cfg.getCfg().get("Ban") != null) {
            MemorySection section = (MemorySection) cfg.getCfg().get("Ban");
            for (String user : section.getKeys(false)) {
                Map<String, String> value = new HashMap<String, String>();
                MemorySection section2 = (MemorySection) section.get(user);
                value.put("reason", (String) section2.get("reason"));
                value.put("banned", (String) section2.get("banned"));
                users.put(user, value);
            }
        }
        //TODO запись игрока в мап.
        Map<String, String> value = new HashMap<String, String>();
        value.put("reason", "Ban hamer!");
        value.put("banned", "Admin");
        users.put("player", value);
        //TODO получение игрока из мапы.
        users.get("player"); //Полный мап с reason и banned. Вернет null, значит игрок не в бане.
        //TODO если игрок записан, получаем остальное.
        users.get("player").get("reason"); //reason.
        users.get("player").get("banned"); //banned.
        //TODO запись мапы в конфиг.
        cfg.getCfg().set("Ban", users);
        //TODO запись конфига на диск.
        cfg.saveCfg();
 
Последнее редактирование:
PHP:
        CustomConfig cfg = new CustomConfig(this, "users", false);
        //TODO мапа игроков.
        Map<String, Map<String, String>> users = new HashMap<String, Map<String, String>>();
        //TODO читаем записи из конфига и пишем в мапу.
        if (cfg.getCfg().get("Ban") != null) {
            MemorySection section = (MemorySection) cfg.getCfg().get("Ban");
            for (String user : section.getKeys(false)) {
                Map<String, String> value = new HashMap<String, String>();
                MemorySection section2 = (MemorySection) section.get(user);
                value.put("reason", (String) section2.get("reason"));
                value.put("banned", (String) section2.get("banned"));
                users.put(user, value);
            }
        }
        //TODO запись игрока в мап.
        Map<String, String> value = new HashMap<String, String>();
        value.put("reason", "Ban hamer!");
        value.put("banned", "Admin");
        users.put("player", value);
        //TODO получение игрока из мапы.
        users.get("player"); //Полный мап с reason и banned. Вернет null, значит игрок не в бане.
        //TODO если игрок записан, получаем остальное.
        users.get("player").get("reason"); //reason.
        users.get("player").get("banned"); //banned.
        //TODO запись мапы в конфиг.
        cfg.getCfg().set("Ban", users);
        //TODO запись конфига на диск.
        cfg.saveCfg();
И последний вопрос, как сделать на время баны?
 
И последний вопрос, как сделать на время баны?

Делать BukkitRunnable'ы, по выключению сохранять время истечения бана в конфиг, по включению - загружать и снова их создавать
 
PHP:
        CustomConfig cfg = new CustomConfig(plugin, "users", false);
        //TODO мапа игроков.
        Map<String, Map<String, Object>> users = new HashMap<String, Map<String, Object>>();
        //TODO читаем записи из конфига и пишем в мапу.
        
        if (cfg.getCfg().get("Ban") != null) {
            MemorySection section = (MemorySection) cfg.getCfg().get("Ban");
            for (String user : section.getKeys(false)) {
                Map<String, Object> value = new HashMap<String, Object>();
                MemorySection section2 = (MemorySection) section.get(user);
                value.put("reason", (String) section2.get("reason"));
                value.put("banned", (String) section2.get("banned"));
                value.put("bantime", (Long) section2.get("bantime"));
                value.put("banbefore", (Long) section2.get("banbefore"));
                users.put(user, value);
            }
        }
        
        //TODO запись игрока в мап.
        Map<String, Object> value = new HashMap<String, Object>();
        value.put("reason", "Ban hamer!");
        value.put("banned", "Admin");
        //TODO время бана.
        value.put("bantime", System.currentTimeMillis());
        //TODO время окончания бана.
        value.put("banbefore", System.currentTimeMillis()+5000);
        users.put("player", value);
        //TODO получение игрока из мапы.
        users.get("player");
        //TODO получение reason, banned, bantime, banbefore.
        users.get("player").get("reason");
        users.get("player").get("banned");
        users.get("player").get("bantime");
        users.get("player").get("banbefore");
        
        //TODO запись мапы в конфиг.
        cfg.getCfg().set("Ban", users);
        //TODO запись конфига на диск.
        cfg.saveCfg();
 
PHP:
        CustomConfig cfg = new CustomConfig(plugin, "users", false);
        //TODO мапа игроков.
        Map<String, Map<String, Object>> users = new HashMap<String, Map<String, Object>>();
        //TODO читаем записи из конфига и пишем в мапу.
       
        if (cfg.getCfg().get("Ban") != null) {
            MemorySection section = (MemorySection) cfg.getCfg().get("Ban");
            for (String user : section.getKeys(false)) {
                Map<String, Object> value = new HashMap<String, Object>();
                MemorySection section2 = (MemorySection) section.get(user);
                value.put("reason", (String) section2.get("reason"));
                value.put("banned", (String) section2.get("banned"));
                value.put("bantime", (Long) section2.get("bantime"));
                value.put("banbefore", (Long) section2.get("banbefore"));
                users.put(user, value);
            }
        }
       
        //TODO запись игрока в мап.
        Map<String, Object> value = new HashMap<String, Object>();
        value.put("reason", "Ban hamer!");
        value.put("banned", "Admin");
        //TODO время бана.
        value.put("bantime", System.currentTimeMillis());
        //TODO время окончания бана.
        value.put("banbefore", System.currentTimeMillis()+5000);
        users.put("player", value);
        //TODO получение игрока из мапы.
        users.get("player");
        //TODO получение reason, banned, bantime, banbefore.
        users.get("player").get("reason");
        users.get("player").get("banned");
        users.get("player").get("bantime");
        users.get("player").get("banbefore");
       
        //TODO запись мапы в конфиг.
        cfg.getCfg().set("Ban", users);
        //TODO запись конфига на диск.
        cfg.saveCfg();
Выдаёт вот такую ошибку ☹️
[11:37:07 INFO]: UUID of player xSirfluffsXx is 11fbb560-bd42-3d52-b505-3e700a90e269 [11:37:07 ERROR]: Could not pass event PlayerLoginEvent to ACore vDEV org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:310) ~[spigot-1.8.8.jar:git-Spigot-21fe707-e1ebe52] at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[spigot-1.8.8.jar:git-Spigot-21fe707-e1ebe52] at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502) [spigot-1.8.8.jar:git-Spigot-21fe707-e1ebe52] at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487) [spigot-1.8.8.jar:git-Spigot-21fe707-e1ebe52] at net.minecraft.server.v1_8_R3.PlayerList.attemptLogin(PlayerList.java:456) [spigot-1.8.8.jar:git-Spigot-21fe707-e1ebe52] at protocolsupport.protocol.transformer.handlers.AbstractLoginListener.b(AbstractLoginListener.java:127) [ProtocolSupport.jar:?] at protocolsupport.protocol.transformer.handlers.AbstractLoginListener.c(AbstractLoginListener.java:91) [ProtocolSupport.jar:?] at net.minecraft.server.v1_8_R3.NetworkManager.a(NetworkManager.java:231) [spigot-1.8.8.jar:git-Spigot-21fe707-e1ebe52] at net.minecraft.server.v1_8_R3.ServerConnection.c(ServerConnection.java:148) [spigot-1.8.8.jar:git-Spigot-21fe707-e1ebe52] at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:814) [spigot-1.8.8.jar:git-Spigot-21fe707-e1ebe52] at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:374) [spigot-1.8.8.jar:git-Spigot-21fe707-e1ebe52] at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:654) [spigot-1.8.8.jar:git-Spigot-21fe707-e1ebe52] at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:557) [spigot-1.8.8.jar:git-Spigot-21fe707-e1ebe52] at java.lang.Thread.run(Thread.java:745) [?:1.8.0_112] Caused by: java.lang.NullPointerException at me.prefixmanager.main.core.onLogin(core.java:77) ~[?:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_112] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_112] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_112] at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_112] at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) ~[spigot-1.8.8.jar:git-Spigot-21fe707-e1ebe52] ... 13 more
 
Код:
java.lang.NullPointerException
at me.prefixmanager.main.core.onLogin(core.java:77)
Что на 77 строке?
 
Назад
Верх