Class: Discordrb::Events::MessageEvent
- Includes:
- Respondable
- Defined in:
- lib/discordrb/events/message.rb
Overview
Event raised when a text message is sent to a channel
Direct Known Subclasses
Commands::CommandEvent, MentionEvent, MessageEditEvent, MessageUpdateEvent, PrivateMessageEvent
Instance Attribute Summary collapse
-
#author ⇒ Member, User
(also: #user)
readonly
Who sent this message.
-
#channel ⇒ Channel
readonly
The channel in which this message was sent.
-
#content ⇒ String
(also: #text)
readonly
The message's content.
-
#file ⇒ File
readonly
The file that has been saved by a call to #attach_file and will be sent to Discord upon completion.
-
#file_spoiler ⇒ true, false
readonly
Whether or not this file should appear as a spoiler.
-
#filename ⇒ String
readonly
The filename set in #attach_file that will override the original filename when sent.
-
#message ⇒ Message
readonly
The message which triggered this event.
-
#saved_message ⇒ String
readonly
The message that has been saved by calls to Respondable#<< and will be sent to Discord upon completion.
-
#server ⇒ Server?
readonly
The server where this message was sent, or nil if it was sent in PM.
-
#timestamp ⇒ Time
readonly
The time at which the message was sent.
Attributes inherited from Event
Instance Method Summary collapse
-
#attach_file(file, filename: nil, spoiler: nil) ⇒ Object
Attaches a file to the message event and converts the message into a caption.
-
#detach_file ⇒ Object
Detaches a file from the message event.
-
#from_bot? ⇒ true, false
Whether or not this message was sent by the bot itself.
-
#send_file(file, caption: nil, filename: nil, spoiler: nil) ⇒ Discordrb::Message
Sends file with a caption to the channel this message was sent in, right now.
-
#voice ⇒ VoiceBot?
Utility method to get the voice bot for the current server.
Methods included from Respondable
#<<, #drain, #drain_into, #send_embed, #send_message, #send_message!, #send_temporary_message
Instance Attribute Details
#author ⇒ Member, User (readonly) Also known as: user
Returns who sent this message.
132 |
# File 'lib/discordrb/events/message.rb', line 132 delegate :author, :channel, :content, :timestamp, to: :message |
#channel ⇒ Channel (readonly)
Returns the channel in which this message was sent.
132 |
# File 'lib/discordrb/events/message.rb', line 132 delegate :author, :channel, :content, :timestamp, to: :message |
#content ⇒ String (readonly) Also known as: text
Returns the message's content.
132 |
# File 'lib/discordrb/events/message.rb', line 132 delegate :author, :channel, :content, :timestamp, to: :message |
#file ⇒ File (readonly)
Returns the file that has been saved by a call to #attach_file and will be sent to Discord upon completion.
112 113 114 |
# File 'lib/discordrb/events/message.rb', line 112 def file @file end |
#file_spoiler ⇒ true, false (readonly)
Returns Whether or not this file should appear as a spoiler. Set by #attach_file.
118 119 120 |
# File 'lib/discordrb/events/message.rb', line 118 def file_spoiler @file_spoiler end |
#filename ⇒ String (readonly)
Returns the filename set in #attach_file that will override the original filename when sent.
115 116 117 |
# File 'lib/discordrb/events/message.rb', line 115 def filename @filename end |
#message ⇒ Message (readonly)
Returns the message which triggered this event.
106 107 108 |
# File 'lib/discordrb/events/message.rb', line 106 def @message end |
#saved_message ⇒ String (readonly)
Returns the message that has been saved by calls to Respondable#<< and will be sent to Discord upon completion.
109 110 111 |
# File 'lib/discordrb/events/message.rb', line 109 def @saved_message end |
#server ⇒ Server? (readonly)
Returns the server where this message was sent, or nil if it was sent in PM.
137 |
# File 'lib/discordrb/events/message.rb', line 137 delegate :server, to: :channel |
#timestamp ⇒ Time (readonly)
Returns the time at which the message was sent.
132 |
# File 'lib/discordrb/events/message.rb', line 132 delegate :author, :channel, :content, :timestamp, to: :message |
Instance Method Details
#attach_file(file, filename: nil, spoiler: nil) ⇒ Object
Attaches a file to the message event and converts the message into a caption.
169 170 171 172 173 174 175 176 |
# File 'lib/discordrb/events/message.rb', line 169 def attach_file(file, filename: nil, spoiler: nil) raise ArgumentError, 'Argument is not a file!' unless file.is_a?(File) @file = file @filename = filename @file_spoiler = spoiler nil end |
#detach_file ⇒ Object
Detaches a file from the message event.
179 180 181 182 183 |
# File 'lib/discordrb/events/message.rb', line 179 def detach_file @file = nil @filename = nil @file_spoiler = nil end |
#from_bot? ⇒ true, false
Returns whether or not this message was sent by the bot itself.
186 187 188 |
# File 'lib/discordrb/events/message.rb', line 186 def from_bot? @message.user.id == @bot.profile.id end |
#send_file(file, caption: nil, filename: nil, spoiler: nil) ⇒ Discordrb::Message
Sends file with a caption to the channel this message was sent in, right now. It is usually preferable to use Respondable#<< and #attach_file instead because it avoids rate limiting problems
160 161 162 |
# File 'lib/discordrb/events/message.rb', line 160 def send_file(file, caption: nil, filename: nil, spoiler: nil) @message.channel.send_file(file, caption: caption, filename: filename, spoiler: spoiler) end |
#voice ⇒ VoiceBot?
Utility method to get the voice bot for the current server
192 193 194 |
# File 'lib/discordrb/events/message.rb', line 192 def voice @bot.voice(@message.channel.server.id) end |