public void loadChannelHooks() {
        for(Map.Entry<String, Channel> entry : channels.entrySet()) {
            if(!(config.contains("channels." + entry.getKey()
                    + ".linkedChannels"))) {
                continue;
            }
            List<String> links = config.getStringList("channels."
                    + entry.getKey() + ".linkedChannels");
            for(String link : links) {
                if(link.contains(":")) {
                    final String[] split = link.split(":");
                    // Other world
                    WorldConfig otherWorld;
                    try {
                        otherWorld = plugin.getModuleForClass(
                                ConfigHandler.class).getWorldConfig(split[0]);
                    } catch(IllegalArgumentException e) {
                        plugin.getLogger()
                                .log(Level.WARNING, e.getMessage(), e);
                        continue;
                    }
                    if(otherWorld != null) {
                        final Channel otherChannel = otherWorld
                                .getChannel(split[1]);
                        if(otherChannel != null) {
                            entry.getValue().addChannel(otherChannel);
                        } else {
                            plugin.getLogger().warning(
                                    "Link channel '" + split[1]
                                            + "' of other world '" + split[0]
                                            + "' not found for channel '"
                                            + entry.getKey() + "' of world '"
                                            + worldName + "'");
                        }
                    } else {
                        plugin.getLogger().warning(
                                "Other world '" + split[0]
                                        + "' not found for channel '"
                                        + entry.getKey() + "' of world '"
                                        + worldName + "'");
                    }
                } else if(channels.containsKey(link)) {
                    // local world channel to hook to
                    entry.getValue().addChannel(channels.get(link));
                } else {
                    // Invalid entry
                    plugin.getLogger().warning(
                            "Invalid link channel entry '" + link
                                    + "' for channel '" + entry.getKey()
                                    + "' of world '" + worldName + "'");
                }
            }
        }
    }