Solved Scoreboard on first join/relog

Discussion in 'Plugin Help/Development/Requests' started by sgavster, Apr 14, 2015.

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

    sgavster

    Hello everyone.

    I have had so many problems with scoreboard. I thought I fixed them all but I just noticed this:

    Code:
    [07:17:34] [User Authenticator #9/INFO]: UUID of player sgavster is c8945dc9-87e4-493b-8e85-251446e444ac
    [07:17:35] [Server thread/ERROR]: Could not pass event PlayerJoinEvent to QuadularMC v1.1
    org.bukkit.event.EventException
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:305) ~[craftbukkit.jar:git-Spigot-c3c767f-33d5de3]
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[craftbukkit.jar:git-Spigot-c3c767f-33d5de3]
        at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502) [craftbukkit.jar:git-Spigot-c3c767f-33d5de3]
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487) [craftbukkit.jar:git-Spigot-c3c767f-33d5de3]
        at net.minecraft.server.v1_8_R1.PlayerList.onPlayerJoin(PlayerList.java:272) [craftbukkit.jar:git-Spigot-c3c767f-33d5de3]
        at net.minecraft.server.v1_8_R1.PlayerList.a(PlayerList.java:156) [craftbukkit.jar:git-Spigot-c3c767f-33d5de3]
        at net.minecraft.server.v1_8_R1.LoginListener.b(LoginListener.java:109) [craftbukkit.jar:git-Spigot-c3c767f-33d5de3]
        at net.minecraft.server.v1_8_R1.LoginListener.c(LoginListener.java:41) [craftbukkit.jar:git-Spigot-c3c767f-33d5de3]
        at net.minecraft.server.v1_8_R1.NetworkManager.a(NetworkManager.java:159) [craftbukkit.jar:git-Spigot-c3c767f-33d5de3]
        at net.minecraft.server.v1_8_R1.ServerConnection.c(ServerConnection.java:82) [craftbukkit.jar:git-Spigot-c3c767f-33d5de3]
        at net.minecraft.server.v1_8_R1.MinecraftServer.z(MinecraftServer.java:800) [craftbukkit.jar:git-Spigot-c3c767f-33d5de3]
        at net.minecraft.server.v1_8_R1.DedicatedServer.z(DedicatedServer.java:316) [craftbukkit.jar:git-Spigot-c3c767f-33d5de3]
        at net.minecraft.server.v1_8_R1.MinecraftServer.y(MinecraftServer.java:634) [craftbukkit.jar:git-Spigot-c3c767f-33d5de3]
        at net.minecraft.server.v1_8_R1.MinecraftServer.run(MinecraftServer.java:537) [craftbukkit.jar:git-Spigot-c3c767f-33d5de3]
        at java.lang.Thread.run(Unknown Source) [?:1.8.0_31]
    Caused by: java.lang.NullPointerException
        at me.sgavster.qmc.func.ScoreBoard.updateBoard(ScoreBoard.java:70) ~[?:?]
        at me.sgavster.qmc.func.ScoreBoard.onJoin(ScoreBoard.java:102) ~[?:?]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_31]
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_31
    If I join for the first time, or relog after the server has started.. Here is my code for the classes above:


    PHP:
    package me.sgavster.qmc.func;

    import me.sgavster.qmc.util.MSG;

    import org.bukkit.Bukkit;
    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.scoreboard.DisplaySlot;
    import org.bukkit.scoreboard.Objective;
    import org.bukkit.scoreboard.Score;
    import org.bukkit.scoreboard.Scoreboard;
    import org.bukkit.scoreboard.ScoreboardManager;

    public class 
    ScoreBoard implements Listener {

        public static 
    ScoreboardManager man Bukkit.getScoreboardManager();
        public static 
    Scoreboard sameBoard;

        public static 
    void setNewBoard(Player p) {

            if (
    sameBoard == null) {
                
    Scoreboard b man.getNewScoreboard();
                
    Objective o b.registerNewObjective("QuadularMC""dummy");
                
    o.setDisplaySlot(DisplaySlot.SIDEBAR);

                
    Score votes o
                        
    .getScore(LoginHandler.getThings(p).getInt("votes") == "§2None. /vote"
                                
    "§2" LoginHandler.getThings(p).getInt("votes"));
                
    votes.setScore(1);

                
    Score votez o.getScore("§bVotes:");
                
    votez.setScore(2);

                
    Score deaths o.getScore(LoginHandler.getThings(p)
                        .
    getInt("deaths") == "§2None!" "§2"
                        
    LoginHandler.getThings(p).getInt("deaths"));
                
    deaths.setScore(3);

                
    Score deathz o.getScore("§bDeaths:");
                
    deathz.setScore(4);

                
    p.setScoreboard(b);

                
    sameBoard p.getScoreboard();

                
    updateBoard(p);
            }
        }

        @
    SuppressWarnings("deprecation")
        public static 
    void updateBoard(Player p) {
            
    sameBoard p.getScoreboard();

            if (
    sameBoard != null) {

                if (
    LoginHandler.getThings(p).getString("settings.scoreboard")
                        .
    equalsIgnoreCase("yes")) {

                    if (
    sameBoard.getObjective("QuadularMC") != null && sameBoard != null && sameBoard.getPlayers() != null) {
                        for (
    OfflinePlayer players sameBoard.getPlayers()) {
                            
    sameBoard.resetScores(players.getName());
                        }
                    }

                    
    setNewBoard(p);
                    
    Objective oldO sameBoard.getObjective("QuadularMC");
                    
    oldO.setDisplayName(MSG.quadularmc);
                    
    Score votes oldO.getScore(LoginHandler.getThings(p).getInt(
                            
    "votes") == "§2None. /vote" "§2"
                            
    LoginHandler.getThings(p).getInt("votes"));
                    
    votes.setScore(1);

                    
    Score votez oldO.getScore("§bVotes:");
                    
    votez.setScore(2);

                    
    Score deaths oldO.getScore(LoginHandler.getThings(p).getInt(
                            
    "deaths") == "§2None!" "§2"
                            
    LoginHandler.getThings(p).getInt("deaths"));
                    
    deaths.setScore(3);

                    
    Score deathz oldO.getScore("§bDeaths:");
                    
    deathz.setScore(4);

                    
    p.setScoreboard(sameBoard);
                    
    oldO.setDisplaySlot(DisplaySlot.SIDEBAR);
                } else {
                    
    setNewBoard(p);
                    
    p.getScoreboard().clearSlot(DisplaySlot.SIDEBAR);
                }
            }
        }

        @
    EventHandler
        
    public void onJoin(PlayerJoinEvent e) {
            
    Player p e.getPlayer();
            if(
    sameBoard == null) {
                
    setNewBoard(p);
            } else {
                
    updateBoard(p);
            }
        }
    }
    Code:
    package me.sgavster.qmc.func;
    
    import java.util.HashMap;
    import java.util.Map;
    import java.util.UUID;
    
    import me.sgavster.qmc.Main;
    import me.sgavster.qmc.util.Config;
    import me.sgavster.qmc.util.MSG;
    import me.sgavster.qmc.util.Time;
    import net.minecraft.server.v1_8_R1.ChatSerializer;
    import net.minecraft.server.v1_8_R1.EnumTitleAction;
    import net.minecraft.server.v1_8_R1.IChatBaseComponent;
    import net.minecraft.server.v1_8_R1.PacketPlayOutTitle;
    import net.minecraft.server.v1_8_R1.PlayerConnection;
    
    import org.bukkit.craftbukkit.v1_8_R1.entity.CraftPlayer;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.PlayerJoinEvent;
    
    public class LoginHandler implements Listener {
    
        static Map<UUID, Config> configs = new HashMap<UUID, Config>();
    
        public static void send(String title, String subtitle, int in, int out,
                int stay, Player p) {
    
            PlayerConnection connection = ((CraftPlayer) p).getHandle().playerConnection;
            IChatBaseComponent titleJSON = ChatSerializer.a("{'text': '" + title
                    + "'}");
            IChatBaseComponent subtitleJSON = ChatSerializer.a("{'text': '"
                    + subtitle + "'}");
            PacketPlayOutTitle titlePacket = new PacketPlayOutTitle(
                    EnumTitleAction.TITLE, titleJSON, in, stay, out);
            PacketPlayOutTitle subtitlePacket = new PacketPlayOutTitle(
                    EnumTitleAction.SUBTITLE, subtitleJSON);
            connection.sendPacket(titlePacket);
            connection.sendPacket(subtitlePacket);
    
        }
    
        public void setStuff(Config c) {
            if (c.getString("settings.scoreboard") == null) {
                c.set("settings.scoreboard", "yes");
            } else {
                c.set("settings.scoreboard", c.getString("settings.scoreboard"));
            }
            if (c.getString("settings.blood") == null) {
                c.set("settings.blood", "yes");
            } else {
                c.set("settings.blood", c.getString("settings.blood"));
            }
            if (c.get("votes") == null) {
                c.set("votes", 0);
            } else {
                c.set("votes", c.getInt("votes"));
            }
            if (c.get("deaths") == null) {
                c.set("deaths", 0);
            } else {
                c.set("deaths", c.getInt("deaths"));
            }
            if (c.get("crates") == null) {
                c.set("crates", 0);
            } else {
                c.set("crates", c.getInt("crates"));
            }
            if (c.get("settings.grave") == null) {
                c.set("settings.grave", "yes");
            } else {
                c.set("settings.grave", c.get("settings.grave"));
            }
            c.save();
        }
    
        @EventHandler
        public void onLogin(PlayerJoinEvent e) {
            Player p = e.getPlayer();
            Config playerstuff = new Config(Main.getMain(), p.getName() + ".yml");
            setStuff(playerstuff);
            configs.put(p.getUniqueId(), playerstuff);
            if (p.hasPlayedBefore()) {
                send(MSG.quadularmc, "§6Welcome Back, §4" + p.getName(), 1, 20, 10,
                        p);
                p.sendMessage("§6The time here, where the server is: §2"
                        + Time.getDayName() + " "
                        + Integer.toString(Time.getMonth()) + "/"
                        + Integer.toString(Time.getDay()) + "/"
                        + Integer.toString(15) + " "
                        + Integer.toString(Time.getHour()) + ":"
                        + Integer.toString(Time.getMinute())
                        + (Time.getPM() == true ? "PM" : "AM"));
            } else {
                send(MSG.quadularmc, "§6Welcome, §4" + p.getName(), 1, 20, 10, p);
            }
            p.setMaxHealth(20 * 2);
        }
    
        public static Config getThings(Player p) {
            UUID uuid = p.getUniqueId();
            return configs.get(uuid);
        }
    }
    
    I can't figure it out for the life of me! This error also happens when I try to toggle my scoreboard after I have reloged.
     
  2. Offline

    timtower Moderator Moderator

    Moved to Bukkit alternatives
     
  3. Offline

    sgavster

    @timtower Thanks. I always forget that exists when I post. Sorry!
     
  4. Offline

    I Al Istannen

    @sgavster In Line 70 in your Scoreboard class is a NullPointerException. Either the oldO variable or the value you set it to is null.
     
  5. Offline

    sgavster

    @I Al Istannen That's the thing.. Nothing should be null.. I don't see how oldO is null. It works usually (but it doesn't work when you join at first, and after that, I don't know why..) but after relog it doesn't work..
     
  6. Offline

    I Al Istannen

    @sgavster Maybe check if the sameboard.getObjective("Quadular...") is null. Or debug the code and add System#out#println() after you retrieve a new Variable and check when the error strikes. Maybe the scoreboard gets cleared if the user disconnects?
     
  7. Offline

    sgavster

    @I Al Istannen I updated my code:
    PHP:
    package me.sgavster.qmc.func;

    import me.sgavster.qmc.util.MSG;

    import org.bukkit.Bukkit;
    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.scoreboard.DisplaySlot;
    import org.bukkit.scoreboard.Objective;
    import org.bukkit.scoreboard.Score;
    import org.bukkit.scoreboard.Scoreboard;
    import org.bukkit.scoreboard.ScoreboardManager;

    public class 
    ScoreBoard implements Listener {

        public static 
    ScoreboardManager man Bukkit.getScoreboardManager();
        public static 
    Scoreboard sameBoard;

        public static 
    void setNewBoard(Player p) {
           
            if(
    sameBoard == null) {

                
    Scoreboard b man.getNewScoreboard();
                
    Objective o b.registerNewObjective("QuadularMC""dummy");
                
    o.setDisplaySlot(DisplaySlot.SIDEBAR);

                
    Score votes o
                        
    .getScore(LoginHandler.getThings(p).getInt("votes") == "§2None. /vote"
                                
    "§2" LoginHandler.getThings(p).getInt("votes"));
                
    votes.setScore(1);

                
    Score votez o.getScore("§bVotes:");
                
    votez.setScore(2);
               
                
    Score blank o.getScore(" ");
                
    blank.setScore(3);

                
    Score deaths o.getScore(LoginHandler.getThings(p)
                        .
    getInt("deaths") == "§2None!" "§2"
                        
    LoginHandler.getThings(p).getInt("deaths"));
                
    deaths.setScore(4);

                
    Score deathz o.getScore("§bDeaths:");
                
    deathz.setScore(5);

                
    p.setScoreboard(b);

                
    sameBoard p.getScoreboard();
               
            }
        }

        @
    SuppressWarnings("deprecation")
        public static 
    void updateBoard(Player p) {
            if (
    p.getScoreboard() == null) {
                
    setNewBoard(p);
            } else {
                
    sameBoard p.getScoreboard();

                if (
    sameBoard != null) {

                    if (
    LoginHandler.getThings(p).getString("settings.scoreboard")
                            .
    equalsIgnoreCase("yes")) {
                       
                        
    Objective oldO sameBoard.getObjective(DisplaySlot.SIDEBAR);
                        if(
    oldO == null && sameBoard.getObjective("QuadularMC") == null) {
                            
    oldO sameBoard.registerNewObjective("QuadularMC""dummy");
                        }

                        if (
    sameBoard.getObjective("QuadularMC") != null
                                
    && sameBoard != null
                                
    && sameBoard.getPlayers() != null) {
                            for (
    OfflinePlayer players sameBoard.getPlayers()) {
                                
    sameBoard.resetScores(players.getName());
                            }
                        }

                        
    Bukkit.broadcastMessage(MSG.quadularmc);
                        
    Bukkit.broadcastMessage(Boolean.toString(oldO == null) + " " Boolean.toString(sameBoard == null));
                        
    oldO.setDisplayName(MSG.quadularmc);
                        
    Score votes oldO.getScore(LoginHandler.getThings(p)
                                .
    getInt("votes") == "§2None. /vote" "§2"
                                
    LoginHandler.getThings(p).getInt("votes"));
                        
    votes.setScore(1);

                        
    Score votez oldO.getScore("§bVotes:");
                        
    votez.setScore(2);

                        
    Score deaths oldO.getScore(LoginHandler.getThings(p)
                                .
    getInt("deaths") == "§2None!" "§2"
                                
    LoginHandler.getThings(p).getInt("deaths"));
                        
    deaths.setScore(3);

                        
    Score deathz oldO.getScore("§bDeaths:");
                        
    deathz.setScore(4);

                        
    p.setScoreboard(sameBoard);
                        
    oldO.setDisplaySlot(DisplaySlot.SIDEBAR);
                    } else {
                        
    setNewBoard(p);
                        
    p.getScoreboard().clearSlot(DisplaySlot.SIDEBAR);
                    }
                }
            }
        }

        @
    EventHandler
        
    public void onJoin(PlayerJoinEvent e) {
            
    Player p e.getPlayer();
            if (
    sameBoard == null) {
                
    setNewBoard(p);
            } else {
                
    updateBoard(p);
            }
        }
    }
    Now I get a Name cannot be null error on this line:

    && sameBoard.getPlayers() != null) {
     
  8. Offline

    I Al Istannen

    @sgavster Probably because you set sameBoard to p.getScoreboard(). So if this isnt null it can't have no players. What i wanted to try was not adding a !null check, at least not now, but getting what is null. So you could just make a System.out.println for every thing you want to use, like System.out.println(sameBoard.getObjective("QuadularMC")) And this for all vars that can be null. this way you get exactly which var is null.
     
  9. Offline

    sgavster

    @I Al Istannen The objective isn't null -- It's now the name.. I even did this (for debug, as you said)
    Bukkit.broadcastMessage(sameBoard.getPlayers().toString());
    and it throws me this error:
    [​IMG]
    Actually; I'm stupid.
    Bukkit.broadcastMessage(Boolean.toString(sameBoard.getObjective("QuadularMC") == null));
    returns true..
     
  10. Offline

    I Al Istannen

    @sgavsteThen loop through sameBoard.getObjectives() and return every objective and the size of the collection. Then you can see if your registeres object was registered.
     
  11. Offline

    sgavster

    @I Al Istannen Now it says
    QuadularMC
    1
    false
    for(Objective o : sameBoard.getObjectives()) {
    Bukkit.broadcastMessage(o.getName());
    Bukkit.broadcastMessage(Integer.toString(sameBoard.getObjectives().size()));
    }
    the false is saying the the
    Bukkit.broadcastMessage(Boolean.toString(oldO == null) + " " + Boolean.toString(sameBoard == null));
    but I still get Name cannot be blank error
     
  12. Offline

    I Al Istannen

    @sgavster Where do you get the error? What are you trying to do with the scoreboard?

    @sgavster I changed the code to this:
    Code:
    
       public static void setNewBoard(Player p) {
    
         if (sameBoard == null) {
    
           Scoreboard b = man.getNewScoreboard();
           Objective o = b.registerNewObjective("QuadularMC", "dummy");
           o.setDisplaySlot(DisplaySlot.SIDEBAR);
    
           Score votes = o.getScore("Kills");
           votes.setScore(1);
    
           Score votez = o.getScore("§bVotes:");
           votez.setScore(2);
    
           Score blank = o.getScore(" ");
           blank.setScore(3);
    
           Score deaths = o.getScore("Deaths");
           deaths.setScore(4);
    
           Score deathz = o.getScore("§bDeaths:");
           deathz.setScore(5);
    
           p.setScoreboard(b);
    
           sameBoard = p.getScoreboard();
    
         }
       }
    
       @SuppressWarnings("deprecation")
       public static void updateBoard(Player p) {
         if (p.getScoreboard() == null) {
           setNewBoard(p);
         } else {
           sameBoard = p.getScoreboard();
    
           if (sameBoard != null) {
    
             Objective oldO = sameBoard.getObjective(DisplaySlot.SIDEBAR);
             if (oldO == null
                 && sameBoard.getObjective("QuadularMC") == null) {
               oldO = sameBoard
                   .registerNewObjective("QuadularMC", "dummy");
             }
    
             if (sameBoard.getObjective("QuadularMC") != null
                 && sameBoard != null && sameBoard.getPlayers() != null) {
               for (OfflinePlayer players : sameBoard.getPlayers()) {
                 sameBoard.resetScores(players.getName());
               }
             }
    
             oldO.setDisplayName("QuadularMC");
             Score votes = oldO.getScore("Kills");
             votes.setScore(1);
    
             Score votez = oldO.getScore("§bVotes:");
             votez.setScore(2);
    
             Score deaths = oldO.getScore("Deaths");
             deaths.setScore(3);
    
             Score deathz = oldO.getScore("§bDeaths:");
             deathz.setScore(4);
    
             p.setScoreboard(sameBoard);
             oldO.setDisplaySlot(DisplaySlot.SIDEBAR);
           }
         }
       }
    
       @EventHandler
       public void onJoin(PlayerJoinEvent e) {
         Player p = e.getPlayer();
         if (sameBoard == null) {
           setNewBoard(p);
         } else {
           updateBoard(p);
         }
       }
    
    removing everything which isn't included in the Listener class, because i just don't have the code to include it.
    And it works like a charm.
     
    Last edited by a moderator: Apr 14, 2015
    sgavster likes this.
  13. Offline

    sgavster

    @I Al Istannen I tried that -- thanks btw

    The same thing happens though, when I try to update it (for example, my SettingsMenu) using this:

    ScoreBoard.updateBoard(p);

    I get the Name cannot be blank error :(
     
  14. Offline

    I Al Istannen

    @sgavster Which name? I can't follow you ;D
     
  15. Offline

    sgavster

    [​IMG]
    I think it means the scoreboard names..
    This error occurs whenever I turn scoreboard off, then on
    also, I need to add the check config part, to turn it on and off, any suggestions (you removed it from the code, I'm not sure where it should be)
     
  16. Offline

    I Al Istannen

    @sgavster On which line occurs the Error? And whats the content of that line?

    EDIT:
    Okay, I looked into your LoginHandler class and afaik you should not return a Key at getThings(), but a configurationSection: http://wiki.bukkit.org/Configuration_API_Reference
    What you do now returns a key but not the vote,death,... .You would need to do it with .getConfig() or return an ConfigurationSection which has all the Keys and values you need inside.
     
    Last edited: Apr 14, 2015
    sgavster likes this.
  17. Offline

    sgavster

    #69:
    && sameBoard != null && sameBoard.getPlayers() != null) {
     
  18. Offline

    I Al Istannen

    @sgavster You should use sameBoard.getEntries(), the other one is deprecated.
    https://hub.spigotmc.org/javadocs/bukkit/
    I can't see where this could throw an IllegalArgumentException :confused:

    EDIT: I tried hard... however i cant reproduce your error! Everthing works fine
     
    Last edited: Apr 14, 2015
    sgavster likes this.
  19. Offline

    sgavster

    @I Al Istannen That fixed the name, but now I get an NPE on this line:
    oldO.setDisplayName(MSG.quadularmc);
    (MSG.quadularmc is NOT null!)
     
  20. Offline

    I Al Istannen

    @sgavster then oldO must be null. Maybe you don't have anything in your sidebar?

    EDIT: In your if which checks if oldO is null it just gets set to sameBoard if the objective "QUadularMC" in sameBoard is also null. This doesn't havr to be the case.
     
    Last edited: Apr 14, 2015
    sgavster likes this.
  21. Offline

    sgavster

    I clear the sidebar, like this:
    p.getScoreboard().clearSlot(DisplaySlot.SIDEBAR);
    when I disable my setting.. Is there a better way to not display it?
     
  22. Offline

    I Al Istannen

    @sgavster Have you read my edit? You set your sidebar to null. Then you set oldO to sidebar ==> oldO = null. In your next if oldO = null, but sameBoard.getObjective... isnt null ==> no fixing of oldO = null. Then you call oldO.setDisplayName() ==> NPE.
    At least i think so ;)
     
    sgavster likes this.
  23. Offline

    sgavster

    @I Al Istannen I'm a little confused now.
    Is there an easy way to just remove the scoreboard when the player wants it gone, then add it when they dont want it gone?
     
  24. Offline

    I Al Istannen

    @sgavster Deleting the scoreboard the way you did is ok. But when you call updateBoard again... Then you get the thing i described. Just change
    Code:
    if (oldO == null && sameBoard.getObjective("QuadularMC") == null) {
      oldO = sameBoard.registerNewObjective("QuadularMC", "dummy");
    }
    
    //TO
    
    if (oldO == null || sameBoard.getObjective("QuadularMC") == null) { //notice the ||
      oldO = sameBoard.registerNewObjective("QuadularMC", "dummy");
    }
    
    
    in your updateBoard method.
     
    sgavster likes this.
  25. Offline

    sgavster

    @I Al Istannen Now it says "An objective of name 'QuadularMC' already exists' On the oldO = sameBoard.registerNewObjective("QuadularMC", "dummy");
     
  26. Offline

    I Al Istannen

    @sgavster Well then
    Code:
    if (oldO == null) { 
      if(sameBoard.getObjective("QuadularMC") == null)
        oldO = sameBoard.registerNewObjective("QuadularMC", "dummy");
      else {
        oldO = sameBoard.getObjective("QuadularMC");
    }
    
     
    sgavster likes this.
  27. Offline

    sgavster

    @I Al Istannen I can not thank you enough! Thank you SO MUCH! It works. I have not tested it when a second player has joined, but if it doesn't work I'll say something.. Again, thank you SO MUCH!
     
  28. Offline

    I Al Istannen

    @sgavster I hadn't got any experience with Scoreboards either, so I apologize for not perfect solutions :) Let's hope I won't hear anything from you xD
     
  29. Offline

    sgavster

    @I Al Istannen Yeah, I hope nothing goes wrong.. I'm so glad this is over with.

    Sorry for being such a pain haha
     
  30. Offline

    I Al Istannen

    @sgavster It's all right :) I'm going to bed now, i will look at the Threads again tomorrow. Just ask and Tag me if you want :)
     
Thread Status:
Not open for further replies.

Share This Page