@EventHandler(priority = EventPriority.HIGHEST)
    public void chatEvent(final AsyncPlayerChatEvent event) {
        // Don't care about event if it is cancelled
        if(event.isCancelled() || event.getPlayer() == null) {
            return;
        }
        if(event.getMessage().charAt(0) == '#') {
            // Ignore, as we handled it earlier
            return;
        }
        // Grab player
        final Player player = event.getPlayer();
        if(event.getPlayer().getWorld() == null) {
            return;
        }
        // Get world name
        final String worldName = event.getPlayer().getWorld().getName();
        // Grab world specific config
        final WorldConfig config = configHandler.getWorldConfig(worldName);

        Channel channel = null;
        ChannelManager manager = plugin.getModuleForClass(ChannelManager.class);
        if(manager.getCurrentChannelId(player.getName()) != null) {
            channel = manager.getChannel(manager.getCurrentChannelId(player
                    .getName()));
        }
        if(channel == null) {
            // Grab default of the world
            channel = config.getDefaultChannel();
        }

        handleChatEvent(event, config, channel);
    }