Exemple #1
0
        public async Task SeenAsync(string afkMessage)
        {
            AFKDTO afkDTO = AFKManager.TheAFKManager.GetAFKByName(afkMessage);

            if (afkDTO == null)
            {
                return;
            }

            string msg     = "**{0} is away** for {1}with a message :point_right: {2}";
            string awayFor = string.Empty;

            if ((DateTime.Now - afkDTO.AwayTime).Days > 0)
            {
                awayFor += (DateTime.Now - afkDTO.AwayTime).Days.ToString() + "d ";
            }
            if ((DateTime.Now - afkDTO.AwayTime).Hours > 0)
            {
                awayFor += (DateTime.Now - afkDTO.AwayTime).Hours.ToString() + "h ";
            }
            if ((DateTime.Now - afkDTO.AwayTime).Minutes > 0)
            {
                awayFor += (DateTime.Now - afkDTO.AwayTime).Minutes.ToString() + "m ";
            }
            if ((DateTime.Now - afkDTO.AwayTime).Seconds > 0)
            {
                awayFor += (DateTime.Now - afkDTO.AwayTime).Seconds.ToString() + "s ";
            }

            string message = string.Format(msg, afkDTO.AwayUser, awayFor, afkDTO.AwayMessage);

            await ReplyAsync(message);
        }
Exemple #2
0
        private static async Task <string> HandleMentionedUsers(SocketUserMessage message)
        {
            string mentionedUsers = string.Empty;

            foreach (var user in message.MentionedUsers)
            {
                AFKDTO afkDTO = AFKManager.TheAFKManager.GetAFKById(user.Id);
                if (afkDTO != null)
                {
                    string msg     = "**{0} is away** for {1}with a message :point_right: {2}";
                    string awayFor = string.Empty;
                    if ((DateTime.Now - afkDTO.AwayTime).Days > 0)
                    {
                        awayFor += (DateTime.Now - afkDTO.AwayTime).Days.ToString() + "d ";
                    }
                    if ((DateTime.Now - afkDTO.AwayTime).Hours > 0)
                    {
                        awayFor += (DateTime.Now - afkDTO.AwayTime).Hours.ToString() + "h ";
                    }
                    if ((DateTime.Now - afkDTO.AwayTime).Minutes > 0)
                    {
                        awayFor += (DateTime.Now - afkDTO.AwayTime).Minutes.ToString() + "m ";
                    }
                    if ((DateTime.Now - afkDTO.AwayTime).Seconds > 0)
                    {
                        awayFor += (DateTime.Now - afkDTO.AwayTime).Seconds.ToString() + "s ";
                    }

                    string awayMsg = string.Format(msg, afkDTO.AwayUser, awayFor, afkDTO.AwayMessage);
                    await message.Channel.SendMessageAsync(awayMsg);
                }
                mentionedUsers += $"{user.Mention} ";
            }
            return(mentionedUsers);
        }
Exemple #3
0
        public async Task SeenAsync(string afkMessage)
        {
            AFKDTO afkDTO = AFKManager.TheAFKManager.GetAFKByName(afkMessage);

            if (afkDTO == null)
            {
                return;
            }

            string msg     = Constants.SEEN_MESSAGE_FORMAT;
            string awayFor = string.Empty;

            if ((DateTime.Now - afkDTO.AwayTime).Days > 0)
            {
                awayFor += (DateTime.Now - afkDTO.AwayTime).Days.ToString() + "d ";
            }
            if ((DateTime.Now - afkDTO.AwayTime).Hours > 0)
            {
                awayFor += (DateTime.Now - afkDTO.AwayTime).Hours.ToString() + "h ";
            }
            if ((DateTime.Now - afkDTO.AwayTime).Minutes > 0)
            {
                awayFor += (DateTime.Now - afkDTO.AwayTime).Minutes.ToString() + "m ";
            }
            if ((DateTime.Now - afkDTO.AwayTime).Seconds > 0)
            {
                awayFor += (DateTime.Now - afkDTO.AwayTime).Seconds.ToString() + "s ";
            }

            string message = string.Format(msg, afkDTO.AwayUser, awayFor, afkDTO.AwayMessage);

            await ReplyAsync(message);
        }
Exemple #4
0
        public AFKDTO GetAFKById(ulong Id)
        {
            if (_afk == null)
            {
                return(null);
            }

            AFKDTO retAFK = _afk.Find(delegate(AFKDTO dto) {
                return(dto.Id == Id);
            });

            return(retAFK);
        }
