private async Task AddAfk(SocketCommandContext Context, string awayMsg, bool updated) { if (awayMsg == null) { awayMsg = ""; } _afkStruct str = new _afkStruct { message = awayMsg.Length < 80 ? awayMsg : awayMsg.Substring(0, 80) + "...", timeToTriggerAgain = DateTime.UtcNow }; _afkDict.AddOrUpdate(Context.User.Id, str, ((key, oldValue) => str)); await Context.Channel.SendMessageAsync($"{(updated == true ? ":white_check_mark: Your AFK status has been updated" : ":white_check_mark: You are now set AFK")}"); }
public async Task Client_MessageReceived(SocketMessage msg) { if (msg.Author.Id == 270931284489011202 || msg.Author.Id == 276304865934704642) { return; } if (msg.MentionedUsers.Count < 1) { return; } foreach (var u in msg.MentionedUsers) { if (_afkDict.ContainsKey(u.Id)) { _afkStruct str = new _afkStruct(); _afkDict.TryGetValue(u.Id, out str); //await msg.Channel.SendMessageAsync($"{str.timeToTriggerAgain.CompareTo(DateTime.UtcNow)}"); if (str.timeToTriggerAgain.CompareTo(DateTime.UtcNow) > 0) { return; } str.timeToTriggerAgain = DateTime.UtcNow.AddSeconds(SECONDS_AFTER_AFK); var eb = new EmbedBuilder() { Color = new Color(4, 97, 247), Author = new EmbedAuthorBuilder() { IconUrl = (u.GetAvatarUrl()), Name = $"{u.Username} is currently AFK" }, Description = str.message }; _afkDict.TryUpdate(u.Id, str); await msg.Channel.SendMessageAsync("", false, eb); } } }