Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

Помогите Не создаётся конфиг и не записываются данные

Тема в разделе "Разработка плагинов для новичков", создана пользователем EnderBro3D, 3 окт 2016.

Статус темы:
Закрыта.
  1. Автор темы
    EnderBro3D

    EnderBro3D Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    EnderBro3D
    Спасибо что помогаешь, ещё 1 вопрос, тут всё правильно?
    Код:
        @EventHandler
        public void onJoin(PlayerJoinEvent event) {
            Player p = event.getPlayer();
            String pname = p.getName();
            String GetPlayerIP = p.getAddress().getHostName();
            if(users.getConfigurationSection("users").isConfigurationSection(GetPlayerIP)) {
                if(users.getConfigurationSection("users."+GetPlayerIP).isConfigurationSection("ownerIP")) {
                    String owner = users.getString("users."+GetPlayerIP+".ownerIP");
                    if(owner == pname) {
                        p.sendMessage(">> \u00a7cAntiAcc\u00a7f] \u00a7eТы проверен на мульти акк. Результат = \u00a7aTRUE");
                    } else {
                        String cmd = config.getString("Command");
                        String time = config.getString("Time");
                        String reason = config.getString("DefaultReason");
                        cmd = cmd.replace("<time>", time);
                        cmd = cmd.replace("<reason>", reason);
                        cmd = cmd.replace("<player>", p.getName());
                        executeCommand(p, true, cmd);
                    }
                }
            }
        }
    [DOUBLEPOST=1475500486,1475498263][/DOUBLEPOST]После малых махинаций я запустил плагин, в итоге выдаёт 2 ошибки
    Код:
    [18:07:28 INFO]: [AntiAcc] Enabling AntiAcc v1.0
    [18:07:28 WARN]: [AntiAcc] ╨Ю╤И╨╕╨▒╨║╨░ ╨┐╤А╨╕ ╤Б╨╛╨╖╨┤╨░╨╜╨╕╨╕ ╤Д╨░╨╣╨╗╨░ config.yml
    java.io.IOException: ╨б╨╕╤Б╤В╨╡╨╝╨╡ ╨╜╨╡ ╤Г╨┤╨░╨╡╤В╤Б╤П ╨╜╨░╨╣╤В╨╕ ╤Г╨║╨░╨╖╨░╨╜╨╜╤Л╨╣ ╨┐╤Г╤В╤М
            at java.io.WinNTFileSystem.createFileExclusively(Native Method) ~[?:1.8.0_101]
            at java.io.File.createNewFile(Unknown Source) ~[?:1.8.0_101]
            at ru.EnderBro3D.AntiAcc.MainClass.getConfig(MainClass.java:32) [AntiAcc.jar:?]
            at ru.EnderBro3D.AntiAcc.MainClass.onEnable(MainClass.java:52) [AntiAcc.jar:?]
            at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:292) [spigot.jar:git-Spigot-798f32d-0cd0397]
            at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:340) [spigot.jar:git-Spigot-798f32d-0cd0397]
            at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:405) [spigot.jar:git-Spigot-798f32d-0cd0397]
            at org.bukkit.craftbukkit.v1_9_R2.CraftServer.loadPlugin(CraftServer.java:362) [spigot.jar:git-Spigot-798f32d-0cd0397]
            at org.bukkit.craftbukkit.v1_9_R2.CraftServer.enablePlugins(CraftServer.java:322) [spigot.jar:git-Spigot-798f32d-0cd0397]
            at org.bukkit.craftbukkit.v1_9_R2.CraftServer.reload(CraftServer.java:746) [spigot.jar:git-Spigot-798f32d-0cd0397]
            at org.bukkit.Bukkit.reload(Bukkit.java:539) [spigot.jar:git-Spigot-798f32d-0cd0397]
            at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:25) [spigot.jar:git-Spigot-798f32d-0cd0397]
            at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141) [spigot.jar:git-Spigot-798f32d-0cd0397]
            at org.bukkit.craftbukkit.v1_9_R2.CraftServer.dispatchCommand(CraftServer.java:646) [spigot.jar:git-Spigot-798f32d-0cd0397]
            at org.bukkit.craftbukkit.v1_9_R2.CraftServer.dispatchServerCommand(CraftServer.java:632) [spigot.jar:git-Spigot-798f32d-0cd0397]
            at net.minecraft.server.v1_9_R2.DedicatedServer.aL(DedicatedServer.java:437) [spigot.jar:git-Spigot-798f32d-0cd0397]
            at net.minecraft.server.v1_9_R2.DedicatedServer.D(DedicatedServer.java:400) [spigot.jar:git-Spigot-798f32d-0cd0397]
            at net.minecraft.server.v1_9_R2.MinecraftServer.C(MinecraftServer.java:665) [spigot.jar:git-Spigot-798f32d-0cd0397]
            at net.minecraft.server.v1_9_R2.MinecraftServer.run(MinecraftServer.java:564) [spigot.jar:git-Spigot-798f32d-0cd0397]
            at java.lang.Thread.run(Unknown Source) [?:1.8.0_101]
    [18:07:28 WARN]: [AntiAcc] ╨Ю╤И╨╕╨▒╨║╨░ ╨┐╤А╨╕ ╤Б╨╛╨╖╨┤╨░╨╜╨╕╨╕ ╤Д╨░╨╣╨╗╨░ users.yml
    java.io.IOException: ╨б╨╕╤Б╤В╨╡╨╝╨╡ ╨╜╨╡ ╤Г╨┤╨░╨╡╤В╤Б╤П ╨╜╨░╨╣╤В╨╕ ╤Г╨║╨░╨╖╨░╨╜╨╜╤Л╨╣ ╨┐╤Г╤В╤М
            at java.io.WinNTFileSystem.createFileExclusively(Native Method) ~[?:1.8.0_101]
            at java.io.File.createNewFile(Unknown Source) ~[?:1.8.0_101]
            at ru.EnderBro3D.AntiAcc.MainClass.getConfig(MainClass.java:32) [AntiAcc.jar:?]
            at ru.EnderBro3D.AntiAcc.MainClass.onEnable(MainClass.java:53) [AntiAcc.jar:?]
            at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:292) [spigot.jar:git-Spigot-798f32d-0cd0397]
            at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:340) [spigot.jar:git-Spigot-798f32d-0cd0397]
            at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:405) [spigot.jar:git-Spigot-798f32d-0cd0397]
            at org.bukkit.craftbukkit.v1_9_R2.CraftServer.loadPlugin(CraftServer.java:362) [spigot.jar:git-Spigot-798f32d-0cd0397]
            at org.bukkit.craftbukkit.v1_9_R2.CraftServer.enablePlugins(CraftServer.java:322) [spigot.jar:git-Spigot-798f32d-0cd0397]
            at org.bukkit.craftbukkit.v1_9_R2.CraftServer.reload(CraftServer.java:746) [spigot.jar:git-Spigot-798f32d-0cd0397]
            at org.bukkit.Bukkit.reload(Bukkit.java:539) [spigot.jar:git-Spigot-798f32d-0cd0397]
            at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:25) [spigot.jar:git-Spigot-798f32d-0cd0397]
            at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141) [spigot.jar:git-Spigot-798f32d-0cd0397]
            at org.bukkit.craftbukkit.v1_9_R2.CraftServer.dispatchCommand(CraftServer.java:646) [spigot.jar:git-Spigot-798f32d-0cd0397]
            at org.bukkit.craftbukkit.v1_9_R2.CraftServer.dispatchServerCommand(CraftServer.java:632) [spigot.jar:git-Spigot-798f32d-0cd0397]
            at net.minecraft.server.v1_9_R2.DedicatedServer.aL(DedicatedServer.java:437) [spigot.jar:git-Spigot-798f32d-0cd0397]
            at net.minecraft.server.v1_9_R2.DedicatedServer.D(DedicatedServer.java:400) [spigot.jar:git-Spigot-798f32d-0cd0397]
            at net.minecraft.server.v1_9_R2.MinecraftServer.C(MinecraftServer.java:665) [spigot.jar:git-Spigot-798f32d-0cd0397]
            at net.minecraft.server.v1_9_R2.MinecraftServer.run(MinecraftServer.java:564) [spigot.jar:git-Spigot-798f32d-0cd0397]
            at java.lang.Thread.run(Unknown Source) [?:1.8.0_101]
    Что написано на строках:
    32 - file.createNewFile();
    52 - YamlConfiguration config = getConfig(this, "config.yml");
    53 - YamlConfiguration users = getConfig(this, "users.yml");
     
  2. Хостинг MineCraft
    <
  3. Exception_Prototype

    Exception_Prototype Активный участник Пользователь

    Баллы:
    46
  4. Dereku

    Dereku Старожил

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Ты че несёшь?
    Код:
    package ru.EnderBro3D.AntiAcc;
    
    import java.io.File;
    import java.io.IOException;
    import java.util.logging.Level;
    
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.configuration.file.YamlConfiguration;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.PlayerJoinEvent;
    import org.bukkit.plugin.java.JavaPlugin;
    
    
    public class MainClass extends JavaPlugin implements Listener {
    
        //Configuration
        public YamlConfiguration users;
        public YamlConfiguration config;
    
        public static YamlConfiguration getConfig(JavaPlugin plugin, String configName) {
            File file = new File(plugin.getDataFolder(), configName);
            if (file.isDirectory()) {
                file.delete();
            }
            if (!file.exists()) {
                try {
                    file.getParentFile().mkdirs();
                    file.createNewFile();
                } catch (IOException ex) {
                    plugin.getLogger().log(Level.WARNING, "Ошибка при создании файла " + configName, ex);
                }
                return new YamlConfiguration();
            }
            return YamlConfiguration.loadConfiguration(file);
        }
    
        @Override
        public void onEnable() {
            Bukkit.getServer().getPluginManager().registerEvents(this, this);
            YamlConfiguration config = getConfig(this, "cache.yml");
            YamlConfiguration users = getConfig(this, "users.yml");
        }
    
        @Override
        public void onDisable() {
            try {
                users.save("users.yml");
                config.save("config.yml");
           } catch (IOException ex) {
                this.getLogger(Level.WARNING, "Ошибка при сохранении конфигов", ex);
           }
        }
    
        private void executeCommand (Player p, boolean console, String cmd) {
            CommandSender sender = console ? getServer().getConsoleSender() : p;
            getServer().dispatchCommand(sender, ChatColor.translateAlternateColorCodes('&', cmd.replaceAll("%player%", p.getName())));
        }
    
        @EventHandler
        public void onJoin(PlayerJoinEvent event) {
            Player p = event.getPlayer();
            String pname = p.getName();
            String GetPlayerIP = p.getAddress().getHostName();
            if(users.getConfigurationSection("users").isConfigurationSection(GetPlayerIP)) {
                if(users.getConfigurationSection("users."+GetPlayerIP).isConfigurationSection("ownerIP")) {
                    String owner = users.getString("users."+GetPlayerIP+".ownerIP");
                    if(owner.equalsIgnoreCase(pname)) {
                        p.sendMessage(">> \u00a7cAntiAcc\u00a7f] \u00a7eТы проверен на мульти акк. Результат = \u00a7aTRUE");
                    } else {
                        String cmd = config.getString("Command");
                        String time = config.getString("Time");
                        String reason = config.getString("DefaultReason");
                        cmd = cmd.replace("<time>", time);
                        cmd = cmd.replace("<reason>", reason);
                        cmd = cmd.replace("<player>", p.getName());
                        executeCommand(p, true, cmd);
                    }
                }
            }
        }
        @Override
        public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
                if(args.length < 2) {
                    sender.sendMessage("<<<\u00a73AUTHOR: ENDERBRO3D\u00a7f>>>");
                    sender.sendMessage(">\u00a7c/antiacc protect <\u00a7fenable/disable/status\u00a7c> \u00a7f- \u00a7eвключить/отключить/узнать статус защиты");
                    return true;
                }
                if(args[0].equalsIgnoreCase("protect")) {
                    if(args[1].equalsIgnoreCase("enable")) {
                        config.set("Enabled", true);
                        reloadConfig();
                        return true;
                    }
                    if(args[1].equalsIgnoreCase("disable")) {
                        config.set("Enabled", false);
                        reloadConfig();
                        return true;
                    }
                    if(args[1].equalsIgnoreCase("status")) {
                        boolean status = config.getBoolean("Enabled");
                        String StatusStr = "\u00a7" + (status ? "aВключена" : "cВыключена");
                        sender.sendMessage(">> \u00a7eЗащита " + StatusStr);
                    }
                }
            return true;
        }
    }
    Читай подсказки IDE, блджад.
     
    Последнее редактирование: 3 окт 2016
  5. andreispas

    andreispas Активный участник Пользователь

    Баллы:
    78
    Skype:
    An.spas98
    Имя в Minecraft:
    cameronh16
    Фигню сказал
     
  6. xDark

    xDark Активный участник Пользователь

    Баллы:
    96
    Skype:
    ailyashevich
    Имя в Minecraft:
    xDark
    wtf
    Код:
     ChatColor.translateAlternateColorCodes('&', cmd.replaceAll("%player%", p.getName())));
     
  7. Автор темы
    EnderBro3D

    EnderBro3D Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    EnderBro3D
    Я списал это =)
    http://rubukkit.org/threads/vypolnenie-komandy-iz-plagina.31954/[DOUBLEPOST=1475503058,1475502930][/DOUBLEPOST]
    Где ты научился делать плагины? Можешь сказать где/у кого?
     
    Последнее редактирование: 3 окт 2016
  8. xDark

    xDark Активный участник Пользователь

    Баллы:
    96
    Skype:
    ailyashevich
    Имя в Minecraft:
    xDark
  9. Автор темы
    EnderBro3D

    EnderBro3D Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    EnderBro3D
    Так, перейдём к теме, после того как скомпилировал всё у меня файлы сохраняются пустые. В чём дело?
    [​IMG]
     
  10. xDark

    xDark Активный участник Пользователь

    Баллы:
    96
    Skype:
    ailyashevich
    Имя в Minecraft:
    xDark
    а ты че думал, ты ж новый файл создаешь, пустой.
     
  11. Автор темы
    EnderBro3D

    EnderBro3D Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    EnderBro3D
    ММММ, а как создавать не пустой плагин? С конфигами имею дело первый раз xD
     
  12. xDark

    xDark Активный участник Пользователь

    Баллы:
    96
    Skype:
    ailyashevich
    Имя в Minecraft:
    xDark
    try (InputStream i = this.getClass().getClassLoader().getResourceAsStream("name.yml") {
    FileUtils.copyInputStreamToFile(file, i);
    } catch (IOException e) {
    // copy failed
    }
    или
    this.saveResource
     
  13. Автор темы
    EnderBro3D

    EnderBro3D Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    EnderBro3D
    И куда это вставлять? У меня мозги не варят почему-то xD
     
  14. xDark

    xDark Активный участник Пользователь

    Баллы:
    96
    Skype:
    ailyashevich
    Имя в Minecraft:
    xDark
    .... в onEnable вместо
    file.createNewFile();
     
  15. Автор темы
    EnderBro3D

    EnderBro3D Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    EnderBro3D
    В copyInputStreamToFile(file, i); Вывело ошибку, исправление было одно и я его применил
    Получилось copyInputStreamToFile(i, file); , так должно быть или IDE что-то путает?
     
  16. Dereku

    Dereku Старожил

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Дома.
    У гугла и гитхаба.
     
  17. _MediaNik_

    _MediaNik_ Активный участник Пользователь

    Баллы:
    46
    Skype:
    Medianik5
    Имя в Minecraft:
    _MediaNik_
    Фу фу фу. Просто saveConfig()
     
  18. Derik

    Derik Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Derik
    Просто saveConfig() не пайдет. Это надо челу внести определенные данные и их сохранить.
    Методом. getConfig().saveConfig();
    Если я вызываю метод getDefayltConfig();
    То конфиг уже написаный, мне остаеться его прочитать.
     
  19. Dereku

    Dereku Старожил

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Фу фу фу. saveDefaultConfig().
     
  20. _MediaNik_

    _MediaNik_ Активный участник Пользователь

    Баллы:
    46
    Skype:
    Medianik5
    Имя в Minecraft:
    _MediaNik_
    Ска. Точку поставил..
     
  21. Derik

    Derik Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Derik
    YMLConfiguration user;

    user.saveConfig();
     
Статус темы:
Закрыта.

Поделиться этой страницей