A problem with Groupmanager api

Discussion in 'Plugin Development' started by LeonLaiTime, Feb 24, 2019.

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

    LeonLaiTime

    I need this plugin help me to do setgroup
    this is my code
    Code:
    package cc.leon.bukkit.GroupBot;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.Statement;
    
    import org.anjocaido.groupmanager.GroupManager;
    import org.anjocaido.groupmanager.dataholder.OverloadedWorldHolder;
    import org.bukkit.ChatColor;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
    import org.bukkit.plugin.java.JavaPlugin;
    
    public class main extends JavaPlugin{
        Connection conn = null;
       
        public void onEnable() {
            getLogger().info("Plugin --- GroupBot --- Is Enable");
        }
        public void onDisable() {
            getLogger().info("Plugin --- GroupBot --- Is Disable");
        }
       
        public boolean onCommand(CommandSender sender,Command cmd,String cmdlable,String[] args) {
           
            Player p = (Player)sender;
           
            if(cmdlable.equalsIgnoreCase("refresh")){
                String WorldName = p.getWorld().getName();
                p.sendMessage(WorldName);
               
                if(setGroup(p, "Owner")) {
                    p.sendMessage("ok");
                }else {
                    p.sendMessage("something wrong");
                }
               
               
            }else if(cmdlable.equalsIgnoreCase("register")){
                String pname = p.getName(), pusename = args[0], ppasswd = args[1];
                int cafuction = CreateAccount(pusename, pname, ppasswd);
               
                if(cafuction == 1) {
                    p.sendMessage(ChatColor.GREEN + "玩家" + pname + "新增帳號完成 ! !");
                }else if(cafuction == 3){
                    p.sendMessage(ChatColor.RED + "玩家" + pname + "此帳號已被新增過了 ! !");
                }else {
                    p.sendMessage(ChatColor.RED + "玩家" + pname + "新增帳號失敗 ! !");
                }       
            }
            return false;
        }
       
        public int CreateAccount(String pusername, String pname, String password) {
            try {
                Class.forName("com.mysql.jdbc.Driver");
                String datasource = "jdbc:mysql://192.168.1.104/atom_player_db?user=atom_owner&password=leonl334&useSSL=false";
                conn = DriverManager.getConnection(datasource);
                Statement st = conn.createStatement();
                if(Check_repeat(pname)) {
                    st.execute("INSERT INTO `account`(`player_username`, `player_password`, `player_name`, `player_phone`, `player_mail`, `player_rc`, `player_member`) VALUES ('" + pusername + "', sha('"+ password +"') ,'" + pname + "' ,'' ,'' , '' , '');");
                    return 1;
                }else {
                    return 3;
                }
               
            }catch(Exception e)
            {
                return 2;
            }
        }
       
        public boolean Check_repeat(String pname) {
           
            try {
                Class.forName("com.mysql.jdbc.Driver");
                String datasource = "jdbc:mysql://192.168.1.104/atom_player_db?user=atom_owner&password=leonl334&useSSL=false";
                conn = DriverManager.getConnection(datasource);
                Statement st = conn.createStatement();
                st.execute("SELECT * FROM `account` WHERE `player_name` = " + pname + ";");
                ResultSet rs = st.getResultSet();
               
                int num = 0;
                while(rs.next()) {
                    num++;
                }
               
                if(num == 0) {
                    return true;
                }else {
                    return false;
                }
               
            }catch(Exception e)
            {
                return false;
            }
        }
       
        private GroupManager groupManager;
        public boolean setGroup(final Player base, final String group)
        {
            final OverloadedWorldHolder handler = groupManager.getWorldsHolder().getWorldData(base);
            if (handler == null)
            {
                return false;
            }
            handler.getUser(base.getName()).setGroup(handler.getGroup(group));
            return true;
        }
       
    }
    
    and I got the wronging like this

    Code:
    null
    org.bukkit.command.CommandException: Unhandled exception executing command 'refresh' in plugin GroupBot v1.0
            at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[craftbukkit.jar:git-Spigot-518206a-a5b9c7b]
            at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:139) ~[craftbukkit.jar:git-Spigot-518206a-a5b9c7b]
            at org.bukkit.craftbukkit.v1_13_R2.CraftServer.dispatchCommand(CraftServer.java:702) ~[craftbukkit.jar:git-Spigot-518206a-a5b9c7b]
            at net.minecraft.server.v1_13_R2.PlayerConnection.handleCommand(PlayerConnection.java:1641) ~[craftbukkit.jar:git-Spigot-518206a-a5b9c7b]
            at net.minecraft.server.v1_13_R2.PlayerConnection.a(PlayerConnection.java:1476) ~[craftbukkit.jar:git-Spigot-518206a-a5b9c7b]
            at net.minecraft.server.v1_13_R2.PacketPlayInChat.a(PacketPlayInChat.java:45) ~[craftbukkit.jar:git-Spigot-518206a-a5b9c7b]
            at net.minecraft.server.v1_13_R2.PacketPlayInChat.a(PacketPlayInChat.java:1) ~[craftbukkit.jar:git-Spigot-518206a-a5b9c7b]
            at net.minecraft.server.v1_13_R2.PlayerConnectionUtils.a(SourceFile:10) ~[craftbukkit.jar:git-Spigot-518206a-a5b9c7b]
            at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_191]
            at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_191]
            at net.minecraft.server.v1_13_R2.SystemUtils.a(SourceFile:199) [craftbukkit.jar:git-Spigot-518206a-a5b9c7b]
            at net.minecraft.server.v1_13_R2.MinecraftServer.b(MinecraftServer.java:895) [craftbukkit.jar:git-Spigot-518206a-a5b9c7b]
            at net.minecraft.server.v1_13_R2.DedicatedServer.b(DedicatedServer.java:417) [craftbukkit.jar:git-Spigot-518206a-a5b9c7b]
            at net.minecraft.server.v1_13_R2.MinecraftServer.a(MinecraftServer.java:830) [craftbukkit.jar:git-Spigot-518206a-a5b9c7b]
            at net.minecraft.server.v1_13_R2.MinecraftServer.run(MinecraftServer.java:728) [craftbukkit.jar:git-Spigot-518206a-a5b9c7b]
            at java.lang.Thread.run(Unknown Source) [?:1.8.0_191]
    Caused by: java.lang.NullPointerException
            at cc.leon.bukkit.GroupBot.main.setGroup(main.java:100) ~[?:?]
            at cc.leon.bukkit.GroupBot.main.onCommand(main.java:34) ~[?:?]
            at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[craftbukkit.jar:git-Spigot-518206a-a5b9c7b]
            ... 15 more
    Someone help me, please
     
  2. Offline

    MCMastery

    The variable groupManager is not instantiated. So when you call groupManager.getWorldsHolder(), it throws a NullPointerException.
     
Thread Status:
Not open for further replies.

Share This Page