Example #1
0
        public bool ChangeRank(GuildEntity guild, GuildMemberRank operatorRank, GuildMember targetMember, GuildMemberRank toRank)
        {
            Log <GuildAPI> .Logger.InfoFormat("ChangeRank: MemberRank[{0}], MemberSN[{1}], ToRank[{2}]", operatorRank, targetMember.Key.NexonSN, toRank);

            if (toRank == GuildMemberRank.Unknown)
            {
                if (operatorRank.HasSecedePermission(targetMember.Rank, toRank))
                {
                    Log <GuildAPI> .Logger.InfoFormat("UserSecede: ServiceCode[{0}], GuildSN[{1}], MemberNexonSN[{2}]", GuildAPI.ServerCode, guild.GuildSN, targetMember.Key.NexonSN);

                    HeroesGuild.UserSecede(GuildAPI.ServerCode, guild.GuildSN, targetMember.Key.NexonSN, targetMember.Key.CharacterSN, targetMember.Key.CharacterName);
                    using (HeroesDataContext heroesDataContext = new HeroesDataContext())
                    {
                        heroesDataContext.UpdateGuildCharacterInfo(new long?(targetMember.Key.CID), new long?(0L));
                        GuildLog.AddGuildLedger(new LogData((long)guild.GuildSN, targetMember.Key.CID, OperationType.GainGuildPoint, GuildLedgerEventType.UpdateGuildUserPoint, "0", "Secede"));
                    }
                    return(true);
                }
            }
            else if (operatorRank.HasRankChangePermission(targetMember.Rank, toRank))
            {
                Log <GuildAPI> .Logger.InfoFormat("UserTypeModify: ServiceCode[{0}], GuildSN[{1}], MemberNexonSN[{2}]", GuildAPI.ServerCode, guild.GuildSN, targetMember.Key.NexonSN);

                HeroesGuild.UserTypeModify(GuildAPI.ServerCode, guild.GuildSN, targetMember.Key.NexonSN, targetMember.Key.CharacterSN, targetMember.Key.CharacterName, this.ConvertToGroupUserType(toRank.ToGroupUserType()));
                return(true);
            }
            return(false);
        }
Example #2
0
        public HeroesGuildMemberInfo GetMemberInfo(GuildEntity guild, GuildMemberKey key)
        {
            HeroesGuildMemberInfo result;

            try
            {
                Log <GuildAPI> .Logger.InfoFormat("GroupMemberGetInfo: ServerCode[{0}], GuildSN[{1}], MemberNexonSN[{2}]", GuildAPI.ServerCode, guild.GuildSN, key.NexonSN);

                GroupMemberInfo     groupMemberInfo = HeroesGuild.GroupMemberGetInfo(GuildAPI.ServerCode, guild.GuildSN, key.CharacterSN, key.CharacterName);
                HeroesGuildUserType value           = this.ConvertToHeroesGuildUserType(groupMemberInfo.emGroupUserType);
                if (value.ToGuildMemberRank().IsInvalid())
                {
                    result = null;
                }
                else
                {
                    result = new HeroesGuildMemberInfo(groupMemberInfo);
                }
            }
            catch (GroupException ex)
            {
                if (ex.ErrorCode != 15)
                {
                    Log <GuildService> .Logger.Error("GroupMemberGetInfo Error", ex);
                }
                result = null;
            }
            catch (Exception ex2)
            {
                Log <GuildService> .Logger.Error("GroupMemberGetInfo Error", ex2);

                result = null;
            }
            return(result);
        }
Example #3
0
        public bool AcceptJoin(GuildEntity guild, GuildMemberRank operatorRank, GuildMember targetMember, bool accept)
        {
            Log <GuildAPI> .Logger.InfoFormat("AcceptJoin: GuildMemberRank[{0}]", operatorRank);

            if (!operatorRank.HasAcceptJoinPermission(targetMember.Rank))
            {
                return(false);
            }
            if (accept)
            {
                Log <GuildAPI> .Logger.InfoFormat("UserJoinApply: GuildSN[{0}], NexonSN[{1}], CharacterSN[{2}], CharacterName[{3}]", new object[]
                {
                    guild.GuildSN,
                    targetMember.Key.NexonSN,
                    targetMember.Key.CharacterSN,
                    targetMember.Key.CharacterName
                });

                HeroesGuild.UserJoinApply(GuildAPI.ServerCode, guild.GuildSN, targetMember.Key.NexonSN, targetMember.Key.CharacterSN, targetMember.Key.CharacterName);
                return(true);
            }
            Log <GuildAPI> .Logger.InfoFormat("UserJoinReject: GuildSN[{0}], NexonSN[{1}], CharacterSN[{2}], CharacterName[{3}]", new object[]
            {
                guild.GuildSN,
                targetMember.Key.NexonSN,
                targetMember.Key.CharacterSN,
                targetMember.Key.CharacterName
            });

            HeroesGuild.UserJoinReject(GuildAPI.ServerCode, guild.GuildSN, targetMember.Key.NexonSN, targetMember.Key.CharacterSN, targetMember.Key.CharacterName);
            return(true);
        }
