Shadow of obfuscated text does not match with displayed character
The bug
The shadow of obfuscated text nearly never matches with the character displayed.
How to reproduce
- Print obfuscated text, for example
/tellraw @p {"text":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","obfuscated":true} - Move the window (this causes the text to stop rendering)
You will see that the shadows do not match with the displayed characters
Even though you could argue that it creates more randomness this is very likely unintended as it is supposed to be a shadow and not a random character.
The reason
The reason for that is that the method func_175065_a(String p_175065_1_, float p_175065_2_, float p_175065_3_, int p_175065_4_, boolean p_175065_5_) of the class net.minecraft.client.gui.FontRenderer (MCP 1.8 names) is used to print text with shadows. There are actually other methods that use the main drawing method as well, but these always disable the shadow.
This method then calls the method func_180455_b(String p_180455_1_, float p_180455_2_, float p_180455_3_, int p_180455_4_, boolean p_180455_5_) twice which means it prints twice a random character (the first time as the actual character, the second time as shadow). Doing this all in the renderStringAtPos(String p_78255_1_, boolean p_78255_2_) method would solve this problem. This might increase the performance as well because currently as unicode is supposed to have no shadow, its shadow is drawn at the same position of the character (in 1.8).
Linked Issues
Created Issue:
Shadow of randomized text does not match with displayed character
Relates to:
The bug
The shadow of obfuscated text nearly never matches with the character displayed.
How to reproduce
- Print obfuscated text, for example
/tellraw @p {"text":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","obfuscated":true}- Move the window (this causes the text to stop rendering
You will see that the shadows do not match with the displayed charactersEven though you could argue that it creates more randomness this is very likely unintended as it is supposed to be a shadow and not a random character.
The reason
The reason for that is that the method func_175065_a(String p_175065_1_, float p_175065_2_, float p_175065_3_, int p_175065_4_, boolean p_175065_5_) of the class net.minecraft.client.gui.FontRenderer (MCP 1.8 names) is used to print text with shadows. There are actually other methods that use the main drawing method as well, but these always disable the shadow.
This method then calls the method func_180455_b(String p_180455_1_, float p_180455_2_, float p_180455_3_, int p_180455_4_, boolean p_180455_5_) twice which means it prints twice a random character (the first time as the actual character, the second time as shadow). Doing this all in the renderStringAtPos(String p_78255_1_, boolean p_78255_2_) method would solve this problem. This might increase the performance as well because currently as unicode is supposed to have no shadow, its shadow is drawn at the same position of the character (in 1.8).(And I know this is not a suggestion page, but what about adding a tag to a chat component that lets you disabled the shadow, for example "shadow":false?)
Shadow ofrandomized text does not match with displayed characterShadow of obfuscated text does not match with displayed character
Relates to:
The bug
The shadow of obfuscated text nearly never matches with the character displayed.
How to reproduce
- Print obfuscated text, for example
/tellraw @p {"text":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","obfuscated":true}- Move the window (this causes the text to stop rendering
You will see that the shadows do not match with the displayed charactersEven though you could argue that it creates more randomness this is very likely unintended as it is supposed to be a shadow and not a random character.
The reason
The reason for that is that the method func_175065_a(String p_175065_1_, float p_175065_2_, float p_175065_3_, int p_175065_4_, boolean p_175065_5_) of the class net.minecraft.client.gui.FontRenderer (MCP 1.8 names) is used to print text with shadows. There are actually other methods that use the main drawing method as well, but these always disable the shadow.
This method then calls the method func_180455_b(String p_180455_1_, float p_180455_2_, float p_180455_3_, int p_180455_4_, boolean p_180455_5_) twice which means it prints twice a random character (the first time as the actual character, the second time as shadow). Doing this all in the renderStringAtPos(String p_78255_1_, boolean p_78255_2_) method would solve this problem. This might increase the performance as well because currently as unicode is supposed to have no shadow, its shadow is drawn at the same position of the character (in 1.8).(And I know this is not a suggestion page, but what about adding a tag to a chat component that lets you disabled the shadow, for example "shadow":false?)
Relates to:
The bug
The shadow of obfuscated text nearly never matches with the character displayed.
How to reproduce
- Print obfuscated text, for example
/tellraw @p {"text":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","obfuscated":true}- Move the window (this causes the text to stop rendering
You will see that the shadows do not match with the displayed charactersEven though you could argue that it creates more randomness this is very likely unintended as it is supposed to be a shadow and not a random character.
The reason
The reason for that is that the method func_175065_a(String p_175065_1_, float p_175065_2_, float p_175065_3_, int p_175065_4_, boolean p_175065_5_) of the class net.minecraft.client.gui.FontRenderer (MCP 1.8 names) is used to print text with shadows. There are actually other methods that use the main drawing method as well, but these always disable the shadow.
This method then calls the method func_180455_b(String p_180455_1_, float p_180455_2_, float p_180455_3_, int p_180455_4_, boolean p_180455_5_) twice which means it prints twice a random character (the first time as the actual character, the second time as shadow). Doing this all in the renderStringAtPos(String p_78255_1_, boolean p_78255_2_) method would solve this problem. This might increase the performance as well because currently as unicode is supposed to have no shadow, its shadow is drawn at the same position of the character (in 1.8).
relates to
The bug
The shadow of obfuscated text nearly never matches with the character displayed.
How to reproduce
- Print obfuscated text, for example
/tellraw @p {"text":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","obfuscated":true}- Move the window (this causes the text to stop rendering)
You will see that the shadows do not match with the displayed charactersEven though you could argue that it creates more randomness this is very likely unintended as it is supposed to be a shadow and not a random character.
The reason
The reason for that is that the method func_175065_a(String p_175065_1_, float p_175065_2_, float p_175065_3_, int p_175065_4_, boolean p_175065_5_) of the class net.minecraft.client.gui.FontRenderer (MCP 1.8 names) is used to print text with shadows. There are actually other methods that use the main drawing method as well, but these always disable the shadow.
This method then calls the method func_180455_b(String p_180455_1_, float p_180455_2_, float p_180455_3_, int p_180455_4_, boolean p_180455_5_) twice which means it prints twice a random character (the first time as the actual character, the second time as shadow). Doing this all in the renderStringAtPos(String p_78255_1_, boolean p_78255_2_) method would solve this problem. This might increase the performance as well because currently as unicode is supposed to have no shadow, its shadow is drawn at the same position of the character (in 1.8).

Can confirm for 1.10.
Can confirm for MC 1.12.1.
Can confirm for 1.13-pre1
Can confirm for 1.13-pre3