예제 #1
0
 /// <summary>
 /// Gets the view value.
 /// </summary>
 /// <param name="playerPosition">The player position.</param>
 /// <returns>The value which is used in the message for the corresponding enum value.</returns>
 public static GuildMemberRole Convert(this GuildPosition playerPosition)
 {
     return(playerPosition switch
     {
         GuildPosition.GuildMaster => GuildMemberRole.GuildMaster,
         GuildPosition.NormalMember => GuildMemberRole.NormalMember,
         GuildPosition.BattleMaster => GuildMemberRole.BattleMaster,
         _ => GuildMemberRole.Undefined,
     });
예제 #2
0
        private byte GetGuildMemberStatusCode(GuildPosition position)
        {
            switch (position)
            {
            case GuildPosition.NormalMember:
                return(0);

            case GuildPosition.GuildMaster:
                return(0x80);

            case GuildPosition.BattleMaster:
                return(0x20);
            }

            throw new ArgumentException("GuildPosition not mapped.");
        }
예제 #3
0
        private byte PlayerPositionValue(GuildPosition playerPosition)
        {
            switch (playerPosition)
            {
            case GuildPosition.GuildMaster:
                return(0x80);

            case GuildPosition.NormalMember:
                return(0x00);

            case GuildPosition.BattleMaster:
                return(0x20);

            default:
                throw new ArgumentException(nameof(playerPosition));
            }
        }
예제 #4
0
        /// <summary>
        /// Gets the view value.
        /// </summary>
        /// <param name="playerPosition">The player position.</param>
        /// <returns>The value which is used in the message for the corresponding enum value.</returns>
        public static byte GetViewValue(this GuildPosition playerPosition)
        {
            switch (playerPosition)
            {
            case GuildPosition.GuildMaster:
                return(0x80);

            case GuildPosition.NormalMember:
                return(0x00);

            case GuildPosition.BattleMaster:
                return(0x20);

            default:
                throw new ArgumentException(nameof(playerPosition));
            }
        }
예제 #5
0
        //主角是否处于某种头衔
        public bool IsPosition(GuildPosition guildPosition)
        {
            List <PGuildMember> dataList = GetGuildMembersList(MeVo.instance.guildId);

            if (null == dataList)
            {
                return(false);
            }

            PGuildMember me = GetMember(dataList, MeVo.instance.Id);

            if (null == me)
            {
                return(false);
            }
            else
            {
                return((byte)guildPosition == me.position);
            }
        }
예제 #6
0
 /// <inheritdoc/>
 public void ChangeGuildMemberPosition(uint guildId, Guid characterId, GuildPosition role)
 {
     try
     {
         if (this.guildDictionary.TryGetValue(guildId, out GuildContainer guild))
         {
             var guildMember = guild.Guild.Members.FirstOrDefault(m => m.Id == characterId);
             if (guildMember != null)
             {
                 guildMember.Status = role;
                 guild.DatabaseContext.SaveChanges();
                 var listEntry = guild.Members[characterId];
                 listEntry.PlayerPosition = role;
             }
         }
     }
     catch (Exception ex)
     {
         Log.Error(ex);
     }
 }
예제 #7
0
    // 根据职位获取其职位名称
    public string GetPositionText(GuildPosition position)
    {
        switch (GuildPosition)
        {
        case GuildPosition.CHAIRMAN:
            return(Str.Get("UI_GUILD_POSITION_CHAIRMAN"));

        case GuildPosition.VICE_CHAIRMAN:
            return(Str.Get("UI_GUILD_POSITION_VICE_CHAIRMAN"));

        case GuildPosition.ELITE_MEMBER:
            return(Str.Get("UI_GUILD_POSITION_ELITE_MEMBER"));

        case GuildPosition.MEMBER:
            return(Str.Get("UI_GUILD_POSITION_MEMBER"));

        case GuildPosition.NEWBIE_MEMBER:
            return(Str.Get("UI_GUILD_POSITION_NEWBIE_MEMBER"));
        }
        return("");
    }
예제 #8
0
 /// <summary>
 /// Initializes a new instance of the <see cref="GuildMemberStatus"/> class.
 /// </summary>
 /// <param name="guildId">The guild identifier.</param>
 /// <param name="position">The position.</param>
 public GuildMemberStatus(uint guildId, GuildPosition position)
 {
     this.GuildId  = guildId;
     this.Position = position;
 }
예제 #9
0
        /// <inheritdoc/>
        public GuildMemberStatus CreateGuildMember(uint guildId, Guid characterId, string characterName, GuildPosition role, byte serverId)
        {
            try
            {
                if (this.guildDictionary.TryGetValue(guildId, out GuildContainer guild))
                {
                    if (guild.Members.ContainsKey(characterId))
                    {
                        Log.WarnFormat("Guildmember already exists: {0}", characterName);
                        return(null);
                    }

                    var guildMember = guild.DatabaseContext.CreateNew <GuildMember>();
                    guildMember.Id      = characterId;
                    guildMember.Status  = role;
                    guildMember.GuildId = guild.Guild.Id;
                    guild.Guild.Members.Add(guildMember);

                    guild.DatabaseContext.SaveChanges();
                    guild.Members.Add(characterId, new GuildListEntry {
                        PlayerName = characterName, PlayerPosition = guildMember.Status, ServerId = serverId
                    });
                    return(new GuildMemberStatus(guildId, guildMember.Status));
                }
            }
            catch (Exception ex)
            {
                // Rollback?
                Log.Error(ex);
            }

            return(null);
        }
예제 #10
0
        /// <inheritdoc/>
        public GuildMemberInfo CreateGuildMember(Guid guildId, Guid characterId, string characterName, GuildPosition role)
        {
            try
            {
                if (this.guildDictionary.TryGetValue(guildId, out GuildContainer guild))
                {
                    if (guild.Members.ContainsKey(characterName))
                    {
                        Log.WarnFormat("Guildmember already exists: {0}", characterName);
                        return(null);
                    }

                    using (this.repositoryManager.UseContext(guild.DatabaseContext))
                    {
                        var guildMember = this.repositoryManager.CreateNew <GuildMemberInfo>();
                        guildMember.CharacterId = characterId;
                        guildMember.GuildId     = guildId;
                        guildMember.Name        = characterName;
                        guildMember.Status      = role;

                        guild.Members.Add(guildMember.Name, guildMember);
                        guild.Guild.Members.Add(guildMember);

                        guild.DatabaseContext.SaveChanges();
                        return(guildMember);
                    }
                }
            }
            catch (Exception ex)
            {
                // Rollback?
                Log.Error(ex);
            }

            return(null);
        }