Example #4
0
 public void UserNameModify(GuildMemberKey key, string newName)
 {
     if (key == null || string.IsNullOrEmpty(newName))
     {
         return;
     }
     HeroesGuild.UserNameModify(GuildAPI.ServerCode, key.NexonSN, key.CharacterSN, newName);
 }
Example #5
0
        public HeroesGuildInfo GetGuildInfo(int guildSN)
        {
            Log <GuildAPI> .Logger.InfoFormat("GetGuildInfo: guildSN[{0}]", guildSN);

            GroupInfo info = HeroesGuild.GetInfo(GuildAPI.ServerCode, guildSN);

            return(new HeroesGuildInfo(info));
        }
Example #6
0
        public bool CheckGuild(long CharacterSN, int NexonSN, string CharacterName)
        {
            Log <GuildAPI> .Logger.InfoFormat("GroupUserTryJoin: ServerCode[{0}], CharacterSN[{1}], NexonSN[{2}], CharacterName[{3}]", new object[]
            {
                GuildAPI.ServerCode,
                CharacterSN,
                NexonSN,
                CharacterName
            });

            return(HeroesGuild.GroupUserTryJoin(GuildAPI.ServerCode, CharacterSN, NexonSN, CharacterName));
        }
Example #7
0
        public ICollection <HeroesGuildInfo> SearchGuild(int searchType, byte orderType, int pageNo, byte pageSize, string searchKey, out int total_row_count)
        {
            ICollection <GroupInfo> groupInfos;

            object[] objArray = new object[] { searchType, orderType, pageNo, pageSize, searchKey };
            Log <GuildAPI> .Logger.InfoFormat("SearchGuild: SearchType[{0}], OrderType[{1}], PageNo[{2}], PageSize[{3}], SearchKey[{4}]", objArray);

            ICollection <HeroesGuildInfo> heroesGuildInfos = new List <HeroesGuildInfo>();
            int num = 0;

            if (searchType != 0)
            {
                object[] objArray1 = new object[] { orderType, pageNo, pageSize, searchKey };
                Log <GuildAPI> .Logger.InfoFormat("GroupGetListByGuildMaster: OrderType[{0}], PageNo[{1}], PageSize[{2}], SearchKey[{3}]", objArray1);

                groupInfos = HeroesGuild.GroupGetListByGuildMaster(GuildAPI.ServerCode, orderType, pageNo, pageSize, searchKey, out num);
            }
            else
            {
                try
                {
                    object[] serverCode = new object[] { GuildAPI.ServerCode, orderType, pageNo, pageSize, searchKey };
                    Log <GuildAPI> .Logger.InfoFormat("GroupSearchGetList: ServerCode[{0}], OrderType[{1}], PageNo[{2}], PageSize[{3}], SearchKey[{4}]", serverCode);

                    groupInfos = HeroesGuild.GroupSearchGetList(GuildAPI.ServerCode, pageNo, pageSize, orderType, searchKey, out num);
                }
                catch (Exception exception1)
                {
                    Exception exception = exception1;
                    object[]  objArray2 = new object[] { orderType, pageNo, pageSize, searchKey, exception.ToString() };
                    Log <GuildAPI> .Logger.InfoFormat("GroupGetListByGuildName: OrderType[{0}], PageNo[{1}], PageSize[{2}], SearchKey[{3}]\nException: {4}", objArray2);

                    groupInfos = HeroesGuild.GroupGetListByGuildName(GuildAPI.ServerCode, orderType, pageNo, pageSize, searchKey, out num);
                }
            }
            if (groupInfos != null)
            {
                foreach (GroupInfo groupInfo in groupInfos)
                {
                    heroesGuildInfos.Add(new HeroesGuildInfo(groupInfo));
                }
            }
            total_row_count = num;
            return(heroesGuildInfos);
        }
