public async Task CreateDispenser(params string[] description) { RoleDispenser dispenser = new RoleDispenser(Context.Guild, (SocketTextChannel)Context.Channel, string.Join(' ', description)); await dispenser.SendMessage(); await _service.AddRoleDispenser(dispenser); }
public bool TryGetRoleDispenser(ulong guildId, ulong messageId, out RoleDispenser dispenser) { dispenser = default; if (_guildDispensers.TryGetValue(guildId, out var dispenserList)) { dispenser = dispenserList.FirstOrDefault(x => x.ListenedMessage.Id == messageId); return(dispenser != null); } else { return(false); } }
public bool TryGetRoleDispenser(ulong guildId, Guid guid, out RoleDispenser dispenser) { dispenser = default; if (_guildDispensers.TryGetValue(guildId, out var dispenserList)) { dispenser = dispenserList.FirstOrDefault(x => x.Guid == guid); return(dispenser != null); } else { return(false); } }
public void Update(RoleDispenser dispenser) { Guid = dispenser.Guid; Description = dispenser.Description; GuildId = dispenser.Guild.Id; ChannelId = dispenser.Channel.Id; MessageId = dispenser.ListenedMessage.Id; Bindings = new List <EmoteRolePairReference>(); foreach (var key in dispenser.EmoteToRoleBindings.Keys) { Bindings.Add( new EmoteRolePairReference() { Emote = key.Name, RoleId = dispenser.EmoteToRoleBindings[key].Id }); } }
public async Task RemoveRoleDispenser(RoleDispenser dispenser) { await _roleDispensers.DeleteOneAsync(x => x.Guid == dispenser.Guid); _guildDispensers[dispenser.Guild.Id].Remove(dispenser); }
public async Task ReplaceWithNewerRoleDispenser(RoleDispenser dispenser) { await _roleDispensers.ReplaceOneAsync(x => x.Guid == dispenser.Guid, new RoleDispenserReference(dispenser) { _id = _dispensersToDBMappings[dispenser.Guid] }); await dispenser.UpdateMessage(); }
public async Task AddRoleDispenser(RoleDispenser dispenser) { _guildDispensers[dispenser.Guild.Id].Add(dispenser); await _roleDispensers.InsertOneAsync(new RoleDispenserReference(dispenser)); }