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

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