- Баллы
- 66
Здравствуйте! При запуске плагина выводит ошибку:
Главный класс:
Класс с ошибкой:
Помогите пожалуйста
Код:
Could not load 'plugins\CoalEssentials.jar' in folder 'plugins'
org.bukkit.plugin.InvalidPluginException: java.lang.NullPointerException: Cannot invoke "mc.coalessentials.ru.coalessentials.CoalEssentials.getLogger()" because the return value of "mc.coalessentials.ru.coalessentials.CoalEssentials.getInstance()" is null
at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:157) ~[patched_1.16.5.jar:git-Purpur-1171]
at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:414) ~[patched_1.16.5.jar:git-Purpur-1171]
at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:322) ~[patched_1.16.5.jar:git-Purpur-1171]
at org.bukkit.craftbukkit.v1_16_R3.CraftServer.loadPlugins(CraftServer.java:393) ~[patched_1.16.5.jar:git-Purpur-1171]
at net.minecraft.server.v1_16_R3.DedicatedServer.init(DedicatedServer.java:279) ~[patched_1.16.5.jar:git-Purpur-1171]
at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:1074) ~[patched_1.16.5.jar:git-Purpur-1171]
at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$a$0(MinecraftServer.java:293) ~[patched_1.16.5.jar:git-Purpur-1171]
at java.lang.Thread.run(Thread.java:1623) [?:?]
Caused by: java.lang.NullPointerException: Cannot invoke "mc.coalessentials.ru.coalessentials.CoalEssentials.getLogger()" because the return value of "mc.coalessentials.ru.coalessentials.CoalEssentials.getInstance()" is null
at mc.coalessentials.ru.coalessentials.database.SQLConnection.<init>(SQLConnection.java:14) ~[?:?]
at mc.coalessentials.ru.coalessentials.CoalEssentials.<init>(CoalEssentials.java:23) ~[?:?]
at jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:67) ~[?:?]
at java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500) ~[?:?]
at java.lang.reflect.ReflectAccess.newInstance(ReflectAccess.java:128) ~[?:?]
at jdk.internal.reflect.ReflectionFactory.newInstance(ReflectionFactory.java:304) ~[?:?]
at java.lang.Class.newInstance(Class.java:685) ~[?:?]
at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:94) ~[patched_1.16.5.jar:git-Purpur-1171]
at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:153) ~[patched_1.16.5.jar:git-Purpur-1171]
... 7 more
Главный класс:
Код:
package mc.coalessentials.ru.coalessentials;
import mc.coalessentials.ru.coalessentials.commands.FlyCommand;
import mc.coalessentials.ru.coalessentials.database.SQLConnection;
import mc.coalessentials.ru.coalessentials.events.PlayerJoinEvent;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Objects;
import java.util.logging.Logger;
public final class CoalEssentials extends JavaPlugin {
private static CoalEssentials instance;
private final PluginManager pluginManager = getServer().getPluginManager();
private final Logger logger = getLogger();
final SQLConnection sql = new SQLConnection();
Connection database = null;
@Override
public void onEnable() {
this.saveDefaultConfig();
instance = this;
logger.info("CoalEssentials запущен");
logger.info("Разработчик ILeZzoV");
logger.info("Идет подключение ку MySQL");
database = sql.Connect();
Objects.requireNonNull(getCommand("fly")).setExecutor(new FlyCommand());
pluginManager.registerEvents(new PlayerJoinEvent(), this);
}
@Override
public void onDisable() {
logger.info("CoalEssentials выключен");
}
public static CoalEssentials getInstance() {
return instance;
}
public void send_message(CommandSender player, String message){
player.sendMessage(ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(getInstance().getConfig().getString("prefix"))) + ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(getInstance().getConfig().getString(message))));
}
public Connection getDatabase(){
return database;
}
public Statement getStatement() throws SQLException {
return getDatabase().createStatement();
}
public void insertSQL (Player player) throws SQLException{
getStatement().execute("INSERT INTO CoalEssentials VALUES (" + player.getName() + "," + player.getUniqueId().toString() + "," + player.getAllowFlight() + "," + false + ")");
getDatabase().commit();
}
}
Класс с ошибкой:
Код:
package mc.coalessentials.ru.coalessentials.database;
import mc.coalessentials.ru.coalessentials.CoalEssentials;
import org.bukkit.Bukkit;
import org.bukkit.configuration.file.FileConfiguration;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Objects;
import java.util.logging.Logger;
public class SQLConnection {
Logger logger = CoalEssentials.getInstance().getLogger();
FileConfiguration config = CoalEssentials.getInstance().getConfig();
public Connection Connect() {
final String host = config.getString("mysql.host");
final String port = config.getString("mysql.port");
final String password = config.getString("mysql.password");
final String user = config.getString("mysql.user");
final String database = config.getString("mysql.database");
final String url = "jdbc:mysql://" + host + ":" + port + "/" + database + "?useSSL=false&serverTimezone=UTC";
Connection connection = null;
try {
connection = DriverManager.getConnection(url, user, password);
connection.commit();
logger.info("Соединение с дата-базой установлено");
Statement statement = connection.createStatement();
statement.execute("CREATE TABLE IF NOT EXISTS CoalEssentials (name TEXT, uuid TEXT, flymode BOOL, godmode BOOL)");
connection.commit();
} catch (SQLException e) {
Bukkit.getPluginManager().disablePlugin(Objects.requireNonNull(CoalEssentials.getInstance().getServer().getPluginManager().getPlugin("CoalEssentials")));
logger.info("Возникла ошибка при подключении к дата-базе: " + e);
}
return connection;
}
}
Помогите пожалуйста