Esempio n. 1
0
        private void OnPropertyChanged(DependencyObject d, DependencyProperty prop)
        {
            // rerender the bitmap
            if (string.IsNullOrEmpty(IconUrl))
            {
                string guildAbbr = string.Empty;
                foreach (string s in GuildName.Split(new char[] { ' ' }, System.StringSplitOptions.RemoveEmptyEntries))
                {
                    guildAbbr += char.ToLower(s[0]);
                }
                serverNameText.Text                   = guildAbbr;
                serverNameText.Visibility             = Visibility.Visible;
                serverNameText.IsTextSelectionEnabled = false;
                serverEllipse.Fill = new SolidColorBrush {
                    Color = Windows.UI.Color.FromArgb(0xff, 0x2e, 0x31, 0x36),
                };
                return;
            }
            serverNameText.Visibility = Visibility.Collapsed;

            serverEllipse.Fill = new ImageBrush {
                ImageSource = new BitmapImage {
                    UriSource         = new System.Uri(IconUrl),
                    DecodePixelType   = DecodePixelType.Logical,
                    DecodePixelHeight = 50,
                    DecodePixelWidth  = 50,
                },
            };
        }
Esempio n. 2
0
 public override void Write()
 {
     _worldPacket.WritePackedGuid(GuildGUID);
     _worldPacket.WriteBits(GuildName.GetByteCount(), 7);
     _worldPacket.FlushBits();
     _worldPacket.WriteString(GuildName);
 }
Esempio n. 3
0
        /// <summary>
        /// Adds messages to ArrayList which are sent when object is targeted
        /// </summary>
        /// <param name="player">GamePlayer that is examining this object</param>
        /// <returns>list with string messages</returns>
        public override IList GetExamineMessages(GamePlayer player)
        {
            string TrainerClassName = string.Empty;

            switch (player.Client.Account.Language)
            {
            case "DE":
            {
                var translation = (DBLanguageNPC)LanguageMgr.GetTranslation(player.Client.Account.Language, this);

                if (translation != null)
                {
                    int index = -1;
                    if (translation.GuildName.Length > 0)
                    {
                        index = translation.GuildName.IndexOf("-Ausbilder");
                    }

                    if (index >= 0)
                    {
                        TrainerClassName = translation.GuildName.Substring(0, index);
                    }
                }
                else
                {
                    TrainerClassName = GuildName;
                }
            }

            break;

            default:
            {
                int index = -1;
                if (GuildName.Length > 0)
                {
                    index = GuildName.IndexOf(" Trainer");
                }

                if (index >= 0)
                {
                    TrainerClassName = GuildName.Substring(0, index);
                }
            }

            break;
            }

            IList list = new ArrayList();

            list.Add(LanguageMgr.GetTranslation(player.Client.Account.Language, "GameTrainer.GetExamineMessages.YouTarget",
                                                GetName(0, false, player.Client.Account.Language, this)));
            list.Add(LanguageMgr.GetTranslation(player.Client.Account.Language, "GameTrainer.GetExamineMessages.YouExamine",
                                                GetName(0, false, player.Client.Account.Language, this), GetPronoun(0, true, player.Client.Account.Language),
                                                GetAggroLevelString(player, false), TrainerClassName));
            list.Add(LanguageMgr.GetTranslation(player.Client.Account.Language, "GameTrainer.GetExamineMessages.RightClick"));
            return(list);
        }
Esempio n. 4
0
        public void Write(WorldPacket data)
        {
            PlayerData.Write(data);

            data.WritePackedGuid(GuildGUID);
            data.WriteUInt32(GuildVirtualRealmAddress);
            data.WriteInt32(AreaID);

            data.WriteBits(GuildName.GetByteCount(), 7);
            data.WriteBit(IsGM);
            data.WriteString(GuildName);

            data.FlushBits();
        }
Esempio n. 5
0
 public void Write(WorldPacket data)
 {
     data.WritePackedGuid(GuildGUID);
     data.WriteUInt32(GuildVirtualRealm);
     data.WriteInt32(ClassRoles);
     data.WriteInt32(PlayStyle);
     data.WriteInt32(Availability);
     data.WriteUInt32(SecondsSinceCreated);
     data.WriteUInt32(SecondsUntilExpiration);
     data.WriteBits(GuildName.GetByteCount(), 7);
     data.WriteBits(Comment.GetByteCount(), 10);
     data.FlushBits();
     data.WriteString(GuildName);
     data.WriteString(Comment);
 }
