private ServerEmoji(ulong forServer, EmojiJson json, ulong ogId) : base(json.id, json.name) { if (json.id == 0) { throw new NoSuchEmojiException("No emoji with ID " + ogId + " exists on server " + forServer + "."); } ServerId = forServer; Server = new CachedPromise <Servers.Server>(Servers.Server._cache, ServerId, Servers.Server.GetAsync); }
private static void Populate(ServerEmoji obj, EmojiJson json, [CanBeNull] object state) { Emoji.Populate(obj, json); obj.UsableRoles = json.roles.ToIdDic(Role._cache, async(id, c) => await Role.GetAsync(id, obj.ServerId, c)); obj.HasCreator = json.user != null; if (obj.HasCreator) { // ReSharper disable once PossibleNullReferenceException (checked already) obj.CreatorId = json.user.id; obj.Creator = User.CreateFromJson(json.user, obj.ServerId); } else { obj.CreatorId = 0; } obj.MustWrapInColons = json.require_colons; obj.IsManaged = json.managed; }
internal static ServerEmoji CreateFromJson(ulong serverId, EmojiJson json, [CanBeNull] object state) { return(FactoryUtils.CreateFromJson(_cache, state, json2 => new ServerEmoji(serverId, json, 1), Populate, json)); }
internal static void Populate(Emoji obj, EmojiJson json) { obj.Name = json.name; }