Esempio n. 1
0
 private void Client_UserUpdated(object sender, UserUpdatedEventArgs e)
 {
     if (e.After.Name != e.Before.Name)
     {
         SendMessageAfterDelay(Options.DiscordOptions.SteamChat, string.Format("{0} has changed their name in Discord to {1}", e.Before.Name, e.After.Name), true);
     }
 }
Esempio n. 2
0
        private async void UsrUpdtd(object sender, UserUpdatedEventArgs e)
        {
            try
            {
                Channel ch;
                if (loggingPresences.TryGetValue(e.Server, out ch))
                {
                    if (e.Before.Status != e.After.Status)
                    {
                        await ch.SendMessage($"**{e.Before.Name}** is now **{e.After.Status}**.");
                    }
                }
            }
            catch { }

            try
            {
                if (e.Before.VoiceChannel != null && voiceChannelLog.ContainsKey(e.Before.VoiceChannel))
                {
                    if (e.After.VoiceChannel != e.Before.VoiceChannel)
                    {
                        await voiceChannelLog[e.Before.VoiceChannel].SendMessage($"🎼`{e.Before.Name} has left the` {e.Before.VoiceChannel.Mention} `voice channel.`");
                    }
                }
                if (e.After.VoiceChannel != null && voiceChannelLog.ContainsKey(e.After.VoiceChannel))
                {
                    if (e.After.VoiceChannel != e.Before.VoiceChannel)
                    {
                        await voiceChannelLog[e.After.VoiceChannel].SendMessage($"🎼`{e.After.Name} has joined the`{e.After.VoiceChannel.Mention} `voice channel.`");
                    }
                }
            }
            catch { }

            try
            {
                Channel ch;
                if (!logs.TryGetValue(e.Server, out ch))
                {
                    return;
                }
                string str = $"`Type:` **User updated** `Time:` **{DateTime.Now}** `User:` **{e.Before.Name}**\n";
                if (e.Before.Name != e.After.Name)
                {
                    str += $"`New name:` **{e.After.Name}**";
                }
                else if (e.Before.AvatarUrl != e.After.AvatarUrl)
                {
                    str += $"`New Avatar:` {e.After.AvatarUrl}";
                }
                else
                {
                    return;
                }
                await ch.SendMessage(str);
            }
            catch { }
        }
Esempio n. 3
0
 private async void DiscordClient_UserUpdated(object sender, UserUpdatedEventArgs e)
 {
     try
     {
         await RefreshControls();
     }
     catch (Exception exception)
     {
         App.LogUnhandledError(exception);
     }
 }
Esempio n. 4
0
        public void UserLeft(object sender, UserUpdatedEventArgs args)
        {
            if (CheckEvent(args.Server))
            {
                return;
            }

            long userId = (long)args.Before.Id;

            if ((args.After.Status == UserStatus.Online) && !startedSessions.ContainsKey(userId))
            {
                startedSessions.Add(userId, DateTime.Now);
            }
        }
Esempio n. 5
0
        private async void UsrUpdtd(object sender, UserUpdatedEventArgs e)
        {
            try {
                Channel ch;
                if (loggingPresences.TryGetValue(e.Server, out ch))
                {
                    if (e.Before.Status != e.After.Status)
                    {
                        var msg = await ch.SendMessage($"**{e.Before.Name}** is now **{e.After.Status}**.");

                        Task.Run(async() => {
                            try {
                                Task.Delay(4000);
                                msg.Delete();
                            }
                            catch { }
                        });
                    }
                }
            }
            catch { }

            try {
                Channel ch;
                if (!logs.TryGetValue(e.Server, out ch))
                {
                    return;
                }
                string str = $"`Type:` **User updated** `Time:` **{DateTime.Now}** `User:` **{e.Before.Name}**\n";
                if (e.Before.Name != e.After.Name)
                {
                    str += $"`New name:` **{e.After.Name}**";
                }
                else if (e.Before.AvatarUrl != e.After.AvatarUrl)
                {
                    str += $"`New Avatar:` {e.After.AvatarUrl}";
                }
                else if (e.Before.Status != e.After.Status)
                {
                    str += $"Status `{e.Before.Status}` -> `{e.After.Status}`";
                }
                else
                {
                    return;
                }
                await ch.SendMessage(str);
            }
            catch { }
        }
