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

Статус
Закрыто для дальнейших ответов.
Да, просто лично у меня, когда я не пишу static выдает ошибку
Спасибо что помогаешь, ещё 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);
                }
            }
        }
    }

После малых махинаций я запустил плагин, в итоге выдаёт 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");
 
Вместо private Main instace пиши public static Main instance. Вряд ли это будет хорошей защитой, ибо у многих людей динамический IP, так же это реализовано в AuthMe
Ты че несёшь?
Много тут профессионалов собралось. Я ещё хочу 1 вопрос задать, я сделал ли ошибку в моём плагине?

Смысл плагина: Защитить сервер от мультиакков. P.S Защита плохая но всё-же.
Если в данном коде ошибки?
Java:
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, блджад.
 
Последнее редактирование:
wtf
Код:
 ChatColor.translateAlternateColorCodes('&', cmd.replaceAll("%player%", p.getName())));
 
wtf
Код:
 ChatColor.translateAlternateColorCodes('&', cmd.replaceAll("%player%", p.getName())));
Я списал это =)
http://rubukkit.org/threads/vypolnenie-komandy-iz-plagina.31954/
Ты че несёшь?

Java:
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, блджад.
Где ты научился делать плагины? Можешь сказать где/у кого?
 
Последнее редактирование:
Так, перейдём к теме, после того как скомпилировал всё у меня файлы сохраняются пустые. В чём дело?
h_1475507335_7969192_051de226e6.png
 
ММММ, а как создавать не пустой плагин? С конфигами имею дело первый раз xD
try (InputStream i = this.getClass().getClassLoader().getResourceAsStream("name.yml") {
FileUtils.copyInputStreamToFile(file, i);
} catch (IOException e) {
// copy failed
}
или
this.saveResource
 
try (InputStream i = this.getClass().getClassLoader().getResourceAsStream("name.yml") {
FileUtils.copyInputStreamToFile(file, i);
} catch (IOException e) {
// copy failed
}
или
this.saveResource
И куда это вставлять? У меня мозги не варят почему-то xD
 
.... в onEnable вместо
file.createNewFile();
В copyInputStreamToFile(file, i); Вывело ошибку, исправление было одно и я его применил
Получилось copyInputStreamToFile(i, file); , так должно быть или IDE что-то путает?
 
Просто saveConfig() не пайдет. Это надо челу внести определенные данные и их сохранить.
Методом. getConfig().saveConfig();
Если я вызываю метод getDefayltConfig();
То конфиг уже написаный, мне остаеться его прочитать.
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх