예제 #1
0
        public static async void StartGateway()
        {
            if (Gateway == null)
            {
                await RESTCalls.SetupToken();
            }
            //Ready
            Gateway.Ready += Gateway_Ready;
            //Message
            Gateway.MessageCreated += Gateway_MessageCreated;
            Gateway.MessageDeleted += Gateway_MessageDeleted;
            Gateway.MessageUpdated += Gateway_MessageUpdated;
            Gateway.MessageAck     += Gateway_MessageAck;
            //MessageReaction
            Gateway.MessageReactionAdded      += Gateway_MessageReactionAdded;
            Gateway.MessageReactionRemoved    += Gateway_MessageReactionRemoved;
            Gateway.MessageReactionRemovedAll += Gateway_MessageReactionRemovedAll;
            //DMs
            Gateway.DirectMessageChannelCreated += Gateway_DirectMessageChannelCreated;
            Gateway.DirectMessageChannelDeleted += Gateway_DirectMessageChannelDeleted;
            //GuildChannel
            Gateway.GuildChannelCreated += Gateway_GuildChannelCreated;
            Gateway.GuildChannelDeleted += Gateway_GuildChannelDeleted;
            Gateway.GuildChannelUpdated += Gateway_GuildChannelUpdated;
            //ChannelRecipientAdded is handled exclusively by MainPage
            //ChannelRecipientRemoved is handled exclusively by MainPage

            //Guild
            Gateway.GuildCreated += Gateway_GuildCreated;
            Gateway.GuildDeleted += Gateway_GuildDeleted;
            Gateway.GuildUpdated += Gateway_GuildUpdated;
            Gateway.GuildSynced  += Gateway_GuildSynced;
            //GuildMember
            Gateway.GuildMemberAdded   += Gateway_GuildMemberAdded;
            Gateway.GuildMemberChunk   += Gateway_GuildMemberChunk;
            Gateway.GuildMemberRemoved += Gateway_GuildMemberRemoved;
            Gateway.GuildMemberUpdated += Gateway_GuildMemberUpdated;
            //GuildBan
            Gateway.GuildBanAdded   += Gateway_GuildBanAdded;
            Gateway.GuildBanRemoved += Gateway_GuildBanRemoved;
            //Presence
            Gateway.PresenceUpdated += Gateway_PresenceUpdated;
            //RelationShip
            Gateway.RelationShipAdded   += Gateway_RelationShipAdded;
            Gateway.RelationShipRemoved += Gateway_RelationShipRemoved;
            Gateway.RelationShipUpdated += Gateway_RelationShipUpdated;
            //Typing
            Gateway.TypingStarted += Gateway_TypingStarted;
            //Note
            Gateway.UserNoteUpdated += Gateway_UserNoteUpdated;
            //UserSettings
            Gateway.UserSettingsUpdated += Gateway_UserSettingsUpdated;
            //Voice
            Gateway.VoiceServerUpdated += Gateway_VoiceServerUpdated;
            Gateway.VoiceStateUpdated  += Gateway_VoiceStateUpdated;
            //Other
            Gateway.SessionReplaced += Gateway_SessionReplaced;
            await Gateway.ConnectAsync();
        }
예제 #2
0
        protected override async void OnNavigatedTo(NavigationEventArgs e)
        {
            base.OnNavigatedTo(e);

            if (e.Parameter != null)
            {
                if (e.Parameter is DataPackageView view)
                {
                    var param = await view.GetStorageItemsAsync();

                    foreach (var file in param)
                    {
                        AddAttachement(file as StorageFile);
                    }
                }
                else if (e.Parameter.GetType() == typeof(App.MessageEditorNavigationArgs))
                {
                    Editor.Text = (e.Parameter as App.MessageEditorNavigationArgs).Content;
                    if ((e.Parameter as App.MessageEditorNavigationArgs).Paste == true)
                    {
                        DataPackageView dataPackageView = Clipboard.GetContent();
                        HandleDataPackage(dataPackageView, "Clipboard");
                    }
                }
                else if (e.Parameter is Contact contact)
                {
                    shareContact = contact;
                }
                else
                {
                    Editor.Text = e.Parameter.ToString();
                }
            }

            if (App.shareop != null)
            {
                header.Text = App.GetString("/Dialogs/Share");
                if (shareContact == null)
                {
                    shareTarget.Visibility = Visibility.Visible;
                    SaveButton.IsEnabled   = false;
                }

                mediumTrigger.MinWindowWidth  = 10000;
                mediumTrigger.MinWindowHeight = 10000;
                if (App.LoggedIn() == false)
                {
                    MessageDialog md = new MessageDialog(App.GetString("/Dialogs/MustBeLoggedIn"), App.GetString("/Dialogs/Sorry"));
                    await md.ShowAsync();

                    App.shareop.DismissUI();
                }
                else
                {
                    HandleDataPackage(App.shareop.Data, "Shared Image");
                    await RESTCalls.SetupToken(true);

                    if (shareContact == null)
                    {
                        List <SimpleGuild> guilds = new List <SimpleGuild>();
                        var userguilds            = await RESTCalls.GetGuilds();

                        guilds.Add(new SimpleGuild()
                        {
                            Id = "@me", Name = App.GetString("/Main/DirectMessages"), ImageURL = "https://discordapp.com/assets/89576a4bb71f927eb20e8aef987b499b.svg"
                        });
                        foreach (var guild in userguilds)
                        {
                            guilds.Add(GuildManager.CreateGuild(guild));
                        }
                        serverOption.ItemsSource = guilds;
                    }
                    else
                    {
                    }
                }
            }
        }