Esempio n. 6
0
        public void UserJoinVoiceChannael(object sender, UserUpdatedEventArgs args)
        {
            if (CheckEvent(args.Server))
            {
                return;
            }

            if (!args.After.IsBot && args.After.VoiceChannel != null && args.Before.VoiceChannel != args.After.VoiceChannel)
            {
                VoiceChannelLogService.Instance.Repository.Add(new VoiceChannelLog
                {
                    Time = DateTime.Now, UserId = (long)args.After.Id, VoiceChannelId = (long)args.After.VoiceChannel.Id
                });
            }
        }
 private async void DiscordClient_UserUpdated(object sender, UserUpdatedEventArgs e)
 {
     try
     {
         //This event triggers when a user goes in and out of game and when their status changes.
         await CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal,
                                                                       () =>
         {
             RefreshControls();
         });
     }
     catch (Exception exception)
     {
         App.LogUnhandledError(exception);
     }
 }
Esempio n. 8
0
        public void UserJoin(object sender, UserUpdatedEventArgs args)
        {
            if (CheckEvent(args.Server))
            {
                return;
            }

            long userId = (long)args.Before.Id;

            if ((args.After.Status == UserStatus.Offline) && startedSessions.ContainsKey(userId))
            {
                SessionService.Instance.Repository.Add(new Session {
                    StartTime = startedSessions[userId], EndTime = DateTime.Now, UserId = userId
                });
                startedSessions.Remove(userId);
            }
        }
Esempio n. 9
0
        private static async void OnUserUpdated(object sender, UserUpdatedEventArgs e)
        {
            DateTime time       = DateTime.Now;
            var      logChannel = e.Server.GetChannel(254990946536652801);

            if (e.After.VoiceChannel == null)
            {
                return;
            }
            if (e.Before.VoiceChannel == e.After.VoiceChannel)
            {
                return;
            }

            await logChannel.SendMessage($"{time.ToString("h:mm:ss tt")} User {e.After.Name} has joined {e.After.VoiceChannel} channels.");

            Console.WriteLine($"User {e.After.Name} was moved to another channel.\n--");
        }
 private void UserUpHello(object sender, UserUpdatedEventArgs e)
 {
     if (e.Before.IsBot)
     {
         return;
     }
     if (OnlineSayHi && CoolDown?.Name != e.After.Name && e.Before.Status == UserStatus.Offline && e.After.Status == UserStatus.Online)
     {
         CoolDown = e.After;
         if (DateTime.Now.Hour < 12)
         {
             e.After.SendMessage("Good morning " + e.After.Mention + ":wave: hope you are having a great day");
         }
         else
         {
             e.After.SendMessage("Good afternoon " + e.After.Mention + ":wave: hope you are having a great day");
         }
     }
 }
Esempio n. 11
0
        public void UserJoinApp(object sender, UserUpdatedEventArgs args)
        {
            if (CheckEvent(args.Server))
            {
                return;
            }

            if (!args.After.IsBot && args.Before.CurrentGame == null && args.After.CurrentGame != null)
            {
                if (!ApplicationLogService.Instance.Repository
                    .Get(app => app.ApplicationName == args.After.CurrentGame.Value.Name &&
                         ((DateTime.Now - app.Time).TotalSeconds < 10)).Any())
                {
                    ApplicationLogService.Instance.Repository.Add(new ApplicationLog
                    {
                        Time = DateTime.Now, UserId = (long)args.After.Id, ApplicationName = args.After.CurrentGame.Value.Name
                    });
                }
            }
        }