Example #8
0
        public List <HeroesUserGuildInfo> GetGuildInfo(GuildMemberKey key)
        {
            Log <GuildAPI> .Logger.InfoFormat("UserGroupGetList: ServerCode[{0}], MemberNexonSN[{1}], MaxValue[{2}]", GuildAPI.ServerCode, key.NexonSN, byte.MaxValue);

            int num;
            int num2;
            Collection <UserGroupInfo> collection = HeroesGuild.UserGroupGetList(GuildAPI.ServerCode, key.NexonSN, 1, byte.MaxValue, out num, out num2);
            List <HeroesUserGuildInfo> list       = new List <HeroesUserGuildInfo>();

            foreach (UserGroupInfo userGroupInfo in collection)
            {
                if (userGroupInfo.CharacterName == key.CharacterName && userGroupInfo.CharacterSN == key.CharacterSN)
                {
                    list.Add(new HeroesUserGuildInfo(userGroupInfo));
                }
            }
            return(list);
        }
Example #9
0
        public int OpenGuild(GuildMemberKey key, string guildName, string guildID, string guildIntro)
        {
            int result = 0;

            Log <GuildAPI> .Logger.InfoFormat("Create: GuildMemberKey[{0}], guildName[{1}], guildID[{2}], guildIntro[{3}]", new object[]
            {
                key,
                guildName,
                guildID,
                guildIntro
            });

            try
            {
                Log <PlatformGuildAPI> .Logger.Warn("Sending OpenGuild");

                result = HeroesGuild.Create(GuildAPI.ServerCode, key.NexonSN, (long)key.CharacterSN, key.CharacterName, guildName, guildID, guildIntro);
                Log <PlatformGuildAPI> .Logger.Warn("Done OpenGuild");
            }
            catch (GroupException ex)
            {
                if (ex.ErrorCode == 24)
                {
                    result = -3;
                }
                else if (ex.ErrorCode == 1 || ex.ErrorCode == 9000)
                {
                    result = -4;
                }
                else if (ex.ErrorCode == -1)
                {
                    result = -1;
                }
                else
                {
                    Log <PlatformGuildAPI> .Logger.ErrorFormat("GroupException : {0}", ex.ErrorCode);

                    Log <PlatformGuildAPI> .Logger.Error("exception : ", ex);

                    result = -3;
                }
            }
            return(result);
        }
Example #10
0
        public GroupNameCheckResult CheckGroupName(string guildName)
        {
            GroupNameCheckResult groupNameCheckResult = GuildAPI._CheckGroupName(guildName);

            if (groupNameCheckResult == GroupNameCheckResult.Succeed)
            {
                try
                {
                    Log <GuildAPI> .Logger.InfoFormat("CheckGroupName: ServerCode[{0}], GuildName[{1}]", GuildAPI.ServerCode, guildName);

                    HeroesGuild.CheckGroupName(GuildAPI.ServerCode, guildName);
                    return(GroupNameCheckResult.Succeed);
                }
                catch (Exception ex)
                {
                    Log <GuildService> .Logger.Error("잘못된 길드명입니다", ex);

                    groupNameCheckResult = GroupNameCheckResult.DuplicatedName;
                }
                return(groupNameCheckResult);
            }
            return(groupNameCheckResult);
        }
Example #11
0
        public GroupIDCheckResult CheckGroupID(string guildID)
        {
            if (guildID == null || guildID.Length == 0)
            {
                return(GroupIDCheckResult.IDNotSupplied);
            }
            GroupIDCheckResult result = GroupIDCheckResult.Succeed;

            try
            {
                Log <GuildAPI> .Logger.InfoFormat("CheckGroupID: ServerCode[{0}], GuildName[{1}]", GuildAPI.ServerCode, guildID);

                HeroesGuild.CheckGroupID(GuildAPI.ServerCode, guildID);
            }
            catch (ArgumentException ex)
            {
                if (ex.Message == "Exists Guid ID.")
                {
                    result = GroupIDCheckResult.DuplicatedID;
                }
                else
                {
                    if (ex.Message != "Guild ID has special character")
                    {
                        Log <GuildAPI> .Logger.ErrorFormat("Unknown CheckGroupID exception message: {0}", ex.Message);
                    }
                    result = GroupIDCheckResult.InvalidCharacter;
                }
            }
            catch (Exception ex2)
            {
                Log <GuildService> .Logger.Error("CheckGroupID failed [" + guildID + "]", ex2);

                result = GroupIDCheckResult.InvalidCharacter;
            }
            return(result);
        }
