Tags
Creators
Details
Licensed MIT
Published 6 months ago
Updated 2 weeks ago
All versions
1.3.2
Release
FTB Quest Translator 1.3.26 months ago 21
Compatibility
Minecraft: Java Edition
1.21.1
Platform
NeoForge
Supported environments
Client-side
Changes
Added
- DoH (DNS-over-HTTPS) Bypass Rewrite: Completely rewrote the DoH bypass using raw SSL sockets with
InetAddress.getByAddress(). Java automatically sets correct TLS SNI from the hostname while connecting to the DoH-resolved IP, and a manually constructed HTTP/1.1 request ensures the properHostheader. This enables reliable Google Translate access for users in regions with DNS-level censorship (e.g., Russia). - Batch Translation: All text segments (title, subtitle, description lines) are now joined with a unique separator and sent in a single HTTP request instead of 7+ parallel requests. Dramatically reduces API rate limiting risk and improves translation speed.
- HTML Entity Decoding: Added
decodeHtmlEntities()to convert API-returned HTML entities ("→",&→&,<→<, etc.) back to plain text before rendering. - Format Code Sanitizer: Added
sanitizeFormatCodes()that strips&before any character that isn't a valid Minecraft formatting code, preventing "Invalid formatting!" errors in quest UI.
Fixed
- DoH 404 Error: The old
HttpsURLConnection-based DoH approach returned HTTP 404 because Google's edge servers couldn't route requests from raw IP + Host header. The new raw SSL socket approach resolves this completely. "Artifacts in Quest Text: MyMemory API returns HTML-encoded responses. After the format sanitizer stripped&from", the textquot;remained visible. Fixed by decoding HTML entities before format sanitization.- AUTO Provider Selecting Wrong Provider: When switching providers in config, stale probe results incorrectly marked Google as unavailable. Now
providerAvailabilityis cleared on provider change, forcing a fresh availability check. - Google Translate JSON Parsing: Raw SSL socket responses include chunked encoding remnants after the JSON body, causing
MalformedJsonException. Added JSON boundary detection and lenient parsing to handle this.
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:WGYAFr0C:zBR4qe7q"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:WGYAFr0C:zBR4qe7q"
}

