@Subscribe
    public void onPluginMessage(PluginMessageEvent e) {
        // compare the underlying text representation of the channel
        // the namespaced representation is used by legacy servers too, so we
        // are able to support both. :)
        if (!e.getIdentifier().getId().equals(CHANNEL.getId())) {
            return;
        }

        e.setResult(ForwardResult.handled());

        if (e.getSource() instanceof Player) {
            return;
        }

        byte[] buf = e.getData();

        if (handleIncomingMessage(buf)) {
            // Forward to other servers
            this.plugin.getBootstrap().getScheduler().executeAsync(() -> sendOutgoingMessage(buf));
        }
    }
An implementation of {@link Messenger} using the plugin messaging channels.
velocity/src/main/java/me/lucko/luckperms/velocity/messaging/PluginMessageMessenger.java