コード例 #1
0
 private async Task Client_MessageReceived(IMessage arg)
 {
     if (arg.Channel.Id == TextChannel.Id && DiscordWindow.selectedTextChannel != TextChannel && !TextChannel.IsMuted())
     {
         await Dispatcher.InvokeAsync(() => Foreground = Brushes.Red);
     }
 }
コード例 #2
0
        public ChannelViewer(ITextChannel txtChan = null, IVoiceChannel voiceChan = null)
        {
            InitializeComponent();

            if (txtChan != null)
            {
                channelIcon.Icon = FontAwesomeIcon.Hashtag;
                channelName.Text = txtChan.Name;
                TextChannel      = txtChan;
                App.DiscordWindow.Client.MessageReceived += Client_MessageReceived;

                ContextMenu = new ContextMenu();

                MenuItem mute = new MenuItem();
                mute.Header      = $"Mute #{txtChan.Name}";
                mute.IsCheckable = true;
                mute.IsChecked   = txtChan.IsMuted();

                mute.Unchecked += (o, e) =>
                {
                    App.Config.MutedChannels.Remove(txtChan.Id);
                    App.Config.Save();

                    ChangeTheme();
                };
                mute.Checked += (o, e) =>
                {
                    App.Config.MutedChannels.Add(txtChan.Id);
                    App.Config.Save();

                    ChangeTheme();
                };

                ContextMenu.Items.Add(mute);
            }
            else if (voiceChan != null)
            {
                channelIcon.Icon = FontAwesomeIcon.VolumeUp;
                channelName.Text = voiceChan.Name;
                VoiceChannel     = voiceChan;
            }

            ChangeTheme();

            App.DiscordWindow.Client.ChannelUpdated   += Client_ChannelUpdated;
            App.DiscordWindow.Client.ChannelDestroyed += Client_ChannelDestroyed;
        }