def create_role(name: 'new role', colour: 0, hoist: false, mentionable: false, permissions: 104_324_161, reason: nil)
      colour = colour.respond_to?(:combined) ? colour.combined : colour

      permissions = if permissions.is_a?(Array)
                      Permissions.bits(permissions)
                    elsif permissions.respond_to?(:bits)
                      permissions.bits
                    else
                      permissions
                    end

      response = API::Server.create_role(@bot.token, @id, name, colour, hoist, mentionable, permissions, reason)

      role = Role.new(JSON.parse(response), @bot, self)
      @roles << role
      role
    end
def create_role(name: 'new role', colour: 0, hoist: false, mentionable: false, permissions: 104_324_161, reason: nil)
      colour = colour.respond_to?(:combined) ? colour.combined : colour

      permissions = if permissions.is_a?(Array)
                      Permissions.bits(permissions)
                    elsif permissions.respond_to?(:bits)
                      permissions.bits
                    else
                      permissions
                    end

      response = API::Server.create_role(@bot.token, @id, name, colour, hoist, mentionable, permissions, reason)

      role = Role.new(JSON.parse(response), @bot, self)
      @roles << role
      role
    end
Creates a role on this server which can then be modified. It will be initialized
 with the regular role defaults the client uses unless specified, i.e. name is "new role",
 permissions are the default, colour is the default etc.
 @param name [String] Name of the role to create
 @param colour [Integer, ColourRGB, #combined] The roles colour
 @param hoist [true, false]
 @param mentionable [true, false]
 @param permissions [Integer, Array<Symbol>, Permissions, #bits] The permissions to write to the new role.
 @param reason [String] The reason the for the creation of this role.
 @return [Role] the created role.