-
-
Notifications
You must be signed in to change notification settings - Fork 107
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(api): allow Translators to create their own Components #871
Conversation
Allows Translators to bypass the loading and parsing of MessageFormat in favor of providing their own rendered Components. Use cases may include using MiniMessage in i18n files (in favor of §) or even raw JSON strings/objects.
99ac426
to
8588314
Compare
I feel like there's some overlap between the purpose of #842 and the purpose of this PR. I'm not sure there's much harm in having both, but do any others have thoughts on ways those could/should work together? |
oops, just saw this-- I did see that PR but I had only glanced at it. looking at it now, I'm honestly still not quite sure I understand how it's supposed to be used, at least in this context? it doesn't seem like there's any way for a plugin to add their own serializer/translator for virtual components which brings us kinda back to square one of why I wrote this PR in the first place 😛 if that were possible then it probably could obsolete this PR, sure. either way i don't immediately see any ways to integrate the two PRs |
api/src/main/java/net/kyori/adventure/text/renderer/TranslatableComponentRenderer.java
Show resolved
Hide resolved
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Type | Update | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---|---|---| | [gradle](https://gradle.org) ([source](https://togithub.com/gradle/gradle)) | | patch | `7.6` -> `7.6.1` | [![age](https://badges.renovateapi.com/packages/gradle-version/gradle/7.6.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/gradle-version/gradle/7.6.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/gradle-version/gradle/7.6.1/compatibility-slim/7.6)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/gradle-version/gradle/7.6.1/confidence-slim/7.6)](https://docs.renovatebot.com/merge-confidence/) | | [org.mockito:mockito-inline](https://togithub.com/mockito/mockito) | dependencies | minor | `4.10.0` -> `4.11.0` | [![age](https://badges.renovateapi.com/packages/maven/org.mockito:mockito-inline/4.11.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/org.mockito:mockito-inline/4.11.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/org.mockito:mockito-inline/4.11.0/compatibility-slim/4.10.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/org.mockito:mockito-inline/4.11.0/confidence-slim/4.10.0)](https://docs.renovatebot.com/merge-confidence/) | | [org.mockito:mockito-junit-jupiter](https://togithub.com/mockito/mockito) | dependencies | minor | `4.10.0` -> `4.11.0` | [![age](https://badges.renovateapi.com/packages/maven/org.mockito:mockito-junit-jupiter/4.11.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/org.mockito:mockito-junit-jupiter/4.11.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/org.mockito:mockito-junit-jupiter/4.11.0/compatibility-slim/4.10.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/org.mockito:mockito-junit-jupiter/4.11.0/confidence-slim/4.10.0)](https://docs.renovatebot.com/merge-confidence/) | | [org.mockito:mockito-core](https://togithub.com/mockito/mockito) | dependencies | minor | `4.10.0` -> `4.11.0` | [![age](https://badges.renovateapi.com/packages/maven/org.mockito:mockito-core/4.11.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/org.mockito:mockito-core/4.11.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/org.mockito:mockito-core/4.11.0/compatibility-slim/4.10.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/org.mockito:mockito-core/4.11.0/confidence-slim/4.10.0)](https://docs.renovatebot.com/merge-confidence/) | | [com.github.ben-manes.caffeine:caffeine](https://togithub.com/ben-manes/caffeine) | dependencies | patch | `3.1.2` -> `3.1.5` | [![age](https://badges.renovateapi.com/packages/maven/com.github.ben-manes.caffeine:caffeine/3.1.5/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.github.ben-manes.caffeine:caffeine/3.1.5/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.github.ben-manes.caffeine:caffeine/3.1.5/compatibility-slim/3.1.2)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.github.ben-manes.caffeine:caffeine/3.1.5/confidence-slim/3.1.2)](https://docs.renovatebot.com/merge-confidence/) | | dev.simplix:protocolize-api | dependencies | patch | `2.2.3` -> `2.2.6` | [![age](https://badges.renovateapi.com/packages/maven/dev.simplix:protocolize-api/2.2.6/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/dev.simplix:protocolize-api/2.2.6/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/dev.simplix:protocolize-api/2.2.6/compatibility-slim/2.2.3)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/dev.simplix:protocolize-api/2.2.6/confidence-slim/2.2.3)](https://docs.renovatebot.com/merge-confidence/) | | [io.lettuce:lettuce-core](https://togithub.com/lettuce-io/lettuce-core) | dependencies | patch | `6.2.2.RELEASE` -> `6.2.3.RELEASE` | [![age](https://badges.renovateapi.com/packages/maven/io.lettuce:lettuce-core/6.2.3.RELEASE/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/io.lettuce:lettuce-core/6.2.3.RELEASE/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/io.lettuce:lettuce-core/6.2.3.RELEASE/compatibility-slim/6.2.2.RELEASE)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/io.lettuce:lettuce-core/6.2.3.RELEASE/confidence-slim/6.2.2.RELEASE)](https://docs.renovatebot.com/merge-confidence/) | | [com.google.code.gson:gson](https://togithub.com/google/gson) | dependencies | patch | `2.10` -> `2.10.1` | [![age](https://badges.renovateapi.com/packages/maven/com.google.code.gson:gson/2.10.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.code.gson:gson/2.10.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.code.gson:gson/2.10.1/compatibility-slim/2.10)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.code.gson:gson/2.10.1/confidence-slim/2.10)](https://docs.renovatebot.com/merge-confidence/) | | [net.kyori:adventure-text-serializer-gson](https://togithub.com/KyoriPowered/adventure) | dependencies | minor | `4.12.0` -> `4.13.0` | [![age](https://badges.renovateapi.com/packages/maven/net.kyori:adventure-text-serializer-gson/4.13.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/net.kyori:adventure-text-serializer-gson/4.13.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/net.kyori:adventure-text-serializer-gson/4.13.0/compatibility-slim/4.12.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/net.kyori:adventure-text-serializer-gson/4.13.0/confidence-slim/4.12.0)](https://docs.renovatebot.com/merge-confidence/) | | [net.kyori:adventure-text-serializer-legacy](https://togithub.com/KyoriPowered/adventure) | dependencies | minor | `4.12.0` -> `4.13.0` | [![age](https://badges.renovateapi.com/packages/maven/net.kyori:adventure-text-serializer-legacy/4.13.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/net.kyori:adventure-text-serializer-legacy/4.13.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/net.kyori:adventure-text-serializer-legacy/4.13.0/compatibility-slim/4.12.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/net.kyori:adventure-text-serializer-legacy/4.13.0/confidence-slim/4.12.0)](https://docs.renovatebot.com/merge-confidence/) | | [net.kyori:adventure-text-minimessage](https://togithub.com/KyoriPowered/adventure) | dependencies | minor | `4.12.0` -> `4.13.0` | [![age](https://badges.renovateapi.com/packages/maven/net.kyori:adventure-text-minimessage/4.13.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/net.kyori:adventure-text-minimessage/4.13.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/net.kyori:adventure-text-minimessage/4.13.0/compatibility-slim/4.12.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/net.kyori:adventure-text-minimessage/4.13.0/confidence-slim/4.12.0)](https://docs.renovatebot.com/merge-confidence/) | | [net.kyori:adventure-platform-bungeecord](https://togithub.com/KyoriPowered/adventure-platform) | dependencies | minor | `4.2.0` -> `4.3.0` | [![age](https://badges.renovateapi.com/packages/maven/net.kyori:adventure-platform-bungeecord/4.3.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/net.kyori:adventure-platform-bungeecord/4.3.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/net.kyori:adventure-platform-bungeecord/4.3.0/compatibility-slim/4.2.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/net.kyori:adventure-platform-bungeecord/4.3.0/confidence-slim/4.2.0)](https://docs.renovatebot.com/merge-confidence/) | | [net.kyori:adventure-api](https://togithub.com/KyoriPowered/adventure) | dependencies | minor | `4.12.0` -> `4.13.0` | [![age](https://badges.renovateapi.com/packages/maven/net.kyori:adventure-api/4.13.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/net.kyori:adventure-api/4.13.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/net.kyori:adventure-api/4.13.0/compatibility-slim/4.12.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/net.kyori:adventure-api/4.13.0/confidence-slim/4.12.0)](https://docs.renovatebot.com/merge-confidence/) | | [net.kyori:adventure-platform-bukkit](https://togithub.com/KyoriPowered/adventure-platform) | dependencies | minor | `4.2.0` -> `4.3.0` | [![age](https://badges.renovateapi.com/packages/maven/net.kyori:adventure-platform-bukkit/4.3.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/net.kyori:adventure-platform-bukkit/4.3.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/net.kyori:adventure-platform-bukkit/4.3.0/compatibility-slim/4.2.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/net.kyori:adventure-platform-bukkit/4.3.0/confidence-slim/4.2.0)](https://docs.renovatebot.com/merge-confidence/) | | org.jetbrains.kotlin.kapt | plugin | minor | `1.7.22` -> `1.8.10` | [![age](https://badges.renovateapi.com/packages/maven/org.jetbrains.kotlin.kapt/1.8.10/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/org.jetbrains.kotlin.kapt/1.8.10/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/org.jetbrains.kotlin.kapt/1.8.10/compatibility-slim/1.7.22)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/org.jetbrains.kotlin.kapt/1.8.10/confidence-slim/1.7.22)](https://docs.renovatebot.com/merge-confidence/) | | org.jetbrains.kotlin.jvm | plugin | minor | `1.7.22` -> `1.8.10` | [![age](https://badges.renovateapi.com/packages/maven/org.jetbrains.kotlin.jvm/1.8.10/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/org.jetbrains.kotlin.jvm/1.8.10/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/org.jetbrains.kotlin.jvm/1.8.10/compatibility-slim/1.7.22)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/org.jetbrains.kotlin.jvm/1.8.10/confidence-slim/1.7.22)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>gradle/gradle</summary> ### [`v7.6.1`](https://togithub.com/gradle/gradle/releases/tag/v7.6.1): 7.6.1 This is a patch release for 7.6. We recommend using 7.6.1 instead of 7.6. It fixes the following issues: - [#​19065](https://togithub.com/gradle/gradle/issues/19065) Platform dependencies not possible in dependency block of test suite plugin - [#​22688](https://togithub.com/gradle/gradle/issues/22688) Increased memory usage (with -p option) - [#​22796](https://togithub.com/gradle/gradle/issues/22796) Building gradle itself fails during toolchain download: permission denied copying a file within `.gradle/jdks` - [#​22875](https://togithub.com/gradle/gradle/issues/22875) Regression with 7.6: @​pom artifact in JVM library project is no longer found - [#​22937](https://togithub.com/gradle/gradle/issues/22937) Remove safe credentials reference - [#​22973](https://togithub.com/gradle/gradle/issues/22973) Kotlin MPP plugin broken with Gradle 7.6 due to signature change in TestResultProcessor - [#​23016](https://togithub.com/gradle/gradle/issues/23016) toolchainManagement.jvm.javaRepositories should not expose the full surface of NamedDomainObjectList - [#​23025](https://togithub.com/gradle/gradle/issues/23025) Back-port toolchain related fixes to 7.6.1 - [#​23053](https://togithub.com/gradle/gradle/issues/23053) Auto-provisioning/auto-detection of IBM Semeru toolchains is broken with Gradle 7.6 - [#​23074](https://togithub.com/gradle/gradle/issues/23074) Docs: Build Lifecycle starts halfway through a point - [#​23096](https://togithub.com/gradle/gradle/issues/23096) Classifiers of version catalog are discarded while copied to anothor dependency - [#​23111](https://togithub.com/gradle/gradle/issues/23111) Ant closures are broken with Gradle 7.6 - [#​23178](https://togithub.com/gradle/gradle/issues/23178) Mention the Foojay Toolchain Resolver plugin in the Gradle manual - [#​23215](https://togithub.com/gradle/gradle/issues/23215) Gradle 7.6: high memory usage (android project) - [#​23224](https://togithub.com/gradle/gradle/issues/23224) Backport to 7.6.1 "Fix for Incremental compilation with modules" - [#​23294](https://togithub.com/gradle/gradle/issues/23294) "Unable to make progress running work" together with --continue and failing tasks (Backport to 7.6.1) - [#​23555](https://togithub.com/gradle/gradle/issues/23555) Improve Toolchain related deprecation nagging in 7.6 - [#​23894](https://togithub.com/gradle/gradle/issues/23894) Update EOL policy - [#​23910](https://togithub.com/gradle/gradle/issues/23910) Backport trusting only full GPG keys in dependency verification \[Backport 7.6.1] - [#​23941](https://togithub.com/gradle/gradle/issues/23941) Typo in v7.6 docs about disabling_the_daemon - [#​23985](https://togithub.com/gradle/gradle/issues/23985) Resolving of manually created configuration creates a ResolveException [Read the Release Notes](https://docs.gradle.org/7.6.1/release-notes.html) #### Upgrade Instructions Switch your build to use Gradle 7.6.1 by updating your wrapper: ./gradlew wrapper --gradle-version=7.6.1 See the [Gradle 7.x upgrade guide](https://docs.gradle.org/7.6.1/userguide/upgrading_version\_7.html#changes\_7.6) to learn about deprecations, breaking changes and other considerations when upgrading to Gradle 7.6.1. #### Reporting Problems If you find a problem with this release, please file a bug on [GitHub Issues](https://togithub.com/gradle/gradle/issues) adhering to our issue guidelines. If you're not sure you're encountering a bug, please use the [forum](https://discuss.gradle.org/c/help-discuss). </details> <details> <summary>mockito/mockito</summary> ### [`v4.11.0`](https://togithub.com/mockito/mockito/releases/tag/v4.11.0) <sup><sup>*Changelog generated by [Shipkit Changelog Gradle Plugin](https://togithub.com/shipkit/shipkit-changelog)*</sup></sup> ##### 4.11.0 - 2022-12-28 - [1 commit(s)](https://togithub.com/mockito/mockito/compare/v4.10.0...v4.11.0) by Andy Coates - Improve vararg handling: approach 2 [(#​2807)](https://togithub.com/mockito/mockito/pull/2807) - Mocking varargs method with `any(String[].class)` doesn't work as expected [(#​2796)](https://togithub.com/mockito/mockito/issues/2796) - (Argument)Matchers regression from 1.10.19 to 2.18.3 for varargs [(#​1498)](https://togithub.com/mockito/mockito/issues/1498) - Cannot verify varargs parameter as an array [(#​1222)](https://togithub.com/mockito/mockito/issues/1222) - ArgumentCaptor can't capture varargs-arrays [(#​584)](https://togithub.com/mockito/mockito/issues/584) - Verification of an empty varargs call fails when isNotNull() is used [(#​567)](https://togithub.com/mockito/mockito/issues/567) </details> <details> <summary>ben-manes/caffeine</summary> ### [`v3.1.5`](https://togithub.com/ben-manes/caffeine/releases/tag/v3.1.5): 3.1.5 Cache - Fixed `clear()` removing a key more than once due to a write-back removal listener ([#​872](https://togithub.com/ben-manes/caffeine/issues/872)) JCache - Added support for loading the configuration from the cache manager's uri ([#​877](https://togithub.com/ben-manes/caffeine/issues/877)) ### [`v3.1.4`](https://togithub.com/ben-manes/caffeine/releases/tag/v3.1.4): 3.1.4 Added [@​CanIgnoreReturnValue](https://errorprone.info/bugpattern/CheckReturnValue) annotations for static analysis ([#​868](https://togithub.com/ben-manes/caffeine/issues/868)) ### [`v3.1.3`](https://togithub.com/ben-manes/caffeine/releases/tag/v3.1.3): 3.1.3 Cache - Fixed the build time dependency constraints from being leaked into the external metadata ([#​867](https://togithub.com/ben-manes/caffeine/issues/867)) - Fixed the cause of a removal notification for a discarded refresh when the entry was removed - Fixed the behavior for null lookups into returned unmodifiable maps to be consistent ([#​864](https://togithub.com/ben-manes/caffeine/issues/864)) - Fixed an unexpected delay of removal notifications when using a scheduler ([#​859](https://togithub.com/ben-manes/caffeine/issues/859)) - Fixed explicit refreshes from being deduped if the entry is pending eviction - Defaulted methods to [@​CheckReturnValue](https://errorprone.info/bugpattern/CheckReturnValue) for static analysis ([#​863](https://togithub.com/ben-manes/caffeine/issues/863)) - Reduced the lock hold time during Map.clear ([#​835](https://togithub.com/ben-manes/caffeine/issues/835)) JCache - Fixed `putAll` with an immutable map that causes an exception when using a cache writer ([#​841](https://togithub.com/ben-manes/caffeine/issues/841)) </details> <details> <summary>lettuce-io/lettuce-core</summary> ### [`v6.2.3.RELEASE`](https://togithub.com/lettuce-io/lettuce-core/releases/tag/6.2.3.RELEASE) [Compare Source](https://togithub.com/lettuce-io/lettuce-core/compare/6.2.2.RELEASE...6.2.3.RELEASE) #### 📗 Links - Reference documentation: https://lettuce.io/core/6.2.3.RELEASE/reference/ - Javadoc: https://lettuce.io/core/6.2.3.RELEASE/api/ #### 🐞 Bug Fixes - Fallback to RESP2 hides potential authentication configuration problems [#​2313](https://togithub.com/lettuce-io/lettuce-core/issues/2313) - Accept slots as String using `CLUSTER SHARDS` [#​2325](https://togithub.com/lettuce-io/lettuce-core/issues/2325) - Handle unknown endpoints in MOVED response [#​2290](https://togithub.com/lettuce-io/lettuce-core/issues/2290) - `RedisURI.applySsl(…)` does not retain `SslVerifyMode` [#​2328](https://togithub.com/lettuce-io/lettuce-core/issues/2328) - Apply `SslVerifyMode` in `RedisURI.applySsl(…)` [#​2329](https://togithub.com/lettuce-io/lettuce-core/issues/2329) #### 💡 Other - Avoid using port 7443 in Lettuce tests [#​2326](https://togithub.com/lettuce-io/lettuce-core/issues/2326) - Update netty.version to 4.1.89.Final [#​2311](https://togithub.com/lettuce-io/lettuce-core/issues/2311) - Fix duplicate word occurrences [#​2307](https://togithub.com/lettuce-io/lettuce-core/issues/2307) #### ❤️ Contributors We'd like to thank all the contributors who worked on this release! - [@​Emibergo02](https://togithub.com/Emibergo02) - [@​jacob-pro](https://togithub.com/jacob-pro) - [@​liyuntao](https://togithub.com/liyuntao) - [@​rbowen](https://togithub.com/rbowen) - [@​rstosick](https://togithub.com/rstosick) - [@​vijay-kota](https://togithub.com/vijay-kota) </details> <details> <summary>KyoriPowered/adventure</summary> ### [`v4.13.0`](https://togithub.com/KyoriPowered/adventure/releases/tag/v4.13.0): 🌏 Adventure 4.13.0 Adventure 4.13.0 is a feature release with several QOL enhancements, support for new 1.19.4 chat component features, and some bug fixes. Happy developing! #### Additions ✨ - Finish adding MM tags for all Vanilla component types by [@​zml2008](https://togithub.com/zml2008) in [https://github.com/KyoriPowered/adventure/pull/843](https://togithub.com/KyoriPowered/adventure/pull/843) - text-minimessage: Add a shortcut for styling tags by [@​JOO200](https://togithub.com/JOO200) in [https://github.com/KyoriPowered/adventure/pull/858](https://togithub.com/KyoriPowered/adventure/pull/858) - text-minimessage: Add a TagResolver for boolean values by [@​JOO200](https://togithub.com/JOO200) in [https://github.com/KyoriPowered/adventure/pull/857](https://togithub.com/KyoriPowered/adventure/pull/857) - feat(api): allow Translators to create their own Components by [@​qixils](https://togithub.com/qixils) in [https://github.com/KyoriPowered/adventure/pull/871](https://togithub.com/KyoriPowered/adventure/pull/871) - feat(api): Add emulated callback click event by [@​zml2008](https://togithub.com/zml2008) in [https://github.com/KyoriPowered/adventure/pull/860](https://togithub.com/KyoriPowered/adventure/pull/860) - feat(api): add support for translatable component fallbacks ([#​863](https://togithub.com/KyoriPowered/adventure/issues/863)) by [@​NoahvdAa](https://togithub.com/NoahvdAa) in [https://github.com/KyoriPowered/adventure/pull/868](https://togithub.com/KyoriPowered/adventure/pull/868) #### Fixes 🐛 - bug(api): workaround which fixes [#​849](https://togithub.com/KyoriPowered/adventure/issues/849) by [@​kashike](https://togithub.com/kashike) in [https://github.com/KyoriPowered/adventure/pull/861](https://togithub.com/KyoriPowered/adventure/pull/861) - Make DecorationMap$KeySet and $Values follow Collection::toArray() contract by [@​emilyy-dev](https://togithub.com/emilyy-dev) in [https://github.com/KyoriPowered/adventure/pull/862](https://togithub.com/KyoriPowered/adventure/pull/862) - fix(serializer-gson): Ignore empty hover event values by [@​zml2008](https://togithub.com/zml2008) in [https://github.com/KyoriPowered/adventure/pull/859](https://togithub.com/KyoriPowered/adventure/pull/859) - change minimessage rainbow tag colors by [@​MrKinau](https://togithub.com/MrKinau) in [https://github.com/KyoriPowered/adventure/pull/882](https://togithub.com/KyoriPowered/adventure/pull/882) - bug(minimessage): respect requests to include stacktraces by [@​kashike](https://togithub.com/kashike) in KyoriPowered/adventure@42ea3df #### New Contributors - [@​neziw](https://togithub.com/neziw) made their first contribution in [https://github.com/KyoriPowered/adventure/pull/870](https://togithub.com/KyoriPowered/adventure/pull/870) - [@​MrKinau](https://togithub.com/MrKinau) made their first contribution in [https://github.com/KyoriPowered/adventure/pull/882](https://togithub.com/KyoriPowered/adventure/pull/882) **Full Changelog**: KyoriPowered/adventure@v4.12.0...v4.13.0 </details> <details> <summary>KyoriPowered/adventure-platform</summary> ### [`v4.3.0`](https://togithub.com/KyoriPowered/adventure-platform/releases/tag/v4.3.0) This release adds full support for 1.19.4 on the Bukkit platform (though most functionality should work even on 4.2.0). #### What's Changed - fix: 1.19.4 bound chat types by [@​Machine-Maker](https://togithub.com/Machine-Maker) in [https://github.com/KyoriPowered/adventure-platform/pull/128](https://togithub.com/KyoriPowered/adventure-platform/pull/128) #### New Contributors - [@​neziw](https://togithub.com/neziw) made their first contribution in [https://github.com/KyoriPowered/adventure-platform/pull/124](https://togithub.com/KyoriPowered/adventure-platform/pull/124) **Full Changelog**: KyoriPowered/adventure-platform@v4.2.0...v4.3.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://togithub.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/Wirlie/Enhanced-Glist). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC42Ni4wIiwidXBkYXRlZEluVmVyIjoiMzUuOC4zIn0=--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Allows Translators to bypass the loading and parsing of MessageFormat in favor of providing their own rendered Components. Use cases may include using MiniMessage in i18n files (instead of §) or even raw JSON strings/objects.
Was kinda surprised to see GlobalTranslator worked exclusively with MessageFormat (seems very implementation-specific to how vanilla does it) so I whipped this up… tried to keep the PR simple but I could also see it being desirable to have a dedicated class/interface for a ComponentTranslator. Open to feedback/suggestions/etc 🙂