Esempio n. 1
0
        /// <summary>
        /// 答题奖励
        /// </summary>
        /// <param name="userGuild"></param>
        /// <param name="gameActive"></param>
        /// <param name="exuser"></param>
        /// <param name="user"></param>
        public static void DoPrize(UserGuild userGuild, GameActive gameActive, ExerciseUser exuser, GameUser user, ref int expNum, ref int Experience)
        {
            DateTime dt = DateTime.Now;

            if (dt < gameActive.BeginTime)
            {
                userGuild.GuildExercise.Status = 0;
                return;
            }
            if (exuser.Status == GuildExerciseStatus.All ||
                (userGuild.GuildExercise.QuestionNo == exuser.QuestionNo &&
                 exuser.AnswerStatus))
            {
                GuildExercisePrize prize = new ConfigCacheSet <GuildExercisePrize>().FindKey(userGuild.GuildExercise.Level);
                if (prize == null)
                {
                    return;
                }
                decimal precent = GetExercisePrecent(userGuild);
                expNum      = (int)Math.Floor((decimal)prize.ExpNum * precent);
                Experience  = (int)Math.Floor((decimal)prize.Experience * precent);
                user.ExpNum = MathUtils.Addition(user.ExpNum, expNum, int.MaxValue);
                UserHelper.UserGeneralExp(user.UserID, Experience);
            }
        }
Esempio n. 2
0
        /// <summary>
        /// 初始化BOSS数据
        /// </summary>
        /// <returns></returns>
        private static CombatGeneral CreateBossGeneral(UserGuild guild)
        {
            CombatGeneral boss = null;

            if (guild != null)
            {
                GuildBossInfo bossInfo = guild.GuildBossInfo;
                if (bossInfo != null)
                {
                    var plotNpcInfoList = new ConfigCacheSet <PlotNPCInfo>().FindAll(m => m.PlotID == gameActive.BossPlotID);
                    if (plotNpcInfoList.Count > 0)
                    {
                        var embattleList = new ConfigCacheSet <PlotEmbattleInfo>().FindAll(m => m.PlotNpcID == plotNpcInfoList[0].PlotNpcID);
                        if (embattleList.Count > 0)
                        {
                            boss    = (CombatGeneral)MonsterQueue.Create(embattleList[0]);
                            boss.Lv = (short)MathUtils.Subtraction(bossInfo.BossLv, 0, gameActive.BossDefLv);
                            int bossLiftNum = MonsterQueue.BossProperty(embattleList[0].PlotNpcID, AbilityType.ShengMing).ToInt();
                            int lifeNum     = boss.LifeNum + (boss.Lv - gameActive.BossDefLv) * bossLiftNum; //ConfigEnvSet.GetInt("BossCombat.IncreaseLiveNum");
                            boss.LifeMaxNum = lifeNum;
                            boss.LifeNum    = lifeNum;
                        }
                    }
                    else
                    {
                        throw new Exception(string.Format("公会战未配置BOSS:{0}", gameActive.BossPlotID));
                    }
                }
            }
            if (boss == null)
            {
                throw new Exception("Loading guid boss faild.");
            }
            return(boss);
        }
Esempio n. 3
0
 /// <summary>
 /// 检查答题状态
 /// </summary>
 /// <param name="guild"></param>
 /// <returns></returns>
 private bool checkAnswer(UserGuild guild)
 {
     if (guild.GuildExercise.CheckAllAnswer != 0)
     {
         return(false);
     }
     foreach (ExerciseUser user in guild.GuildExercise.UserList)
     {
         if (user.Status == GuildExerciseStatus.All)
         {
             continue;
         }
         if (user.QuestionNo != guild.GuildExercise.QuestionNo)
         {
             if (guild.GuildExercise.QuestionNo - user.QuestionNo >= 5)
             {
                 continue;
             }
             else
             {
                 guild.GuildExercise.CheckAllAnswer = 2;
                 return(false);
             }
         }
         if (!user.AnswerStatus)
         {
             guild.GuildExercise.CheckAllAnswer = 2;
             return(false);
         }
     }
     guild.GuildExercise.CheckAllAnswer = 1;
     return(true);
 }
