ServerPlugin Unverständlicher Fehler mit sortierter Tabliste

Dieses Thema im Forum "Programmierung" wurde erstellt von McWizzardDev, 7. September 2016.

  1. McWizzardDev
    Offline

    McWizzardDev

    Registriert seit:
    7. Oktober 2015
    Beiträge:
    58
    Guten Tag,

    ich habe ein Problem, wo ich einfach nicht checke wo der Fehler ist, ich hoffe ihr könnt mir weiter helfen.

    Ich habe eine Sortierte Tabliste gemacht, diese zugleich die prefixe in der Tabliste setzt.

    Dies ist die Klasse, ich registriere erst ein Team und setze dann den Prefix

    Code (Text):
    1. package de.germandev.serverapi.tablist;
    2.  
    3. import org.bukkit.Bukkit;
    4. import org.bukkit.entity.Player;
    5. import org.bukkit.scoreboard.Scoreboard;
    6.  
    7. import de.germandev.serverapi.rank.Rank;
    8. import de.germandev.serverapi.rank.RankAPI;
    9.  
    10. public class Tablist {
    11.  
    12.     static Scoreboard sb;
    13.  
    14.     public static void register() {
    15.         sb = Bukkit.getScoreboardManager().getNewScoreboard();
    16.         sb.registerNewTeam("00001"); //ADMIN
    17.         sb.registerNewTeam("00002"); //Community
    18.         sb.registerNewTeam("00003"); //Developer
    19.         sb.registerNewTeam("00004"); //SRMODERATOR
    20.         sb.registerNewTeam("00005"); //HEADBUILDER
    21.         sb.registerNewTeam("00006"); //MODERATOR
    22.         sb.registerNewTeam("00007"); //SUPPORTER
    23.         sb.registerNewTeam("00008"); //BUILDER
    24.         sb.registerNewTeam("00009"); //YOUTUBER
    25.         sb.registerNewTeam("000010"); //PREMIUMPLUS
    26.         sb.registerNewTeam("000011"); //PREMIUM
    27.         sb.registerNewTeam("000012"); //Spieler
    28.    
    29.         sb.getTeam("00001").setPrefix("§4Admin §7| §4");
    30.         sb.getTeam("00002").setPrefix("§eC §7| §e");
    31.         sb.getTeam("00003").setPrefix("§9Dev §7| §9");
    32.         sb.getTeam("00004").setPrefix("§cSrMod §7| §c");
    33.         sb.getTeam("00005").setPrefix("§2SrBuilder §7| §2");
    34.         sb.getTeam("00006").setPrefix("§8Mod §7| §8");
    35.         sb.getTeam("00007").setPrefix("§3Sup §7| §3");
    36.         sb.getTeam("00008").setPrefix("§2Builder §7| §2");
    37.         sb.getTeam("00009").setPrefix("§5Youtuber §7| §5");
    38.         sb.getTeam("000010").setPrefix("§6");
    39.         sb.getTeam("000011").setPrefix("§6");
    40.         sb.getTeam("000012").setPrefix("§a");
    41.  
    42.    
    43.     }
    44.  
    45.     public static void setPrefix(Player p) {
    46.         String team = "";
    47.         Rank rank = RankAPI.getRank(p.getName());
    48.         team = "0000" + rank.getTabID();
    49.    
    50.         sb.getTeam(team).addPlayer(p);
    51.    
    52.         for(Player all : Bukkit.getOnlinePlayers()) {
    53.             all.setScoreboard(sb);
    54.         }
    55.    
    56.    
    57.     }
    58.  
    59.  
    60. }
    bei team = "0000" + rank.getTabID();. gette ich in einem Enum bestimmte Ränge, hier habe ich auch einmal die Klasse

    Code (Text):
    1. package de.germandev.serverapi.rank;
    2.  
    3. public enum Rank {
    4.  
    5.     ADMIN("ADMIN", "§4", "§4Admin §7| §4", "§4Admin §7| §4", 12, 1),
    6.     COMMUNITY("COMMUNITY", "§e", "§eCommunity §7| §e", "§eC §7| §e", 11, 2),
    7.     DEVELOPER("DEVELOPER", "§9", "§9Developer §7| §9", "§9Dev §7| §9", 10, 3),
    8.     SRMODERATOR("SRMODERATOR", "§c", "§cSrModerator §7| §c" ,"§cSrMod §7| §c", 9, 4),
    9.     BAULEITUNG("BAULEITUNG", "§2", "§2Bauleitung §7| §2", "§2SrBuilder §7| §2", 8, 7),
    10.     MODERATOR("MODERATOR", "§8", "§8Moderator §7| §8" ,"§8Mod §7| §8", 7, 5),
    11.     SUPPORTER("SUPPORTER", "§3", "§3Supporter §7| §3","§3Sup §7| §3",  6, 6),
    12.     BUILDER("BUILDER", "§2", "§2Builder §7| §2" , "§2Builder §7| §2", 5, 8),
    13.     YOUTUBER("YOUTUBER", "§5", "§5Youtuber §7| §5", "§5", 4, 9),
    14.     PREMIUMPLUS("PREMIUMPLUS", "§6", "§6Premium+ §7| §6", "§6", 3, 10),
    15.     PREMIUM("PREMIUM", "§6", "§6", "§6", 2, 11),
    16.     SPIELER("SPIELER", "§a", "§a", "§a", 1, 12);
    17.  
    18.     String rang;
    19.     String prefix;
    20.     String format;
    21.     String tab;
    22.     Integer id;
    23.     Integer tabid;
    24.  
    25.     private Rank(String rang, String prefix, String format, String tab, Integer id, Integer tabid) {
    26.         this.rang = rang;
    27.         this.prefix = prefix;
    28.         this.format = format;
    29.         this.tab = tab;
    30.         this.id = id;
    31.         this.tabid = tabid;
    32.     }
    33.  
    34.     public String getRang() {
    35.         return rang;
    36.     }
    37.  
    38.     public String getPrefix() {
    39.         return prefix;
    40.     }
    41.  
    42.     public String getFormat() {
    43.         return format;
    44.     }
    45.  
    46.     public String getTabliste() {
    47.         return tab;
    48.     }
    49.  
    50.     public Integer getID() {
    51.         return id;
    52.     }
    53.  
    54.     public Integer getTabID() {
    55.         return tabid;
    56.     }
    57.  
    58. }
    59.  
    Wenn ich die setPrefix Methode beim Joinen ausführe, kommt immer diese Fehlermeldung, egal welchen Prefix der Spieler bekommt oder wie lange sein Name ist.

    Link zum Bild: http://www.bilder-upload.eu/show.php?file=629742-1473274631.png

    Wenn ich jedem Team den gleichen Prefix setze geht es komischerweiße?

    Ich hoffe ihr könnt mir eine hilfreiche Antwort senden

    Mit freundlichen Grüßen

    Fabi | GermanDe
    v
     
    #1
  2. Yellowphoenix18
    Offline

    Yellowphoenix18

    Registriert seit:
    26. März 2013
    Beiträge:
    267
    Ort:
    Niedersachsen
    Minecraft:
    YellowPhoenix18
    Ganz einfach: String ist länger als 16-Zeichen. Daher musst den String kürzen mit substr
     
    #2
  3. McWizzardDev
    Offline

    McWizzardDev

    Registriert seit:
    7. Oktober 2015
    Beiträge:
    58
    Ne es ist eben nicht so, ich habe mir die länge ausgeben lassen, und außerdem haben die Spieler unterschiedlich lange namen und trotzdem kommt immer die gleiche Meldung
     
    #3
  4. Yellowphoenix18
    Offline

    Yellowphoenix18

    Registriert seit:
    26. März 2013
    Beiträge:
    267
    Ort:
    Niedersachsen
    Minecraft:
    YellowPhoenix18
    Dann würde das aber nicht diese Fehlermeldung geben^^ Irgendwo sendest du einen String der 20Zeichen hat, der aber maximal 16 haben darf^^
     
    #4
  5. McWizzardDev
    Offline

    McWizzardDev

    Registriert seit:
    7. Oktober 2015
    Beiträge:
    58
    Können wir mal im Ts reden, meine Devs und Ich finden einfach keinen Fehler?
     
    #5
  6. JTK222
    Offline

    JTK222

    Registriert seit:
    5. September 2013
    Beiträge:
    665
    Ort:
    Planet Erde
    Minecraft:
    JTK222
    Also der Fehler:

    §eCommunity §7| §e <--- darf höchstens 16 Zeichen lang sein wobei
    1.§ 2.e 3.C 4.o 5.m 6.m 7.u 8.u 9.n 10.i
    11.t 12.y 13. Leerzeichen 14.§ 15.7 16.| 17.Leerzeichen 18.§ 19.e
    Müsst ihr auf 16 Kürzen und dass bei allen Team Prefixen. Umgehen kann man diese Begrenzung nicht.
     
    #6
  7. AvoPXL
    Offline

    AvoPXL

    Registriert seit:
    14. Mai 2016
    Beiträge:
    28
    Mc Wizard schreib mir dann die ts ip privat. Ich erkläre dir alles
     
    #7