class Discordrb::Interactions::PermissionBuilder

Builder for creating server application command permissions. @deprecated This system is being replaced in the near future.

Constants

ROLE

Role permission type

USER

User permission type

Public Class Methods

new() click to toggle source

@!visibility hidden

# File lib/discordrb/data/interaction.rb, line 579
def initialize
  @permissions = []
end

Public Instance Methods

allow(object) click to toggle source

Allow an entity to use this command. @param object [Role, User, Member] @return [PermissionBuilder] @raise [ArgumentError]

# File lib/discordrb/data/interaction.rb, line 615
def allow(object)
  case object
  when Discordrb::User, Discordrb::Member
    create_entry(object.id, USER, true)
  when Discordrb::Role
    create_entry(object.id, ROLE, true)
  else
    raise ArgumentError, "Unable to create permission for unknown type: #{object.class}"
  end
end
allow_role(role_id) click to toggle source

Allow a role to use this command. @param role_id [Integer] @return [PermissionBuilder]

# File lib/discordrb/data/interaction.rb, line 586
def allow_role(role_id)
  create_entry(role_id, ROLE, true)
end
allow_user(user_id) click to toggle source

Allow a user to use this command. @param user_id [Integer] @return [PermissionBuilder]

# File lib/discordrb/data/interaction.rb, line 600
def allow_user(user_id)
  create_entry(user_id, USER, true)
end
deny(object) click to toggle source

Deny an entity usage of this command. @param object [Role, User, Member] @return [PermissionBuilder] @raise [ArgumentError]

# File lib/discordrb/data/interaction.rb, line 630
def deny(object)
  case object
  when Discordrb::User, Discordrb::Member
    create_entry(object.id, USER, false)
  when Discordrb::Role
    create_entry(object.id, ROLE, false)
  else
    raise ArgumentError, "Unable to create permission for unknown type: #{object.class}"
  end
end
deny_role(role_id) click to toggle source

Deny a role usage of this command. @param role_id [Integer] @return [PermissionBuilder]

# File lib/discordrb/data/interaction.rb, line 593
def deny_role(role_id)
  create_entry(role_id, ROLE, false)
end
deny_user(user_id) click to toggle source

Deny a user usage of this command. @param user_id [Integer] @return [PermissionBuilder]

# File lib/discordrb/data/interaction.rb, line 607
def deny_user(user_id)
  create_entry(user_id, USER, false)
end
to_a() click to toggle source

@!visibility private @return [Array<Hash>]

# File lib/discordrb/data/interaction.rb, line 643
def to_a
  @permissions
end

Private Instance Methods

create_entry(id, type, permission) click to toggle source
# File lib/discordrb/data/interaction.rb, line 649
def create_entry(id, type, permission)
  @permissions << { id: id, type: type, permission: permission }
  self
end