Esempio n. 12
0
        public async Task ReceiveUserUpdates()
        {
            var port = NextPort;

            using (var server = new Server(new TcpListener(new IPEndPoint(IPAddress.Loopback, port), new TestHandshaker()), new XmlSerializer())) {
                server.Attach(new ServerSubscriptionModule(server, new TestChatDataProvider(server.ConnectionProvider)));

                server.Initialize();

                using (var clientA = CreateClient("clientA"))
                    using (var clientB = CreateClient("clientB")) {
                        clientA.InitializeSubscriptionModule();
                        clientB.InitializeSubscriptionModule();

                        using (var eveUpdateReceived = new AutoResetEvent(false)) {
                            UserUpdatedEventArgs updatedUserArgs = null;

                            clientA.Subscription().UserUpdated += (sender, args) => {
                                updatedUserArgs = args;
                                eveUpdateReceived.Set();
                            };

                            await clientA.Connect("localhost:" + port);

                            var result = await clientA.Subscription().RPC.AddUserSubscription("clientB", null);

                            Assert.NotNull(result);

                            if (!eveUpdateReceived.WaitOne(MaxTimeout))
                            {
                                Assert.Fail("clientA never got an update :(");
                            }

                            Assert.NotNull(updatedUserArgs);

                            Assert.AreEqual(nameof(clientB), updatedUserArgs.User.Id);
                            Assert.AreEqual(TestChatDataProvider.UserOfflineStatus, updatedUserArgs.UserStatus);

                            updatedUserArgs = null;

                            await clientB.Connect("localhost:" + port);

                            if (!eveUpdateReceived.WaitOne(MaxTimeout))
                            {
                                Assert.Fail("clientA never got an update :(");
                            }

                            Assert.NotNull(updatedUserArgs);

                            Assert.AreEqual(nameof(clientB), updatedUserArgs.User.Id);
                            Assert.AreEqual(TestChatDataProvider.UserOnlineStatus, updatedUserArgs.UserStatus);

                            clientB.Connection.Close();

                            if (!eveUpdateReceived.WaitOne(MaxTimeout))
                            {
                                Assert.Fail("clientA never got an update :(");
                            }

                            Assert.NotNull(updatedUserArgs);

                            Assert.AreEqual(nameof(clientB), updatedUserArgs.User.Id);
                            Assert.AreEqual(TestChatDataProvider.UserOfflineStatus, updatedUserArgs.UserStatus);
                        }
                    }
            }
        }
 void _apiWebSocket_UserUpdated(object sender, UserUpdatedEventArgs e)
 {
 }
        private void OnUserChanged([NotNull] UserUpdatedEventArgs e)
        {
            var handler = UserUpdated;

            handler?.Invoke(this, e);
        }
Esempio n. 15
0
 public static void UserUpdated(UserUpdatedEventArgs e) => SystemEvents.InvokeEvent(null, OnUserUpdated, e, nameof(OnUserUpdated));
Esempio n. 16
0
 public void UserUpdatedHandler([NotNull] object sender, [NotNull] UserUpdatedEventArgs e)
 {
     UpdateUserInfo((UserInfo)e.User);
 }
Esempio n. 17
0
 void _apiWebSocket_UserUpdated(object sender, UserUpdatedEventArgs e)
 {
 }
