class MijDiscord::Cache::ServerCache
Public Class Methods
new(server, bot)
click to toggle source
# File lib/mij-discord/cache.rb, line 157 def initialize(server, bot) @server, @bot = server, bot reset end
Public Instance Methods
get_channel(key, local: false)
click to toggle source
# File lib/mij-discord/cache.rb, line 202 def get_channel(key, local: false) id = key&.to_id || return return @channels[id] if @channels.has_key?(id) channel = @bot.cache.get_channel(key, local: local) return nil unless channel&.server == @server @channels[channel.id] = channel end
get_member(key, local: false)
click to toggle source
# File lib/mij-discord/cache.rb, line 179 def get_member(key, local: false) id = key&.to_id || return return @members[id] if @members.has_key?(id) return nil if local begin response = MijDiscord::Core::API::Server.resolve_member(@bot.auth, @server.id, id) rescue MijDiscord::Errors::NotFound return nil end @members[id] = MijDiscord::Data::Member.new(JSON.parse(response), @server, @bot) end
get_role(key, local: false)
click to toggle source
# File lib/mij-discord/cache.rb, line 193 def get_role(key, local: false) id = key&.to_id || return return @roles[id] if @roles.has_key?(id) return nil if local # No API to get individual role nil end
inspect()
click to toggle source
# File lib/mij-discord/cache.rb, line 256 def inspect MijDiscord.make_inspect(self) end
list_channels()
click to toggle source
# File lib/mij-discord/cache.rb, line 175 def list_channels @channels.values end
list_members()
click to toggle source
# File lib/mij-discord/cache.rb, line 167 def list_members @members.values end
list_roles()
click to toggle source
# File lib/mij-discord/cache.rb, line 171 def list_roles @roles.values end
put_channel(data, update: false)
click to toggle source
# File lib/mij-discord/cache.rb, line 232 def put_channel(data, update: false) channel = @bot.cache.put_channel(data, @server, update: update) @channels[channel.id] = channel end
put_channel!(channel)
click to toggle source
# File lib/mij-discord/cache.rb, line 237 def put_channel!(channel) @channels[channel.id] = channel end
put_member(data, update: false)
click to toggle source
# File lib/mij-discord/cache.rb, line 212 def put_member(data, update: false) id = data['user']['id'].to_i if @members.has_key?(id) @members[id].update_data(data) if update return @members[id] end @members[id] = MijDiscord::Data::Member.new(data, @server, @bot) end
put_role(data, update: false)
click to toggle source
# File lib/mij-discord/cache.rb, line 222 def put_role(data, update: false) id = data['id'].to_i if @roles.has_key?(id) @roles[id].update_data(data) if update return @roles[id] end @roles[id] = MijDiscord::Data::Role.new(data, @server, @bot) end
remove_channel(key)
click to toggle source
# File lib/mij-discord/cache.rb, line 249 def remove_channel(key) channel = @channels.delete(key&.to_id) @bot.cache.remove_channel(key) if channel channel end
remove_member(key)
click to toggle source
# File lib/mij-discord/cache.rb, line 241 def remove_member(key) @members.delete(key&.to_id) end
remove_role(key)
click to toggle source
# File lib/mij-discord/cache.rb, line 245 def remove_role(key) @roles.delete(key&.to_id) end
reset()
click to toggle source
# File lib/mij-discord/cache.rb, line 163 def reset @channels, @members, @roles = {}, {}, {} end