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); }
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); }
public Ticket GetTicket(ulong GuildId, ulong TicketId) { GuildEngine guild; guilds.TryGetValue(GuildId, out guild); if (guild == null) { return(null); } return(GuildManager.GetTicket(guild, TicketId)); }
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); } }
public Ticket CreateTicket(SocketGuild guild, string TicketName) { GuildEngine guildEngine = GetOrCreateGuild(guild); return(GuildManager.CreateNewTicket(DiscordClient, guildEngine, TicketName)); }
public static GuildEngine GetGuild(ulong ParentGuildId) => GuildManager.GetGuildEngine(ParentGuildId);
public static Ticket GetTicket(ulong ParentGuildId, ulong ParentTicketId) => GuildManager.GetTicket(GetGuild(ParentGuildId), ParentTicketId);