Esempio n. 4
0
        /// <summary>
        /// 加载数据
        /// </summary>
        public static void InitBoss(UserGuild userGuild)
        {
            try
            {
                if (_userGuildList.ContainsKey(userGuild.GuildID))
                {
                    _userGuildList[userGuild.GuildID] = userGuild;
                }
                else
                {
                    _userGuildList.Add(userGuild.GuildID, userGuild);
                }

                CombatGeneral general = CreateBossGeneral(userGuild);
                if (!_bossGeneralList.ContainsKey(userGuild.GuildID))
                {
                    _bossGeneralList.Add(userGuild.GuildID, new BossDictionary {
                        BossGeneral = general
                    });
                }
                else
                {
                    _bossGeneralList[userGuild.GuildID].BossGeneral = general;
                }
            }
            catch (Exception ex)
            {
                new BaseLog().SaveLog(ex);
            }
        }
Esempio n. 5
0
 public override bool TakeAction()
 {
     if (!string.IsNullOrEmpty(ContextUser.MercenariesID))
     {
         Stopwatch stopwatch = new Stopwatch();
         stopwatch.Start();
         GuildBossCombat bossCombat = new GuildBossCombat(ContextUser.MercenariesID);
         UserGuild       guild      = bossCombat.UserGuild;
         if (guild != null)
         {
             GameActive   gameActive   = new ShareCacheStruct <GameActive>().FindKey(_activeId);
             CombatStatus combatStatus = guild.CombatStatus;
             if (combatStatus == CombatStatus.Wait || combatStatus == CombatStatus.Combat)
             {
                 int total;
                 var tempList = bossCombat.RefreshRanking();
                 _bossUserList = tempList.GetPaging(1, Top, out total);
                 _rankingNo    = tempList.FindIndex(m => m.UserId == Uid) + 1;
             }
         }
         stopwatch.Stop();
         new BaseLog().SaveLog("公会boss伤害排名所需时间:" + stopwatch.Elapsed.TotalMilliseconds + "ms");
     }
     return(true);
 }
Esempio n. 6
0
        /// <summary>
        /// 捐献数量,贡献声望
        /// </summary>
        /// <param name="guild"></param>
        /// <param name="member"></param>
        /// <param name="wholeNum"></param>
        private void GetAddDonate(UserGuild guild, GuildMember member, int wholeNum)
        {
            guild.CurrDonateNum = MathUtils.Addition(guild.CurrDonateNum, wholeNum);
            //guild.Update();

            if (donateType == 1)
            {
                ContextUser.GameCoin = MathUtils.Subtraction(ContextUser.GameCoin, totalDonateNum);
                member.DonateCoin    = MathUtils.Addition(member.DonateCoin, totalDonateNum);
            }
            else if (donateType == 2)
            {
                ContextUser.UseGold = MathUtils.Addition(ContextUser.UseGold, totalDonateNum);
                member.DonateGold   = MathUtils.Addition(member.DonateGold, totalDonateNum);
            }
            ContextUser.ObtainNum = MathUtils.Addition(ContextUser.ObtainNum, wholeNum);
            //ContextUser.Update();
            member.Contribution      = MathUtils.Addition(member.Contribution, wholeNum);
            member.TotalContribution = MathUtils.Addition(member.TotalContribution, wholeNum);
            //member.Update();
            UserHelper.UserGuildUpLv(member.GuildID, wholeNum); //公会添加经验,升级
            GuildMemberLog.AddLog(member.GuildID, new MemberLog
            {
                UserID     = ContextUser.UserID,
                IdolID     = 0,
                LogType    = 1,
                GainObtion = wholeNum,
                Experience = wholeNum,
                GainAura   = 0,
                InsertDate = DateTime.Now
            });
        }
