class Discordrb::Events::ReactionEvent

Generic superclass for events about adding and removing reactions

Attributes

emoji[R]

@return [Emoji] the emoji that was reacted with.

message_id[R]

@!visibility private

Public Class Methods

new(data, bot) click to toggle source
# File lib/discordrb/events/reactions.rb, line 17
def initialize(data, bot)
  @bot = bot

  @emoji = Discordrb::Emoji.new(data['emoji'], bot, nil)
  @user_id = data['user_id'].to_i
  @message_id = data['message_id'].to_i
  @channel_id = data['channel_id'].to_i
end

Public Instance Methods

channel() click to toggle source

@return [Channel] the channel that was reacted in.

# File lib/discordrb/events/reactions.rb, line 42
def channel
  @channel ||= @bot.channel(@channel_id)
end
message() click to toggle source

@return [Message] the message that was reacted to.

# File lib/discordrb/events/reactions.rb, line 37
def message
  @message ||= channel.load_message(@message_id)
end
server() click to toggle source

@return [Server, nil] the server that was reacted in. If reacted in a PM channel, it will be nil.

# File lib/discordrb/events/reactions.rb, line 47
def server
  @server ||= channel.server
end
user() click to toggle source

@return [User, Member] the user that reacted to this message, or member if a server exists.

# File lib/discordrb/events/reactions.rb, line 27
def user
  # Cache the user so we don't do requests all the time
  @user ||= if server
              @server.member(@user_id)
            else
              @bot.user(@user_id)
            end
end