Solved Error if target == null

Discussion in 'Plugin Development' started by NickDEV, Jan 19, 2016.

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

    NickDEV

    If the target == null that means if the player is not online it throws an error.

    Code:
    package me.nickdev.trollplus.commands;
    
    import me.nickdev.trollplus.TrollPlus;
    
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.Material;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandExecutor;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
    import org.bukkit.inventory.ItemStack;
    import org.bukkit.inventory.PlayerInventory;
    
    public class DirttrollCommand implements CommandExecutor {
    
        private TrollPlus main;
    
        @SuppressWarnings({ "deprecation" })
        @Override
        public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) {
            if (!(sender.hasPermission("trollplus.dirttroll"))) {
              
                sender.sendMessage(TrollPlus.prefix + TrollPlus.nopermission);
                return true;
              
            }
          
            if (args.length == 0) {
                  
                sender.sendMessage(TrollPlus.prefix + ChatColor.RED + "Wrong syntax. Use: ./dirttroll <player>");
                return true;
                  
            }
          
            if (args.length > 1) {
              
                sender.sendMessage(TrollPlus.prefix + ChatColor.RED + "Wrong syntax. Use: ./dirttroll <player>");
                return true;
              
            }
          
            if (args.length == 1) {
          
                Player target = Bukkit.getPlayer(args[0]);
                PlayerInventory targetI = target.getInventory();
          
                if (!(target.isOnline())) {
              
                    sender.sendMessage(TrollPlus.prefix + ChatColor.RED + TrollPlus.noplayer);
                    return true;
                  
                }
              
                main = TrollPlus.plugin;
              
                sender.sendMessage(TrollPlus.prefix + ChatColor.GRAY + "You have dirttrolled " + ChatColor.GOLD + target.getName() + ChatColor.GRAY + ".");
                targetI.clear();
              
                ItemStack dirt = new ItemStack(Material.DIRT, 1);
                targetI.setItem(0, dirt);
                targetI.setItem(1, dirt);
                targetI.setItem(2, dirt);
                targetI.setItem(3, dirt);
                targetI.setItem(4, dirt);
                targetI.setItem(5, dirt);
                targetI.setItem(6, dirt);
                targetI.setItem(7, dirt);
                targetI.setItem(8, dirt);
                targetI.setItem(9, dirt);
                targetI.setItem(10, dirt);
                targetI.setItem(11, dirt);
                targetI.setItem(12, dirt);
                targetI.setItem(13, dirt);
                targetI.setItem(14, dirt);
                targetI.setItem(15, dirt);
                targetI.setItem(16, dirt);
                targetI.setItem(17, dirt);
                targetI.setItem(18, dirt);
                targetI.setItem(19, dirt);
                targetI.setItem(20, dirt);
                targetI.setItem(21, dirt);
                targetI.setItem(22, dirt);
                targetI.setItem(23, dirt);
                targetI.setItem(24, dirt);
                targetI.setItem(25, dirt);
                targetI.setItem(26, dirt);
                targetI.setItem(27, dirt);
                targetI.setItem(28, dirt);
                targetI.setItem(29, dirt);
                targetI.setItem(30, dirt);
                targetI.setItem(31, dirt);
                targetI.setItem(32, dirt);
                targetI.setItem(33, dirt);
                targetI.setItem(34, dirt);
                targetI.setItem(35, dirt);
              
                if (main.getConfig().getString("enable_dirt_message").equals("true")) {
                  
                    target.sendMessage(ChatColor.GREEN + main.getConfig().getString("dirt_message"));
                    return true;
                  
                } else {
                  
                    return true;
                  
                }
              
            }
          
            return true;
          
        }
    }
    
    Error:
    https://gyazo.com/6239e7cc0ca6a68366b52530a43f7b47
     
  2. Offline

    teej107

    @NickDEV Getting an online player will return a null value if the player isn't online.
     
  3. Just check target != null...
     
  4. Offline

    NickDEV

    @teej107 I tried it with if (target == null) { also

    @BreezerFly I dont think this is going to fix the error.

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
  5. Offline

    teej107

    @NickDEV Maybe you should look at the line where the NPE is occurring.
     
  6. Offline

    NickDEV

  7. Offline

    teej107

    @NickDEV So make sure target isn't null before trying to use something from it
     
  8. Offline

    NickDEV

Thread Status:
Not open for further replies.

Share This Page