class Discordrb::Events::MessageEventHandler
Event
handler for MessageEvent
Public Instance Methods
after_call(event)
click to toggle source
# File lib/discordrb/events/message.rb, line 221 def after_call(event) if event.file.nil? event.send_message(event.saved_message) unless event.saved_message.empty? else event.send_file(event.file, caption: event.saved_message) end end
matches?(event)
click to toggle source
# File lib/discordrb/events/message.rb, line 159 def matches?(event) # Check for the proper event type return false unless event.is_a? MessageEvent [ matches_all(@attributes[:starting_with] || @attributes[:start_with], event.content) do |a, e| if a.is_a? String e.start_with? a elsif a.is_a? Regexp (e =~ a)&.zero? end end, matches_all(@attributes[:ending_with] || @attributes[:end_with], event.content) do |a, e| if a.is_a? String e.end_with? a elsif a.is_a? Regexp !(e =~ Regexp.new("#{a}$")).nil? end end, matches_all(@attributes[:containing] || @attributes[:contains], event.content) do |a, e| if a.is_a? String e.include? a elsif a.is_a? Regexp (e =~ a) end end, matches_all(@attributes[:in], event.channel) do |a, e| if a.is_a? String # Make sure to remove the "#" from channel names in case it was specified a.delete('#') == e.name elsif a.is_a? Integer a == e.id else a == e end end, matches_all(@attributes[:from], event.author) do |a, e| if a.is_a? String a == e.name elsif a.is_a? Integer a == e.id elsif a == :bot e.current_bot? else a == e end end, matches_all(@attributes[:with_text] || @attributes[:content] || @attributes[:exact_text], event.content) do |a, e| if a.is_a? String e == a elsif a.is_a? Regexp match = a.match(e) match ? (e == match[0]) : false end end, matches_all(@attributes[:after], event.timestamp) { |a, e| a > e }, matches_all(@attributes[:before], event.timestamp) { |a, e| a < e }, matches_all(@attributes[:private], event.channel.private?) { |a, e| !e == !a } ].reduce(true, &:&) end