Class: Rubord::Member
- Inherits:
-
Object
- Object
- Rubord::Member
- Defined in:
- lib/rubord/models/member.rb
Instance Attribute Summary collapse
-
#guild_id ⇒ Object
readonly
Returns the value of attribute guild_id.
-
#id ⇒ Object
readonly
Returns the value of attribute id.
-
#roles ⇒ Object
readonly
Returns the value of attribute roles.
-
#user ⇒ Object
readonly
Returns the value of attribute user.
Instance Method Summary collapse
- #guild ⇒ Object
- #has_permission?(perm) ⇒ Boolean
-
#initialize(data, client) ⇒ Member
constructor
A new instance of Member.
- #inspect ⇒ Object
- #permissions ⇒ Object
- #role_objects ⇒ Object
Constructor Details
#initialize(data, client) ⇒ Member
Returns a new instance of Member.
8 9 10 11 12 13 14 15 16 17 18 |
# File 'lib/rubord/models/member.rb', line 8 def initialize(data, client) @client = client @guild_id = data["guild_id"] @roles = data["roles"] || [] @user = Rubord::User.new(data["user"]) @id = @user.id @client.users.set(@id, @user) guild&.members&.set(@id, self) end |
Instance Attribute Details
#guild_id ⇒ Object (readonly)
Returns the value of attribute guild_id.
3 4 5 |
# File 'lib/rubord/models/member.rb', line 3 def guild_id @guild_id end |
#id ⇒ Object (readonly)
Returns the value of attribute id.
3 4 5 |
# File 'lib/rubord/models/member.rb', line 3 def id @id end |
#roles ⇒ Object (readonly)
Returns the value of attribute roles.
3 4 5 |
# File 'lib/rubord/models/member.rb', line 3 def roles @roles end |
#user ⇒ Object (readonly)
Returns the value of attribute user.
3 4 5 |
# File 'lib/rubord/models/member.rb', line 3 def user @user end |
Instance Method Details
#guild ⇒ Object
20 21 22 |
# File 'lib/rubord/models/member.rb', line 20 def guild @client.guilds.get(@guild_id) end |
#has_permission?(perm) ⇒ Boolean
54 55 56 |
# File 'lib/rubord/models/member.rb', line 54 def (perm) .include?(perm.to_sym) end |
#inspect ⇒ Object
58 59 60 |
# File 'lib/rubord/models/member.rb', line 58 def inspect "#<Rubord::Member id=#{@id} guild_id=#{@guild_id} roles=#{@roles}>" end |
#permissions ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/rubord/models/member.rb', line 32 def return [] unless guild && guild.roles bitfield = 0 if (everyone = guild.roles.get(guild.id)) bitfield |= everyone. end role_objects.each do |role| bitfield |= role. end if (bitfield & Rubord::Permissions::FLAGS[:administrator]) != 0 return Rubord::Permissions::FLAGS.keys end Rubord::Permissions::FLAGS .select { |_name, flag| (bitfield & flag) != 0 } .keys end |
#role_objects ⇒ Object
24 25 26 27 28 29 30 |
# File 'lib/rubord/models/member.rb', line 24 def role_objects return [] unless guild && guild.roles @roles .map { |role_id| guild.roles.get(role_id) } .compact end |