Esempio n. 6
0
        public static void Draw()
        {
            if (!Visible)
            {
                return;
            }
            if (GuildName.CompareTo(string.Empty) == 0)
            {
                return;
            }

            guild_panel.Draw();
            button[0].Draw();
            button[1].Draw();
            button[2].Draw();
            button[3].Draw();
            button[4].Draw();

            if (Common.Configuration.Language == Language.Portuguese)
            {
                EngineFont.DrawText(null, GuildName, new Size2(430, 0), new Point(posx, posy + 40), Color.BlueViolet, EngineFontStyle.Bold, FontDrawFlags.Left, true);
                EngineFont.DrawText(null, "Guild Master: " + GuildMaster, new Size2(430, 0), new Point(posx, posy + 100), Color.White, EngineFontStyle.Regular, FontDrawFlags.Left, true);
                EngineFont.DrawText(null, "Level: " + Level, posx + 60, posy + 120, Color.White, EngineFontStyle.Regular);
                EngineFont.DrawText(null, "Experiência:  " + Exp + " / " + ExpMax, posx + 190, posy + 120, Color.White, EngineFontStyle.Regular);
                EngineFont.DrawText(null, "Ranking: " + Ranking, posx + 60, posy + 134, Color.White, EngineFontStyle.Regular);
                EngineFont.DrawText(null, "Contribuição: " + Contribution, posx + 190, posy + 140, Color.White, EngineFontStyle.Regular);
                EngineFont.DrawText(null, "Membros: " + Member + " / " + MemberMax, posx + 60, posy + 160, Color.Coral, EngineFontStyle.Regular);
                EngineFont.DrawText(null, "Online: " + Online, posx + 190, posy + 160, Color.Coral, EngineFontStyle.Regular);
                EngineFont.DrawText(null, "Mensagem: ", posx + 60, posy + 180, Color.CornflowerBlue, EngineFontStyle.Regular);
                EngineFont.DrawText(null, Announcement, posx + 145, posy + 180, Color.White, EngineFontStyle.Regular);
            }

            if (Common.Configuration.Language == Language.Japanese)
            {
                EngineFont.DrawText(null, GuildName, new Size2(365, 0), new Point(posx, posy + 40), Color.BlueViolet, EngineFontStyle.Bold, FontDrawFlags.Left, true);
                EngineFont.DrawText(null, "ギルドマスター: " + GuildMaster, new Size2(365, 0), new Point(posx, posy + 100), Color.White, EngineFontStyle.Regular, FontDrawFlags.Left, true);
                EngineFont.DrawText(null, "レベル: " + Level, posx + 35, posy + 11, Color.White, EngineFontStyle.Regular);
                EngineFont.DrawText(null, "経験値: " + Exp + " / " + ExpMax, posx + 170, posy + 110, Color.White, EngineFontStyle.Regular);
                EngineFont.DrawText(null, "ランキング: " + Ranking, posx + 35, posy + 130, Color.White, EngineFontStyle.Regular);
                EngineFont.DrawText(null, "ポイント: " + Contribution, posx + 170, posy + 130, Color.White, EngineFontStyle.Regular);
                EngineFont.DrawText(null, "メンバー: " + Member + " / " + MemberMax, posx + 35, posy + 150, Color.Coral, EngineFontStyle.Regular);
                EngineFont.DrawText(null, "オンライン: " + Online, posx + 170, posy + 150, Color.Coral, EngineFontStyle.Regular);
                EngineFont.DrawText(null, "メッセージ: ", posx + 35, posy + 180, Color.CornflowerBlue, EngineFontStyle.Regular);
                EngineFont.DrawText(null, Announcement, posx + 100, posy + 180, Color.White, EngineFontStyle.Regular);
            }
        }
        private void InvalidInvite(InvalidReason reason)
        {
            // Hide loading indicator
            Loading.Fade(0, 200).Start();
            GuildName.Fade(1, 350).Start();

            // Show appropiate error text
            if (reason == InvalidReason.Default)
            {
                GuildName.Text = App.GetString("/Controls/InviteInvalid");
            }
            else if (reason == InvalidReason.MaxUses)
            {
                GuildName.Text = App.GetString("/Controls/InviteMaxUses");
            }
            else if (reason == InvalidReason.Expired)
            {
                GuildName.Text = App.GetString("/Controls/InviteExpired");
            }

            // Make the text red
            GuildName.Foreground = (SolidColorBrush)Application.Current.Resources["dnd"];

            // If there's a user linked to the invite, display a link to them so you can ask them for a link
            if (DisplayedInvite?.Inviter != null && LocalState.Guilds[App.CurrentGuildId].members.ContainsKey(DisplayedInvite?.Inviter.Id))
            {
                ChannelName.Text       = "Ask @" + DisplayedInvite.Inviter.Username + "#" + DisplayedInvite.Inviter.Discriminator + " for a new one";
                ChannelName.Visibility = Visibility.Visible;
            }
            else
            {
                ChannelName.Text       = "";
                ChannelName.Visibility = Visibility.Collapsed;
            }

            // Hide Guild details (there are none)
            MemberCounters.Visibility = Visibility.Collapsed;
            GuildImage.Visibility     = Visibility.Collapsed;

            // Interaction status is invalid
            Status = InviteStatus.Invalid;
        }
