Solved NullPointer...

Discussion in 'Plugin Development' started by bigflori, Sep 24, 2018.

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

    bigflori

    Hello! :D
    Can someone help me to fix this error please?
    Thanks!
    (I marked the line)

    Error: (while my name is in the txt file)
    Code:
    [15:15:47 INFO]: BigFlori issued server command: /access add BigFlori
    [15:15:47 ERROR]: null
    org.bukkit.command.CommandException: Unhandled exception executing command 'access' in plugin xyz v1.0.0
            at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[bukkit.jar:git-Spigot-3d850ec-809c399]
            at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141) ~[bukkit.jar:git-Spigot-3d850ec-809c399]
            at org.bukkit.craftbukkit.v1_12_R1.CraftServer.dispatchCommand(CraftServer.java:649) ~[bukkit.jar:git-Spigot-3d850ec-809c399]
            at net.minecraft.server.v1_12_R1.PlayerConnection.handleCommand(PlayerConnection.java:1397) [bukkit.jar:git-Spigot-3d850ec-809c399]
            at net.minecraft.server.v1_12_R1.PlayerConnection.a(PlayerConnection.java:1232) [bukkit.jar:git-Spigot-3d850ec-809c399]
            at net.minecraft.server.v1_12_R1.PacketPlayInChat.a(PacketPlayInChat.java:45) [bukkit.jar:git-Spigot-3d850ec-809c399]
            at net.minecraft.server.v1_12_R1.PacketPlayInChat.a(PacketPlayInChat.java:1) [bukkit.jar:git-Spigot-3d850ec-809c399]
            at net.minecraft.server.v1_12_R1.PlayerConnectionUtils$1.run(SourceFile:13) [bukkit.jar:git-Spigot-3d850ec-809c399]
            at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_161]
            at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_161]
            at net.minecraft.server.v1_12_R1.SystemUtils.a(SourceFile:46) [bukkit.jar:git-Spigot-3d850ec-809c399]
            at net.minecraft.server.v1_12_R1.MinecraftServer.D(MinecraftServer.java:748) [bukkit.jar:git-Spigot-3d850ec-809c399]
            at net.minecraft.server.v1_12_R1.DedicatedServer.D(DedicatedServer.java:406) [bukkit.jar:git-Spigot-3d850ec-809c399]
            at net.minecraft.server.v1_12_R1.MinecraftServer.C(MinecraftServer.java:679) [bukkit.jar:git-Spigot-3d850ec-809c399]
            at net.minecraft.server.v1_12_R1.MinecraftServer.run(MinecraftServer.java:577) [bukkit.jar:git-Spigot-3d850ec-809c399]
            at java.lang.Thread.run(Unknown Source) [?:1.8.0_161]
    Caused by: java.lang.NullPointerException
            at me.bigflori.xyz.commands.Cmdaccess.searchPlayer(Cmdaccess.java:103) ~[?:?]
            at me.bigflori.xyz.commands.Cmdaccess.onCommand(Cmdaccess.java:47) ~[?:?]
            at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[bukkit.jar:git-Spigot-3d850ec-809c399]
            ... 15 more
    [15:15:48 INFO]: BigFlori issued server command: /access remove BigFlori
    [15:15:48 ERROR]: null
    org.bukkit.command.CommandException: Unhandled exception executing command 'access' in plugin xyz v1.0.0
            at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[bukkit.jar:git-Spigot-3d850ec-809c399]
            at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141) ~[bukkit.jar:git-Spigot-3d850ec-809c399]
            at org.bukkit.craftbukkit.v1_12_R1.CraftServer.dispatchCommand(CraftServer.java:649) ~[bukkit.jar:git-Spigot-3d850ec-809c399]
            at net.minecraft.server.v1_12_R1.PlayerConnection.handleCommand(PlayerConnection.java:1397) [bukkit.jar:git-Spigot-3d850ec-809c399]
            at net.minecraft.server.v1_12_R1.PlayerConnection.a(PlayerConnection.java:1232) [bukkit.jar:git-Spigot-3d850ec-809c399]
            at net.minecraft.server.v1_12_R1.PacketPlayInChat.a(PacketPlayInChat.java:45) [bukkit.jar:git-Spigot-3d850ec-809c399]
            at net.minecraft.server.v1_12_R1.PacketPlayInChat.a(PacketPlayInChat.java:1) [bukkit.jar:git-Spigot-3d850ec-809c399]
            at net.minecraft.server.v1_12_R1.PlayerConnectionUtils$1.run(SourceFile:13) [bukkit.jar:git-Spigot-3d850ec-809c399]
            at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_161]
            at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_161]
            at net.minecraft.server.v1_12_R1.SystemUtils.a(SourceFile:46) [bukkit.jar:git-Spigot-3d850ec-809c399]
            at net.minecraft.server.v1_12_R1.MinecraftServer.D(MinecraftServer.java:748) [bukkit.jar:git-Spigot-3d850ec-809c399]
            at net.minecraft.server.v1_12_R1.DedicatedServer.D(DedicatedServer.java:406) [bukkit.jar:git-Spigot-3d850ec-809c399]
            at net.minecraft.server.v1_12_R1.MinecraftServer.C(MinecraftServer.java:679) [bukkit.jar:git-Spigot-3d850ec-809c399]
            at net.minecraft.server.v1_12_R1.MinecraftServer.run(MinecraftServer.java:577) [bukkit.jar:git-Spigot-3d850ec-809c399]
            at java.lang.Thread.run(Unknown Source) [?:1.8.0_161]
    Caused by: java.lang.NullPointerException
            at me.bigflori.xyz.commands.Cmdaccess.searchPlayer(Cmdaccess.java:103) ~[?:?]
            at me.bigflori.xyz.commands.Cmdaccess.onCommand(Cmdaccess.java:67) ~[?:?]
            at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[bukkit.jar:git-Spigot-3d850ec-809c399]
            ... 15 more
    
    Cmdaccess.java:
    Code:
    package me.bigflori.xyz.commands;
    
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.util.ArrayList;
    import java.util.Scanner;
    
    import org.bukkit.Bukkit;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandExecutor;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
    
    import me.bigflori.xyz.Main;
    
    public class Cmdaccess implements CommandExecutor {
     
        @Override
        public boolean onCommand(CommandSender sender, Command cmd, String arg2, String[] args) {
            if(sender instanceof Player) {
                Player p = (Player) sender;
                if(p.isOp()) {
                    if(args.length == 0) {
                        sendHelpMsg(p);
                    }
                    if(args.length == 1) {
                        if(args[0].equalsIgnoreCase("add")) {
                            sendHelpMsg(p);
                            return true;
                        }
                        if(args[0].equalsIgnoreCase("remove")) {
                            sendHelpMsg(p);
                            return true;
                        }
                        if(args[0].equalsIgnoreCase("get")) {
                            p.sendMessage(getAccess().toString());
                            return true;
                        }
                    }
                    if(args.length == 2) {
                        if(args[0].equalsIgnoreCase("add")) {
                            Player tp = Bukkit.getPlayer(args[1]);
                            if(tp == null) {
                                p.sendMessage("§cA megadott játékos nem található!");
                                return true;
                            }
                            if(!searchPlayer(tp)) {
                                giveAccess(tp);
                            } else {
                                p.sendMessage("§cNeked már van engedélyed.");
                                return true;
                            }
                            if(tp == p) {
                                p.sendMessage("§aSikeresen engedélyt adtál magadnak.");
                                return true;
                            } else {
                                p.sendMessage("§aSikeresen engedélyt adtál §c" + tp.getName() + " §anevű játékosnak.");
                                return true;
                            }
                        }
                        if(args[0].equalsIgnoreCase("remove")) {
                            Player tp = Bukkit.getPlayer(args[1]);
                            if(tp == null) {
                                p.sendMessage("§cA megadott játékos nem található!");
                                return true;
                            }
                            if(searchPlayer(tp)) {
                                removeAccess(p);
                            } else {
                                p.sendMessage("§cNeki nem volt engedélye eddig sem.");
                                return true;
                            }
                            if(tp == p) {
                                p.sendMessage("§aSikeresen elvetted az engedélyt magadtól.");
                                return true;
                            } else {
                                p.sendMessage("§aSikeresen elvetted az engedélyt §c" + tp.getName() + " §anevű játékostól.");
                                return true;
                            }
                        }
                    }
                } else {
                    p.sendMessage("§cNincs engedélyed ehhez!");
                }
            }
            return false;
        }
     
        private void sendHelpMsg(Player p) {
            p.sendMessage("§7===============");
            p.sendMessage("§6/access add <játékos név> §7- §eA játékosnak teljes körű hozzáférést ad a pluginhoz.");
            p.sendMessage("§6/access remove <játékos név> §7- §eElveszi a játékostól a hozzáférést.");
            p.sendMessage("§6/access get §7- §eKi listázza az engedélyt kapott játékosokat.");
            p.sendMessage("§7===============");
        }
     
        private boolean searchPlayer(Player p) {
            boolean talalat = false;
            try {
                Scanner sc = new Scanner(new File("plugins/anyad/anyad.txt"));
                String line = null;
                while(sc.hasNextLine()) {
    
                    if(line.trim().equals(p.getName())) { //This line causes the error
    
                        talalat = true;
                    }
                }
                sc.close();
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            }
            return talalat;
        }
     
        private void giveAccess(Player p) {
            Main.getInstance().printlnTxt(p.getName());
        }
     
        private void removeAccess(Player p) {
            Main.getInstance().removeLineFromFile(p.getName());
        }
     
        private ArrayList<String> getAccess() {
            ArrayList<String> temp = new ArrayList<>();
            temp.addAll(Main.getInstance().readTxt());
            return temp;
        }
    }
    
    
     
  2. Offline

    RcExtract

    You should use a fileinputstream and inputstreamreader to read file instead of Scanner.

    line is null.
     
  3. Offline

    bigflori

    Fixed by myself.
     
Thread Status:
Not open for further replies.

Share This Page