Create shorter toString of components

- stop mentioning null values
- use shorter names
- seamless integration of style's toString

Also use just one string builder and keep track of whether a comma is needed before the next property.
This commit is contained in:
Janmm14 2024-04-21 12:29:29 +02:00
parent ee02d98cb2
commit 0a97ab6fb9
No known key found for this signature in database
GPG Key ID: 5FCB9CF9B38164EA
7 changed files with 200 additions and 12 deletions

View File

@ -6,12 +6,10 @@ import lombok.AccessLevel;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import net.md_5.bungee.api.ChatColor;
import net.md_5.bungee.api.chat.ComponentBuilder.FormatRetention;
@Setter
@ToString(exclude = "parent")
@EqualsAndHashCode(exclude = "parent")
public abstract class BaseComponent
{
@ -690,4 +688,55 @@ public abstract class BaseComponent
builder.append( ChatColor.MAGIC );
}
}
@Override
public String toString()
{
StringBuilder builder = new StringBuilder( toStringName() ).append( "{" );
toString( builder, false );
return builder.append( "}" ).toString();
}
String toStringName()
{
return "BaseComponent";
}
boolean toString(StringBuilder builder, boolean comma)
{
if ( style != null )
{
comma = style.toString( builder, comma );
}
if ( insertion != null )
{
if ( comma ) builder.append( ", " );
comma = true;
builder.append( "insertion=" ).append( insertion );
}
if ( clickEvent != null )
{
if ( comma ) builder.append( ", " );
comma = true;
builder.append( "clickEvent=" ).append( clickEvent );
}
if ( hoverEvent != null )
{
if ( comma ) builder.append( ", " );
comma = true;
builder.append( "hoverEvent=" ).append( hoverEvent );
}
if ( reset )
{
if ( comma ) builder.append( ", " );
comma = true;
builder.append( "reset" );
}
if ( extra != null )
{
if ( comma ) builder.append( ", " );
builder.append( "extra=" ).append( extra );
}
return comma;
}
}

View File

@ -200,6 +200,61 @@ public final class ComponentStyle implements Cloneable
&& strikethrough == null && obfuscated == null;
}
@Override
public String toString()
{
StringBuilder builder = new StringBuilder( "ComponentStyle{" );
toString( builder, false );
return builder.append( "}" ).toString();
}
boolean toString(StringBuilder builder, boolean comma)
{
if ( color != null )
{
if ( comma ) builder.append( ", " );
comma = true;
builder.append( "color=" ).append( color );
}
if ( font != null )
{
if ( comma ) builder.append( ", " );
comma = true;
builder.append( "font=" ).append( font ).append( ", " );
}
if ( bold != null )
{
if ( comma ) builder.append( ", " );
comma = true;
builder.append( "bold=" ).append( bold );
}
if ( italic != null )
{
if ( comma ) builder.append( ", " );
comma = true;
builder.append( "italic=" ).append( italic );
}
if ( underlined != null )
{
if ( comma ) builder.append( ", " );
comma = true;
builder.append( "underlined=" ).append( underlined );
}
if ( strikethrough != null )
{
if ( comma ) builder.append( ", " );
comma = true;
builder.append( "strikethrough=" ).append( strikethrough );
}
if ( obfuscated != null )
{
if ( comma ) builder.append( ", " );
comma = true;
builder.append( "obfuscated=" ).append( obfuscated );
}
return comma;
}
@Override
public ComponentStyle clone()
{

View File

@ -4,11 +4,9 @@ import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
@Getter
@Setter
@ToString
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
public final class KeybindComponent extends BaseComponent
@ -63,4 +61,20 @@ public final class KeybindComponent extends BaseComponent
builder.append( getKeybind() );
super.toLegacyText( builder );
}
@Override
String toStringName()
{
return "Keybind";
}
@Override
boolean toString(StringBuilder builder, boolean comma)
{
if ( comma ) builder.append( ", " );
comma = true;
builder.append( "keybind=" ).append( keybind );
return super.toString( builder, comma );
}
}

View File

@ -4,7 +4,6 @@ import lombok.AllArgsConstructor;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
/**
* This component displays the score based on a player score on the scoreboard.
@ -25,7 +24,6 @@ import lombok.ToString;
*/
@Getter
@Setter
@ToString
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public final class ScoreComponent extends BaseComponent
@ -98,4 +96,24 @@ public final class ScoreComponent extends BaseComponent
builder.append( this.value );
super.toLegacyText( builder );
}
@Override
String toStringName()
{
return "Score";
}
@Override
boolean toString(StringBuilder builder, boolean comma)
{
if ( comma ) builder.append( ", " );
comma = true;
builder.append( "name=" ).append( name ).append( ", " )
.append( "objective=" ).append( objective );
if ( value != null )
{
builder.append( ", " ).append( "value=" ).append( value );
}
return super.toString( builder, comma );
}
}

View File

@ -4,7 +4,6 @@ import lombok.AllArgsConstructor;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
/**
* This component processes a target selector into a pre-formatted set of
@ -21,7 +20,6 @@ import lombok.ToString;
*/
@Getter
@Setter
@ToString
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public final class SelectorComponent extends BaseComponent
@ -82,4 +80,23 @@ public final class SelectorComponent extends BaseComponent
builder.append( this.selector );
super.toLegacyText( builder );
}
@Override
String toStringName()
{
return "Selector";
}
@Override
boolean toString(StringBuilder builder, boolean comma)
{
if ( comma ) builder.append( ", " );
comma = true;
builder.append( "selector=" ).append( selector );
if ( separator != null )
{
builder.append( ", " ).append( "separator=" ).append( separator );
}
return super.toString( builder, comma );
}
}

View File

@ -295,8 +295,21 @@ public final class TextComponent extends BaseComponent
}
@Override
public String toString()
String toStringName()
{
return "TextComponent{text=" + text + ", " + super.toString() + '}';
return "Text";
}
@Override
boolean toString(StringBuilder builder, boolean comma)
{
if ( comma )
{
builder.append( ", " );
}
comma = true;
builder.append( "t=" ).append( text );
return super.toString( builder, comma );
}
}

View File

@ -8,12 +8,10 @@ import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import net.md_5.bungee.chat.TranslationRegistry;
@Getter
@Setter
@ToString
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
public final class TranslatableComponent extends BaseComponent
@ -227,4 +225,28 @@ public final class TranslatableComponent extends BaseComponent
builder.append( trans.substring( position, trans.length() ) );
}
}
@Override
String toStringName()
{
return "Translatable";
}
@Override
boolean toString(StringBuilder builder, boolean comma)
{
if ( comma ) builder.append( ", " );
comma = true;
builder.append( "translate=" ).append( translate );
if ( with != null )
{
builder.append( ", with=" ).append( with );
}
if ( fallback != null )
{
builder.append( ", fallback=" ).append( fallback );
}
return super.toString( builder, comma );
}
}