Persian Font Fixer
Shows Persian and Arabic chat correctly for Minecraft players whose client does not render right-to-left text.
A Minecraft client with an English (or any left-to-right) language selected draws every character as a separate glyph, left to right. Persian and Arabic then appear as disconnected letters in reverse order. A client with Persian or Arabic selected shapes and reorders the text itself, so any server-side "fix" would be applied twice and come out backwards.
This plugin therefore decides per player:
| viewer | receives |
|---|---|
| client language is Persian or Arabic | the message untouched |
| any other client language | the message shaped (joined letters) and reordered for a left-to-right renderer |
| console and log | the message untouched |
typed سلام دنیا
English client without this plugin ﺱ ﻝ ﺍ ﻡ ﺩ ﻥ ﯼ ﺍ disconnected, reversed
English client with this plugin ﺎﯿﻧﺩ ﻡﻼﺳ joined, right to left
Persian client, with or without سلام دنیا (its own renderer)
Mixed lines work too: hello سلام دنیا keeps the Latin part in place and reorders only the
Arabic-script runs. Digits keep their order, brackets are mirrored inside right-to-left runs,
and combining marks stay on their letter.
Compatibility
One jar for every server version:
| server | mechanism | chat signatures (1.19.1+) |
|---|---|---|
| Paper 1.16.5 and newer | AsyncChatEvent with a per-viewer ChatRenderer |
kept; clients that need the fix see the message flagged as "Modified" |
| Spigot / Bukkit, or Paper without the Adventure chat API | AsyncPlayerChatEvent, recipients split by hand |
kept for untouched viewers; fixed viewers get an unsigned system message |
Bungee jar loads on any BungeeCord/Waterfall. Functional only for clients up to 1.19; on 1.19.1+ it is a deliberate no-op. same limitation for Velocity.
Java 8 bytecode, api-version: 1.13, no dependencies
Pinned Versions
- R1.8–26.21.11–1.213.0–4.1.1
Pages
Members
1Owner