• Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

Längere Tab Namen

LegitCoreYT

Kuhfänger
Registriert
20 August 2016
Beiträge
56
Alter
23
Diamanten
250
Minecraft
NochNichtGebannt
Hallo liebe Leser,
Ich so eben ein Tab Plugin programmiert und jedem Team einen Prefix zugewiesen. Ich selbst habe einen 15-stelligen MC Namen. Vor meinem Namen sollte aber noch Admin stehen. Beides zusammen wären also schon mal 20 Zeichen. Der Server erkennt nur 16 und möchte mich deshalb nicht drauf lassen...
Kann man evtl. mit Scoreboards den Namen auf 32 Stellen erhöhen?

Fehler:
Internal Exception: io.netty.handler.codec.DecoderException: The received string length is longer than maximum allowed (32>16)

Vielen Dank für jede Hilfe :)
 

LegitCoreYT

Kuhfänger
Registriert
20 August 2016
Beiträge
56
Alter
23
Diamanten
250
Minecraft
NochNichtGebannt
"String Prefix and Suffix need to be under 16 characters long including added color coding" - bugs.mojang.com
Alternativ kannst du die entsprechenden Stellen im Code bzw. den Prefix/Suffix posten, dann kann man u.U mehr sagen.

Code: (einfach nur mit 2 Beispiele ^^)
package de.NochNichtGebannt;

import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.scoreboard.Scoreboard;

