Class: Discordrb::Message

Inherits:
Object
  • Object
show all
Defined in:
lib/discordrb/data.rb

Overview

A message on Discord that was sent to a text channel

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(data, bot) ⇒ Message

Returns a new instance of Message.



418
419
420
421
422
423
424
425
426
427
428
429
430
431
# File 'lib/discordrb/data.rb', line 418

def initialize(data, bot)
  @bot = bot
  @content = data['content']
  @author = User.new(data['author'], bot)
  @channel = bot.channel(data['channel_id'].to_i)
  @timestamp = Time.at(data['timestamp'].to_i)
  @id = data['id'].to_i

  @mentions = []

  data['mentions'].each do |element|
    @mentions << User.new(element, bot)
  end
end

Instance Attribute Details

#authorObject (readonly) Also known as: user

Returns the value of attribute author.



414
415
416
# File 'lib/discordrb/data.rb', line 414

def author
  @author
end

#channelObject (readonly)

Returns the value of attribute channel.



414
415
416
# File 'lib/discordrb/data.rb', line 414

def channel
  @channel
end

#contentObject (readonly) Also known as: text

Returns the value of attribute content.



414
415
416
# File 'lib/discordrb/data.rb', line 414

def content
  @content
end

#idObject (readonly)

Returns the value of attribute id.



414
415
416
# File 'lib/discordrb/data.rb', line 414

def id
  @id
end

#mentionsObject (readonly)

Returns the value of attribute mentions.



414
415
416
# File 'lib/discordrb/data.rb', line 414

def mentions
  @mentions
end

#timestampObject (readonly)

Returns the value of attribute timestamp.



414
415
416
# File 'lib/discordrb/data.rb', line 414

def timestamp
  @timestamp
end

Instance Method Details

#await(key, attributes = {}, &block) ⇒ Object

Add an await for a message with the same user and channel



446
447
448
# File 'lib/discordrb/data.rb', line 446

def await(key, attributes = {}, &block)
  @bot.add_await(key, MessageEvent, { from: @author.id, in: @channel.id }.merge(attributes), &block)
end

#deleteObject



441
442
443
# File 'lib/discordrb/data.rb', line 441

def delete
  API.delete_message(@bot.token, @channel.id, @id)
end

#edit(new_content) ⇒ Object



437
438
439
# File 'lib/discordrb/data.rb', line 437

def edit(new_content)
  API.edit_message(@bot.token, @channel.id, @id, new_content)
end

#from_bot?Boolean

Returns:

  • (Boolean)


450
451
452
# File 'lib/discordrb/data.rb', line 450

def from_bot?
  @author.bot?
end

#reply(content) ⇒ Object



433
434
435
# File 'lib/discordrb/data.rb', line 433

def reply(content)
  @channel.send_message(content)
end