Class: Discorb::Gateway::MessageUpdateEvent

Inherits:
GatewayEvent show all
Defined in:
lib/discorb/gateway_events.rb

Overview

Represents a MESSAGE_UPDATE event.

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from GatewayEvent

#inspect

Constructor Details

#initialize(client, data, before, after) -> MessageUpdateEvent

Returns a new instance of MessageUpdateEvent.



325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
# File 'lib/discorb/gateway_events.rb', line 325

def initialize(client, data, before, after)
  @client = client
  @data = data
  @before = before
  @after = after
  @id = Snowflake.new(data[:id])
  @channel_id = Snowflake.new(data[:channel_id])
  @guild_id = Snowflake.new(data[:guild_id]) if data.key?(:guild_id)
  @content = data[:content]
  @timestamp = Time.iso8601(data[:edited_timestamp])
  @mention_everyone = data[:mention_everyone]
  @mention_roles = data[:mention_roles].map { |r| guild.roles[r] } if data.key?(:mention_roles)
  @attachments = data[:attachments].map { |a| Attachment.from_hash(a) } if data.key?(:attachments)
  @embeds = data[:embeds] ? data[:embeds].map { |e| Embed.from_hash(e) } : [] if data.key?(:embeds)
end

Instance Attribute Details

#after -> Discorb::Message (readonly)

Returns The message after update.

Returns:



297
298
299
# File 'lib/discorb/gateway_events.rb', line 297

def after
  @after
end

#attachments -> Array<Discorb::Attachment> (readonly)

Returns The attachments in the message.

Returns:



314
315
316
# File 'lib/discorb/gateway_events.rb', line 314

def attachments
  @attachments
end

#before -> Discorb::Message (readonly)

Returns The message before update.

Returns:



295
296
297
# File 'lib/discorb/gateway_events.rb', line 295

def before
  @before
end

#channel -> nil, Discorb::Channel (readonly)

Note:

This method returns an object from client cache. it will return nil if the object is not in cache.

Returns:

  • (nil)

    The object wasn't cached.

  • (Discorb::Channel)

    The channel the message was sent in.



325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
# File 'lib/discorb/gateway_events.rb', line 325

def initialize(client, data, before, after)
  @client = client
  @data = data
  @before = before
  @after = after
  @id = Snowflake.new(data[:id])
  @channel_id = Snowflake.new(data[:channel_id])
  @guild_id = Snowflake.new(data[:guild_id]) if data.key?(:guild_id)
  @content = data[:content]
  @timestamp = Time.iso8601(data[:edited_timestamp])
  @mention_everyone = data[:mention_everyone]
  @mention_roles = data[:mention_roles].map { |r| guild.roles[r] } if data.key?(:mention_roles)
  @attachments = data[:attachments].map { |a| Attachment.from_hash(a) } if data.key?(:attachments)
  @embeds = data[:embeds] ? data[:embeds].map { |e| Embed.from_hash(e) } : [] if data.key?(:embeds)
end

#channel_id -> Discorb::Snowflake (readonly)

Returns The ID of the channel the message was sent in.

Returns:



301
302
303
# File 'lib/discorb/gateway_events.rb', line 301

def channel_id
  @channel_id
end

#content -> String (readonly)

Returns The new content of the message.

Returns:

  • (String)

    The new content of the message.



305
306
307
# File 'lib/discorb/gateway_events.rb', line 305

def content
  @content
end

#embeds -> Array<Discorb::Embed> (readonly)

Returns The embeds in the message.

Returns:



316
317
318
# File 'lib/discorb/gateway_events.rb', line 316

def embeds
  @embeds
end

#guild -> nil, Discorb::Guild (readonly)

Note:

This method returns an object from client cache. it will return nil if the object is not in cache.

Returns:

  • (nil)

    The object wasn't cached.

  • (Discorb::Guild)

    The guild the message was sent in.



325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
# File 'lib/discorb/gateway_events.rb', line 325

def initialize(client, data, before, after)
  @client = client
  @data = data
  @before = before
  @after = after
  @id = Snowflake.new(data[:id])
  @channel_id = Snowflake.new(data[:channel_id])
  @guild_id = Snowflake.new(data[:guild_id]) if data.key?(:guild_id)
  @content = data[:content]
  @timestamp = Time.iso8601(data[:edited_timestamp])
  @mention_everyone = data[:mention_everyone]
  @mention_roles = data[:mention_roles].map { |r| guild.roles[r] } if data.key?(:mention_roles)
  @attachments = data[:attachments].map { |a| Attachment.from_hash(a) } if data.key?(:attachments)
  @embeds = data[:embeds] ? data[:embeds].map { |e| Embed.from_hash(e) } : [] if data.key?(:embeds)
end

#guild_id -> Discorb::Snowflake (readonly)

Returns The ID of the guild the message was sent in.

Returns:



303
304
305
# File 'lib/discorb/gateway_events.rb', line 303

def guild_id
  @guild_id
end

#id -> Discorb::Snowflake (readonly)

Returns The ID of the message.

Returns:



299
300
301
# File 'lib/discorb/gateway_events.rb', line 299

def id
  @id
end

#mention_everyone -> Boolean (readonly)

Returns Whether the message pings @everyone.

Returns:

  • (Boolean)

    Whether the message pings @everyone.



309
310
311
# File 'lib/discorb/gateway_events.rb', line 309

def mention_everyone
  @mention_everyone
end

#mention_roles -> nil, Array<Discorb::Role> (readonly)

Note:

This method returns an object from client cache. it will return nil if the object is not in cache.

Returns:

  • (nil)

    The object wasn't cached.

  • (Array<Discorb::Role>)

    The roles mentioned in the message.



312
313
314
# File 'lib/discorb/gateway_events.rb', line 312

def mention_roles
  @mention_roles
end

#timestamp -> Time (readonly)

Returns The time the message was edited.

Returns:

  • (Time)

    The time the message was edited.



307
308
309
# File 'lib/discorb/gateway_events.rb', line 307

def timestamp
  @timestamp
end

Instance Method Details

#fetch_message -> Async::Task<Discorb::Message>

Fetch the message.

Returns:



353
354
355
356
357
# File 'lib/discorb/gateway_events.rb', line 353

def fetch_message
  Async do
    channel.fetch_message(@id).wait
  end
end