ServerPlugin Scoreboards (Per User)

Dieses Thema im Forum "Programmierung" wurde erstellt von AvoPXL, 4. Oktober 2016.

  1. AvoPXL
    Offline

    AvoPXL

    Registriert seit:
    14. Mai 2016
    Beiträge:
    28
    Hey MCSEU-Community!

    Ich bräuchte nun eure Hilfe.

    Ich arbeite an einem Scoreboard Plugin.

    Das beinhaltet Coins und Onlinezeit (Stunden).

    Nun aber:

    Wenn 2 Spieler drauf sind (z.B. Tom und Peter)

    Tom hat 50 Coins
    Peter hat 10 Coins

    Aber beide haben das gleiche Scoreboard das heisst beim Scoreboard von Tom steht 50 Coins.
    Das steht dann auch bei Peter.

    Wie kann ich für jeden Spieler ein eigenes Scoreboard erstellen? (Per-User-Scoreboard)

    Danke im Vorraus.

    Grüße
     
    #1
  2. jensIO
    Offline

    jensIO

    Registriert seit:
    28. Juli 2015
    Beiträge:
    602
    Ort:
    Internet, im Neuland
    Minecraft:
    jens1o
    Mach ein Scoreboard mit Variablen, fülle es aus und setze für jeden Spieler mittels
    Code (Text):
    1. p.setScoreboard(Scoreboard sb)
    ein eigenes.
     
    #2
  3. AvoPXL
    Offline

    AvoPXL

    Registriert seit:
    14. Mai 2016
    Beiträge:
    28
    Aber eigentlich habe ich es ja so richtig gemacht.

    Ich habe folgendes im Join Event:

    for(Player all : Bukkit.getOnlinePlayers()){
    registerScoreboard(all);
    }

    Dann:

    Code (Text):
    1.  
    2.         if (!MySQL.getSQL().existPlayer(p.getUniqueId())) {
    3.             MySQL.getSQL().registerPlayer(p);
    4.         }
    5.         if (o != null) {
    6.             o = null;
    7.             if (s.getObjective(DisplaySlot.SIDEBAR) != null) {
    8.                 s.getObjective(DisplaySlot.SIDEBAR).unregister();
    9.             }
    10.             registerScoreboard(p);
    11.             return;
    12.         } else {
    13.             o = s.registerNewObjective("sb_" + p.getName(), p.getName());
    14.             o.setDisplaySlot(DisplaySlot.SIDEBAR);
    15.             o.setDisplayName("§7Stats");
    16.             Score s5 = o.getScore(getConfig().getString("ips.forum").replaceAll("&", "§"));
    17.             s5.setScore(1);
    18.             Score s4 = o.getScore("§eForum:");
    19.             s4.setScore(2);
    20.             Score l3 = o.getScore("&a".replaceAll("&", "§"));
    21.             l3.setScore(3);
    22.             Score s31 = o.getScore(getConfig().getString("ips.teamspeak").replaceAll("&", "§"));
    23.             s31.setScore(4);
    24.             Score s3 = o.getScore("§eTeamSpeak:");
    25.             s3.setScore(5);
    26.             Score l2 = o.getScore("&e ".replaceAll("&", "§"));
    27.             l2.setScore(6);
    28.             Score s2 = o.getScore("0AOnlinezeit:".replaceFirst("0A", "§e"));
    29.             s2.setScore(7);
    30.             Score s21 = o.getScore("§f" + api.getOnlinezeit(p.getUniqueId()) + "h");
    31.             s21.setScore(7);
    32.             Score l1 = o.getScore("&b".replaceAll("&", "§"));
    33.             l1.setScore(8);
    34.             Score s1 = o.getScore("§eCoins:");
    35.             s1.setScore(9);
    36.             Score s11 = o.getScore("§f" + api.getCoins(p.getUniqueId()));
    37.             s11.setScore(9);
    38.             p.setScoreboard(s);
    39.             return;
    40.         }
     
    #3
  4. AvoPXL
    Offline

    AvoPXL

    Registriert seit:
    14. Mai 2016
    Beiträge:
    28
    Mittlerweile habe ich es auch mit registerScoreboard(e.getPlayer); versucht
     
    #4
  5. Figz
    Offline

    Figz

    Registriert seit:
    9. Mai 2016
    Beiträge:
    34
    Nächstes mal bitte edit-button benutzen.
    Was macht denn die Methode registerScoreboard(p); ??
     
    #5
  6. AvoPXL
    Offline

    AvoPXL

    Registriert seit:
    14. Mai 2016
    Beiträge:
    28
    Steht im code
     
    #6