[UNSOLVED D:] Scoreboard + GroupManager

Discussion in 'Plugin Development' started by MajorSkillage, Oct 12, 2014.

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

    MajorSkillage

    Hey my goal is to make a scoreboard plugin where i show what staff is online using groupmanager by getting the users in a group and those users are added to an array list and that list is displayed in scoreboard i have a GMHook class and i am rather new to scoreboards and groupmanager's api so this is my first scoreboard + groupmanager plugin xI Thank you for reading and i hope you also learn something from this :D

    P.S i am thinking if it's even allowed to display arraylists in scoreboard that is what may be going up

    Main class
    Code:
    package me.rockinroll99.bcscoreboard;
     
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.PlayerJoinEvent;
    import org.bukkit.event.player.PlayerQuitEvent;
    import org.bukkit.plugin.java.JavaPlugin;
    import org.bukkit.scoreboard.DisplaySlot;
    import org.bukkit.scoreboard.Objective;
    import org.bukkit.scoreboard.ScoreboardManager;
     
    public class Main extends JavaPlugin implements Listener{
        GMHook gm = new GMHook();
        public static String format(String format){
            return ChatColor.translateAlternateColorCodes('&', format);
            }
        Player p;
        ScoreboardManager manager;
        org.bukkit.scoreboard.Scoreboard b;
        public void test(){
        manager = Bukkit.getScoreboardManager();
        b = manager.getNewScoreboard();
        Objective o = b.registerNewObjective(format("&6BiomeCraft"), "test");
        o.setDisplaySlot(DisplaySlot.SIDEBAR);
        o.setDisplayName(ChatColor.GOLD + "MC-BiomeCraft");
        o.getScore(ChatColor.GREEN + "Staff:").setScore(0);
        o.getScore(ChatColor.RED + "" + gm.staff);
        }
        public void onEnable(){
            getServer().getPluginManager().registerEvents(this, this);
        }
        @EventHandler
        public void onLeave(PlayerQuitEvent e){
            Player p = e.getPlayer();
            p.setScoreboard(manager.getNewScoreboard());
        }
    }
    GMHook
    Code:
    package me.rockinroll99.bcscoreboard;
     
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.List;
     
    import org.anjocaido.groupmanager.GroupManager;
    import org.anjocaido.groupmanager.data.User;
    import org.anjocaido.groupmanager.dataholder.OverloadedWorldHolder;
    import org.anjocaido.groupmanager.permissions.AnjoPermissionsHandler;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.EventPriority;
    import org.bukkit.event.player.PlayerJoinEvent;
    import org.bukkit.event.player.PlayerQuitEvent;
    import org.bukkit.event.server.PluginDisableEvent;
    import org.bukkit.event.server.PluginEnableEvent;
    import org.bukkit.plugin.Plugin;
    import org.bukkit.plugin.PluginManager;
     
    public class GMHook
    {
        private GroupManager groupManager;
        private Main plugin;
     
        @EventHandler(priority = EventPriority.MONITOR)
        public void onPluginEnable(final PluginEnableEvent event)
        {
            final PluginManager pluginManager = plugin.getServer().getPluginManager();
            final Plugin GMplugin = pluginManager.getPlugin("GroupManager");
     
            if (GMplugin != null && GMplugin.isEnabled())
            {
                groupManager = (GroupManager)GMplugin;
     
            }
        }
     
        @EventHandler(priority = EventPriority.MONITOR)
        public void onPluginDisable(PluginDisableEvent event)
        {
            if (groupManager != null)
            {
                if (event.getPlugin().getDescription().getName().equals("GroupManager"))
                {
                    groupManager = null;
                }
            }
        }
        ArrayList<String> staff = new ArrayList<String>();
        @EventHandler
        public void onJoin(PlayerJoinEvent e){
            Player p = e.getPlayer();
            if(((User) p).getGroup().equals("Owner") || ((User) p).getGroup().equals("Admin") || ((User) p).getGroup().equals("Moderator") || ((User) p).getGroup().equals("Head-Admin") || ((User) p).getGroup().equals("AdminDev") || ((User) p).getGroup().equals("Developer")){
                staff.add(p.getName());
            }
        }
        @EventHandler
        public void onLeave(PlayerQuitEvent e){
            Player p = e.getPlayer();
            if(((User) p).getGroup().equals("Owner") || ((User) p).getGroup().equals("Admin") || ((User) p).getGroup().equals("Moderator") || ((User) p).getGroup().equals("Head-Admin") || ((User) p).getGroup().equals("AdminDev") || ((User) p).getGroup().equals("Developer")){
                if(staff.contains(p.getName())){
                staff.remove(p.getName());
                }
            }
        }
        public String getGroup(final Player base)
        {
            final AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(base);
            if (handler == null)
            {
                return null;
            }
            return handler.getGroup(base.getName());
        }
     
        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;
        }
     
        public List<String> getGroups(final Player base)
        {
            final AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(base);
            if (handler == null)
            {
                return null;
            }
            return Arrays.asList(handler.getGroups(base.getName()));
        }
     
        public String getPrefix(final Player base)
        {
            final AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(base);
            if (handler == null)
            {
                return null;
            }
            return handler.getUserPrefix(base.getName());
        }
     
        public String getSuffix(final Player base)
        {
            final AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(base);
            if (handler == null)
            {
                return null;
            }
            return handler.getUserSuffix(base.getName());
        }
     
        public boolean hasPermission(final Player base, final String node)
        {
            final AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(base);
            if (handler == null)
            {
                return false;
            }
            return handler.has(base, node);
        }
    }
    halp!! Anyone D:

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 14, 2016
  2. MajorSkillage Please don't bump within 24 hours, please be patient. :)
     
  3. Offline

    CaptainUniverse

    Ok first of all you have players out of methods and they are not public that is abnormal in your main
    Code:java
    1. public boolean iHax(YamlConfiguration config, String d) {
    2. return config.getInt(d);
    3. // forget syntax
    4. }
    5.  


    What you truly want to do is, listen for player join, check if he is a staff, and then create a method called update scoreboard, and update the online players

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 14, 2016
  4. Offline

    MajorSkillage

    so how would i do that? I forget how ._. was something like
    for(onlinePlayers: getServer().getOnlinePlayers()){
    //update scoreboard here?
    }

    Oh also wouldn't just checking onLeave and onJoin make the plugin a lot more light-weight?

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 14, 2016
  5. Offline

    MajorSkillage

    bumped, need halp still D:
     
  6. Offline

    MajorSkillage

  7. Offline

    fireblast709

    MajorSkillage on join you should create a score for the newly joined player if he is staff, and onquit you should reset the score.
     
  8. Offline

    MajorSkillage

    thx il test it out i just also realised i didn't use test() xI

    Does anyone know how i can make an array list (because arraylist wont work for (OfflinePlayer)) and use something like for(i = 0; i < arrayList; i++){
    }
    then display something like arraylist on each line? ._.

    what i am going for in the scoreboard is it says
    Staff:
    - name1
    - name2
    I am rather close to just doing getScore(staff[0]).setScore(1); getScore(staff[1]).setScore(2) and so on :I idk if even that will work D:< halp

    fireblast709
    I already tried D:< ArrayLists can't be OfflinePlayers thats the problem i need to get the strings from the array list to use as an offline player

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 14, 2016
  9. Offline

    fireblast709

    MajorSkillage Did you know that it's adviced to use Strings instead of OfflinePlayers with Scoreboards
     
  10. Offline

    MajorSkillage

    Ok ive tried here is my new code

    Code:
    package me.rockinroll99.bcscoreboard;
     
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.OfflinePlayer;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.PlayerJoinEvent;
    import org.bukkit.event.player.PlayerQuitEvent;
    import org.bukkit.plugin.java.JavaPlugin;
    import org.bukkit.scoreboard.DisplaySlot;
    import org.bukkit.scoreboard.Objective;
    import org.bukkit.scoreboard.ScoreboardManager;
     
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.List;
     
    import org.anjocaido.groupmanager.GroupManager;
    import org.anjocaido.groupmanager.data.User;
    import org.anjocaido.groupmanager.dataholder.OverloadedWorldHolder;
    import org.anjocaido.groupmanager.permissions.AnjoPermissionsHandler;
    import org.bukkit.event.EventPriority;
    import org.bukkit.event.server.PluginDisableEvent;
    import org.bukkit.event.server.PluginEnableEvent;
    import org.bukkit.plugin.Plugin;
    import org.bukkit.plugin.PluginManager;
     
    public class Main extends JavaPlugin implements Listener{
        public static String format(String format){
            return ChatColor.translateAlternateColorCodes('&', format);
            }
        Player p;
        Objective o;
        ScoreboardManager manager;
        org.bukkit.scoreboard.Scoreboard b;
        public void test(){
        manager = Bukkit.getScoreboardManager();
        b = manager.getNewScoreboard();
        Objective o = b.registerNewObjective(format("&6BiomeCraft"), "test");
        o.setDisplaySlot(DisplaySlot.SIDEBAR);
        o.setDisplayName(ChatColor.GOLD + "MC-BiomeCraft");
        o.getScore(ChatColor.GREEN + "Staff:").setScore(1);
        }
        public void onEnable(){
            test();
            getServer().getPluginManager().registerEvents(this, this);
        }
            private GroupManager groupManager;
            private Main plugin;
       
            @EventHandler(priority = EventPriority.MONITOR)
            public void onPluginEnable(final PluginEnableEvent event)
            {
                final PluginManager pluginManager = plugin.getServer().getPluginManager();
                final Plugin GMplugin = pluginManager.getPlugin("GroupManager");
       
                if (GMplugin != null && GMplugin.isEnabled())
                {
                    groupManager = (GroupManager)GMplugin;
       
                }
            }
       
            @EventHandler(priority = EventPriority.MONITOR)
            public void onPluginDisable(PluginDisableEvent event)
            {
                if (groupManager != null)
                {
                    if (event.getPlugin().getDescription().getName().equals("GroupManager"))
                    {
                        groupManager = null;
                    }
                }
            }
            @EventHandler
            public void onJoin(PlayerJoinEvent e){
                Player p = e.getPlayer();
                p.setScoreboard(b);
                if(((User) p).getGroup().equals("Owner") || ((User) p).getGroup().equals("Admin") || ((User) p).getGroup().equals("Moderator") || ((User) p).getGroup().equals("Head-Admin") || ((User) p).getGroup().equals("AdminDev") || ((User) p).getGroup().equals("Developer")){
                    o.getScore(p).setScore(0);
                    p.setScoreboard(b);
                }
            }
            @EventHandler
            public void onLeave(PlayerQuitEvent e){
                Player p = e.getPlayer();
                if(((User) p).getGroup().equals("Owner") || ((User) p).getGroup().equals("Admin") || ((User) p).getGroup().equals("Moderator") || ((User) p).getGroup().equals("Head-Admin") || ((User) p).getGroup().equals("AdminDev") || ((User) p).getGroup().equals("Developer")){
                    b.resetScores(p.getName());
                    p.setScoreboard(manager.getNewScoreboard());
                }
            }
            public String getGroup(final Player base)
            {
                final AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(base);
                if (handler == null)
                {
                    return null;
                }
                return handler.getGroup(base.getName());
            }
       
            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;
            }
       
            public List<String> getGroups(final Player base)
            {
                final AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(base);
                if (handler == null)
                {
                    return null;
                }
                return Arrays.asList(handler.getGroups(base.getName()));
            }
       
            public String getPrefix(final Player base)
            {
                final AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(base);
                if (handler == null)
                {
                    return null;
                }
                return handler.getUserPrefix(base.getName());
            }
       
            public String getSuffix(final Player base)
            {
                final AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(base);
                if (handler == null)
                {
                    return null;
                }
                return handler.getUserSuffix(base.getName());
            }
       
            public boolean hasPermission(final Player base, final String node)
            {
                final AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(base);
                if (handler == null)
                {
                    return false;
                }
                return handler.has(base, node);
            }
        }
    The error is now it can't pass the join and quit event to the plugin and it can't pass groupmanager to onEnable now D:<
     
  11. Offline

    fireblast709

  12. Offline

    MajorSkillage

    Code:
    Loading libraries, please wait...
    [00:26:04 INFO]: Starting minecraft server version 1.7.10
    [00:26:04 INFO]: Loading properties
    [00:26:04 INFO]: Default game type: SURVIVAL
    [00:26:04 INFO]: Generating keypair
    [00:26:06 INFO]: Starting Minecraft server on 0.0.0.0:25565
    [00:26:07 INFO]: This server is running CraftBukkit version git-Bukkit-1.7.9-R0.
    2-24-g07d4558-b3116jnks (MC: 1.7.10) (Implementing API version 1.7.10-R0.1-SNAPS
    HOT)
    [00:26:08 INFO]: [GroupManager] Loading GroupManager v2.1.28 (Phoenix)
    [00:26:08 INFO]: [bcscoreboard] Loading bcscoreboard v1.0
    [00:26:08 INFO]: [votehub] Loading votehub v1.0
    [00:26:08 WARN]: **** SERVER IS RUNNING IN OFFLINE/INSECURE MODE!
    [00:26:08 WARN]: The server will make no attempt to authenticate usernames. Bewa
    re.
    [00:26:08 WARN]: While this makes the game possible to play without internet acc
    ess, it also opens up the ability for hackers to connect with any username they
    choose.
    [00:26:08 WARN]: To change this, set "online-mode" to "true" in the server.prope
    rties file.
    [00:26:08 INFO]: Preparing level "world"
    [00:26:08 INFO]: Preparing start region for level 0 (Seed: 2114546167025006239)
    [00:26:09 WARN]: Could not get information about this CraftBukkit version; perha
    ps you are running a custom one?: IOException
    [00:26:09 INFO]: Preparing spawn area: 7%
    [00:26:10 INFO]: Preparing spawn area: 23%
    [00:26:10 WARN]: Could not get latest artifact information: IOException
    [00:26:11 INFO]: Preparing spawn area: 59%
    [00:26:12 INFO]: Preparing start region for level 1 (Seed: 2114546167025006239)
    [00:26:13 INFO]: Preparing spawn area: 33%
    [00:26:14 INFO]: Preparing spawn area: 66%
    [00:26:15 INFO]: Preparing start region for level 2 (Seed: 2114546167025006239)
    [00:26:16 INFO]: [GroupManager] Enabling GroupManager v2.1.28 (Phoenix)
    [00:26:16 INFO]: GroupManager - INFO - World Found: world
    [00:26:16 INFO]: GroupManager - INFO - Superperms support enabled.
    [00:26:16 INFO]: GroupManager - INFO - Scheduled Data Saving is set for every 10
    minutes!
    [00:26:16 INFO]: GroupManager - INFO - Backups will be retained for 24 hours!
    [00:26:16 INFO]: GroupManager version 2.1.28 (Phoenix) is enabled!
    [00:26:16 INFO]: [bcscoreboard] Enabling bcscoreboard v1.0
    [00:26:16 ERROR]: Could not pass event PluginEnableEvent to bcscoreboard v1.0
    org.bukkit.event.EventException
            at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
    va:294) ~[craftbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
            at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav
    a:62) ~[craftbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
            at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.j
    ava:501) [craftbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
            at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j
    ava:486) [craftbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
            at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader
    .java:331) [craftbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
            at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManage
    r.java:404) [craftbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
            at org.bukkit.craftbukkit.v1_7_R4.CraftServer.loadPlugin(CraftServer.jav
    a:455) [craftbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
            at org.bukkit.craftbukkit.v1_7_R4.CraftServer.enablePlugins(CraftServer.
    java:389) [craftbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
            at net.minecraft.server.v1_7_R4.MinecraftServer.n(MinecraftServer.java:3
    52) [craftbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
            at net.minecraft.server.v1_7_R4.MinecraftServer.g(MinecraftServer.java:3
    26) [craftbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
            at net.minecraft.server.v1_7_R4.MinecraftServer.a(MinecraftServer.java:2
    82) [craftbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
            at net.minecraft.server.v1_7_R4.DedicatedServer.init(DedicatedServer.jav
    a:189) [craftbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
            at net.minecraft.server.v1_7_R4.MinecraftServer.run(MinecraftServer.java
    :436) [craftbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
            at net.minecraft.server.v1_7_R4.ThreadServerApplication.run(SourceFile:6
    28) [craftbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
    Caused by: java.lang.NullPointerException
            at me.rockinroll99.bcscoreboard.Main.onPluginEnable(Main.java:56) ~[?:?]
     
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0
    _67]
            at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0
    _67]
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1
    .7.0_67]
            at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_67]
            at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
    va:292) ~[craftbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
            ... 13 more
    [00:26:16 INFO]: [votehub] Enabling votehub v1.0
    [00:26:16 ERROR]: Could not pass event PluginEnableEvent to bcscoreboard v1.0
    org.bukkit.event.EventException
            at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
    va:294) ~[craftbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
            at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav
    a:62) ~[craftbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
            at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.j
    ava:501) [craftbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
            at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j
    ava:486) [craftbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
            at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader
    .java:331) [craftbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
            at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManage
    r.java:404) [craftbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
            at org.bukkit.craftbukkit.v1_7_R4.CraftServer.loadPlugin(CraftServer.jav
    a:455) [craftbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
            at org.bukkit.craftbukkit.v1_7_R4.CraftServer.enablePlugins(CraftServer.
    java:389) [craftbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
            at net.minecraft.server.v1_7_R4.MinecraftServer.n(MinecraftServer.java:3
    52) [craftbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
            at net.minecraft.server.v1_7_R4.MinecraftServer.g(MinecraftServer.java:3
    26) [craftbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
            at net.minecraft.server.v1_7_R4.MinecraftServer.a(MinecraftServer.java:2
    82) [craftbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
            at net.minecraft.server.v1_7_R4.DedicatedServer.init(DedicatedServer.jav
    a:189) [craftbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
            at net.minecraft.server.v1_7_R4.MinecraftServer.run(MinecraftServer.java
    :436) [craftbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
            at net.minecraft.server.v1_7_R4.ThreadServerApplication.run(SourceFile:6
    28) [craftbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
    Caused by: java.lang.NullPointerException
            at me.rockinroll99.bcscoreboard.Main.onPluginEnable(Main.java:56) ~[?:?]
     
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0
    _67]
            at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0
    _67]
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1
    .7.0_67]
            at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_67]
            at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
    va:292) ~[craftbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
            ... 13 more
    [00:26:16 INFO]: Server permissions file permissions.yml is empty, ignoring it
    [00:26:16 INFO]: Done (8.476s)! For help, type "help" or "?"
    [00:26:16 INFO]: GroupManager - INFO - Bukkit Permissions Updated!
    >
    i now know it's the getGroup() method that isn't working for some reason D: i tested it and it wont

    Code:
    package me.rockinroll99.bcscoreboard;
     
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.PlayerJoinEvent;
    import org.bukkit.event.player.PlayerMoveEvent;
    import org.bukkit.event.player.PlayerQuitEvent;
    import org.bukkit.plugin.java.JavaPlugin;
    import org.bukkit.scoreboard.DisplaySlot;
    import org.bukkit.scoreboard.Objective;
    import org.bukkit.scoreboard.ScoreboardManager;
     
    import java.util.Arrays;
    import java.util.List;
     
    import org.anjocaido.groupmanager.GroupManager;
    import org.anjocaido.groupmanager.data.Group;
    import org.anjocaido.groupmanager.data.User;
    import org.anjocaido.groupmanager.dataholder.OverloadedWorldHolder;
    import org.anjocaido.groupmanager.permissions.AnjoPermissionsHandler;
    import org.bukkit.event.EventPriority;
    import org.bukkit.event.server.PluginDisableEvent;
    import org.bukkit.event.server.PluginEnableEvent;
    import org.bukkit.plugin.Plugin;
     
    public class Main extends JavaPlugin implements Listener{
        public static String format(String format){
            return ChatColor.translateAlternateColorCodes('&', format);
            }
        Player p;
        Objective o;
        ScoreboardManager manager;
        org.bukkit.scoreboard.Scoreboard b;
        public void test(){
        manager = Bukkit.getScoreboardManager();
        b = manager.getNewScoreboard();
        Objective o = b.registerNewObjective(format("&6BiomeCraft"), "test");
        o.setDisplaySlot(DisplaySlot.SIDEBAR);
        o.setDisplayName(ChatColor.GOLD + "MC-BiomeCraft");
        o.getScore(ChatColor.GREEN + "Staff:").setScore(1);
        }
        public void onEnable(){
            test();
            getServer().getPluginManager().registerEvents(this, this);
        }
            private GroupManager groupManager;
       
            @EventHandler(priority = EventPriority.MONITOR)
            public void onPluginEnable(final PluginEnableEvent event)
            {
                final Plugin GMplugin = getServer().getPluginManager().getPlugin("GroupManager");
       
                if (GMplugin != null && GMplugin.isEnabled())
                {
                    groupManager = (GroupManager)GMplugin;
       
                }
            }
       
            @EventHandler(priority = EventPriority.MONITOR)
            public void onPluginDisable(PluginDisableEvent event)
            {
                if (groupManager != null)
                {
                    if (event.getPlugin().getDescription().getName().equals("GroupManager"))
                    {
                        groupManager = null;
                    }
                }
            }
            @EventHandler
            public void onJoin(PlayerJoinEvent e){
                Group test = ((User) p).getGroup();
                String group = test.getName();
                Player p = e.getPlayer();
                p.setScoreboard(b);
                if(group.equals("Owner") || group.equals("Admin") || group.equals("Moderator") || group.equals("Head-Admin") || group.equals("AdminDev") || group.equals("Developer")){
                    String person = e.getPlayer().getName();
                    p.setScoreboard(b);
                    o.getScore(person).setScore(0);
                }
            }
            @EventHandler
            public void onLeave(PlayerQuitEvent e){
                Player p = e.getPlayer();
                Group test = ((User) p).getGroup();
                String group = test.getName();
                if(group.equals("Owner") || group.equals("Admin") || group.equals("Moderator") || group.equals("Head-Admin") || group.equals("AdminDev") || group.equals("Developer")){
                    b.resetScores(p.getName());
                    p.setScoreboard(manager.getNewScoreboard());
                }
            }
            public String getGroup(final Player base)
            {
                final AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(base);
                if (handler == null)
                {
                    return null;
                }
                return handler.getGroup(base.getName());
            }
       
            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;
            }
       
            public List<String> getGroups(final Player base)
            {
                final AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(base);
                if (handler == null)
                {
                    return null;
                }
                return Arrays.asList(handler.getGroups(base.getName()));
            }
       
            public String getPrefix(final Player base)
            {
                final AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(base);
                if (handler == null)
                {
                    return null;
                }
                return handler.getUserPrefix(base.getName());
            }
       
            public String getSuffix(final Player base)
            {
                final AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(base);
                if (handler == null)
                {
                    return null;
                }
                return handler.getUserSuffix(base.getName());
            }
       
            public boolean hasPermission(final Player base, final String node)
            {
                final AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(base);
                if (handler == null)
                {
                    return false;
                }
                return handler.has(base, node);
            }
        }
    and here we go again onJoin wont work because apparently getGroup() wont work D: please someone help!

    Code:
    [10:46:41 ERROR]: Could not pass event PlayerJoinEvent to bcscoreboard v1.0
    org.bukkit.event.EventException
            at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
    va:294) ~[craftbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
            at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav
    a:62) ~[craftbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
            at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.j
    ava:501) [craftbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
            at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j
    ava:486) [craftbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
            at net.minecraft.server.v1_7_R4.PlayerList.c(PlayerList.java:251) [craft
    bukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
            at net.minecraft.server.v1_7_R4.PlayerList.a(PlayerList.java:138) [craft
    bukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
            at net.minecraft.server.v1_7_R4.LoginListener.c(LoginListener.java:76) [
    craftbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
            at net.minecraft.server.v1_7_R4.LoginListener.a(LoginListener.java:42) [
    craftbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
            at net.minecraft.server.v1_7_R4.NetworkManager.a(NetworkManager.java:160
    ) [craftbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
            at net.minecraft.server.v1_7_R4.ServerConnection.c(SourceFile:134) [craf
    tbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
            at net.minecraft.server.v1_7_R4.MinecraftServer.v(MinecraftServer.java:6
    67) [craftbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
            at net.minecraft.server.v1_7_R4.DedicatedServer.v(DedicatedServer.java:2
    58) [craftbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
            at net.minecraft.server.v1_7_R4.MinecraftServer.u(MinecraftServer.java:5
    58) [craftbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
            at net.minecraft.server.v1_7_R4.MinecraftServer.run(MinecraftServer.java
    :469) [craftbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
            at net.minecraft.server.v1_7_R4.ThreadServerApplication.run(SourceFile:6
    28) [craftbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
    Caused by: java.lang.ClassCastException: org.bukkit.craftbukkit.v1_7_R4.entity.C
    raftPlayer cannot be cast to org.anjocaido.groupmanager.data.User
            at me.rockinroll99.bcscoreboard.Main.onJoin(Main.java:72) ~[?:?]
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0
    _67]
            at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0
    _67]
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1
    .7.0_67]
            at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_67]
            at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
    va:292) ~[craftbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
            ... 14 more
    this is my error i get onJoin

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 14, 2016
  13. Offline

    MajorSkillage

    Bumped still need help!!

    ok i have fixed it, the only problem i have now is in the public void test(){ } thats where i set the objective and i can't get anything to work to get the player from onJoin and add that player with the objective in test()

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 14, 2016
Thread Status:
Not open for further replies.

Share This Page