Esempio n. 7
0
        public async Task <IActionResult> GetUserInformationAsync(string userIdString)
        {
            if (!ulong.TryParse(userIdString, out var userId))
            {
                return(Ok(null));
            }

            var userInformation = await UserService.GetUserInformationAsync(UserGuild.Id, userId);

            if (userInformation is null)
            {
                return(Ok(null));
            }

            var userRank = await MessageRepository.GetGuildUserParticipationStatistics(UserGuild.Id, userId);

            var messages7 = await MessageRepository.GetGuildUserMessageCountByDate(UserGuild.Id, userId, TimeSpan.FromDays(7));

            var messages30 = await MessageRepository.GetGuildUserMessageCountByDate(UserGuild.Id, userId, TimeSpan.FromDays(30));

            var roles = userInformation.RoleIds
                        .Select(x => UserGuild.GetRole(x))
                        .OrderByDescending(x => x.IsHoisted)
                        .ThenByDescending(x => x.Position)
                        .ToArray();

            var mapped = new
            {
                Id                                                                = userInformation.Id.ToString(),
                Username                                                          = userInformation.Username,
                Nickname                                                          = userInformation.Nickname,
                Discriminator                                                     = userInformation.Discriminator,
                AvatarUrl                                                         = userInformation.AvatarId != null?userInformation.GetAvatarUrl(ImageFormat.Auto, 256) : userInformation.GetDefaultAvatarUrl(),
                                                            Status                = userInformation.Status.ToString(),
                                                            CreatedAt             = userInformation.CreatedAt,
                                                            JoinedAt              = userInformation.JoinedAt,
                                                            FirstSeen             = userInformation.FirstSeen,
                                                            LastSeen              = userInformation.LastSeen,
                                                            Rank                  = userRank.Rank,
                                                            Last7DaysMessages     = messages7.Sum(x => x.Value),
                                                            Last30DaysMessages    = messages30.Sum(x => x.Value),
                                                            AverageMessagesPerDay = userRank.AveragePerDay,
                                                            Percentile            = userRank.Percentile,
                                                            Roles                 = roles
                                                                                    .Where(x => !x.IsEveryone)
                                                                                    .Select(x => new
                {
                    Id    = x.Id,
                    Name  = x.Name,
                    Color = x.Color.ToString(),
                }),
                                                            IsBanned      = userInformation.IsBanned,
                                                            BanReason     = userInformation.BanReason,
                                                            IsGuildMember = userInformation.GuildId != default
            };

            return(Ok(mapped));
        }
    }
Esempio n. 8
0
 public void AddUserGuild(UserGuild newUserGuild)
 {
     if (newUserGuild == null)
     {
         throw new ArgumentNullException(nameof(newUserGuild));
     }
     _context.UserGuilds.Add(newUserGuild);
 }
Esempio n. 9
0
        public DiscordGuildView(UserGuild guild)
        {
            Id      = guild.Id.ToString();
            Name    = guild.Name;
            IconUrl = guild.IconUrl.GetAnimatedOrDefaultAvatar();

            Roles = new List <DiscordRoleView>();
        }
Esempio n. 10
0
 // Create a request for an user to enter a guild
 public void CreateUserGuildRequest(UserGuild userGuildRequest)
 {
     if (userGuildRequest == null)
     {
         throw new ArgumentNullException(nameof(userGuildRequest));
     }
     _context.UserGuilds.Add(userGuildRequest);
 }
Esempio n. 11
0
 public void RemoveUserFromGuild(UserGuild userGuild)
 {
     if (userGuild == null)
     {
         throw new NullReferenceException(nameof(userGuild));
     }
     _context.UserGuilds.Remove(userGuild);
 }
Esempio n. 12
0
        public override bool TakeAction()
        {
            int totalDate = (ConfigEnvSet.GetInt("UserQueue.GuildMemberDel") * 60 * 60);
            var memberSet = new ShareCacheStruct <GuildMember>();
            List <GuildMember> memberArray = memberSet.FindAll(m => m.GuildID == guildID);
            GuildMember        userMember  = memberSet.FindKey(guildID, ContextUser.UserID);

            if (userMember != null && userMember.PostType == PostType.Chairman && memberArray.Count > 1)
            {
                ErrorCode = LanguageManager.GetLang().ErrorCode;
                ErrorInfo = LanguageManager.GetLang().St6010_Chairman;
                return(false);
            }
            if (userMember != null)
            {
                if (!string.IsNullOrEmpty(ContextUser.MercenariesID))
                {
                    memberSet.Delete(userMember);
                    ContextUser.MercenariesID = string.Empty;
                    //ContextUser.Update();
                    CombatHelper.RemoveGuildAbility(ContextUser);
                }
                var       guildSet  = new ShareCacheStruct <UserGuild>();
                UserGuild guildInfo = guildSet.FindKey(guildID);
                if (guildInfo != null && userMember.PostType == PostType.Chairman && memberArray.Count <= 1)
                {
                    guildSet.Delete(guildInfo);
                }

                List <UserQueue> queueArray = new PersonalCacheStruct <UserQueue>().FindAll(ContextUser.UserID, m => m.QueueType == QueueType.TuiChuGongHui);
                if (queueArray.Count > 0)
                {
                    UserQueue queue = queueArray[0];
                    queue.Timing        = DateTime.Now;
                    queue.TotalColdTime = totalDate;
                    queue.ColdTime      = totalDate;
                    //queue.Update();
                }
                else
                {
                    UserQueue userQueue = new UserQueue()
                    {
                        QueueID =
                            Guid.NewGuid().ToString(),
                        QueueName     = QueueType.TuiChuGongHui.ToString(),
                        QueueType     = QueueType.TuiChuGongHui,
                        TotalColdTime = totalDate,
                        ColdTime      = totalDate,
                        Timing        = DateTime.Now,
                        IsSuspend     = false,
                        UserID        = ContextUser.UserID
                    };
                    new PersonalCacheStruct <UserQueue>().Add(userQueue);
                }
            }
            return(true);
        }
