1+ package org .CreadoresProgram .VersionColorNK ;
2+ import cn .nukkit .plugin .PluginBase ;
3+ import cn .nukkit .event .Listener ;
4+ import cn .nukkit .event .EventHandler ;
5+ import cn .nukkit .event .server .DataPacketSendEvent ;
6+ import cn .nukkit .network .protocol .TextPacket ;
7+ import cn .nukkit .network .protocol .SetTitlePacket ;
8+ import cn .nukkit .utils .TextFormat ;
9+ import cn .nukkit .Player ;
10+ public class Main extends PluginBase implements Listener {
11+ @ Override
12+ public void onEnable () {
13+ getServer ().getPluginManager ().registerEvents (this , this );
14+ }
15+ @ EventHandler
16+ public void onDataPacketSendEvent (DataPacketSendEvent event ){
17+ if (event .isCancelled ()){
18+ return ;
19+ }
20+ if (event .getPlayer ().protocol > 419 ){
21+ return ;
22+ }
23+ if (event .getPacket () instanceof TextPacket ){
24+ this .processPacket ((TextPacket ) event .getPacket ());
25+ }else if (event .getPacket () instanceof SetTitlePacket ){
26+ this .processPacket ((SetTitlePacket ) event .getPacket ());
27+ }
28+ }
29+ private String processText (String message ){
30+ return message
31+ .replace (TextFormat .MATERIAL_QUARTZ .toString (), TextFormat .WHITE .toString ())
32+ .replace (TextFormat .MATERIAL_IRON .toString (), TextFormat .WHITE .toString ())
33+ .replace (TextFormat .MATERIAL_NETHERITE .toString (), TextFormat .GRAY .toString ())
34+ .replace (TextFormat .MATERIAL_REDSTONE .toString (), TextFormat .DARK_RED .toString ())
35+ .replace (TextFormat .MATERIAL_COPPER .toString (), TextFormat .GOLD .toString ())
36+ .replace (TextFormat .MATERIAL_GOLD .toString (), TextFormat .YELLOW .toString ())
37+ .replace (TextFormat .MATERIAL_EMERALD .toString (), TextFormat .DARK_GREEN .toString ())
38+ .replace (TextFormat .MATERIAL_DIAMOND .toString (), TextFormat .AQUA .toString ())
39+ .replace (TextFormat .MATERIAL_LAPIS .toString (), TextFormat .BLUE .toString ())
40+ .replace (TextFormat .MATERIAL_AMETHYST .toString (), TextFormat .LIGHT_PURPLE .toString ())
41+ .replace (TextFormat .MATERIAL_RESIN .toString (), TextFormat .TextFormat .GOLD .toString ());
42+ }
43+ private void processPacket (TextPacket packet , Player player ){
44+ String message = packet .message ;
45+ if (message == null ){
46+ message = packet .source ;
47+ }
48+ message = processText (message );
49+ if (packet .message != null && packet .message .equals (message )){
50+ return ;
51+ }
52+ if (packet .source != null && package .message == null ){
53+ packet .source = message ;
54+ }
55+ if (packet .message != null ){
56+ packet .message = message ;
57+ }
58+ }
59+ private void processPacket (SetTitlePacket packet , Player player ){
60+ String message = packet .text ;
61+ message = processText (message );
62+ if (packet .text .equals (message )){
63+ return ;
64+ }
65+ packet .text = message ;
66+ }
67+ }
0 commit comments