qw_
Новичок
- Баллы
- 16
- Имя в Minecraft
- itquietw
Привет.
Делаю проект, который использует две зависимости (кроме Spigot): JDA и свой плагин.
Проблема в том, что если я подключаю свой плагин через Maven, то при обращении к какому-либо методу его класса (к примеру тот же getInstance какого-либо класса), то он возвращает null.
Я бы мог подключить его jar напрямую к проекту, но JDA так подключить нельзя, а мне надо использовать и то и то.
Как решить эту проблему?
Пример класса из подключаемого плагина
Код обращения к подключаемому плагину
Ошибка в консоли
Делаю проект, который использует две зависимости (кроме 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
Код:
[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