File tree Expand file tree Collapse file tree 3 files changed +64
-3
lines changed
src/main/java/me/rothes/protocolstringreplacer/packetlisteners Expand file tree Collapse file tree 3 files changed +64
-3
lines changed Original file line number Diff line number Diff line change 133133 <version >2.12.0</version >
134134 <scope >compile</scope >
135135 </dependency >
136+ <!-- <dependency>-->
137+ <!-- <groupId>com.comphenix.protocol</groupId>-->
138+ <!-- <artifactId>ProtocolLib</artifactId>-->
139+ <!-- <version>5.1.0</version>-->
140+ <!-- <scope>provided</scope>-->
141+ <!-- </dependency>-->
136142 <dependency >
137- <groupId >com.comphenix.protocol </groupId >
143+ <groupId >com.github.dmulloy2 </groupId >
138144 <artifactId >ProtocolLib</artifactId >
139- <version >5.0.0 </version >
145+ <version >master-SNAPSHOT </version >
140146 <scope >provided</scope >
141147 </dependency >
142148 <dependency >
Original file line number Diff line number Diff line change 66import me .rothes .protocolstringreplacer .PsrLocalization ;
77import me .rothes .protocolstringreplacer .packetlisteners .client .CloseWindow ;
88import me .rothes .protocolstringreplacer .packetlisteners .client .SettingsLocale ;
9+ import me .rothes .protocolstringreplacer .packetlisteners .client .SettingsLocaleUpper20 ;
910import me .rothes .protocolstringreplacer .packetlisteners .client .itemstack .SetCreativeSlot ;
1011import me .rothes .protocolstringreplacer .packetlisteners .client .itemstack .WindowClick ;
1112import me .rothes .protocolstringreplacer .packetlisteners .server .actionbar .ChatActionBar ;
@@ -143,7 +144,12 @@ public void addListeners() {
143144 listeners .add (new WindowClick ());
144145 listeners .add (new SetCreativeSlot ());
145146 listeners .add (new CloseWindow ());
146- listeners .add (new SettingsLocale ());
147+ if ((ProtocolStringReplacer .getInstance ().getServerMajorVersion () == 20 && ProtocolStringReplacer .getInstance ().getServerMinorVersion () >= 2 )
148+ || ProtocolStringReplacer .getInstance ().getServerMajorVersion () > 20 ) {
149+ listeners .add (new SettingsLocaleUpper20 ());
150+ } else {
151+ listeners .add (new SettingsLocale ());
152+ }
147153
148154 for (AbstractPacketListener listener : listeners ) {
149155 try {
Original file line number Diff line number Diff line change 1+ package me .rothes .protocolstringreplacer .packetlisteners .client ;
2+
3+ import com .comphenix .protocol .PacketType ;
4+ import com .comphenix .protocol .events .PacketEvent ;
5+ import me .rothes .protocolstringreplacer .api .user .PsrUser ;
6+ import org .jetbrains .annotations .NotNull ;
7+
8+ import java .lang .reflect .Field ;
9+ import java .util .Locale ;
10+
11+ public class SettingsLocaleUpper20 extends AbstractClientPacketListener {
12+
13+ private Field language ;
14+
15+ public SettingsLocaleUpper20 () {
16+ super (PacketType .Play .Client .SETTINGS );
17+ }
18+
19+ @ Override
20+ protected void process (@ NotNull PacketEvent packetEvent ) {
21+ PsrUser user = getEventUser (packetEvent );
22+ if (user == null ) {
23+ return ;
24+ }
25+ Object record = packetEvent .getPacket ().getModifier ().read (0 );
26+ String read ;
27+ try {
28+ read = (String ) field ().get (record );
29+ } catch (IllegalAccessException e ) {
30+ throw new RuntimeException (e );
31+ }
32+ user .setClientLocale (read .toLowerCase (Locale .ROOT ).replace ('-' , '_' ));
33+ }
34+
35+ private Field field () {
36+ if (language == null ) {
37+ language = PacketType .Play .Client .SETTINGS .getPacketClass ().getDeclaredFields ()[0 ].getType ().getDeclaredFields ()[0 ];
38+ language .setAccessible (true );
39+ }
40+ return language ;
41+ }
42+
43+ @ Override
44+ protected boolean canWrite (@ NotNull PacketEvent packetEvent ) {
45+ // We just read it.
46+ return true ;
47+ }
48+
49+ }
You can’t perform that action at this time.
0 commit comments