Code Duplication    Length = 41-44 lines in 2 locations

bungeecord/src/main/java/net/labymod/serverapi/bungee/listener/PluginMessageListener.java 1 location

@@ 63-103 (lines=41) @@
60
            // Converting the byte array into a byte buffer
61
            ByteBuf buf = Unpooled.wrappedBuffer( event.getData() );
62
63
            try {
64
                // Reading the message key
65
                final String messageKey = LabyModPlugin.getInstance().getApi().readString( buf, Short.MAX_VALUE );
66
                final String messageContents = LabyModPlugin.getInstance().getApi().readString( buf, Short.MAX_VALUE );
67
                final JsonElement jsonMessage = jsonParser.parse( messageContents );
68
69
                // Calling the event synchronously
70
                ProxyServer.getInstance().getScheduler().schedule( LabyModPlugin.getInstance(), new Runnable() {
71
                    @Override
72
                    public void run() {
73
                        // Listening to the INFO (join) message
74
                        if ( messageKey.equals( "INFO" ) && jsonMessage.isJsonObject() ) {
75
                            JsonObject jsonObject = jsonMessage.getAsJsonObject();
76
                            String version = jsonObject.has( "version" )
77
                                    && jsonObject.get( "version" ).isJsonPrimitive()
78
                                    && jsonObject.get( "version" ).getAsJsonPrimitive().isString() ? jsonObject.get( "version" ).getAsString() : "Unknown";
79
80
                            boolean chunkCachingEnabled = false;
81
                            int chunkCachingVersion = 0;
82
83
                            if ( jsonObject.has( "ccp" ) && jsonObject.get( "ccp" ).isJsonObject() ) {
84
                                JsonObject chunkCachingObject = jsonObject.get( "ccp" ).getAsJsonObject();
85
86
                                if ( chunkCachingObject.has( "enabled" ) )
87
                                    chunkCachingEnabled = chunkCachingObject.get( "enabled" ).getAsBoolean();
88
89
                                if ( chunkCachingObject.has( "version" ) )
90
                                    chunkCachingVersion = chunkCachingObject.get( "version" ).getAsInt();
91
                            }
92
93
                            ProxyServer.getInstance().getPluginManager().callEvent( new LabyModPlayerJoinEvent( player, version,
94
                                    chunkCachingEnabled, chunkCachingVersion, Addon.getAddons( jsonObject ) ) );
95
                            return;
96
                        }
97
98
                        // Calling the LabyModPlayerJoinEvent
99
                        ProxyServer.getInstance().getPluginManager().callEvent( new MessageReceiveEvent( player, messageKey, jsonMessage ) );
100
                    }
101
                }, 0L, TimeUnit.SECONDS );
102
            } catch ( RuntimeException ex ) {
103
                ex.printStackTrace();
104
            }
105
        }
106
    }

bukkit/src/main/java/net/labymod/serverapi/bukkit/LabyModPlugin.java 1 location

@@ 101-144 (lines=44) @@
98
                // Converting the byte array into a byte buffer
99
                ByteBuf buf = Unpooled.wrappedBuffer( bytes );
100
101
                try {
102
                    // Reading the message key
103
                    final String messageKey = api.readString( buf, Short.MAX_VALUE );
104
                    final String messageContents = api.readString( buf, Short.MAX_VALUE );
105
                    final JsonElement jsonMessage = JSON_PARSER.parse( messageContents );
106
107
                    // Calling the event synchronously
108
                    Bukkit.getScheduler().runTask( LabyModPlugin.this, new Runnable() {
109
                        @Override
110
                        public void run() {
111
                            // Checking whether the player is still online
112
                            if ( !player.isOnline() )
113
                                return;
114
115
                            // Listening to the INFO (join) message
116
                            if ( messageKey.equals( "INFO" ) && jsonMessage.isJsonObject() ) {
117
                                JsonObject jsonObject = jsonMessage.getAsJsonObject();
118
                                String version = jsonObject.has( "version" )
119
                                        && jsonObject.get( "version" ).isJsonPrimitive()
120
                                        && jsonObject.get( "version" ).getAsJsonPrimitive().isString() ? jsonObject.get( "version" ).getAsString() : "Unknown";
121
122
                                boolean chunkCachingEnabled = false;
123
                                int chunkCachingVersion = 0;
124
125
                                if ( jsonObject.has( "ccp" ) && jsonObject.get( "ccp" ).isJsonObject() ) {
126
                                    JsonObject chunkCachingObject = jsonObject.get( "ccp" ).getAsJsonObject();
127
128
                                    if ( chunkCachingObject.has( "enabled" ) )
129
                                        chunkCachingEnabled = chunkCachingObject.get( "enabled" ).getAsBoolean();
130
131
                                    if ( chunkCachingObject.has( "version" ) )
132
                                        chunkCachingVersion = chunkCachingObject.get( "version" ).getAsInt();
133
                                }
134
135
                                Bukkit.getPluginManager().callEvent( new LabyModPlayerJoinEvent( player, version,
136
                                        chunkCachingEnabled, chunkCachingVersion, Addon.getAddons( jsonObject ) ) );
137
                                return;
138
                            }
139
140
                            // Calling the MessageReceiveEvent
141
                            Bukkit.getPluginManager().callEvent( new MessageReceiveEvent( player, messageKey, jsonMessage ) );
142
                        }
143
                    } );
144
                } catch ( RuntimeException ignored ) {
145
                }
146
            }
147
        } );