refactor: fix ClickEvent deprecation

This commit is contained in:
Chayapak Supasakul 2025-08-10 17:19:11 +07:00
parent 8cbe8053c1
commit 335baeeaef
Signed by: ChomeNS
SSH key fingerprint: SHA256:0YoxhdyXsgbc0nfeB2N6FYE60mxMU7DS4uCUMaw2mvA

View file

@ -74,13 +74,19 @@ public final class CustomChatComponentRenderer extends TranslatableComponentRend
private ClickEvent mergeClickEvent (final ClickEvent clickEvent, final CustomChatContext context) {
if (clickEvent == null) return null;
final ClickEvent.Payload payload = clickEvent.payload();
if (!(payload instanceof final ClickEvent.Payload.Text text)) return clickEvent;
if (!clickEvent.action().supports(ClickEvent.Payload.string(""))) return clickEvent;
final String arg = context.args().get(text.value());
final String value = ((ClickEvent.Payload.Text) clickEvent.payload()).value();
final String arg = context.args().get(value);
if (arg == null) return clickEvent;
// TODO: figure out solution for deprecation warning in the future
return ClickEvent.clickEvent(clickEvent.action(), arg);
return switch (clickEvent.action()) {
case OPEN_URL -> ClickEvent.openUrl(arg);
case OPEN_FILE -> ClickEvent.openFile(arg);
case RUN_COMMAND -> ClickEvent.runCommand(arg);
case SUGGEST_COMMAND -> ClickEvent.suggestCommand(arg);
case COPY_TO_CLIPBOARD -> ClickEvent.copyToClipboard(arg);
default -> clickEvent;
};
}
}