Esempio n. 13
0
        public async Task <IActionResult> GetUser()
        {
            Identity identity = await GetIdentity();

            IUser            currentUser       = identity.GetCurrentUser();
            List <UserGuild> currentUserGuilds = identity.GetCurrentUserGuilds();

            List <DiscordGuildView> memberGuilds = new();
            List <DiscordGuildView> modGuilds    = new();
            List <DiscordGuildView> adminGuilds  = new();
            List <DiscordGuildView> bannedGuilds = new();
            bool siteAdmin = _config.GetSiteAdmins().Contains(currentUser.Id) || identity is TokenIdentity;

            if (identity is DiscordOAuthIdentity)
            {
                List <GuildConfig> registeredGuilds = await GuildConfigRepository.CreateDefault(_serviceProvider).GetAllGuildConfigs();

                foreach (GuildConfig guild in registeredGuilds)
                {
                    UserGuild userGuild = currentUserGuilds.FirstOrDefault(x => x.Id == guild.GuildId);
                    if (userGuild != null)
                    {
                        IGuild userGuildFetched = _discordAPI.FetchGuildInfo(userGuild.Id, CacheBehavior.Default);
                        if (userGuildFetched != null)
                        {
                            if (await identity.HasModRoleOrHigherOnGuild(guild.GuildId))
                            {
                                if (await identity.HasAdminRoleOnGuild(guild.GuildId))
                                {
                                    adminGuilds.Add(new DiscordGuildView(userGuildFetched));
                                }
                                else
                                {
                                    modGuilds.Add(new DiscordGuildView(userGuildFetched));
                                }
                            }
                            else
                            {
                                memberGuilds.Add(new DiscordGuildView(userGuildFetched));
                            }
                        }
                    }
                    else
                    {
                        try
                        {
                            _discordAPI.GetFromCache <IBan>(CacheKey.GuildBan(guild.GuildId, currentUser.Id));
                            bannedGuilds.Add(new DiscordGuildView(_discordAPI.FetchGuildInfo(guild.GuildId, CacheBehavior.Default)));
                        }
                        catch (NotFoundInCacheException) { }
                    }
                }
            }

            return(Ok(new APIUser(memberGuilds, bannedGuilds, modGuilds, adminGuilds, currentUser, siteAdmin)));
        }
Esempio n. 14
0
 /// <summary>
 /// 释放
 /// </summary>
 /// <param name="userGuild"></param>
 public static void Dispose(UserGuild userGuild)
 {
     if (_bossGeneralList.ContainsKey(userGuild.GuildID))
     {
         _bossGeneralList[userGuild.GuildID].Clear();
     }
     if (_userGuildList.ContainsKey(userGuild.GuildID))
     {
         _userGuildList.Remove(userGuild.GuildID);
     }
 }
Esempio n. 15
0
 public static void DisposeData(UserGuild userGuild)
 {
     if (userGuild.LoadSuccess)
     {
         GameActive gameActive = new ShareCacheStruct <GameActive>().FindKey(UserGuild.ActiveID);
         userGuild.LoadSuccess = false;
         if (gameActive != null && gameActive.ActiveType == FunctionEnum.Goujili)
         {
             GuildBossCombat.Dispose(userGuild);
         }
     }
 }