public class Main extends JavaPlugin implements Listener {

Scoreboard sb;

@Override
public void onEnable() {
Bukkit.getConsoleSender().sendMessage("§7[§bTabsystem§7] Das Tabsystem wurde §aaktiviert.");

sb = Bukkit.getScoreboardManager().getMainScoreboard();

sb.registerNewTeam("00000Admin");
sb.registerNewTeam("00001Spieler");


sb.getTeam("00000Admin").setPrefix("§4§lAdmin §7| §4§l");
sb.getTeam("00001Spieler").setPrefix("§a");


Bukkit.getPluginManager().registerEvents(this, this);

}

@Override
public void onDisable() {
Bukkit.getConsoleSender().sendMessage("§7[§bTabsystem§7] Das Tabsystem wurde §aaktiviert.");
}

@EventHandler
public void onJoin(PlayerJoinEvent e) {
setPrefix(e.getPlayer());
}

@SuppressWarnings("deprecation")
private void setPrefix(Player p) {
String team = "";

if(p.hasPermission("rang.admin")) {
team = "00000Admin";
}else {
team = "00001Spieler";
}

sb.getTeam(team).addPlayer(p);
p.setDisplayName(sb.getTeam(team).getPrefix() + p.getName());

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

}

So, das ist im Prinzip das ganze Plugin ^^
Plugin.yml dürfte ja klar sein :p
 

TheSimufreak

Kuhfänger
Registriert
28 Juni 2012
Beiträge
78
Diamanten
0
Der Prefix des Teams 00000Admin ist 18 Zeichen lang (§4§lAdmin §7| §4§l), das ist nicht erlaubt.
Außerdem glaube ich nicht dass du zusätzlich den DisplayName setzen musst:
Code:
sb.getTeam(team).addPlayer(p);
p.setDisplayName(sb.getTeam(team).getPrefix() + p.getName());
So kommst du warrscheinlich dann auf die 32 Zeichen
...und nutze in Zukunft bitte die Code-Tags (Einfügen->Code) oder pastebin.com wenn du Quellcode angibst.
 
Zuletzt bearbeitet:

LegitCoreYT

Kuhfänger
Registriert
20 August 2016
Beiträge
56
Alter
23
Diamanten
250
Minecraft
NochNichtGebannt
Der Prefix des Teams 00000Admin ist 18 Zeichen lang (§4§lAdmin §7| §4§l), das ist nicht erlaubt.
Außerdem glaube ich nicht dass du zusätzlich den DisplayName setzen musst:
Code:
sb.getTeam(team).addPlayer(p);
p.setDisplayName(sb.getTeam(team).getPrefix() + p.getName());
So kommst du warrscheinlich dann auf die 32 Zeichen
...und nutze in Zukunft bitte die Code-Tags (Einfügen->Code) oder pastebin.com wenn du Quellcode angibst.
Hm... Ich habe den Prefix des Teams 00000Admin mal zu §4 geändert. Auch das ging nicht.
Des weiteren habe ich den DisplayName gesetzt und keine Änderungen feststellen können...
 
Zuletzt bearbeitet:

LegitCoreYT

Kuhfänger
Registriert
20 August 2016
Beiträge
56
Alter
23
Diamanten
250
Minecraft
NochNichtGebannt
Ändert sich den irgendwas an der Fehlermeldung im Client (steht da z.B. eine andere Zahl anstatt der 32)?
Ansonsten kann der Fehler auch durch den Namen von anderen Entities, sprich Mobs, ausgelöst werden.
Naja inzwischen habe ich es geschafft mit "§4§l" die Zahl auf 23 runterzubekommen. Was für mich aber keinen Sinn ergibt, ist, dass wenn ich "§4" nehme die Zahl 32 da bleibt...
 

UnityGaming

Workaholic
Registriert
25 Oktober 2015
Beiträge
527
Alter
26
Diamanten
312
Minecraft
FastFelix771
Dieses Verhalten hat nichts mit dem Client an sich zu tun.
Das sind Limits die in der Protokollebene festgelegt wurden - vermutlich aus Designgründen, obwohl seit der 1.8 die Tablist eigentlich bequem auto-skalieren könnte. (können sollte)

Manchmal fragt man sich wirklich was sich die Programmierer dabei gedacht haben, aber solche Kleinigkeiten sind gut änderbar, es wäre also in naher Zukunft möglich, dass die Limits angehoben werden - sofern den Herren bei Mojang danach ist.
 

LegitCoreYT

Kuhfänger
Registriert
20 August 2016
Beiträge
56
Alter
23
Diamanten
250
Minecraft
NochNichtGebannt
Dann hat sich das ja geklärt, auch wenn ich das Verhalten von Minecraft immer noch nicht nachvollziehen kann o_O
Ja das Verhalten von Minecraft ist sehr komisch...
Habe gestern Abend das Plugin fertig bekommen und alles lief. Bin jetzt nach Hause gekommen und habe es noch einmal getestet und schon kam ein Fehler in der Konsole...

http://pastebin.com/vs5EVFV8

Ich habe nichts geändert...
Einfach komisch o_O

MfG LegitCore
 

LegitCoreYT

Kuhfänger
Registriert
20 August 2016
Beiträge
56
Alter
23
Diamanten
250
Minecraft
NochNichtGebannt
Du kannst ein Team nur einmal registrieren, heißt du musst überprüfen ob es das Team '0000Admin' gibt, falls nicht registrierst du es.
Naja... Das Team ist nur einmal registriert und auch nicht zweimal... Und da ist das Problem :( Das Team ist nur einmal registriert und der Fehler kommt trotzdem...

MfG LegitCore
 

LegitCoreYT

Kuhfänger
Registriert
20 August 2016
Beiträge
56
Alter
23
Diamanten
250
Minecraft
NochNichtGebannt
@GermanDev Daran liegt es nicht... Wenn ich z.B. eine weiter 0 zu 00000Admin hinzufüge, dann geht das gleiche mit der Gruppe Mod los...
Ein Prefix kann höchstens 16 Zeichen haben und meiner hat 16.
Natürlich habe ich es auch schon mit §4 getestet. Auch das ging nicht...

MfG LegitCore
 

TheSimufreak

Kuhfänger
Registriert
28 Juni 2012
Beiträge
78
Diamanten
0
Das Team ist nur einmal registriert und der Fehler kommt trotzdem...
Ja eben genau deswegen! Wenn du mit
Code:
sb.registerNewTeam("Einhorn");
ein Team im Scoreboard registrierst wird das Team in den Map-Daten gespeichert und ist entsprechend beim nächsten Serverstart immer noch im Scoreborad registriert. Regstrierst du nun ein Team mit
Code:
sb.registerNewTeam("Einhorn");
erneut (Der Code wird ja bei jedem Serverstart ausgeführt) wirft das eine Exception, da es ein Team mit diesem Namen (hier 'Einhorn') bereits gibt.
 
Oben