@Override public TranslatableComponent deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { TranslatableComponent component = new TranslatableComponent(); JsonObject object = json.getAsJsonObject(); deserialize( object, component, context ); component.setTranslate( object.get( "translate" ).getAsString() ); if ( object.has( "with" ) ) { component.setWith( Arrays.asList( (BaseComponent[]) context.deserialize( object.get( "with" ), BaseComponent[].class ) ) ); } return component; }
/** * Creates a translatable component from the original to clone it. * * @param original the original for the new translatable component. */ public TranslatableComponent(TranslatableComponent original) { super( original ); setTranslate( original.getTranslate() ); if ( original.getWith() != null ) { List<BaseComponent> temp = new ArrayList<BaseComponent>(); for ( BaseComponent baseComponent : original.getWith() ) { temp.add( baseComponent.duplicate() ); } setWith( temp ); } }
private void addFormat(StringBuilder builder) { builder.append( getColor() ); if ( isBold() ) { builder.append( ChatColor.BOLD ); } if ( isItalic() ) { builder.append( ChatColor.ITALIC ); } if ( isUnderlined() ) { builder.append( ChatColor.UNDERLINE ); } if ( isStrikethrough() ) { builder.append( ChatColor.STRIKETHROUGH ); } if ( isObfuscated() ) { builder.append( ChatColor.MAGIC ); } } }
private static void processTranslate(BaseComponent component) { if (component instanceof TranslatableComponent) { String oldTranslate = ((TranslatableComponent) component).getTranslate(); String newTranslate; newTranslate = MappingData.translateMapping.get(oldTranslate); if (newTranslate == null) MappingData.mojangTranslation.get(oldTranslate); if (newTranslate != null) { ((TranslatableComponent) component).setTranslate(newTranslate); } if (((TranslatableComponent) component).getWith() != null) { for (BaseComponent baseComponent : ((TranslatableComponent) component).getWith()) { processTranslate(baseComponent); } } } if (component.getHoverEvent() != null) { for (BaseComponent baseComponent : component.getHoverEvent().getValue()) { processTranslate(baseComponent); } } if (component.getExtra() != null) { for (BaseComponent baseComponent : component.getExtra()) { processTranslate(baseComponent); } } } }
@Override public JsonElement serialize(TranslatableComponent src, Type typeOfSrc, JsonSerializationContext context) { JsonObject object = new JsonObject(); serialize( object, src, context ); object.addProperty( "translate", src.getTranslate() ); if ( src.getWith() != null ) { object.add( "with", context.serialize( src.getWith() ) ); } return object; } }
/** * Creates a translatable component with the passed substitutions * * @see #translate * @see #setWith(java.util.List) * @param translate the translation key * @param with the {@link java.lang.String}s and * {@link net.md_5.bungee.api.chat.BaseComponent}s to use into the * translation */ public TranslatableComponent(String translate, Object... with) { setTranslate( translate ); if ( with != null && with.length != 0 ) { List<BaseComponent> temp = new ArrayList<BaseComponent>(); for ( Object w : with ) { if ( w instanceof BaseComponent ) { temp.add( (BaseComponent) w ); } else { temp.add( new TextComponent( String.valueOf( w ) ) ); } } setWith( temp ); } }
/** * Creates a duplicate of this TranslatableComponent. * * @return the duplicate of this TranslatableComponent. */ @Override public BaseComponent duplicate() { return new TranslatableComponent( this ); }
/** * Adds a text substitution to the component. The text will inherit this * component's formatting * * @param text the text to substitute */ public void addWith(String text) { addWith( new TextComponent( text ) ); }
private void addFormat(StringBuilder builder) { builder.append( getColor() ); if ( isBold() ) { builder.append( ChatColor.BOLD ); } if ( isItalic() ) { builder.append( ChatColor.ITALIC ); } if ( isUnderlined() ) { builder.append( ChatColor.UNDERLINE ); } if ( isStrikethrough() ) { builder.append( ChatColor.STRIKETHROUGH ); } if ( isObfuscated() ) { builder.append( ChatColor.MAGIC ); } } }
@Override public JsonElement serialize(TranslatableComponent src, Type typeOfSrc, JsonSerializationContext context) { JsonObject object = new JsonObject(); serialize( object, src, context ); object.addProperty( "translate", src.getTranslate() ); if ( src.getWith() != null ) { object.add( "with", context.serialize( src.getWith() ) ); } return object; } }
/** * Creates a translatable component with the passed substitutions * * @see #translate * @see #setWith(java.util.List) * @param translate the translation key * @param with the {@link java.lang.String}s and * {@link net.md_5.bungee.api.chat.BaseComponent}s to use into the * translation */ public TranslatableComponent(String translate, Object... with) { setTranslate( translate ); List<BaseComponent> temp = new ArrayList<BaseComponent>(); for ( Object w : with ) { if ( w instanceof String ) { temp.add( new TextComponent( (String) w ) ); } else { temp.add( (BaseComponent) w ); } } setWith( temp ); }
/** * Creates a duplicate of this TranslatableComponent. * * @return the duplicate of this TranslatableComponent. */ @Override public BaseComponent duplicate() { return new TranslatableComponent( this ); }
/** * Adds a text substitution to the component. The text will inherit this * component's formatting * * @param text the text to substitute */ public void addWith(String text) { addWith( new TextComponent( text ) ); }
/** * Creates a translatable component from the original to clone it. * * @param original the original for the new translatable component. */ public TranslatableComponent(TranslatableComponent original) { super( original ); setTranslate( original.getTranslate() ); if ( original.getWith() != null ) { List<BaseComponent> temp = new ArrayList<BaseComponent>(); for ( BaseComponent baseComponent : original.getWith() ) { temp.add( baseComponent.duplicate() ); } setWith( temp ); } }
@Override public TranslatableComponent deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { TranslatableComponent component = new TranslatableComponent(); JsonObject object = json.getAsJsonObject(); deserialize( object, component, context ); component.setTranslate( object.get( "translate" ).getAsString() ); if ( object.has( "with" ) ) { component.setWith( Arrays.asList( (BaseComponent[]) context.deserialize( object.get( "with" ), BaseComponent[].class ) ) ); } return component; }
@Override public BaseComponent tr(Translatable tr) { Object[] oldArgs = tr.getArgs(); Object[] args = new Object[oldArgs.length]; for (int i = 0; i < oldArgs.length; ++i) { args[i] = componentFrom(oldArgs[i]); } return new TranslatableComponent(tr.translate(sender instanceof Player ? LocaleUtils.toLocale(((Player) sender).spigot().getLocale()) : Locale.getDefault()), args); } }