Esempio n. 8
0
 public void Write(WorldPacket data)
 {
     data.WriteBits(GuildName.GetByteCount(), 7);
     data.WriteBits(Comment.GetByteCount(), 10);
     data.WritePackedGuid(GuildGUID);
     data.WriteUInt32(GuildVirtualRealm);
     data.WriteInt32(GuildMembers);
     data.WriteUInt32(GuildAchievementPoints);
     data.WriteInt32(PlayStyle);
     data.WriteInt32(Availability);
     data.WriteInt32(ClassRoles);
     data.WriteInt32(LevelRange);
     data.WriteUInt32(EmblemStyle);
     data.WriteUInt32(EmblemColor);
     data.WriteUInt32(BorderStyle);
     data.WriteUInt32(BorderColor);
     data.WriteUInt32(Background);
     data.WriteInt8(Cached);
     data.WriteInt8(MembershipRequested);
     data.WriteString(GuildName);
     data.WriteString(Comment);
 }
Esempio n. 9
0
        public override void Write()
        {
            _worldPacket.WriteBits(InviterName.GetByteCount(), 6);
            _worldPacket.WriteBits(GuildName.GetByteCount(), 7);
            _worldPacket.WriteBits(OldGuildName.GetByteCount(), 7);

            _worldPacket.WriteUInt32(InviterVirtualRealmAddress);
            _worldPacket.WriteUInt32(GuildVirtualRealmAddress);
            _worldPacket.WritePackedGuid(GuildGUID);
            _worldPacket.WriteUInt32(OldGuildVirtualRealmAddress);
            _worldPacket.WritePackedGuid(OldGuildGUID);
            _worldPacket.WriteUInt32(EmblemStyle);
            _worldPacket.WriteUInt32(EmblemColor);
            _worldPacket.WriteUInt32(BorderStyle);
            _worldPacket.WriteUInt32(BorderColor);
            _worldPacket.WriteUInt32(Background);
            _worldPacket.WriteInt32(AchievementPoints);

            _worldPacket.WriteString(InviterName);
            _worldPacket.WriteString(GuildName);
            _worldPacket.WriteString(OldGuildName);
        }
Esempio n. 10
0
        private async void LoadInvite(bool ForceJoin)
        {
            InviteCode = InviteCode.Replace(">\n", "");
            InviteCode = InviteCode.Replace("http://discord.me/", "");
            InviteCode = InviteCode.Replace("https://discord.me/", "");
            InviteCode = InviteCode.Replace("https://discord.gg/", "");
            InviteCode = InviteCode.Replace("http://discord.gg/", "");
            InviteCode = InviteCode.Replace("https://discordapp.com/invite/", "");
            InviteCode = InviteCode.Replace("http://discordapp.com/invite/", "");

            GreenIcon.Opacity   = 0;
            RedIcon.Opacity     = 0;
            JoinIcon.Opacity    = 0;
            ChannelName.Opacity = 0;
            GuildName.Opacity   = 0;
            Loading.Opacity     = 1;

            try
            {
                DisplayedInvite = await RESTCalls.GetInvite(InviteCode);

                Loading.Fade(0, 200).Start();
                GuildName.Visibility = Visibility.Visible;
                TimeSpan timeDiff = TimeSpan.FromSeconds(1);
                if (DisplayedInvite.CreatedAt != null && DisplayedInvite.MaxAge != 0)
                {
                    var creationTime = DateTime.Parse(DisplayedInvite.CreatedAt);
                    timeDiff = TimeSpan.FromSeconds(DisplayedInvite.MaxAge -
                                                    DateTime.Now.Subtract(creationTime).TotalSeconds);
                }

                GuildName.Text = DisplayedInvite.Guild.Name;
                GuildName.Fade(1, 350).Start();
                ChannelName.Fade(1, 200).Start();
                if (LocalState.Guilds.ContainsKey(DisplayedInvite.Guild.Id) || ForceJoin)
                {
                    GreenIcon.Fade(1, 200).Start();
                    ChannelName.Text = App.GetString("/Controls/InviteJoined") + " " + DisplayedInvite.Channel.Name;
                    return;
                }
                if (DisplayedInvite.MaxUses != 0 && DisplayedInvite.MaxUses <= DisplayedInvite.Uses)
                {
                    ChannelName.Text = App.GetString("/Controls/InviteMaxUses");
                    RedIcon.Fade(1, 200).Start();
                    return;
                }
                if (timeDiff.TotalSeconds > 0)
                {
                    JoinIcon.Fade(1, 200).Start();
                    ChannelName.Text = App.GetString("/Controls/InviteJoin") + " " + DisplayedInvite.Channel.Name;
                }
                else
                {
                    RedIcon.Fade(1, 200).Start();
                    ChannelName.Text = App.GetString("/Controls/InviteExpired");
                }
            }
            catch
            {
                Loading.Fade(0, 200).Start();
                GuildName.Fade(1, 350).Start();
                ChannelName.Fade(1, 200).Start();
                RedIcon.Fade(1, 200).Start();
                ChannelName.Text     = App.GetString("/Controls/InviteInvalid");
                GuildName.Visibility = Visibility.Collapsed;
            }
        }
