Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -52,4 +52,15 @@ public interface VirtualComponentRenderer<C> {
default String fallbackString() {
return "";
}

/**
* Checks if a {@link VirtualComponent} should be skipped when being rendered through a {@link net.kyori.adventure.text.renderer.TranslatableComponentRenderer} when used as an argument.
*
* @param component the component
* @return {@code true} to skip rendering, or {@code false} to render
* @since 5.2.1
*/
default boolean skipRenderingWhenUsedAsTranslationArgument(final VirtualComponent component) {
return false;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -209,7 +209,7 @@ protected Component renderTranslatable(TranslatableComponent component, final C
final List<TranslationArgument> translatedArguments = new ArrayList<>(arguments);
for (int i = 0; i < translatedArguments.size(); i++) {
final TranslationArgument arg = translatedArguments.get(i);
if (arg.value() instanceof Component && !(arg.value() instanceof VirtualComponent)) {
if (arg.value() instanceof Component && !(arg.value() instanceof final VirtualComponent virtual && virtual.renderer().skipRenderingWhenUsedAsTranslationArgument(virtual))) {
translatedArguments.set(i, TranslationArgument.component(this.render((Component) arg.value(), context)));
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@

import java.util.Objects;
import net.kyori.adventure.text.ComponentLike;
import net.kyori.adventure.text.VirtualComponent;
import net.kyori.adventure.text.VirtualComponentRenderer;
import net.kyori.adventure.text.minimessage.internal.TagInternals;
import net.kyori.adventure.text.minimessage.tag.TagPattern;
Expand All @@ -48,4 +49,9 @@ record MiniMessageTranslatorArgument<T>(String name, T data) implements VirtualC
return null;
}
}

@Override
public boolean skipRenderingWhenUsedAsTranslationArgument(final VirtualComponent component) {
return true;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@

import net.kyori.adventure.pointer.Pointered;
import net.kyori.adventure.text.ComponentLike;
import net.kyori.adventure.text.VirtualComponent;
import net.kyori.adventure.text.VirtualComponentRenderer;
import org.jetbrains.annotations.UnknownNullability;

Expand All @@ -34,4 +35,9 @@ record MiniMessageTranslatorTarget(Pointered pointered) implements VirtualCompon
public @UnknownNullability ComponentLike apply(final Void context) {
return null;
}

@Override
public boolean skipRenderingWhenUsedAsTranslationArgument(final VirtualComponent component) {
return true;
}
}