ServerPlugin Scoreboard Problem

Dieses Thema im Forum "Programmierung" wurde erstellt von xxProgramerx, 30. März 2014.

  1. xxProgramerx
    Offline

    xxProgramerx

    Registriert seit:
    16. März 2014
    Beiträge:
    26
    hey leute..

    Ich bin immer noch an meine ffa plugin zugange! Nun bei dem Scoreboard! Mein Problem ist das alle spieler das selbe SCoreboard haben! Ich weiß aber nicht wieso?!
    Hier der Code
    Code (Text):
    1. package ScoreboardPack;
    2.  
    3. import java.io.File;
    4. import java.io.IOException;
    5.  
    6. import org.bukkit.Bukkit;
    7. import org.bukkit.configuration.file.FileConfiguration;
    8. import org.bukkit.configuration.file.YamlConfiguration;
    9. import org.bukkit.entity.Player;
    10. import org.bukkit.scoreboard.DisplaySlot;
    11. import org.bukkit.scoreboard.Objective;
    12. import org.bukkit.scoreboard.Score;
    13. import org.bukkit.scoreboard.Scoreboard;
    14. import org.bukkit.scoreboard.ScoreboardManager;
    15.  
    16. public class ScoreboardAdder {
    17.    
    18.     public static ScoreboardManager sm = Bukkit.getServer().getScoreboardManager();
    19.     public static Scoreboard board = sm.getNewScoreboard();
    20.    
    21.     public static Objective score = board.registerNewObjective("aaa", "bbb");
    22.    
    23.     public static void CreateScoreboard(Player player){
    24.        
    25.  
    26.         score.setDisplayName("§6[MAPvP]");
    27.         score.setDisplaySlot(DisplaySlot.SIDEBAR);
    28.        
    29.         Score kills = score.getScore(Bukkit.getOfflinePlayer("Kills:"));
    30.         Score deaths = score.getScore(Bukkit.getOfflinePlayer("Tode:"));
    31.         Score Level = score.getScore(Bukkit.getOfflinePlayer("Level:"));
    32.         Score Rang = score.getScore(Bukkit.getOfflinePlayer("Rang:"));
    33.         Score Punkte = score.getScore(Bukkit.getOfflinePlayer("Punkte:"));
    34.        
    35.    
    36.         kills.setScore(ScoreboardAdder.getKills(player));
    37.         deaths.setScore(ScoreboardAdder.getDeaths(player));
    38.         Level.setScore(player.getLevel());
    39.         Rang.setScore(1);
    40.         Punkte.setScore(ScoreboardAdder.getPunkte(player));
    41.        
    42.         player.setScoreboard(board);
    43.        
    44.     }
    45.    
    46.     public static int getKills(Player p){
    47.         File kills = new File("plugins/MAPvp/", "Scoreboardstats.yml");
    48.         FileConfiguration stats = YamlConfiguration.loadConfiguration(kills);
    49.         int back = stats.getInt(p.getName() + ".Kills");
    50.         return back;
    51.        
    52.     }
    53.  
    54.     public static int getDeaths(Player p){
    55.         File kills = new File("plugins/MAPvp/", "Scoreboardstats.yml");
    56.         FileConfiguration stats = YamlConfiguration.loadConfiguration(kills);
    57.         int back = stats.getInt(p.getName() + ".Deaths");
    58.         return back;
    59.        
    60.     }
    61.     public static int getPunkte(Player p){
    62.         File kills = new File("plugins/MAPvp/", "Scoreboardstats.yml");
    63.         FileConfiguration stats = YamlConfiguration.loadConfiguration(kills);
    64.         int back = stats.getInt(p.getName() + ".Punkte");
    65.         return back;
    66.        
    67.     }
    68.     public static void addKill(Player p) throws IOException{
    69.         File kills = new File("plugins/MAPvp/", "Scoreboardstats.yml");
    70.         FileConfiguration stats = YamlConfiguration.loadConfiguration(kills);
    71.         int killint = stats.getInt(p.getName() + ".Kills");
    72.         stats.set(p.getName() + ".Kills", killint+1);
    73.         stats.save(kills);
    74.     }
    75. public static void addDeath(Player p) throws IOException{
    76.     File kills = new File("plugins/MAPvp/", "Scoreboardstats.yml");
    77.     FileConfiguration stats = YamlConfiguration.loadConfiguration(kills);
    78.     int deathsint = stats.getInt(p.getName() + ".Deaths");
    79.     stats.set(p.getName() + ".Deaths", deathsint+1);
    80.     stats.save(kills);
    81.        
    82.     }
    83. public static void addPunkte(Player p) throws IOException{
    84.     File kills = new File("plugins/MAPvp/", "Scoreboardstats.yml");
    85.     FileConfiguration stats = YamlConfiguration.loadConfiguration(kills);
    86.     int punkteint = stats.getInt(p.getName() + ".Punkte");
    87.     stats.set(p.getName() + ".Punkte", punkteint+1);
    88.     stats.save(kills);
    89.    
    90. }
    91. public static void Remove(Player p){
    92.     board.clearSlot(DisplaySlot.SIDEBAR);
    93.        
    94. }
    95. }
    96.  
    97.  
    Ich hoffe mir kann jemand weiterhelfen und mir den Fehler nenen! PS: Das Scoreboard erstelle ich in einer Exterenen Klasse! Also in der SignJoin Klasse!

    MFG
     
    #1
  2. ImpactCP
    Offline

    ImpactCP

    Registriert seit:
    21. Oktober 2012
    Beiträge:
    23
    Minecraft:
    ImpactCP
    Du musst für jeden Spieler ein eigenes Scoreboard erstellen und nicht das selbe für alle Spieler verwenden.

    Also für jeden Spieler: sm.getNewScoreboard();
     
    #2
  3. xxProgramerx
    Offline

    xxProgramerx

    Registriert seit:
    16. März 2014
    Beiträge:
    26
    Mach ich das nicht mit der createScoreboard Methode?
    Mach ich doch nich^^
    :/ danke
     
    #3
  4. ImpactCP
    Offline

    ImpactCP

    Registriert seit:
    21. Oktober 2012
    Beiträge:
    23
    Minecraft:
    ImpactCP
    Nur wenn du jedesmal ein neues Object von der Klasse ScoreboardAdder erstellen würdest.
     
    #4