Esempio n. 11
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="Join">False if just rendering the embed</param>
        private async void LoadInvite(bool Join)
        {
            GuildName.Foreground = (SolidColorBrush)Application.Current.Resources["InvertedBG"];

            // Trim link prefix
            InviteCode = InviteCode.Replace(">\n", "");
            InviteCode = InviteCode.Replace("http://discord.me/", "");
            InviteCode = InviteCode.Replace("https://discord.me/", "");
            InviteCode = InviteCode.Replace("https://discord.gg/", "");
            InviteCode = InviteCode.Replace("http://discord.gg/", "");
            InviteCode = InviteCode.Replace("https://discordapp.com/invite/", "");
            InviteCode = InviteCode.Replace("http://discordapp.com/invite/", "");

            // Show loading
            GuildName.Opacity = 0;
            Loading.Opacity   = 1;

            try
            {
                // Get invite
                DisplayedInvite = await RESTCalls.GetInvite(InviteCode);

                if (DisplayedInvite == null)
                {
                    InvalidInvite(InvalidReason.Default);
                    return;
                }

                // Show invite
                Loading.Fade(0, 200).Start();
                GuildName.Visibility = Visibility.Visible;

                // Get expiration time
                TimeSpan timeDiff = TimeSpan.FromSeconds(1);
                if (DisplayedInvite.CreatedAt != null && DisplayedInvite.MaxAge != 0)
                {
                    var creationTime = DateTime.Parse(DisplayedInvite.CreatedAt);
                    timeDiff = TimeSpan.FromSeconds(DisplayedInvite.MaxAge -
                                                    DateTime.Now.Subtract(creationTime).TotalSeconds);
                }

                // Return an error if the guild is null
                if (DisplayedInvite.Guild == null)
                {
                    InvalidInvite(InvalidReason.Default);
                    return;
                }

                // Display the guild image
                if (DisplayedInvite.Guild?.Icon != null)
                {
                    GuildImage.Visibility       = Visibility.Visible;
                    GuildImageBrush.ImageSource = new BitmapImage(new Uri("https://cdn.discordapp.com/icons/" + DisplayedInvite.Guild.Id + "/" + DisplayedInvite.Guild.Icon + ".png"));
                }
                else
                {
                    GuildImage.Visibility = Visibility.Collapsed;
                }

                // Setup channel details (invites are technically to a channel)
                ChannelName.Text = "#" + DisplayedInvite.Channel.Name;
                ChannelName.Fade(0.6f, 200).Start();

                // Guild details visibility
                GuildName.Fade(1, 100).Start();
                GuildImage.Fade(1, 300).Start();

                // Member values
                MemberCounters.Visibility = Visibility.Visible;
                MemberCounters.Fade(1, 400).Start();
                onlineCounter.Text  = DisplayedInvite.OnlineCount + " online";
                offlineCounter.Text = DisplayedInvite.MemberCount + " members";

                // Return error if the user has already joined
                if (LocalState.Guilds.ContainsKey(DisplayedInvite.Guild.Id) || Join)
                {
                    GuildName.Text = App.GetString("/Controls/InviteJoined") + " " + DisplayedInvite.Guild.Name;
                    Status         = InviteStatus.AlreadyJoined;
                    return;
                }

                // Return error if the invite uses has already been maxed
                if (DisplayedInvite.MaxUses != 0 && DisplayedInvite.MaxUses <= DisplayedInvite.Uses)
                {
                    InvalidInvite(InvalidReason.MaxUses);
                    return;
                }

                // Return error if the invite has timed out
                if (timeDiff.TotalSeconds > 0)
                {
                    GuildName.Text = App.GetString("/Controls/InviteJoin") + " " + DisplayedInvite.Guild.Name;
                    Status         = InviteStatus.Canjoin;
                }
                else
                {
                    InvalidInvite(InvalidReason.Default);
                }
            }
            catch
            {
                // Something went wrong, return an error
                InvalidInvite(InvalidReason.Default);
            }
        }