Esempio n. 18
0
        private async void UsrUpdtd(object sender, UserUpdatedEventArgs e)
        {
            var config = SpecificConfigurations.Default.Of(e.Server.Id);

            try
            {
                var chId = config.LogPresenceChannel;
                if (chId != null)
                {
                    Channel ch;
                    if ((ch = e.Server.TextChannels.Where(tc => tc.Id == chId).FirstOrDefault()) != null)
                    {
                        if (e.Before.Status != e.After.Status)
                        {
                            voicePresenceUpdates.Add(new KeyValuePair <Channel, string>(ch, $"`{prettyCurrentTime}`**{e.Before.Name}** is now **{e.After.Status}**."));
                        }
                    }
                }
            }
            catch { }

            try
            {
                ulong   notifyChBeforeId;
                ulong   notifyChAfterId;
                Channel notifyChBefore = null;
                Channel notifyChAfter  = null;
                var     beforeVch      = e.Before.VoiceChannel;
                var     afterVch       = e.After.VoiceChannel;
                var     notifyLeave    = false;
                var     notifyJoin     = false;
                if ((beforeVch != null || afterVch != null) && (beforeVch != afterVch)) // this means we need to notify for sure.
                {
                    if (beforeVch != null && config.VoiceChannelLog.TryGetValue(beforeVch.Id, out notifyChBeforeId) && (notifyChBefore = e.Before.Server.TextChannels.FirstOrDefault(tc => tc.Id == notifyChBeforeId)) != null)
                    {
                        notifyLeave = true;
                    }
                    if (afterVch != null && config.VoiceChannelLog.TryGetValue(afterVch.Id, out notifyChAfterId) && (notifyChAfter = e.After.Server.TextChannels.FirstOrDefault(tc => tc.Id == notifyChAfterId)) != null)
                    {
                        notifyJoin = true;
                    }
                    if ((notifyLeave && notifyJoin) && (notifyChAfter == notifyChBefore))
                    {
                        await notifyChAfter.SendMessage($"🎼`{prettyCurrentTime}` {e.Before.Name} moved from **{beforeVch.Mention}** to **{afterVch.Mention}** voice channel.").ConfigureAwait(false);
                    }
                    else if (notifyJoin)
                    {
                        await notifyChAfter.SendMessage($"🎼`{prettyCurrentTime}` {e.Before.Name} has joined **{afterVch.Mention}** voice channel.").ConfigureAwait(false);
                    }
                    else if (notifyLeave)
                    {
                        await notifyChBefore.SendMessage($"🎼`{prettyCurrentTime}` {e.Before.Name} has left **{beforeVch.Mention}** voice channel.").ConfigureAwait(false);
                    }
                }
            }
            catch { }

            try
            {
                var chId = SpecificConfigurations.Default.Of(e.Server.Id).LogServerChannel;
                if (chId == null)
                {
                    return;
                }
                Channel ch;
                if ((ch = e.Server.TextChannels.Where(tc => tc.Id == chId).FirstOrDefault()) == null)
                {
                    return;
                }
                string str = $"🕔`{prettyCurrentTime}`";
                if (e.Before.Name != e.After.Name)
                {
                    str += $"**Name Changed**👤`{e.Before?.ToString()}`\n\t\t`New:`{e.After.ToString()}`";
                }
                else if (e.Before.Nickname != e.After.Nickname)
                {
                    str += $"**Nickname Changed**👤`{e.Before?.ToString()}`\n\t\t`Old:` {e.Before.Nickname}#{e.Before.Discriminator}\n\t\t`New:` {e.After.Nickname}#{e.After.Discriminator}";
                }
                else if (e.Before.AvatarUrl != e.After.AvatarUrl)
                {
                    str += $"**Avatar Changed**👤`{e.Before?.ToString()}`\n\t {await e.Before.AvatarUrl.ShortenUrl()} `=>` {await e.After.AvatarUrl.ShortenUrl()}";
                }
                else if (!e.Before.Roles.SequenceEqual(e.After.Roles))
                {
                    if (e.Before.Roles.Count() < e.After.Roles.Count())
                    {
                        var diffRoles = e.After.Roles.Where(r => !e.Before.Roles.Contains(r)).Select(r => "`" + r.Name + "`");
                        str += $"**User's Roles changed ⚔➕**👤`{e.Before?.ToString()}`\n\tNow has {string.Join(", ", diffRoles)} role.";
                    }
                    else if (e.Before.Roles.Count() > e.After.Roles.Count())
                    {
                        var diffRoles = e.Before.Roles.Where(r => !e.After.Roles.Contains(r)).Select(r => "`" + r.Name + "`");
                        str += $"**User's Roles changed ⚔➖**👤`{e.Before?.ToString()}`\n\tNo longer has {string.Join(", ", diffRoles)} role.";
                    }
                    else
                    {
                        Console.WriteLine("SEQUENCE NOT EQUAL BUT NO DIFF ROLES - REPORT TO KWOTH on #NADEKOLOG server");
                        return;
                    }
                }
                else
                {
                    return;
                }
                await ch.SendMessage(str).ConfigureAwait(false);
            }
            catch { }
        }