JavaPlugin, Bukkit | События не прослушаются

Такая проблема, события не прослушиваются.

Всё как надо зарегистрировал, всё проверил, никаких ошибок не выдаёт ни среда разработки Eclipse, ни Лог Сервера. Ещё чуть ниже есть команда, вот она работает исправно.

package ru.nikkusya;

import java.io.File;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.List;
import java.util.logging.Logger;

import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Item;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.PlayerDeathEvent;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.plugin.java.JavaPlugin;

public class main extends JavaPlugin implements CommandExecutor, Listener {
    Logger log = Logger.getLogger("Minecraft");
    public void onEnable() {
        File config = new File(getDataFolder()+File.separator+"config.yml");
        if(!config.exists()) {
            getConfig().options().copyDefaults(true);
            saveDefaultConfig();
            getServer().getPluginManager().registerEvents(this, this);
        }
    }
    
    @EventHandler
    public void onPlayerJoin(PlayerJoinEvent e) {
        Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "say "+e.getPlayer().getName());
        
        
        String host = getConfig().getString("db.host");
        String name = getConfig().getString("db.name");
        String user = getConfig().getString("db.user");
        String pass = getConfig().getString("db.pass");
        
        try (Connection conn = DriverManager.getConnection("jdbc:mysql://"+host+"/"+name, user, pass)){
            
            Statement statement = conn.createStatement();
            ResultSet resultSet = statement.executeQuery("SELECT count(*) FROM ba_inventories WHERE player = '" + e.getPlayer().getName() + "' LIMIT 1");
            while(resultSet.next()) {
                if(resultSet.getInt(1)==0) {
                    statement.executeUpdate("INSERT INTO ba_inventories (player,artefacts,slots) VALUES ('"+e.getPlayer().getName()+"','',1)");
                }
            }
        } catch (SQLException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
    }
    @SuppressWarnings({ "deprecation", "unchecked" })
    @EventHandler
    public void onPlayerDeath(PlayerDeathEvent event){
        Player p = event.getEntity();
        
        
        Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "say "+event.getEntity().getName());
        
        String host = getConfig().getString("db.host");
        String name = getConfig().getString("db.name");
        String user = getConfig().getString("db.user");
        String pass = getConfig().getString("db.pass");
        
        try (Connection conn = DriverManager.getConnection("jdbc:mysql://"+host+"/"+name, user, pass)){
            
            Statement statement = conn.createStatement();
            
            ResultSet resultSet = statement.executeQuery("SELECT * FROM ba_inventories WHERE player = '" + p.getName() + "' LIMIT 1");
            while(resultSet.next()){
                String rawInv = resultSet.getNString("artefacts");
                String[] Inv = rawInv.split(", ");
                for(String item : Inv) {
                    Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "say "+item);
                    String itemRaw = getConfig().getString("artefacts."+item+".item");
                    Integer itemID = Integer.parseInt(itemRaw.substring(0, itemRaw.indexOf(":"))); // Всё до двоеточия
                    short itemMeta = Short.parseShort(itemRaw.substring(itemRaw.indexOf(":") + 1));
                    
                    ItemStack FinallyItem = new ItemStack(itemID, 1, itemMeta);
                    ItemMeta im = FinallyItem.getItemMeta();
                    im.setDisplayName(new ColorCodes().formate(getConfig().getString("artefacts."+item+".name")));
                    im.setLore(new ColorCodes().ListFormate((List<String>) getConfig().getList("artefacts."+item+".lore")));
                    FinallyItem.setItemMeta(im);
                    Item drop = p.getLocation().getWorld().dropItem(p.getLocation(),FinallyItem);
                    drop.setPickupDelay((int)1);
                }
                
            }
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    
    @SuppressWarnings({ "deprecation", "unchecked" })
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
        if(command.getName().equalsIgnoreCase("artefacts")){
            if ((sender instanceof Player)) {
                Player player = (Player) sender;
                
                Inventory arts = Bukkit.createInventory(player, 9, "Пояс артефактов");
                
                String host = getConfig().getString("db.host");
                String name = getConfig().getString("db.name");
                String user = getConfig().getString("db.user");
                String pass = getConfig().getString("db.pass");
                
                
                try (Connection conn = DriverManager.getConnection("jdbc:mysql://"+host+"/"+name, user, pass)){
                    
                    Statement statement = conn.createStatement();
                    
                    ResultSet resultSet = statement.executeQuery("SELECT * FROM ba_inventories WHERE player = '" + player.getName() + "' LIMIT 1");
                    while(resultSet.next()){
                                         
                        String rawInv = resultSet.getNString("artefacts");
                        String[] Inv = rawInv.split(", ");
                        Integer i = 1;
                        for(String item : Inv) {
                            String itemRaw = getConfig().getString("artefacts."+item+".item");
                            Integer itemID = Integer.parseInt(itemRaw.substring(0, itemRaw.indexOf(":"))); // Всё до двоеточия
                            short itemMeta = Short.parseShort(itemRaw.substring(itemRaw.indexOf(":") + 1));
                            
                            ItemStack FinallyItem = new ItemStack(itemID, 1, itemMeta);
                            ItemMeta im = FinallyItem.getItemMeta();
                            im.setDisplayName(new ColorCodes().formate(getConfig().getString("artefacts."+item+".name")));
                            im.setLore(new ColorCodes().ListFormate((List<String>) getConfig().getList("artefacts."+item+".lore")));
                            FinallyItem.setItemMeta(im);
                            
                            
                            
                            arts.addItem(FinallyItem); i++;
                        }
                        
                    }
                    
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                player.openInventory(arts);
                 
                return true;
            } 
            if(command.getName().equalsIgnoreCase("test")) {
                Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "say Testing is successfully");
                return true;
            }
        }
        return false;
    }
}

Ответы (0 шт):