Esempio n. 16
0
 public static void LoadData(UserGuild userGuild)
 {
     if ((userGuild.CombatStatus == CombatStatus.Wait || userGuild.CombatStatus == CombatStatus.Combat) && !userGuild.LoadSuccess)
     {
         GameActive gameActive = new ShareCacheStruct <GameActive>().FindKey(UserGuild.ActiveID);
         userGuild.LoadSuccess = true;
         if (gameActive != null && gameActive.ActiveType == FunctionEnum.Gonghui)
         {
             GuildBossCombat.InitBoss(userGuild);
         }
     }
 }
Esempio n. 17
0
 public override bool TakeAction()
 {
     if (!string.IsNullOrEmpty(ContextUser.MercenariesID))
     {
         GuildBossCombat bossCombat = new GuildBossCombat(ContextUser.MercenariesID);
         UserGuild       guild      = bossCombat.UserGuild;
         if (guild != null)
         {
             CombatStatus combatStatus = guild.CombatStatus;
             if (combatStatus == CombatStatus.Killed || CombatHelper.GuildBossKill(ContextUser.MercenariesID))
             {
                 ErrorCode = LanguageManager.GetLang().ErrorCode;
                 ErrorInfo = LanguageManager.GetLang().St5405_BossKilled;
                 return(false);
             }
             else if (combatStatus == CombatStatus.Wait)
             {
                 ErrorCode = LanguageManager.GetLang().ErrorCode;
                 ErrorInfo = LanguageManager.GetLang().St5405_CombatWait;
                 return(false);
             }
             else if (combatStatus == CombatStatus.Over)
             {
                 ErrorCode = LanguageManager.GetLang().ErrorCode;
                 ErrorInfo = LanguageManager.GetLang().St5405_CombatOver;
                 return(false);
             }
             else if (combatStatus == CombatStatus.Combat)
             {
                 var cuser = bossCombat.GetCombatUser(Uid);
                 if (cuser != null && cuser.CodeTime > 0)
                 {
                     ErrorCode = LanguageManager.GetLang().ErrorCode;
                     ErrorInfo = LanguageManager.GetLang().St5402_IsReliveError;
                     return(false);
                 }
                 Stopwatch stopwatch = new Stopwatch();
                 stopwatch.Start();
                 IsWin = bossCombat.Combat(ContextUser, bossProcess);
                 stopwatch.Stop();
                 new BaseLog().SaveLog("公会boss战斗所需时间:" + stopwatch.Elapsed.TotalMilliseconds + "ms");
             }
             else
             {
                 ErrorCode = LanguageManager.GetLang().ErrorCode;
                 ErrorInfo = LanguageManager.GetLang().St5402_CombatNoStart;
                 return(false);
             }
         }
     }
     return(true);
 }
        public ActionResult AddUsertoGuild(int id, UserGuildCreateRequestDto userGuildRequest)
        {
            UserGuild userGuild = new UserGuild
            {
                Role    = "En attente",
                UserId  = userGuildRequest.UserId,
                GuildId = id
            };

            _repository.CreateUserGuildRequest(userGuild);
            _repository.SaveChanges();
            return(Ok(_mapper.Map <UserGuildReadDto>(userGuild)));
        }
Esempio n. 19
0
        public async Task <IActionResult> AutocompleteUsers(string query)
        {
            await UserGuild.DownloadUsersAsync();

            var result = UserGuild.Users
                         .Where(d => d.Username.OrdinalContains(query))
                         .Take(10)
                         .Select(d => new ModixUser {
                Name = $"{d.Username}#{d.Discriminator}", UserId = d.Id, AvatarHash = d.AvatarId
            });

            return(Ok(result));
        }
        public ActionResult AcceptUser(UserGuildAcceptDto user)
        {
            UserGuild userToAccept = _repository.GetGuildUser(user.GuildId, user.UserId);

            if (userToAccept == null)
            {
                return(NotFound());
            }
            userToAccept.Role = "Membre";
            _repository.UpdateUserGuild(userToAccept);
            _repository.SaveChanges();
            return(NoContent());
        }
Esempio n. 21
0
        public async Task <IActionResult> AutocompleteUsers(string query)
        {
            await UserGuild.DownloadUsersAsync();

            var result = UserGuild.Users is null
                ? Enumerable.Empty <ModixUser>()
                : UserGuild.Users
                         .Where(d => d.Username.OrdinalContains(query))
                         .Take(10)
                         .Select(d => ModixUser.FromSocketGuildUser(d));

            return(Ok(result));
        }
