Gelöst Programm String length is... Problem

Dieses Thema im Forum "Programmierung" wurde erstellt von Lentry, 22. August 2016.

  1. Lentry
    Offline

    Lentry

    Registriert seit:
    15. Mai 2016
    Beiträge:
    39
    Hallo,
    Ich wollte ein Tag plugin programmieren das man in Tab und bei den Spieler Tag Den rang steht. aber wann ich immer drauf joine kommt immer der
    error::
    Internal Exception: io.netty.handler.codex.DecoderException: The received string length is longer than mximum allowed (20 > 16)
    Wie kann ich das beheben?
    Hoffe das ihr mir weiter helfen könnt
    LG MTRX
     
    #1
  2. JTK222
    Online

    JTK222

    Registriert seit:
    5. September 2013
    Beiträge:
    665
    Ort:
    Planet Erde
    Minecraft:
    JTK222
    Steht da doch...
     
    #2
  3. Inkemann
    Offline

    Inkemann

    Registriert seit:
    3. Mai 2015
    Beiträge:
    341
    Ort:
    Aachen
    Minecraft:
    Inkemann
    Du hast an irgendeiner Stelle einen String verwendet, der 20 Zeichen lang ist, aber nur 16 Zeichen lang sein dürfte. Das kann durchaus bei Namen von Spielern geschehen.
     
    #3
  4. Lentry
    Offline

    Lentry

    Registriert seit:
    15. Mai 2016
    Beiträge:
    39
    Wie kann man den fixsen?

    GommeHD, Rewinside haben ja das Problem nicht -.-
     
    #4
  5. Inkemann
    Offline

    Inkemann

    Registriert seit:
    3. Mai 2015
    Beiträge:
    341
    Ort:
    Aachen
    Minecraft:
    Inkemann
    Ohne deinen Code zu sehen wohl schon mal gar nicht. Außerdem sind bei GommeHD, Rewinside, etc. Leute am Werk die zumindest einigermaßen wissen, was sie tun.
     
    #5
  6. Lentry
    Offline

    Lentry

    Registriert seit:
    15. Mai 2016
    Beiträge:
    39
    Code (Javascript):
    1.     public Scoreboard sb;
    2.  
    3.     public void CreateTags() {
    4.  
    5.         sb = Bukkit.getScoreboardManager().getNewScoreboard();
    6.  
    7.         sb.registerNewTeam("0001Owner");
    8.         sb.registerNewTeam("0002Admin");
    9.         sb.registerNewTeam("0003Entwickler");
    10.         sb.registerNewTeam("0004SrMod");
    11.         sb.registerNewTeam("0005SrBuilder");
    12.         sb.registerNewTeam("0006Builder");
    13.         sb.registerNewTeam("0007Moderator");
    14.         sb.registerNewTeam("0008Supporter");
    15.         sb.registerNewTeam("0009YouTuber");
    16.         sb.registerNewTeam("00010Ultra");
    17.         sb.registerNewTeam("0011Premium");
    18.         sb.registerNewTeam("0012Spieler");
    19.  
    20.         sb.getTeam("0001Owner").setPrefix("§4ServerLeitung §7| §4 ");
    21.         sb.getTeam("0002Admin").setPrefix("§4Admin §7| §4 ");
    22.         sb.getTeam("0003Entwickler").setPrefix("§bEntwickler §7| §b ");
    23.         sb.getTeam("0004SrMod").setPrefix("§cSrModerator §7| §c ");
    24.         sb.getTeam("0005SrBuilder").setPrefix("§eSrBuilder §7| §e ");
    25.         sb.getTeam("0006Builder").setPrefix("§eBuilder §7| §e ");
    26.         sb.getTeam("0007Moderator").setPrefix("§cModerator §7| §c ");
    27.         sb.getTeam("0008Supporter").setPrefix("§9Supporter §7| §9 ");
    28.         sb.getTeam("0009YouTuber").setPrefix("§5");
    29.         sb.getTeam("00010Ultra").setPrefix("§6");
    30.         sb.getTeam("0011Premium").setPrefix("§2");
    31.         sb.getTeam("0012Spieler").setPrefix("§8");
    32.  
    33.     }
    34.  
    35.     @SuppressWarnings("deprecation")
    36.     public void TabPrefix(Player p) {
    37.  
    38.         String team = " ";
    39.         if (p.hasPermission("tag.serverleitung")) {
    40.             team = "0001Owner";
    41.         } else if (p.hasPermission("tag.admin")) {
    42.             team = "0002Admin";
    43.         } else if (p.hasPermission("tag.entwickler")) {
    44.             team = "0003Entwickler";
    45.         } else if (p.hasPermission("tag.srmoderator")) {
    46.             team = "0004SrMod";
    47.         } else if (p.hasPermission("tag.srbuilder")) {
    48.             team = "0005SrBuilder";
    49.         } else if (p.hasPermission("tag.builder")) {
    50.             team = "0006Builder";
    51.         } else if (p.hasPermission("tag.moderator")) {
    52.             team = "0007Moderator";
    53.         } else if (p.hasPermission("tag.supporter")) {
    54.             team = "0008Supporter";
    55.         } else if (p.hasPermission("tag.youtuber")) {
    56.             team = "0009YouTuber";
    57.         } else if (p.hasPermission("tag.ultra")) {
    58.             team = "0011Premium";
    59.         } else if (p.hasPermission("tag.premium")) {
    60.             team = "0011Premium";
    61.         } else {
    62.             team = "0012Spieler";
    63.         }
    64.  
    65.         sb.getTeam(team).addPlayer(p);
    66.         for (Player all : Bukkit.getOnlinePlayers()) {
    67.             all.setScoreboard(sb);
    68.  
    69.         }
    70.         p.setDisplayName(sb.getTeam(team).getPrefix() + p.getName());
    71.  
    72.     }
    73.  
    74.     @SuppressWarnings("deprecation")
    75.     public void setScore(Player p) {
    76.         Objective obj = sb.registerNewObjective("bbb", "ccc");
    77.         obj.setDisplayName("§8» §eFreeLeague.net");
    78.         obj.setDisplaySlot(DisplaySlot.SIDEBAR);
    79.  
    80.         obj.getScore(Bukkit.getOfflinePlayer("§4")).setScore(10);
    81.         obj.getScore(Bukkit.getOfflinePlayer("§7Dein Rang:")).setScore(9);
    82.         obj.getScore(Bukkit.getOfflinePlayer("§7Spieler")).setScore(8);
    83.         obj.getScore(Bukkit.getOfflinePlayer("§c")).setScore(7);
    84.         obj.getScore(Bukkit.getOfflinePlayer("§7Deine Kills")).setScore(6);
    85.         obj.getScore(Bukkit.getOfflinePlayer("§c50")).setScore(5);
    86.         obj.getScore(Bukkit.getOfflinePlayer("§c")).setScore(4);
    87.  
    88.     }
    Das JoinEvent ist in eine andere Classe
     
    #6
  7. JTK222
    Online

    JTK222

    Registriert seit:
    5. September 2013
    Beiträge:
    665
    Ort:
    Planet Erde
    Minecraft:
    JTK222
    Außer die Strings zu kürzen kannst du garnichts Machen.
    Denn selbst wenn du es irgendwie umgehst stürzt der Client ab.
    Farbcodes zählen übrigens dazu!
     
    #7
  8. Granatapfel
    Offline

    Granatapfel

    Registriert seit:
    29. August 2012
    Beiträge:
    101
    Ort:
    Deutschland
    Minecraft:
    Der_Granatapfel
    Nametags und Scoreboardprefixe und Suffix haben nun mal ein Limit von 16 Zeichen. Du kannst aber das Scoreboard prefix und Suffix und den Namen in Tab setzen und damit das Limit umgehen (ich glaube du hast das eh schon teilweise gemacht)

    Edit:
    Weiß nicht ob das funktioniert aber wäre vlt einen Versuch wert: Setz einfach das scoreboard-suffix des Spielers zu dem Spielernamen, dann kannst du Scoreboardprefix und Tab-Name frei wählen und hast so 32 Zeichen davor frei^^
     
    #8
  9. Verschraubt
    Online

    Verschraubt

    Ein ScoreboardTeam, das als Nametag verwendet wird kann 3 sichtbare Abschnitte haben:
    [Suffix]|[Name]|[Präfix]
    Das Problem dabei ist, dass man nur Suffix und Präfix verändern kann, da der Server die Mitglieder, die in einer Liste des entsprechenden ScoreboardTeams gespeichert sind, an dem Namen identifiziert und dadurch das Team zuordnen kann. Wenn man also den Name zu verändern versucht, verändert man somit den Indikator und der Spieler hat letztendlich kein ScoreboardTeam.

    Man kann in der Situation - soweit ich weiß - nichts machen, außer sich an die Jeweilige Grenze von 16 Zeichen zu halten.


    [​IMG]
     
    #9
    jensIO gefällt das.
  10. Lentry
    Offline

    Lentry

    Registriert seit:
    15. Mai 2016
    Beiträge:
    39
    Danke an alle.

    LG MTRX
     
    #10
    Granatapfel gefällt das.