Class: RubyCord::Guild::ThreadChannel
- Inherits:
-
Channel
- Object
- DiscordModel
- Channel
- Channel
- RubyCord::Guild::ThreadChannel
- Includes:
- Internal::Messageable
- Defined in:
- lib/rubycord/guild/channel/thread.rb
Direct Known Subclasses
Defined Under Namespace
Classes: Member, News, Private, Public
Class Attribute Summary collapse
-
.channel_type ⇒ Object
readonly
Returns the value of attribute channel_type.
Instance Attribute Summary collapse
-
#archived ⇒ Boolean
(also: #archived?)
readonly
Whether the thread is archived or not.
- #archived_timestamp ⇒ Time? (also: #archived_at) readonly
-
#auto_archive_duration ⇒ Integer
(also: #archive_in)
readonly
Auto archive duration in seconds.
-
#id ⇒ RubyCord::Snowflake
readonly
The ID of the channel.
-
#member_count ⇒ Integer
(also: #recipient_count)
readonly
The number of recipients in the thread.
-
#members ⇒ Array<RubyCord::Guild::ThreadChannel::Member>
readonly
The members of the thread.
-
#message_count ⇒ Integer
readonly
The number of messages in the thread.
-
#name ⇒ String
readonly
The name of the thread.
-
#rate_limit_per_user ⇒ Integer
(also: #slowmode)
readonly
The rate limit per user (slowmode) in the thread.
Attributes inherited from Channel
#permission_overwrites, #position
Instance Method Summary collapse
-
#add_member(member = :me) ⇒ Async::Task<void>
(also: #join)
Add a member to the thread.
-
#archive(reason: nil) ⇒ Async::Task<self>
Helper method to archive the thread.
-
#edit(name: RubyCord::Unset, archived: RubyCord::Unset, auto_archive_duration: RubyCord::Unset, archive_in: RubyCord::Unset, locked: RubyCord::Unset, reason: nil) ⇒ Async::Task<self>
Edit the thread.
-
#fetch_members ⇒ Array<RubyCord::Guild::ThreadChannel::Member>
Fetch members in the thread.
-
#guild ⇒ RubyCord::Guild
The guild of the thread.
-
#inspect ⇒ String
Object class and attributes.
- #joined? ⇒ Boolean
-
#lock(reason: nil) ⇒ Async::Task<self>
Helper method to lock the thread.
- #me ⇒ RubyCord::Guild::ThreadChannel::Member?
-
#owner ⇒ RubyCord::Guild::Member
The owner of the thread.
- #parent ⇒ RubyCord::Guild::TextChannel (also: #channel)
-
#remove_member(member = :me) ⇒ Async::Task<void>
(also: #leave)
Remove a member from the thread.
-
#unarchive(reason: nil) ⇒ Async::Task<self>
Helper method to unarchive the thread.
-
#unlock(reason: nil) ⇒ Async::Task<self>
Helper method to unlock the thread.
Methods included from Internal::Messageable
#delete_message, #edit_message, #fetch_message, #fetch_messages, #fetch_pins, #pin_message, #post, #typing, #unpin_message
Methods inherited from Channel
#<=>, #==, #create_invite, #delete, #delete_permissions, #fetch_invites, #mention, #move, #set_permissions, #to_s
Methods inherited from Channel
Methods inherited from DiscordModel
Class Attribute Details
.channel_type ⇒ Object (readonly)
Returns the value of attribute channel_type.
323 324 325 |
# File 'lib/rubycord/guild/channel/thread.rb', line 323 def channel_type @channel_type end |
Instance Attribute Details
#archived ⇒ Boolean (readonly) Also known as: archived?
Returns Whether the thread is archived or not.
36 37 38 |
# File 'lib/rubycord/guild/channel/thread.rb', line 36 def archived @archived end |
#archived_timestamp ⇒ Time? (readonly) Also known as: archived_at
30 31 32 |
# File 'lib/rubycord/guild/channel/thread.rb', line 30 def end |
#auto_archive_duration ⇒ Integer (readonly) Also known as: archive_in
Returns Auto archive duration in seconds.
33 34 35 |
# File 'lib/rubycord/guild/channel/thread.rb', line 33 def auto_archive_duration @auto_archive_duration end |
#id ⇒ RubyCord::Snowflake (readonly)
This ID is same as the starter message's ID
Returns The ID of the channel.
13 14 15 |
# File 'lib/rubycord/guild/channel/thread.rb', line 13 def id @id end |
#member_count ⇒ Integer (readonly) Also known as: recipient_count
This will stop counting at 50.
Returns The number of recipients in the thread.
21 22 23 |
# File 'lib/rubycord/guild/channel/thread.rb', line 21 def member_count @member_count end |
#members ⇒ Array<RubyCord::Guild::ThreadChannel::Member> (readonly)
Returns The members of the thread.
27 28 29 |
# File 'lib/rubycord/guild/channel/thread.rb', line 27 def members @members end |
#message_count ⇒ Integer (readonly)
This will stop counting at 50.
Returns The number of messages in the thread.
18 19 20 |
# File 'lib/rubycord/guild/channel/thread.rb', line 18 def end |
#name ⇒ String (readonly)
Returns The name of the thread.
15 16 17 |
# File 'lib/rubycord/guild/channel/thread.rb', line 15 def name @name end |
#rate_limit_per_user ⇒ Integer (readonly) Also known as: slowmode
Returns The rate limit per user (slowmode) in the thread.
24 25 26 |
# File 'lib/rubycord/guild/channel/thread.rb', line 24 def rate_limit_per_user @rate_limit_per_user end |
Instance Method Details
#add_member(member = :me) ⇒ Async::Task<void> Also known as: join
Add a member to the thread.
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 |
# File 'lib/rubycord/guild/channel/thread.rb', line 203 def add_member(member = :me) Async do if member == :me @client .http .request( RubyCord::Internal::Route.new( "/channels/#{@id}/thread-members/@me", "//channels/:channel_id/thread-members/@me", :post ) ) .wait else @client .http .request( RubyCord::Internal::Route.new( "/channels/#{@id}/thread-members/#{Utils.try(member, :id)}", "//channels/:channel_id/thread-members/:user_id", :post ) ) .wait end end end |
#archive(reason: nil) ⇒ Async::Task<self>
Helper method to archive the thread.
125 126 127 |
# File 'lib/rubycord/guild/channel/thread.rb', line 125 def archive(reason: nil) edit(archived: true, reason:) end |
#edit(name: RubyCord::Unset, archived: RubyCord::Unset, auto_archive_duration: RubyCord::Unset, archive_in: RubyCord::Unset, locked: RubyCord::Unset, reason: nil) ⇒ Async::Task<self>
The arguments of this method are defaultly set to RubyCord::Unset
.
Specify value to set the value, if not don't specify or specify RubyCord::Unset
.
Edit the thread.
89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 |
# File 'lib/rubycord/guild/channel/thread.rb', line 89 def edit( name: RubyCord::Unset, archived: RubyCord::Unset, auto_archive_duration: RubyCord::Unset, archive_in: RubyCord::Unset, locked: RubyCord::Unset, reason: nil ) Async do payload = {} payload[:name] = name if name != RubyCord::Unset payload[:archived] = archived if archived != RubyCord::Unset auto_archive_duration ||= archive_in payload[ :auto_archive_duration ] = auto_archive_duration if auto_archive_duration != RubyCord::Unset payload[:locked] = locked if locked != RubyCord::Unset @client .http .request( RubyCord::Internal::Route.new("/channels/#{@id}", "//channels/:channel_id", :patch), payload, audit_log_reason: reason ) .wait self end end |
#fetch_members ⇒ Array<RubyCord::Guild::ThreadChannel::Member>
Fetch members in the thread.
275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 |
# File 'lib/rubycord/guild/channel/thread.rb', line 275 def fetch_members Async do _resp, data = @client .http .request( RubyCord::Internal::Route.new( "/channels/#{@id}/thread-members", "//channels/:channel_id/thread-members", :get ) ) .wait data.map { |d| @members[d[:id]] = RubyCord::Guild::Member.new(@client, d, @guild_id) } end end |
#guild ⇒ RubyCord::Guild
Returns The guild of the thread.
182 183 184 |
# File 'lib/rubycord/guild/channel/thread.rb', line 182 def guild @client.guilds[@guild] end |
#inspect ⇒ String
Returns Object class and attributes.
192 193 194 |
# File 'lib/rubycord/guild/channel/thread.rb', line 192 def inspect "#<#{self.class} \"##{@name}\" id=#{@id}>" end |
#joined? ⇒ Boolean
177 178 179 |
# File 'lib/rubycord/guild/channel/thread.rb', line 177 def joined? !!me end |
#lock(reason: nil) ⇒ Async::Task<self>
Helper method to lock the thread.
136 137 138 |
# File 'lib/rubycord/guild/channel/thread.rb', line 136 def lock(reason: nil) edit(archived: true, locked: true, reason:) end |
#me ⇒ RubyCord::Guild::ThreadChannel::Member?
172 173 174 |
# File 'lib/rubycord/guild/channel/thread.rb', line 172 def me @members[@client.user.id] end |
#owner ⇒ RubyCord::Guild::Member
Returns The owner of the thread.
187 188 189 |
# File 'lib/rubycord/guild/channel/thread.rb', line 187 def owner guild.members[@owner_id] end |
#parent ⇒ RubyCord::Guild::TextChannel Also known as: channel
165 166 167 |
# File 'lib/rubycord/guild/channel/thread.rb', line 165 def parent @client.channels[@parent_id] end |
#remove_member(member = :me) ⇒ Async::Task<void> Also known as: leave
Remove a member from the thread.
240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 |
# File 'lib/rubycord/guild/channel/thread.rb', line 240 def remove_member(member = :me) Async do if member == :me @client .http .request( RubyCord::Internal::Route.new( "/channels/#{@id}/thread-members/@me", "//channels/:channel_id/thread-members/@me", :delete ) ) .wait else @client .http .request( RubyCord::Internal::Route.new( "/channels/#{@id}/thread-members/#{Utils.try(member, :id)}", "//channels/:channel_id/thread-members/:user_id", :delete ) ) .wait end end end |
#unarchive(reason: nil) ⇒ Async::Task<self>
Helper method to unarchive the thread.
147 148 149 |
# File 'lib/rubycord/guild/channel/thread.rb', line 147 def unarchive(reason: nil) edit(archived: false, reason:) end |
#unlock(reason: nil) ⇒ Async::Task<self>
This method won't unarchive the thread. Use #unarchive instead.
Helper method to unlock the thread.
160 161 162 |
# File 'lib/rubycord/guild/channel/thread.rb', line 160 def unlock(reason: nil) edit(archived: !unarchive, locked: false, reason:) end |