Exemple #5
0
        public AFKDTO GetAFKByName(string name)
        {
            if (_afk == null)
            {
                return(null);
            }

            AFKDTO retAFK = _afk.Find(delegate(AFKDTO dto) {
                return(dto.AwayUser.Trim().ToLower() == name.Trim().ToLower());
            }
                                      );

            return(retAFK);
        }
Exemple #6
0
        public async Task AFKAsync([Remainder] string afkMessage)
        {
            string userName = Context.User.Username;
            AFKDTO afkDTO   = AFKManager.TheAFKManager.GetAFKByName(userName);

            if (afkDTO == null)
            {
                afkDTO             = new AFKDTO();
                afkDTO.Id          = Context.User.Id;
                afkDTO.AwayMessage = afkMessage;
                afkDTO.AwayTime    = DateTime.Now;
                afkDTO.AwayUser    = userName;
            }
            AFKManager.TheAFKManager.UpdateAFK(afkDTO);
            await ReplyAsync(string.Format("{0} is away! {1} :wave:", userName, afkMessage));
        }
Exemple #7
0
        public async Task SeenAsync(string afkMessage)
        {
            AFKDTO afkDTO = AFKManager.TheAFKManager.GetAFKByName(afkMessage);

            if (afkDTO == null)
            {
                return;
            }

            await ReplyAsync(string.Format("**{0} is away** for {1}d {2}h {3}m {4}s with a message => {5}",
                                           afkDTO.AwayUser,
                                           (DateTime.Now - afkDTO.AwayTime).Days,
                                           (DateTime.Now - afkDTO.AwayTime).Hours,
                                           (DateTime.Now - afkDTO.AwayTime).Minutes,
                                           (DateTime.Now - afkDTO.AwayTime).Seconds,
                                           afkDTO.AwayMessage));
        }
Exemple #8
0
        public void RemoveAFKUserById(ulong id)
        {
            if (_afk == null)
            {
                return;
            }

            AFKDTO retAFK = _afk.Find(delegate(AFKDTO dto) {
                return(dto.Id == id);
            });

            if (null != retAFK)
            {
                _afk.Remove(retAFK);
                SaveAFKUsers();
            }
        }
Exemple #9
0
        public void UpdateAFK(AFKDTO afk)
        {
            if (null != afk)
            {
                _afk.Remove(afk);
            }

            AFKDTO newAFK = new AFKDTO();

            newAFK.Id          = afk.Id;
            newAFK.AwayUser    = afk.AwayUser;
            newAFK.AwayTime    = afk.AwayTime;
            newAFK.AwayMessage = afk.AwayMessage;

            _afk.Add(newAFK);
            SaveAFKUsers();
        }
Exemple #10
0
        public async Task AFKAsync([Remainder] string afkMessage)
        {
            string userName = Context.User.Username;
            AFKDTO afkDTO   = AFKManager.TheAFKManager.GetAFKByName(userName);

            if (afkDTO == null)
            {
                afkDTO = new AFKDTO()
                {
                    Id          = Context.User.Id,
                    AwayMessage = afkMessage,
                    AwayTime    = DateTime.Now,
                    AwayUser    = userName
                };
            }
            AFKManager.TheAFKManager.UpdateAFK(afkDTO);
            await ReplyAsync(string.Format(Constants.AWAY_MESSAGE_FORMAT,
                                           userName,
                                           afkMessage));
        }
Exemple #11
0
        private static async Task <string> HandleMentionedUsers(SocketUserMessage message)
        {
            string mentionedUsers = string.Empty;

            foreach (var user in message.MentionedUsers)
            {
                AFKDTO afkDTO = AFKManager.TheAFKManager.GetAFKById(user.Id);
                if (afkDTO != null)
                {
                    await message.Channel.SendMessageAsync(string.Format("**{0} is away** for {1}d {2}h {3}m {4}s with a message => {5}",
                                                                         afkDTO.AwayUser,
                                                                         (DateTime.Now - afkDTO.AwayTime).Days,
                                                                         (DateTime.Now - afkDTO.AwayTime).Hours,
                                                                         (DateTime.Now - afkDTO.AwayTime).Minutes,
                                                                         (DateTime.Now - afkDTO.AwayTime).Seconds,
                                                                         afkDTO.AwayMessage));
                }
                mentionedUsers += $"{user.Mention} ";
            }

            return(mentionedUsers);
        }