Texte filtern

Diskutiere Texte filtern im Java Basics - Anfänger-Themen Bereich.
L

Lasnik

Ich arbeite hier mit Minecraft. Denke aber, dass es unnötig ist dies im Gamingforum zu posten, da das Problem in jedem anderen Programm auch entstehen kann.
Wie man in der Konsole sehen kann, lasse ich mir den Text von dem Minecraft Befehl ausgeben. Leider macht er dies nicht als simplen String von dem Text, sondern mit unendlich viel unnötigen Infos. Ich will nur die Information, die nach "text" kommt mir ausgeben lassen (in dem Beispiel 22 und 6666...). Dabei soll aber das, was dort drinnen steht keine Rolle spielen, da es sich jedes Mal verändern kann. Wie kann ich mir also nur das was ich will ausgeben lassen, ohne Minecrafts Source Code (rechtes Fenster) zu verändern? (Ein Teil von meinem Programm ist links)
 

Anhänge

mihe7

mihe7

Ins Blaue geraten, mal ein Helferein schreiben:
Java:
public String getText(Text txt) {
    StringBuilder b = new StringBuilder();
    txt.toPlainText(b);
    return b.toString();
}
Und dann verwenden:
Java:
// ersetze
// System.out.println(txt); 
// durch
System.out.println(getText(txt));
 
L

Lasnik

Das funktioniert leider nicht, es entstehen viele Fehler. Brauchst du vielleicht noch mehr Informationen?

Und gibt es vielleicht einfach irgendeine Funktion, mit der man sich einfach nur das nach "text", zwischen den beiden ' Zeichen ausgeben lassen kann?
 
mihe7

mihe7

Wie heißt denn das Paket, aus dem die Klasse "Text" importiert wurde?
 
mihe7

mihe7

Finde ich im Google auf die Schnelle nicht; ein Link zur API-Doku wäre nicht schlecht. Ansonsten probier einfach mal einfach txt.getText() (bzw. nutze mal die autovervollständigen-Funktion der IDE, vielleicht siehst Du was passendes).
 
mihe7

mihe7

So, nichts gefunden. Ich kann Dir also nur raten, Dir die Doku zu der verwendeten Text-Klasse anzusehen.
 
MoxxiManagarm

MoxxiManagarm

TextComponent{text='666666666', ... ist eigentlich eine typische toString Implementierung, wie sie z.B. IntelliJ per default zusammenbaut. Ich gehe davon aus, dass diese eine Subklasse oder eine implementierende Klasse von Text ist. Wie dem auch sei, hat diese das Attribut 'text', also vermutlich wiederum auch den entsprechenden getter. Ich würde es daher mit System.out.println(txt.getText()); versuchen.
 
mihe7

mihe7

Ja, er hat leider nicht geschrieben, ob er getText() nun probiert hat, da hätte ich mal besser nachgefragt :)
 
L

Lasnik

Bei
System.out.println(txt.getText());
wird "getText" rot unterstrichen, mit der info "add cast to text"
 
L

Lasnik

Und wenn ich nun, wie vorgeschlagen das "TitleS2CPacket" benutze wird mir kein Text mehr ausgegeben :(
 
L

Lasnik

Keine Person, die Eclipse IDE besitzt dieses QuickFix feature.

Übrigens will ich mich korrigieren, es hat nicht nur kein Text augegeben, sondern mich sofort aus der Welt/dem Server ausgeloggt sobald ein title Text erschien. Irgendwas lief da wohl garnicht richtig :(
 
mihe7

mihe7

Naja, der Spaß enthält doch zig Methoden, die einen String liefern: asString(), getString(), asTruncatedString(), asFormattedString() - such Dir eine aus :)
 
L

Lasnik

Oh Gott peinlich. Mit asString() hat es sofort geklappt. Ich habe viel zu kompliziert gedacht. VIEEELEN Dank

Edit: Irrtum, im Singleplayer läuft alles einwandfrei. Im Multiplayer stürzt mein Spiel dann einfach vom Server. Ist wohl doch kein allgemeines Java Problem sondern mehr mit Minecraft zusammenhängend
 
L

Lasnik

Alles funktioniert super mit dem abfangen (egal welche Farbe, Schriftart etc.), außer man setzt Zeiten ein (kann man in Minecraft durch
/title [PLAYERNAME] times [FADE IN] [STAY] [FADE OUT]
Sollte der title Befehl so konfiguriert sein (so ist es auf Servern), stürzt es ab
Ist sicherlich nicht dein Fachbereich, trotzdem irgendeine Idee?
 
Thema: 

Texte filtern

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben