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

Помогите Плагин-зависимость через Maven

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

  1. Автор темы
    qw_

    qw_ Новичок

    Баллы:
    16
    Имя в Minecraft:
    itquietw
    Привет.
    Делаю проект, который использует две зависимости (кроме Spigot): JDA и свой плагин.
    Проблема в том, что если я подключаю свой плагин через Maven, то при обращении к какому-либо методу его класса (к примеру тот же getInstance какого-либо класса), то он возвращает null.
    Я бы мог подключить его jar напрямую к проекту, но JDA так подключить нельзя, а мне надо использовать и то и то.

    Как решить эту проблему?

    Пример класса из подключаемого плагина
    Код:
    public class DatabaseEditor {
    
        static Connection connection;
        public static DatabaseEditor instance;
    
        public DatabaseEditor(Connection con) {
            connection = con;
            QChat.getInstance().getLogger().info("DB Connected");
            String query = "CREATE TABLE IF NOT EXISTS 'users' (" +
                    "'username' TEXT NOT NULL UNIQUE, " +
                    "'chat' TEXT NOT NULL " +
                    ")";
            try {
                Statement statement = connection.createStatement();
                statement.executeUpdate(query);
                String query_delete = "DELETE FROM users";
                statement.executeUpdate(query_delete);
                statement.close();
                QChat.getInstance().getLogger().info("DB Table created.");
            } catch (SQLException e) {
                e.printStackTrace();
            }
            instance = this;
        }
    
        public static void selectChat(Player player, Chat chat) {
            String name = player.getName();
            String query = String.format("INSERT INTO users VALUES('%s', '%s')", name, chat.getName());
            String query_delete = String.format("DELETE FROM 'users' WHERE username='%s'", name);
            try {
                Statement statement = connection.createStatement();
                statement.executeUpdate(query_delete);
                statement.executeUpdate(query);
                statement.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    
        public static String getSelectedChat(Player player) {
            String name = player.getName();
            String query = "SELECT chat FROM users WHERE username = '" + name + "'";
            String result = "none";
            try {
                Statement statement = connection.createStatement();
                ResultSet rs = statement.executeQuery(query);
                while(rs.next()) {
                    result = rs.getString("chat");
                }
                statement.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            return result;
        }
    
        public static DatabaseEditor getInstance() {
            return instance;
        }
    
    }
    
    Код обращения к подключаемому плагину
    Код:
    if(DatabaseEditor.getSelectedChat(event.getPlayer()).equals(ChatGlobal.getInstance().getName())) {
    Ошибка в консоли
    Код:
    [16:55:30 ERROR]: Could not pass event AsyncPlayerChatEvent to (название плагина) v1.0                                        java.lang.NullPointerException: Cannot invoke "java.sql.Connection.createStatement()" because "quietw.qchat.Database.DatabaseEditor.connection" is null
     
  2. Хостинг MineCraft
    <

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