Exemple #1
0
        public async Task <int> AddEvent(CommandContext ctx, EventType type, string message, DateTime eventTime,
                                         ulong channelId = 0)
        {
            List <ulong> mentionedUserIds = new List <ulong>();
            List <ulong> mentionedRoleIds = new List <ulong>();

            ctx.Message.MentionedUsers.ToList().ForEach(user => mentionedUserIds.Add(user.Id));
            ctx.Message.MentionedRoles.ToList().ForEach(user => mentionedRoleIds.Add(user.Id));
            TimedEvent tEvent = new TimedEvent
            {
                Type              = type,
                Message           = message,
                EventTime         = eventTime,
                UserId            = ctx.User.Id,
                ChannelId         = channelId > 0 ? channelId : ctx.Channel.Id,
                MentionUserIdList = mentionedUserIds.ToArray(),
                MentionRoleIdList = mentionedRoleIds.ToArray()
            };

            tEvent.Id = (await ShimakazeBot.DbCtx.TimedEvents.AddAsync(tEvent)).Entity.Id;
            try
            {
                await ShimakazeBot.DbCtx.SaveChangesAsync();
            }
            catch (Exception e)
            {
                await ctx.RespondAsync(e.Message);
            }

            return(AddAndStartEvent(EventInTimer.MakeTimer(tEvent), tEvent.Id) ? tEvent.Id : -1);
        }
Exemple #2
0
 private void SetEventTimers()
 {
     ShimakazeBot.DbCtx.TimedEvents.ToList().ForEach(tEvent => {
         AddAndStartEvent(EventInTimer.MakeTimer(tEvent), tEvent.Id);
     });
 }