Example #12
0
        public bool CloseGuild(GuildEntity guild, GuildMemberKey key)
        {
            Log <GuildAPI> .Logger.InfoFormat("Remove: GuildMemberKey[{0}]", key);

            try
            {
                HeroesGuild.Remove(GuildAPI.ServerCode, key.NexonSN, guild.GuildSN);
            }
            catch (GroupException ex)
            {
                if (ex.ErrorCode != 6)
                {
                    Log <GuildService> .Logger.Error("Remove(CloseGuild) Error: ", ex);
                }
                return(false);
            }
            catch (Exception ex2)
            {
                Log <GuildService> .Logger.Error("Remove(CloseGuild) Error: ", ex2);

                return(false);
            }
            return(true);
        }
Example #13
0
        public List <HeroesGuildMemberInfo> GetMembers(int guildSN)
        {
            Log <GuildAPI> .Logger.InfoFormat("GetMembers: guildSN[{0}]", guildSN);

            List <HeroesGuildMemberInfo> list = new List <HeroesGuildMemberInfo>();

            foreach (int num in Enumerable.Range(1, 2))
            {
                Log <GuildAPI> .Logger.InfoFormat("AllMemberGetList: ServerCode[{0}], GuildSN[{1}], Page[{2}]", GuildAPI.ServerCode, guildSN, num);

                int num2;
                int num3;
                Collection <GroupMemberInfo> collection = HeroesGuild.AllMemberGetList(GuildAPI.ServerCode, guildSN, num, byte.MaxValue, true, out num2, out num3);
                foreach (GroupMemberInfo info in collection)
                {
                    list.Add(new HeroesGuildMemberInfo(info));
                }
                if (list.Count >= num3)
                {
                    return(list);
                }
            }
            return(list);
        }
Example #14
0
        public bool ChangeMaster(GuildEntity guild, GuildMember newMaster, GuildMember oldMaster)
        {
            if (!FeatureMatrix.IsEnable("EnableChangeGuildMaster"))
            {
                return(false);
            }
            GuildMemberKey key = newMaster.Key;

            Log <GuildAPI> .Logger.InfoFormat("ChangeMaster: Guild[{0}], newMasterKey[{1}], oldMasterKey[{2}]", guild.ToString(), key.ToString(), oldMaster.Key.ToString());

            Log <GuildAPI> .Logger.InfoFormat("ChangeMaster: serverCode[{0}] guildSn[{1}] NexonSN[{2}] C_SN[{3}] Name[{4}] Rank[{5}]", new object[]
            {
                GuildAPI.ServerCode,
                guild.GuildSN,
                key.NexonSN,
                key.CharacterSN,
                key.CharacterName,
                GuildMemberRank.Operator.ToGroupUserType()
            });

            HeroesGuildUserType type = GuildMemberRank.Operator.ToGroupUserType();

            return(HeroesGuild.GroupChangeMaster(GuildAPI.ServerCode, guild.GuildSN, key.NexonSN, (long)key.CharacterSN, key.CharacterName, this.ConvertToGroupUserType(type)));
        }
Example #15
0
        public void LeaveGuild(GuildEntity guild, GuildMemberKey key)
        {
            Log <GuildAPI> .Logger.InfoFormat("UserSecede: GuildMemberKey[{0}]", key);

            HeroesGuild.UserSecede(GuildAPI.ServerCode, guild.GuildSN, key.NexonSN, key.CharacterSN, key.CharacterName);
        }
Example #16
0
        public void Join(GuildEntity guild, GuildMemberKey key)
        {
            Log <GuildAPI> .Logger.InfoFormat("UserJoin: GuildMemberKey[{0}]", key);

            HeroesGuild.UserJoin(GuildAPI.ServerCode, guild.GuildSN, key.NexonSN, (long)key.CharacterSN, key.CharacterName, string.Empty);
        }