class Discordrb::Interactions::PermissionBuilder
Builder for creating server application command permissions. @deprecated This system is being replaced in the near future.
Constants
Public Class Methods
@!visibility hidden
# File lib/discordrb/data/interaction.rb, line 579 def initialize @permissions = [] end
Public Instance Methods
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 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 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 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 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 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
@!visibility private @return [Array<Hash>]
# File lib/discordrb/data/interaction.rb, line 643 def to_a @permissions end
Private Instance Methods
# File lib/discordrb/data/interaction.rb, line 649 def create_entry(id, type, permission) @permissions << { id: id, type: type, permission: permission } self end