Solved NullPointer

Discussion in 'Plugin Development' started by Clybzotik, Feb 17, 2019.

Thread Status:
Not open for further replies.
  1. Offline

    Clybzotik

    Hi, i get NullPointerException in this string:
    Code:
     plugin.Death.replace(killer.getName(), plugin.Death.get(player.getName() + 1)); 
    HashMap Death:
    Code:
     HashMap<String, Integer> Death = new HashMap<String, Integer>(); 
    Constructor:
    Code:
     
        private KitPVP plugin;
        public Handler(KitPVP plugin) {
            this.plugin = plugin;
        }
    
     
  2. Offline

    timtower Administrator Administrator Moderator

  3. I would say there is a mistake with the brackets it should be
    Code:
     [...]player.getName()) + 1);
    Or am i wrong?
     
  4. Offline

    Clybzotik

    I redid the brackets but the error was not corrected, you wrong.
     
  5. Then please post the whole listener
     
  6. Offline

    Clybzotik

    I use player name in hashmap


    Show Spoiler
    Code:
     
    package kpvp.main;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.Statement;
    
    import org.bukkit.ChatColor;
    import org.bukkit.Material;
    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.event.player.PlayerQuitEvent;
    import org.bukkit.event.player.PlayerRespawnEvent;
    import org.bukkit.inventory.ItemStack;
    import org.bukkit.inventory.meta.ItemMeta;
    
    public class Handler implements  Listener{
       
        private KitPVP plugin;
        public Handler(KitPVP plugin) {
            this.plugin = plugin;
        }
        SQLiteManager sqm = new SQLiteManager(plugin);
       
        @EventHandler
        public void join(PlayerJoinEvent e) {
            e.setJoinMessage("");
            final Player player = e.getPlayer();
            final String nick = player.getName();
            sqm.FirstConnectionInsert(nick);
            Connection c = null;
            Statement stmt = null;
            try {
                c = DriverManager.getConnection("jdbc:sqlite:Users.db");
                stmt = c.createStatement();
                ResultSet rs = stmt.executeQuery( "SELECT * FROM USERS WHERE NICK ='" + nick + "';" );
                plugin.Kills.put(nick, rs.getInt("KILLS"));
                plugin.Death.put(nick, rs.getInt("DEATH"));
                plugin.Balance.put(nick, rs.getInt("BALANCE"));
                plugin.Kits.put(nick, rs.getString("KITS"));
                stmt.close();
                c.close();
            } catch ( Exception ee ) {
                 ee.printStackTrace();
            }
            //startItemSet(e.getPlayer());
            return;
        }
        @EventHandler
        public void disconect(PlayerQuitEvent e) {
            e.setQuitMessage("");
            String nick = e.getPlayer().getCustomName();
            sqm.DisconectUpdate(e.getPlayer().getCustomName(), plugin.getKills(nick), plugin.getDeath(nick) , plugin.getBalance(nick));
        }
        @EventHandler
        public void death(PlayerDeathEvent e) {
            e.setDeathMessage("");
            Player player = e.getEntity();
            Player killer = player.getKiller();
            plugin.Death.replace(killer.getCustomName(), plugin.Death.get(player.getCustomName()) + 1);
            if(killer != null && killer != player) {
                plugin.Kills.replace(killer.getCustomName(), plugin.Kills.get(killer.getCustomName() + 1));
                plugin.Balance.replace(killer.getCustomName(), plugin.Balance.get(killer.getCustomName() + 3));
            }
            return;
        }
        @EventHandler
        public void spawn(PlayerRespawnEvent e) {
            startItemSet(e.getPlayer());
            return; 
        }
        public void startItemSet(Player p) {
            final ItemStack kits = new ItemStack(Material.CHEST);
            final ItemMeta kmeta = kits.getItemMeta();
            final ItemStack magaz = new ItemStack(Material.ENDER_CHEST);
            final ItemMeta mmeta = magaz.getItemMeta();
            kmeta.setDisplayName(ChatColor.YELLOW + "" + ChatColor.BOLD + "Ваши наборы");
            kits.setItemMeta(kmeta);
            mmeta.setDisplayName(ChatColor.YELLOW + "" + ChatColor.BOLD + "Магазин наборов");
            magaz.setItemMeta(mmeta);
            p.getInventory().setItem(0, kits);
            p.getInventory().setItem(1, magaz);
            return; 
        }
    
    }
    
     
  7. p.getCustomName might return null. If you work with player names just use p.getName() (or just store the player object)
     
  8. Offline

    Clybzotik

    I try to store player obj and its work, thanks.
    Solved.
     
Thread Status:
Not open for further replies.

Share This Page