Ejemplo n.º 1
0
        public void SetupMessage(string TicketName, string Message, SocketGuild guild, SocketTextChannel channel)
        {
            GuildEngine guildE = GetOrCreateGuild(guild);
            var         ticket = CreateTicket(guild, TicketName);

            EmbedBuilder builder = new EmbedBuilder()
            {
                Author = new EmbedAuthorBuilder()
                {
                    Name = $"Ticket Tool ~ {TicketName}", IconUrl = @"https://cdn.discordapp.com/avatars/557628352828014614/04cdd55608f6f9942c9ab3bbcab3932c.png?size=512", Url = @"https://github.com/Saadbg/TicketBot"
                },
                Description = Message,
                Timestamp   = DateTime.Now,
                Footer      = new EmbedFooterBuilder()
                {
                    Text = $"{guildE.Name} Support", IconUrl = guildE.IconUrl
                }
            };

            var message = channel.SendMessageAsync("", false, builder.Build());

            message.Wait();

            message.Result.AddReactionAsync(TicketEmote);

            GuildManager.CreateSetupMessage(guildE, message.Result.Id, ticket.Id, channel.Id);
        }
Ejemplo n.º 2
0
        public void Save()
        {
            lock (m_lock)
            {
                if (NewGuilds.Any())
                {
                    foreach (var newGuild in NewGuilds)
                    {
                        Orm.Insert(GuildManager.MapGuild(newGuild));
                    }
                }

                if (guilds.Any())
                {
                    foreach (var guild in guilds)
                    {
                        Orm.Save(GuildManager.MapGuild(guild.Value));
                    }
                }

                NewGuilds.Clear();
            }
            Console.WriteLine($"{DateTime.Now.ToShortTimeString()} GuildManager: Saved guilds !");
            Task.Factory.StartNewDelayed(60 * 1000, Save);
        }
Ejemplo n.º 3
0
        public Ticket GetTicket(ulong GuildId, ulong TicketId)
        {
            GuildEngine guild;

            guilds.TryGetValue(GuildId, out guild);
            if (guild == null)
            {
                return(null);
            }

            return(GuildManager.GetTicket(guild, TicketId));
        }
Ejemplo n.º 4
0
        public void HandleReaction(SocketGuild guild, SocketGuildUser user, SocketReaction reaction)
        {
            if (user.IsBot)
            {
                return;
            }

            var Rmessage = (reaction.Channel as SocketTextChannel).GetMessageAsync(reaction.MessageId);

            Rmessage.Wait();

            var messge  = Rmessage.Result;
            var message = messge as Discord.Rest.RestUserMessage;

            if (message == null)
            {
                return;
            }

            GuildEngine guildE = GetOrCreateGuild(guild);

            var setupMessage = GuildManager.GetSetupMessage(guildE, reaction.MessageId);

            if (setupMessage != null)
            {
                HandleSetupMessage(guildE, setupMessage, reaction, message);
                return;
            }

            var child = GuildManager.GetChildByReactionMessageId(guildE, reaction.MessageId);

            if (child != null)
            {
                HandleChildReaction(child, reaction, message);
            }
        }
Ejemplo n.º 5
0
        public Ticket CreateTicket(SocketGuild guild, string TicketName)
        {
            GuildEngine guildEngine = GetOrCreateGuild(guild);

            return(GuildManager.CreateNewTicket(DiscordClient, guildEngine, TicketName));
        }
Ejemplo n.º 6
0
 public static GuildEngine GetGuild(ulong ParentGuildId) => GuildManager.GetGuildEngine(ParentGuildId);
Ejemplo n.º 7
0
 public static Ticket GetTicket(ulong ParentGuildId, ulong ParentTicketId) => GuildManager.GetTicket(GetGuild(ParentGuildId), ParentTicketId);