Esempio n. 22
0
 public static SimpleGuild CreateGuild(UserGuild guild)
 {
     return(new SimpleGuild()
     {
         Id = guild.Id,
         Name = guild.Name,
         ImageURL = "https://cdn.discordapp.com/icons/" + guild.Id + "/" + guild.Icon + ".png",
         IsDM = false,
         IsMuted = LocalState.GuildSettings.ContainsKey(guild.Id) ? LocalState.GuildSettings[guild.Id].raw.Muted : false,
         IsUnread = false, //Will Change if true
         IsValid = true,   //Will change if false
         IsSelected = false
     });
 }
Esempio n. 23
0
        public async Task <IActionResult> ChannelDesignations()
        {
            var designatedChannels = await ChannelService.GetDesignatedChannelsAsync(ModixAuth.CurrentGuildId.Value);

            var mapped = designatedChannels.Select(d => new DesignatedChannelApiData
            {
                Id                 = d.Id,
                ChannelId          = d.Channel.Id,
                ChannelDesignation = d.Type,
                Name               = UserGuild?.GetChannel(d.Channel.Id)?.Name ?? d.Channel.Id.ToString()
            });

            return(Ok(mapped));
        }
Esempio n. 24
0
        public async Task <IActionResult> RoleDesignations()
        {
            var designatedRoles = await RoleService.GetDesignatedRolesAsync(ModixAuth.CurrentGuildId.Value);

            var mapped = designatedRoles.Select(d => new DesignatedRoleApiData
            {
                Id              = d.Id,
                RoleId          = d.Role.Id,
                RoleDesignation = d.Type,
                Name            = UserGuild?.GetRole(d.Role.Id)?.Name ?? d.Role.Id.ToString()
            });

            return(Ok(mapped));
        }
Esempio n. 25
0
        public async Task <IActionResult> GetDeletionContext(long batchId)
        {
            var deletedMessages = await ModerationService.SearchDeletedMessagesAsync(new DeletedMessageSearchCriteria
            {
                BatchId = batchId
            },
                                                                                     new SortingCriteria[]
            {
                //Sort ascending, so the earliest message is first
                new SortingCriteria {
                    PropertyName = nameof(DeletedMessageSummary.MessageId), Direction = SortDirection.Ascending
                }
            },
                                                                                     new PagingCriteria());

            var firstMessage = deletedMessages.Records.FirstOrDefault();

            if (firstMessage == null)
            {
                return(NotFound($"Couldn't find messages for batch id {batchId}"));
            }

            var batchChannelId = deletedMessages.Records.First().Channel.Id;
            var foundChannel   = UserGuild.GetChannel(batchChannelId) as ISocketMessageChannel;

            if (foundChannel == null)
            {
                return(NotFound($"Couldn't recreate context - text channel with id {batchChannelId} not found"));
            }

            if (SocketUser.GetPermissions(foundChannel as IGuildChannel).ReadMessageHistory == false)
            {
                return(Unauthorized($"You don't have read permissions for the channel this batch was deleted in (#{foundChannel.Name})"));
            }

            var beforeMessages = await foundChannel.GetMessagesAsync(firstMessage.MessageId, Direction.Before, 25).FlattenAsync();

            var afterMessages = await foundChannel.GetMessagesAsync(firstMessage.MessageId, Direction.After, 25 + (int)deletedMessages.FilteredRecordCount).FlattenAsync();

            var allMessages = new List <DeletedMessageAbstraction>();

            allMessages.AddRange(deletedMessages.Records.Select(d => DeletedMessageAbstraction.FromSummary(d)));
            allMessages.AddRange(beforeMessages.Select(d => DeletedMessageAbstraction.FromIMessage(d)));
            allMessages.AddRange(afterMessages.Select(d => DeletedMessageAbstraction.FromIMessage(d)));

            var sorted = allMessages.OrderBy(d => d.MessageId);

            return(Ok(sorted));
        }
Esempio n. 26
0
 public override bool TakeAction()
 {
     userGuild = new ShareCacheStruct <UserGuild>().FindKey(guildID);
     if (userGuild != null)
     {
         nextLv = MathUtils.Addition(userGuild.GuildLv, (short)1, (short)GuildLvInfo.GuildMaxLv);
         GuildLvInfo guildLvInfo = new ConfigCacheSet <GuildLvInfo>().FindKey(nextLv);
         if (guildLvInfo != null)
         {
             demandExperience = MathUtils.Subtraction(guildLvInfo.UpExperience, userGuild.CurrExperience, 0);
             activityArray    = guildLvInfo.ActivityDesc.ToList();
         }
     }
     return(true);
 }
