Ejemplo n.º 1
0
 public ThreadEventArgs(DiscordThread thread)
 {
     Thread = thread;
 }
Ejemplo n.º 2
0
        private async Task <bool> CreateDiscordChannelDBEntry()
        {
            // NO DM Tracking
            if (SocketGuildChannel == null)
            {
                return(false);
            }

            // Ensure CategoryChannel is created
            await CreateDiscordChannelCategoryDBEntry();

            var discordChannel = new DiscordChannel()
            {
                DiscordChannelId       = SocketGuildChannel.Id,
                ChannelName            = SocketGuildChannel.Name,
                DiscordServerId        = SocketGuild.Id,
                ParentDiscordChannelId = SocketCategoryChannel?.Id,
                IsCategory             = false,
                Position = SocketGuildChannel.Position
            };

            var dbDiscordChannel = DatabaseManager.GetDiscordChannel(SocketGuildChannel.Id);

            if (dbDiscordChannel == null)
            {
                var newDiscordChannelEntry = DatabaseManager.CreateDiscordChannel(discordChannel);
                return(newDiscordChannelEntry != null);
            }
            else
            {
                DatabaseManager.UpdateDiscordChannel(discordChannel);
            }

            // Create Thread
            if (SocketThreadChannel != null)
            {
                var discordThread = new DiscordThread()
                {
                    DiscordChannelId = SocketThreadChannel.ParentChannel.Id,
                    ThreadName       = SocketThreadChannel.Name,
                    DiscordThreadId  = SocketThreadChannel.Id,
                    IsArchived       = SocketThreadChannel.IsArchived,
                    IsLocked         = SocketThreadChannel.IsLocked,
                    IsPrivateThread  = SocketThreadChannel.IsPrivateThread,
                    IsNsfw           = SocketThreadChannel.IsNsfw,
                    MemberCount      = SocketThreadChannel.MemberCount,
                    ThreadType       = (int)SocketThreadChannel.Type
                };

                var dbDiscordThread = DatabaseManager.GetDiscordThread(SocketThreadChannel.Id);
                if (dbDiscordThread == null)
                {
                    var newDiscordThreadEntry = DatabaseManager.CreateDiscordThread(discordThread);
                    return(newDiscordThreadEntry != null);
                }
                else
                {
                    DatabaseManager.UpdateDiscordThread(discordThread);
                }
            }

            return(true);
        }