public boolean unregister(final Channel channel) {
        if (!this.channels.containsKey(channel.type))
            throw new IllegalArgumentException("Channel not registered: " + channel.toString());

        if (this.channels.get(channel.type).remove(channel.name) == null)
            return false;

        if (this.channels.get(channel.type).size() == 0)
            this.channels.remove(channel.type);

        Main.logger.log(Level.FINER, "Unregistered channel: " + channel.toString());
        return true;
    }