Class: Discorb::Member
- Inherits:
-
User
- Object
- DiscordModel
- User
- Discorb::Member
- Defined in:
- lib/discorb/member.rb
Overview
Represents a member of a guild.
Instance Attribute Summary collapse
- #activities -> nil, Array<Discorb::Presence::Activity> readonly
- #activity -> nil, Discorb::Presence::Activity readonly
- #custom_avatar -> Discorb::Asset? readonly
-
#deaf -> Boolean
(also: #deaf?)
readonly
Whether the member is deafened.
-
#display_avatar -> Discorb::Asset
readonly
The display avatar of the member.
- #guild -> nil, Discorb::Guild readonly
-
#hoisted? -> Boolean
readonly
Whether the member has a hoisted role.
- #hoisted_role -> nil, Discorb::Role readonly
-
#joined_at -> Time
readonly
The time the member joined the guild.
-
#mention -> String
readonly
The mention of the member.
-
#mute -> Boolean
(also: #mute?)
readonly
Whether the member is muted.
-
#name -> String
readonly
The display name of the member.
- #nick -> String? readonly
-
#owner? -> Boolean
readonly
Whether the member is the owner of the guild.
-
#pending -> Boolean
(also: #pending?)
readonly
Whether the member is pending (Not passed member screening).
-
#permissions -> Discorb::Permission
(also: #guild_permissions)
readonly
The permissions of the member.
-
#premium_since -> Time
readonly
The time the member boosted the guild.
- #presence -> nil, Discorb::Presence readonly
- #roles -> nil, Array<Discorb::Role> readonly
- #status -> nil, Symbol readonly
-
#voice_state -> Discorb::VoiceState
readonly
The voice state of the member.
Attributes inherited from User
#avatar, #bot, #created_at, #discriminator, #flag, #id, #username, #verified
Instance Method Summary collapse
-
#add_role(role, reason: nil) -> Async::Task<void>
Add a role to the member.
-
#ban(delete_message_days: 0, reason: nil) -> Async::Task<Discorb::Guild::Ban>
Ban the member.
-
#can_manage?(role) -> Boolean
Checks if the member can manage the given role.
-
#edit(nick: Discorb::Unset, role: Discorb::Unset, mute: Discorb::Unset, deaf: Discorb::Unset, channel: Discorb::Unset, communication_disabled_until: Discorb::Unset, timeout_until: Discorb::Unset, reason: nil) -> Async::Task<void>
(also: #modify)
Edit the member.
- #inspect -> Object
-
#kick(reason: nil) -> Async::Task<void>
Kick the member.
-
#remove_role(role, reason: nil) -> Async::Task<void>
Remove a role to the member.
-
#timeout(time, reason: nil) -> Async::Task<void>
(also: #disable_communication)
Timeout the member.
-
#to_s -> String
Format the member to
Username#Discriminator
style.
Methods inherited from User
Methods included from Messageable
#delete_message!, #edit_message, #fetch_message, #fetch_messages, #fetch_pins, #pin_message, #post, #typing, #unpin_message
Methods inherited from DiscordModel
Instance Attribute Details
#activities -> nil, Array<Discorb::Presence::Activity> (readonly)
This method returns an object from client cache. it will return nil
if the object is not in cache.
|
# File 'lib/discorb/member.rb', line 30
|
#activity -> nil, Discorb::Presence::Activity (readonly)
This method returns an object from client cache. it will return nil
if the object is not in cache.
|
# File 'lib/discorb/member.rb', line 30
|
#custom_avatar -> Discorb::Asset? (readonly)
17 18 19 |
# File 'lib/discorb/member.rb', line 17 def custom_avatar @custom_avatar end |
#deaf -> Boolean (readonly) Also known as: deaf?
Returns Whether the member is deafened.
24 25 26 |
# File 'lib/discorb/member.rb', line 24 def deaf @deaf end |
#display_avatar -> Discorb::Asset (readonly)
Returns The display avatar of the member.
19 20 21 |
# File 'lib/discorb/member.rb', line 19 def display_avatar @display_avatar end |
#guild -> nil, Discorb::Guild (readonly)
This method returns an object from client cache. it will return nil
if the object is not in cache.
|
# File 'lib/discorb/member.rb', line 30
|
#hoisted? -> Boolean (readonly)
Returns Whether the member has a hoisted role.
|
# File 'lib/discorb/member.rb', line 30
|
#hoisted_role -> nil, Discorb::Role (readonly)
This method returns an object from client cache. it will return nil
if the object is not in cache.
|
# File 'lib/discorb/member.rb', line 30
|
#joined_at -> Time (readonly)
Returns The time the member joined the guild.
14 15 16 |
# File 'lib/discorb/member.rb', line 14 def joined_at @joined_at end |
#mention -> String (readonly)
Returns The mention of the member.
|
# File 'lib/discorb/member.rb', line 30
|
#mute -> Boolean (readonly) Also known as: mute?
Returns Whether the member is muted.
21 22 23 |
# File 'lib/discorb/member.rb', line 21 def mute @mute end |
#name -> String (readonly)
Returns The display name of the member.
|
# File 'lib/discorb/member.rb', line 30
|
#nick -> String? (readonly)
12 13 14 |
# File 'lib/discorb/member.rb', line 12 def nick @nick end |
#owner? -> Boolean (readonly)
Returns Whether the member is the owner of the guild.
|
# File 'lib/discorb/member.rb', line 30
|
#pending -> Boolean (readonly) Also known as: pending?
Returns Whether the member is pending (Not passed member screening).
27 28 29 |
# File 'lib/discorb/member.rb', line 27 def pending @pending end |
#permissions -> Discorb::Permission (readonly) Also known as: guild_permissions
Returns The permissions of the member.
|
# File 'lib/discorb/member.rb', line 30
|
#premium_since -> Time (readonly)
Returns The time the member boosted the guild.
9 10 11 |
# File 'lib/discorb/member.rb', line 9 def premium_since @premium_since end |
#presence -> nil, Discorb::Presence (readonly)
This method returns an object from client cache. it will return nil
if the object is not in cache.
|
# File 'lib/discorb/member.rb', line 30
|
#roles -> nil, Array<Discorb::Role> (readonly)
This method returns an object from client cache. it will return nil
if the object is not in cache.
|
# File 'lib/discorb/member.rb', line 30
|
#status -> nil, Symbol (readonly)
This method returns an object from client cache. it will return nil
if the object is not in cache.
|
# File 'lib/discorb/member.rb', line 30
|
#voice_state -> Discorb::VoiceState (readonly)
Returns The voice state of the member.
|
# File 'lib/discorb/member.rb', line 30
|
Instance Method Details
#add_role(role, reason: nil) -> Async::Task<void>
Add a role to the member.
160 161 162 163 164 165 166 167 |
# File 'lib/discorb/member.rb', line 160 def add_role(role, reason: nil) Async do @client.http.request( Route.new("/guilds/#{@guild_id}/members/#{@id}/roles/#{role.is_a?(Role) ? role.id : role}", "//guilds/:guild_id/members/:user_id/roles/:role_id", :put), nil, audit_log_reason: reason, ).wait end end |
#ban(delete_message_days: 0, reason: nil) -> Async::Task<Discorb::Guild::Ban>
Ban the member.
272 273 274 275 276 |
# File 'lib/discorb/member.rb', line 272 def ban(delete_message_days: 0, reason: nil) Async do guild.ban_member(self, delete_message_days: , reason: reason).wait end end |
#can_manage?(role) -> Boolean
Checks if the member can manage the given role.
285 286 287 288 289 290 |
# File 'lib/discorb/member.rb', line 285 def can_manage?(role) return true if owner? top_role = roles.max_by(&:position) top_role.position > role.position end |
#edit(nick: Discorb::Unset, role: Discorb::Unset, mute: Discorb::Unset, deaf: Discorb::Unset, channel: Discorb::Unset, communication_disabled_until: Discorb::Unset, timeout_until: Discorb::Unset, reason: nil) -> Async::Task<void> Also known as: modify
The arguments of this method are defaultly set to Discorb::Unset
. Specify value to set the value, if not don't specify or specify Discorb::Unset
.
Edit the member.
203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 |
# File 'lib/discorb/member.rb', line 203 def edit( nick: Discorb::Unset, role: Discorb::Unset, mute: Discorb::Unset, deaf: Discorb::Unset, channel: Discorb::Unset, communication_disabled_until: Discorb::Unset, timeout_until: Discorb::Unset, reason: nil ) Async do payload = {} payload[:nick] = nick if nick != Discorb::Unset payload[:roles] = role if role != Discorb::Unset payload[:mute] = mute if mute != Discorb::Unset payload[:deaf] = deaf if deaf != Discorb::Unset communication_disabled_until = timeout_until if timeout_until != Discorb::Unset if communication_disabled_until != Discorb::Unset payload[:communication_disabled_until] = communication_disabled_until&.iso8601 end payload[:channel_id] = channel&.id if channel != Discorb::Unset @client.http.request( Route.new("/guilds/#{@guild_id}/members/#{@id}", "//guilds/:guild_id/members/:user_id", :patch), payload, audit_log_reason: reason, ).wait end end |
#inspect -> Object
147 148 149 |
# File 'lib/discorb/member.rb', line 147 def inspect "#<#{self.class} #{self} id=#{@id}>" end |
#kick(reason: nil) -> Async::Task<void>
Kick the member.
257 258 259 260 261 |
# File 'lib/discorb/member.rb', line 257 def kick(reason: nil) Async do guild.kick_member(self, reason: reason).wait end end |
#remove_role(role, reason: nil) -> Async::Task<void>
Remove a role to the member.
178 179 180 181 182 183 184 185 |
# File 'lib/discorb/member.rb', line 178 def remove_role(role, reason: nil) Async do @client.http.request( Route.new("/guilds/#{@guild_id}/members/#{@id}/roles/#{role.is_a?(Role) ? role.id : role}", "//guilds/:guild_id/members/:user_id/roles/:role_id", :delete), {}, audit_log_reason: reason, ).wait end end |
#timeout(time, reason: nil) -> Async::Task<void> Also known as: disable_communication
Timeout the member.
243 244 245 |
# File 'lib/discorb/member.rb', line 243 def timeout(time, reason: nil) edit(communication_disabled_until: time, reason: reason) end |
#to_s -> String
Format the member to Username#Discriminator
style.
87 88 89 |
# File 'lib/discorb/member.rb', line 87 def to_s "#{username}##{discriminator}" end |