Помогите Получение кастомного конфига из другого плагина

_MasterCapeXD_

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
_MasterCapeXD_
Вот, решил попробовать создать плагин, который назвал ServerBridge. Он при входе нового игрока создает новый файл игрока и устанавливает значения. Я создал метод, с типом возвращаемых данных - FileConfiguration. Так вот. Потом я его добавляю в java build pass другого плагина, в нем создал метод в отдельном классе, который обрабатывает разную информацию, в том числе и инфу из ServerBridge. Потом этот метод я вызываю в PlayerLoginEvent. И когда игрок логинится, у меня ошибка NullPointerException. Понятно, что информацию один плагин из плагина ServerBridge не получает, в этом и ошибка, но что тут не так? Надеюсь на Вашу помощь.

Немного кода чтобы вы поняли что это я сейчас настрочил:
ServerBridge plugin | Class: ServerBridge.java
PHP:
public class ServerBridge extends JavaPlugin implements Listener
{
    public File userdata;
    public FileConfiguration users;
   
    private UsersYAML uyaml;
   
    public void onEnable()
    {
        this.getLogger().info("ServerBridge >> ENABLED!");
        this.saveDefaultConfig();
    }
   
    public FileConfiguration getPlayerInfoByName(String name)
    {
        File newuserdata = new File("plugins" + File.separator + "ServerBridge" + File.separator + "userdata" + File.separator + name + ".yml");
        FileConfiguration newusers = YamlConfiguration.loadConfiguration(newuserdata);
        return newusers;
    }
   
    @EventHandler
    public void on(PlayerJoinEvent e)
    {
        uyaml.load(e.getPlayer().getName());
    }
}

ServerBridge plugin | Class: UsersYAML.java
PHP:
private ServerBridge plugin;
   
    public UsersYAML(ServerBridge plugin)
    {
        this.plugin = plugin;
    }
   
    public void load(String name)
    {
        plugin.userdata = new File("plugins" + File.separator + "ServerBridge" + File.separator + "userdata" + File.separator + name + ".yml");
        plugin.users = YamlConfiguration.loadConfiguration(plugin.userdata);
        if(!plugin.userdata.exists())
        {
            try
            {
                plugin.userdata.createNewFile();
            } catch (IOException exc)
            {
                exc.printStackTrace();
            }
           
            plugin.users.set("name", name);
            plugin.users.set("is-banned", false);
           
            try
            {
                plugin.users.save(plugin.userdata);
            } catch (IOException exc)
            {
                exc.printStackTrace();
            }
        } else return;
    }

Получатель инфы из ServerBridge | Class: BanManager.java

PHP:
private ServerBridge bridge;
   
@EventHandler
public void on(PlayerLoginEvent e)
{
    if(bridge.getPlayerInfoByName(e.getPlayer.getName()).getBoolean("is-banned"))
        {
//DONT LOGIN
                e.disallow();
        }
}

PS: Не все копировал из кода, могут быть ошибки.
PS: Получаю разную инфу, показал пример.
PS: Прошу не писать ответы не по теме, особенно ОРАТЬ с кода. От Вашего ОРУ ничего не изменится, а если Вам что-то не нравится, приведите аргументы и посоветуйте, как лучше и почему. Ору никому не надо.

Спасибо за прочтение, заранее спасибо за помощь
 
Ты прав, одного ора тут мало. 😁.
Век живи, век учись. Мне сейчас смешно смотреть на свои старые вопросы, но через полгода будет смешно за те, которые я создал сейчас. И так будет еще год минимум. Но на ошибках учатся, по-этому я не понимаю, почему здесь ОРАТЬ. Все когда-то проходили тоже самое, в каждого по-своему. Я не отрицаю того, что я многого еще не знаю, но научусь же. Вот прямо сейчас я уже получил дополнительную информацию, и на практике это хорошо запомню.
 
Назад
Верх