module Discordrb::Events::Respondable
Module to make sending messages easier with the presence of a text channel in an event
Attributes
@return [Channel] the channel in which this event occurred
Public Instance Methods
Adds a string to be sent after the event has finished execution. Avoids problems with rate limiting because only one message is ever sent. If it is used multiple times, the strings will bunch up into one message (separated by newlines) @param message [String] The message to send to the channel
# File lib/discordrb/events/message.rb, line 58 def <<(message) addition = "#{message}\n" @saved_message = @saved_message ? @saved_message + addition : addition nil end
Drains the currently saved message, which clears it out, resulting in everything being saved before being thrown away and nothing being sent to the channel (unless there is something saved after this). @see <<
# File lib/discordrb/events/message.rb, line 67 def drain @saved_message = '' nil end
Drains the currently saved message into a result string. This prepends it before that string, clears the saved message and returns the concatenation. @param result [String] The result string to drain into. @return [String] a string formed by concatenating the saved message and the argument.
# File lib/discordrb/events/message.rb, line 76 def drain_into(result) return if result.is_a?(Discordrb::Message) result = (@saved_message.nil? ? '' : @saved_message.to_s) + (result.nil? ? '' : result.to_s) drain result end
The same as {#send_message}, but yields a {Webhooks::Embed} for easy building of embedded content inside a block. @see Channel#send_embed
@param message [String] The message that should be sent along with the embed. If this is the empty string, only the embed will be shown. @param embed [Discordrb::Webhooks::Embed, nil] The embed to start the building process with, or nil if one should be created anew. @param attachments [Array<File>] Files that can be referenced in embeds via ‘attachment://file.png` @param tts [true, false] Whether or not this message should be sent using Discord text-to-speech. @param allowed_mentions [Hash, Discordrb::AllowedMentions
, false, nil] Mentions that are allowed to ping on this message. `false` disables all pings @param message_reference [Message, String
, Integer
, nil] The message, or message ID, to reply to if any. @param components [View, Array<Hash>, nil] A collection of components to attach to the message. @yield [embed] Yields the embed to allow for easy building inside a block. @yieldparam embed [Discordrb::Webhooks::Embed] The embed from the parameters, or a new one. @return [Message] The resulting message.
# File lib/discordrb/events/message.rb, line 38 def send_embed(message = '', embed = nil, attachments = nil, tts = false, allowed_mentions = nil, message_reference = nil, components = nil, &block) channel.send_embed(message, embed, attachments, tts, allowed_mentions, message_reference, components, &block) end
Sends a message to the channel this message was sent in, right now. It is usually preferable to use {#<<} instead because it avoids rate limiting problems @param content [String] The message to send to the channel @param tts [true, false] Whether or not this message should be sent using Discord text-to-speech. @param embed [Hash, Discordrb::Webhooks::Embed, nil] The rich embed to append to this message. @param attachments [Array<File>] Files that can be referenced in embeds via ‘attachment://file.png` @param allowed_mentions [Hash, Discordrb::AllowedMentions
, false, nil] Mentions that are allowed to ping on this message. `false` disables all pings @param message_reference [Message, String
, Integer
, nil] The message, or message ID, to reply to if any. @param components [View, Array<Hash>, nil] A collection of components to attach to the message. @return [Discordrb::Message] the message that was sent
# File lib/discordrb/events/message.rb, line 22 def send_message(content, tts = false, embed = nil, attachments = nil, allowed_mentions = nil, message_reference = nil, components = nil) channel.send_message(content, tts, embed, attachments, allowed_mentions, message_reference, components) end
Sends a temporary message to the channel this message was sent in, right now. @param content [String] The content to send. Should not be longer than 2000 characters or it will result in an error. @param timeout [Float] The amount of time in seconds after which the message sent will be deleted. @param tts [true, false] Whether or not this message should be sent using Discord text-to-speech. @param embed [Hash, Discordrb::Webhooks::Embed, nil] The rich embed to append to this message. @param attachments [Array<File>] Files that can be referenced in embeds via ‘attachment://file.png` @param allowed_mentions [Hash, Discordrb::AllowedMentions
, false, nil] Mentions that are allowed to ping on this message. `false` disables all pings @param components [View, Array<Hash>, nil] A collection of components to attach to the message.
# File lib/discordrb/events/message.rb, line 50 def send_temporary_message(content, timeout, tts = false, embed = nil, attachments = nil, allowed_mentions = nil, components = nil) channel.send_temporary_message(content, timeout, tts, embed, attachments, allowed_mentions, components) end