Esempio n. 27
0
 public override bool TakeAction()
 {
     UserHelper.ChecheDailyContribution(ContextUser.MercenariesID, ContextUser.UserID);
     guild = new ShareCacheStruct <UserGuild>().FindKey(guildID);
     if (guild != null)
     {
         var memberLog = new ShareCacheStruct <GuildMemberLog>().FindKey(guildID) ?? new GuildMemberLog();
         List <MemberLog> guildLogArray = memberLog.GetLog(null);
         foreach (MemberLog log in guildLogArray)
         {
             if (IsCurrentWeek(log.InsertDate))
             {
                 weekExperience = MathUtils.Addition(weekExperience, log.Experience, int.MaxValue);
             }
         }
         List <GuildMember> memberArray = new ShareCacheStruct <GuildMember>().FindAll(m => m.GuildID == guild.GuildID);
         foreach (GuildMember member in memberArray)
         {
             if (member.PostType == PostType.Chairman)
             {
                 GameUser userInfo = UserCacheGlobal.CheckLoadUser(member.UserID);
                 if (userInfo != null)
                 {
                     chairman = userInfo.NickName;
                 }
             }
             if (member.UserID == ContextUser.UserID)
             {
                 memberPost = (short)member.PostType;
             }
         }
         currPeople = memberArray.Count;
         GuildLvInfo guildLvInfo = new ConfigCacheSet <GuildLvInfo>().FindKey(guild.GuildLv);
         if (guildLvInfo != null)
         {
             int upLv = MathUtils.Addition(guild.GuildLv, (short)1, (short)GuildLvInfo.GuildMaxLv);
             if (new ConfigCacheSet <GuildLvInfo>().FindKey(upLv) != null)
             {
                 upExperience = new ConfigCacheSet <GuildLvInfo>().FindKey(upLv).UpExperience;
             }
             maxPeople = MathUtils.Addition(guildLvInfo.MaxPeople, guild.AddMember);
         }
     }
     return(true);
 }
        public ActionResult ChangeGuildOwner(ChangeGuildOwnerDto OwnerArray)
        {
            // ADD middleware verification

            UserGuild currentOwner = _repository.GetGuildUser(OwnerArray.GuildId, OwnerArray.CurrentUserOwnerId);
            UserGuild newOwner     = _repository.GetGuildUser(OwnerArray.GuildId, OwnerArray.NewUserOwnerId);

            if (currentOwner == null || newOwner == null)
            {
                return(NotFound());
            }
            currentOwner.Role = "Membre";
            newOwner.Role     = "Admin";
            _repository.UpdateUserGuild(currentOwner);
            _repository.UpdateUserGuild(newOwner);
            _repository.SaveChanges();
            return(NoContent());
        }
Esempio n. 29
0
        public async Task <IActionResult> GetCurrentUserGuildsAsync([FromQuery] Dictionary <string, string> queryMap)
        {
            var args = new GetCurrentUserGuildsParams();

            args.LoadQueryMap(queryMap);
            args.Validate();

            var guild = new UserGuild();

            if (args.Before.IsSpecified)
            {
                guild.Id = args.Before.Value;
            }
            if (args.After.IsSpecified)
            {
                guild.Id = args.After.Value;
            }

            return(Ok(new[] { guild }));
        }
Esempio n. 30
0
 public override bool TakeAction()
 {
     if (!string.IsNullOrEmpty(ContextUser.MercenariesID))
     {
         Stopwatch stopwatch = new Stopwatch();
         stopwatch.Start();
         GuildBossCombat bossCombat = new GuildBossCombat(ContextUser.MercenariesID);
         UserGuild       _guild     = bossCombat.UserGuild;
         if (_guild != null)
         {
             CombatGeneral boss = bossCombat.Boss;
             if (boss != null)
             {
                 currLifeNum = boss.LifeNum;
                 maxLifeNum  = boss.LifeMaxNum;
             }
         }
         stopwatch.Stop();
         new BaseLog().SaveLog("公会boss刷新血量所需时间:" + stopwatch.Elapsed.TotalMilliseconds + "ms");
     }
     return(true);
 }