private void inject(Player player) {
        boolean injected = false;
        if (player.getClass().isAssignableFrom(this.craftPlayer)) {
            try {
                final Object entPlayer = this.getHandle.invoke(player);
                if (entPlayer.getClass().isAssignableFrom(this.entityPlayerClass)) {
                    final Object playerConnection = this.playerConnectionField.get(entPlayer);
                    if (playerConnection.getClass().isAssignableFrom(this.playerConnectionClass)) {
                        final Object networkManager = this.networkManagerField.get(playerConnection);
                        if (networkManager.getClass().isAssignableFrom(this.networkManagerClass)) {
                            final Handler handler = new Handler(player);
                            for (final Field field : this.channelFields) {
                                final Channel channel = (Channel) field.get(networkManager);
                                channel.pipeline().addLast(handler);
                                injected = true;
                            }
                        }
                    }
                }
            } catch (final Exception e) {
                this.plugin.getLogger().log(Level.WARNING, "Could not inject player " + player, e);
            }
        }
        if (!injected) {
            player.sendMessage("I could not hax ur pakkits");
        }
    }