示例#1
0
        public async Task SetUtcOffsetForUserAsync(DateTime userTime, MiunieUser user, MiunieChannel channel)
        {
            var offset = TimeSpan.FromHours(userTime.Hour - _dateTime.UtcNow.Hour);

            user.UtcTimeOffset = offset;
            _users.StoreUser(user);
            await _messages.SendMessageAsync(channel, PhraseKey.TIME_NEW_OFFSET_SET);
        }
示例#2
0
        public MiunieUser DiscordMemberToMiunieUser(DiscordMember user)
        {
            var mUser = _userProvider.GetById(user.Id, user.Guild.Id);

            mUser.Name      = user.Nickname ?? user.Username;
            mUser.AvatarUrl = user.AvatarUrl;
            mUser.JoinedAt  = user.JoinedAt.UtcDateTime;
            mUser.IsBot     = user.IsBot;
            mUser.Roles     = user.Roles.Select(r => r.DiscordRoleToMiunieRole());
            _userProvider.StoreUser(mUser);
            return(mUser);
        }
示例#3
0
        public MiunieUser DiscordMemberToMiunieUser(SocketGuildUser user)
        {
            if (user is null)
            {
                throw new ArgumentNullException(nameof(user));
            }

            var mUser = _userProvider.GetById(user.Id, user.Guild.Id);

            mUser.Name      = user.Nickname ?? user.Username;
            mUser.AvatarUrl = user.GetAvatarUrl();
            mUser.JoinedAt  = user.JoinedAt?.UtcDateTime ?? default;
            mUser.CreatedAt = user.CreatedAt.UtcDateTime;
            mUser.IsBot     = user.IsBot;
            mUser.Roles     = user.Roles.Select(r => r.DiscordRoleToMiunieRole());
            _userProvider.StoreUser(mUser);
            return(mUser);
        }
示例#4
0
 public void AddReputation(MiunieUser invoker, MiunieUser target)
 {
     target.Reputation.Value++;
     target.Reputation.PlusRepLog.TryAdd(invoker.Id, _dateTime.Now);
     _userProvider.StoreUser(target);
 }