Ejemplo n.º 1
0
        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")}");
        }
Ejemplo n.º 2
0
        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);
                }
            }
        }