From 374ee1e326664cdcb1ffe119af221bd01deefec4 Mon Sep 17 00:00:00 2001 From: Jordan Brown Date: Tue, 6 Jun 2017 15:00:08 -0400 Subject: [PATCH] Discord users and channels are now identified by ID (#27) --- TGServerService/Discord.cs | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/TGServerService/Discord.cs b/TGServerService/Discord.cs index ebcba3d0b8..5c0c6f4bbe 100644 --- a/TGServerService/Discord.cs +++ b/TGServerService/Discord.cs @@ -13,7 +13,7 @@ namespace TGServerService TGDiscordSetupInfo DiscordConfig; object DiscordLock = new object(); - IDictionary SeenPrivateChannels = new Dictionary(); + IDictionary SeenPrivateChannels = new Dictionary(); public TGDiscordChatProvider(TGChatSetupInfo info) { @@ -33,9 +33,9 @@ namespace TGServerService if (!isValidChannel) return; - var tagged = e.Channel.IsPrivate && e.User.Name != client.CurrentUser.Name; - if (tagged && !SeenPrivateChannels.ContainsKey(e.Channel.Name)) - SeenPrivateChannels.Add(e.Channel.Name, e.Channel); + var tagged = e.Channel.IsPrivate && e.User.Id != client.CurrentUser.Id; + if (tagged && !SeenPrivateChannels.ContainsKey(e.Channel.Id)) + SeenPrivateChannels.Add(e.Channel.Id, e.Channel); var splits = new List(e.Message.Text.Trim().Split(' ')); if (splits[0] == "@" + client.CurrentUser.Name) @@ -43,7 +43,7 @@ namespace TGServerService splits.RemoveAt(0); tagged = true; } - OnChatMessage(e.User.Name, e.Channel.Name, String.Join(" ", splits), tagged); + OnChatMessage(e.User.Id.ToString(), e.Channel.Id.ToString(), String.Join(" ", splits), tagged); } public string Connect() @@ -132,7 +132,7 @@ namespace TGServerService } } - public string SendMessageDirect(string message, string channel) + public string SendMessageDirect(string message, string channelname) { try { @@ -140,12 +140,13 @@ namespace TGServerService { var tasks = new List(); var Config = Properties.Settings.Default; + var channel = Convert.ToUInt32(channelname); if (SeenPrivateChannels.ContainsKey(channel)) SeenPrivateChannels[channel].SendMessage(message).Wait(); else foreach (var I in client.Servers) foreach (var J in I.TextChannels) - if (J.Name == channel) + if (J.Id == channel) J.SendMessage(message).Wait(); TGServerService.WriteLog(String.Format("Discord Send ({0}): {1}", channel, message)); return null; @@ -170,7 +171,7 @@ namespace TGServerService { client.Dispose(); Init(info); - if(Properties.Settings.Default.ChatEnabled) + if (Properties.Settings.Default.ChatEnabled) Connect(); } return null;