示例#1
0
文件: ChatUser.cs 项目: Mofsy/jinxbot
 /// <summary>
 /// Creates a new <see>ChatUser</see>.
 /// </summary>
 /// <param name="userName">Specifies the user's fully-qualified username, including possibly the character name, 
 /// name separator (for Diablo 2 characters), and realm namespace qualifier.</param>
 /// <param name="ping">The user's latency.</param>
 /// <param name="flags">The user's flags.</param>
 /// <param name="stats">The user's stats.</param>
 /// <remarks>
 /// <para>The user's stats can be determined by passing the username and binary statsring value to 
 /// <see cref="UserStats.Parse">UserStats.Parse</see>.</para>
 /// </remarks>
 public ChatUser(string userName, int ping, UserFlags flags, UserStats stats)
 {
     m_un = userName;
     m_ping = ping;
     m_flags = flags;
     m_stats = stats;
 }
示例#2
0
文件: ChatUser.cs 项目: Mofsy/jinxbot
 /// <summary>
 /// Creates a new <see>ChatUser</see>.
 /// </summary>
 /// <param name="userName">Specifies the user's fully-qualified username, including possibly the character name, 
 /// name separator (for Diablo 2 characters), and realm namespace qualifier.</param>
 /// <param name="ping">The user's latency.</param>
 /// <param name="flags">The user's flags.</param>
 /// <param name="stats">The user's stats.</param>
 /// <remarks>
 /// <para>The user's stats can be determined by passing the username and binary statsring value to 
 /// <see cref="UserStats.Parse">UserStats.Parse</see>.</para>
 /// </remarks>
 public ChatUser(string userName, int ping, ClassicUserFlags flags, UserStats stats)
 {
     Username = userName;
     Ping = ping;
     Flags = flags;
     Stats = stats;
 }
示例#3
0
        public string GetImageIdFor(UserFlags flags, UserStats us)
        {
            UserFlags[] allFlags = new UserFlags[] { UserFlags.BlizzardRepresentative, UserFlags.BattleNetAdministrator, UserFlags.ChannelOperator, UserFlags.Speaker, UserFlags.SpecialGuest, UserFlags.Squelched, UserFlags.GFOfficial, UserFlags.GFPlayer };

            foreach (UserFlags flag in allFlags)
            {
                if (TestFlag(flags, flag))
                {
                    BniIcon ico = (from icon in m_bni.AllIcons
                                   where (icon.UserFlags & flag) == flag
                                   select icon).FirstOrDefault();
                    if (!object.ReferenceEquals(null, ico))
                        return flag.ToString();
                }
            }

            return us.Product.ProductCode;
        }
示例#4
0
        public Image GetImageFor(UserFlags flags, UserStats stats)
        {
            UserFlags[] allFlags = new UserFlags[] { UserFlags.BlizzardRepresentative, UserFlags.BattleNetAdministrator, UserFlags.ChannelOperator, UserFlags.Speaker, UserFlags.SpecialGuest, UserFlags.Squelched, UserFlags.GFOfficial, UserFlags.GFPlayer };

            foreach (UserFlags flag in allFlags)
            {
                if (TestFlag(flags, flag))
                {
                    BniIcon ico = (from icon in m_bni.AllIcons
                                    where (icon.UserFlags & flag) == flag
                                    select icon).FirstOrDefault();
                    if (!object.ReferenceEquals(null, ico))
                        return ico.Image;
                }
            }

            BniIcon img = (from icon in m_bni.AllIcons
                            where icon.SoftwareProductCodes.Contains(stats.Product.ProductCode)
                            select icon).FirstOrDefault();

            if (!object.ReferenceEquals(null, img))
                return img.Image;

            return m_fail;
        }
示例#5
0
        public string GetImageIdFor(UserFlags flags, UserStats us)
        {
            foreach (UserFlags flag in m_flagsToImages.Keys)
            {
                if (TestFlag(flag, flags))
                {
                    return flag.ToString();
                }
            }

            string clientBasedImage = us.Product.ProductCode;

            Warcraft3Stats w3 = us as Warcraft3Stats;
            if (!object.ReferenceEquals(w3, null))
            {
                if (w3.IconTier == 1)
                {
                    clientBasedImage = "W3O1";
                }
                else
                {
                    clientBasedImage = string.Format("{0}{1}{2}", w3.Product == Product.Warcraft3Retail ? "W3" : "FT", w3.IconRace.ToString(), w3.IconTier);
                }
            }

            return clientBasedImage;
        }
示例#6
0
        public Image GetImageFor(UserFlags flags, UserStats stats)
        {
            foreach (UserFlags flag in m_flagsToImages.Keys)
            {
                if (TestFlag(flag, flags))
                {
                    return m_flagsToImages[flag];
                }
            }

            Image clientBasedImage = null;
            if (m_nonTieredClientImages.ContainsKey(stats.Product.ProductCode))
                clientBasedImage = m_nonTieredClientImages[stats.Product.ProductCode];

            Warcraft3Stats w3 = stats as Warcraft3Stats;
            if (!object.ReferenceEquals(w3, null))
            {
                if (w3.IconTier == 1)
                {
                    clientBasedImage = m_defaultTierIcon;
                }
                else
                {
                    if (m_tieredClientImages.ContainsKey(stats.Product.ProductCode))
                    {
                        Dictionary<int, Dictionary<char, Image>> tiers = m_tieredClientImages[stats.Product.ProductCode];
                        if (tiers.ContainsKey(w3.IconTier))
                        {
                            Dictionary<char, Image> races = tiers[w3.IconTier];
                            if (WARCRAFT_3_RACES_TO_IDS.ContainsKey(w3.IconRace))
                            {
                                char race = WARCRAFT_3_RACES_TO_IDS[w3.IconRace];
                                if (races.ContainsKey(race))
                                {
                                    clientBasedImage = races[race];
                                }
                            }
                        }
                    }  
                }
            }

            if (object.ReferenceEquals(clientBasedImage, null))
                clientBasedImage = m_defaultImage;

            return clientBasedImage;
        }