internal static SocketReaction Create(Model model, ISocketMessageChannel channel, Optional <SocketUserMessage> message, Optional <IUser> user) { IEmote emote; if (model.Emoji.Id.HasValue) { emote = new Emote(model.Emoji.Id.Value, model.Emoji.Name, model.Emoji.Animated.GetValueOrDefault()); } else { emote = new Emoji(model.Emoji.Name); } return(new SocketReaction(channel, model.MessageId, message, model.UserId, user, emote)); }
public bool ReportEmote(Emote emote) { //trade/level up happen differently if (emote == Emote.Trade || emote == Emote.LevelUp) return false; //signal error client-side if (!m_client.ConnectedAndInitialized || !Initialized) return false; Packet pkt = new Packet(PacketFamily.Emote, PacketAction.Report); pkt.AddChar((byte)emote); return m_client.SendPacket(pkt); }
public async Task Application([Remainder] string podanie) { var client = Context.Client as DiscordSocketClient; var guild = client.GetGuild(448884032391086090); var GuildAccount = GuildAccounts.GetAccount(guild); if (GuildAccount.Rekrutacja == false) { await ReplyAsync($"{Messages.wrong} Aktualnie nie trwa rekrutacja."); } else { try { var dmChannel = await Context.User.GetOrCreateDMChannelAsync(); var admChannel = guild.GetChannel(GuildAccount.AdmChannelID) as ITextChannel; var nie = Emote.Parse(Messages.wrong); var tak = Emote.Parse(Messages.check); if (Context.Channel is IPrivateChannel) { EmbedBuilder eb = new EmbedBuilder(); eb.WithAuthor(Context.User.Username); eb.Author.WithIconUrl(Context.User.GetAvatarUrl()); eb.WithTitle("Podanie"); eb.WithDescription(podanie); eb.WithColor(Color.Blue); eb.WithCurrentTimestamp(); var msg = await admChannel.SendMessageAsync("", false, eb.Build()); await msg.AddReactionAsync(tak); await msg.AddReactionAsync(nie); await dmChannel.SendMessageAsync($"{Messages.check} Podanie zostało dostarczone do administracji. Jeśli uda Ci się przejść do kolejnego etapu ktoś z administracji Cię poinformuje."); } else { await Context.Channel.SendMessageAsync("Napisz swoje podanie pod komendą `!podanie [treść]` w wiadomości prywatnej do bota.\n**Nie pisz podań do członków administracji!**"); await dmChannel.SendMessageAsync("`!podanie [treść]` aby napisać podanie :)"); } } catch { await ReplyAsync(Messages.UnknownError); } } }
public async Task IdentifyEmojiAsync(EventContext e) { Emote emote = Emote.Parse(e.arguments); Utils.Embed.SetTitle("Emoji Identified!") .AddInlineField("Name", emote.Name) .AddInlineField("Id", emote.Id.ToString()) .AddInlineField("Created At", emote.CreatedAt.ToString()) .AddInlineField("Code", "`" + emote.ToString() + "`") .SetThumbnailUrl(emote.Url) .QueueToChannel(e.Channel); await Task.Yield(); }
internal static RestReaction Create(Model model) { IEmote emote; if (model.Emoji.Id.HasValue) { emote = new Emote(model.Emoji.Id.Value, model.Emoji.Name, model.Emoji.Animated.GetValueOrDefault()); } else { emote = new Emoji(model.Emoji.Name); } return(new RestReaction(emote, model.Count, model.Me)); }
public override async Task <TypeReaderResult> ReadAsync(ICommandContext context, string input, IServiceProvider services) { return(await Task.Run(() => { if (Emote.TryParse(input, out var emote)) { return TypeReaderResult.FromSuccess(emote); } const string pattern = @"(?:\uD83D(?:[\uDC76\uDC66\uDC67](?:\uD83C[\uDFFB-\uDFFF])?|\uDC68(?:(?:\uD83C(?:[\uDFFB-\uDFFF](?:\u200D(?:\u2695\uFE0F?|\uD83C[\uDF93\uDFEB\uDF3E\uDF73\uDFED\uDFA4\uDFA8]|\u2696\uFE0F?|\uD83D[\uDD27\uDCBC\uDD2C\uDCBB\uDE80\uDE92]|\u2708\uFE0F?|\uD83E[\uDDB0-\uDDB3]))?)|\u200D(?:\u2695\uFE0F?|\uD83C[\uDF93\uDFEB\uDF3E\uDF73\uDFED\uDFA4\uDFA8]|\u2696\uFE0F?|\uD83D(?:\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uDC68\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|[\uDD27\uDCBC\uDD2C\uDCBB\uDE80\uDE92])|\u2708\uFE0F?|\uD83E[\uDDB0-\uDDB3]|\u2764(?:\uFE0F\u200D\uD83D(?:\uDC8B\u200D\uD83D\uDC68|\uDC68)|\u200D\uD83D(?:\uDC8B\u200D\uD83D\uDC68|\uDC68)))))?|\uDC69(?:(?:\uD83C(?:[\uDFFB-\uDFFF](?:\u200D(?:\u2695\uFE0F?|\uD83C[\uDF93\uDFEB\uDF3E\uDF73\uDFED\uDFA4\uDFA8]|\u2696\uFE0F?|\uD83D[\uDD27\uDCBC\uDD2C\uDCBB\uDE80\uDE92]|\u2708\uFE0F?|\uD83E[\uDDB0-\uDDB3]))?)|\u200D(?:\u2695\uFE0F?|\uD83C[\uDF93\uDFEB\uDF3E\uDF73\uDFED\uDFA4\uDFA8]|\u2696\uFE0F?|\uD83D(?:\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|[\uDD27\uDCBC\uDD2C\uDCBB\uDE80\uDE92])|\u2708\uFE0F?|\uD83E[\uDDB0-\uDDB3]|\u2764(?:\uFE0F\u200D\uD83D(?:\uDC8B\u200D\uD83D[\uDC68\uDC69]|[\uDC68\uDC69])|\u200D\uD83D(?:\uDC8B\u200D\uD83D[\uDC68\uDC69]|[\uDC68\uDC69])))))?|[\uDC74\uDC75](?:\uD83C[\uDFFB-\uDFFF])?|\uDC6E(?:(?:\uD83C(?:[\uDFFB-\uDFFF](?:\u200D(?:[\u2642\u2640]\uFE0F?))?)|\u200D(?:[\u2642\u2640]\uFE0F?)))?|\uDD75(?:(?:\uFE0F(?:\u200D(?:[\u2642\u2640]\uFE0F?))?|\uD83C(?:[\uDFFB-\uDFFF](?:\u200D(?:[\u2642\u2640]\uFE0F?))?)|\u200D(?:[\u2642\u2640]\uFE0F?)))?|[\uDC82\uDC77](?:(?:\uD83C(?:[\uDFFB-\uDFFF](?:\u200D(?:[\u2642\u2640]\uFE0F?))?)|\u200D(?:[\u2642\u2640]\uFE0F?)))?|\uDC78(?:\uD83C[\uDFFB-\uDFFF])?|\uDC73(?:(?:\uD83C(?:[\uDFFB-\uDFFF](?:\u200D(?:[\u2642\u2640]\uFE0F?))?)|\u200D(?:[\u2642\u2640]\uFE0F?)))?|\uDC72(?:\uD83C[\uDFFB-\uDFFF])?|\uDC71(?:(?:\uD83C(?:[\uDFFB-\uDFFF](?:\u200D(?:[\u2642\u2640]\uFE0F?))?)|\u200D(?:[\u2642\u2640]\uFE0F?)))?|[\uDC70\uDC7C](?:\uD83C[\uDFFB-\uDFFF])?|[\uDE4D\uDE4E\uDE45\uDE46\uDC81\uDE4B\uDE47\uDC86\uDC87\uDEB6](?:(?:\uD83C(?:[\uDFFB-\uDFFF](?:\u200D(?:[\u2642\u2640]\uFE0F?))?)|\u200D(?:[\u2642\u2640]\uFE0F?)))?|[\uDC83\uDD7A](?:\uD83C[\uDFFB-\uDFFF])?|\uDC6F(?:\u200D(?:[\u2642\u2640]\uFE0F?))?|[\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|\uDD74(?:(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F))?|\uDDE3\uFE0F?|[\uDEA3\uDEB4\uDEB5](?:(?:\uD83C(?:[\uDFFB-\uDFFF](?:\u200D(?:[\u2642\u2640]\uFE0F?))?)|\u200D(?:[\u2642\u2640]\uFE0F?)))?|[\uDCAA\uDC48\uDC49\uDC46\uDD95\uDC47\uDD96](?:\uD83C[\uDFFB-\uDFFF])?|\uDD90(?:(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F))?|[\uDC4C-\uDC4E\uDC4A\uDC4B\uDC4F\uDC50\uDE4C\uDE4F\uDC85\uDC42\uDC43](?:\uD83C[\uDFFB-\uDFFF])?|\uDC41(?:(?:\uFE0F(?:\u200D\uD83D\uDDE8\uFE0F?)?|\u200D\uD83D\uDDE8\uFE0F?))?|[\uDDE8\uDDEF\uDD73\uDD76\uDECD\uDC3F\uDD4A\uDD77\uDD78\uDDFA\uDEE3\uDEE4\uDEE2\uDEF3\uDEE5\uDEE9\uDEF0\uDECE\uDD70\uDD79\uDDBC\uDDA5\uDDA8\uDDB1\uDDB2\uDCFD\uDD6F\uDDDE\uDDF3\uDD8B\uDD8A\uDD8C\uDD8D\uDDC2\uDDD2\uDDD3\uDD87\uDDC3\uDDC4\uDDD1\uDDDD\uDEE0\uDDE1\uDEE1\uDDDC\uDECF\uDECB\uDD49]\uFE0F?|[\uDE00-\uDE06\uDE09-\uDE0B\uDE0E\uDE0D\uDE18\uDE17\uDE19\uDE1A\uDE42\uDE10\uDE11\uDE36\uDE44\uDE0F\uDE23\uDE25\uDE2E\uDE2F\uDE2A\uDE2B\uDE34\uDE0C\uDE1B-\uDE1D\uDE12-\uDE15\uDE43\uDE32\uDE41\uDE16\uDE1E\uDE1F\uDE24\uDE22\uDE2D\uDE26-\uDE29\uDE2C\uDE30\uDE31\uDE33\uDE35\uDE21\uDE20\uDE37\uDE07\uDE08\uDC7F\uDC79\uDC7A\uDC80\uDC7B\uDC7D\uDC7E\uDCA9\uDE3A\uDE38\uDE39\uDE3B-\uDE3D\uDE40\uDE3F\uDE3E\uDE48-\uDE4A\uDC64\uDC65\uDC6B-\uDC6D\uDC8F\uDC91\uDC6A\uDC63\uDC40\uDC45\uDC44\uDC8B\uDC98\uDC93-\uDC97\uDC99-\uDC9C\uDDA4\uDC9D-\uDC9F\uDC8C\uDCA4\uDCA2\uDCA3\uDCA5\uDCA6\uDCA8\uDCAB-\uDCAD\uDC53-\uDC62\uDC51\uDC52\uDCFF\uDC84\uDC8D\uDC8E\uDC35\uDC12\uDC36\uDC15\uDC29\uDC3A\uDC31\uDC08\uDC2F\uDC05\uDC06\uDC34\uDC0E\uDC2E\uDC02-\uDC04\uDC37\uDC16\uDC17\uDC3D\uDC0F\uDC11\uDC10\uDC2A\uDC2B\uDC18\uDC2D\uDC01\uDC00\uDC39\uDC30\uDC07\uDC3B\uDC28\uDC3C\uDC3E\uDC14\uDC13\uDC23-\uDC27\uDC38\uDC0A\uDC22\uDC0D\uDC32\uDC09\uDC33\uDC0B\uDC2C\uDC1F-\uDC21\uDC19\uDC1A\uDC0C\uDC1B-\uDC1E\uDC90\uDCAE\uDD2A\uDDFE\uDDFB\uDC92\uDDFC\uDDFD\uDD4C\uDD4D\uDD4B\uDC88\uDE82-\uDE8A\uDE9D\uDE9E\uDE8B-\uDE8E\uDE90-\uDE9C\uDEB2\uDEF4\uDEF9\uDEF5\uDE8F\uDEA8\uDEA5\uDEA6\uDED1\uDEA7\uDEF6\uDEA4\uDEA2\uDEEB\uDEEC\uDCBA\uDE81\uDE9F-\uDEA1\uDE80\uDEF8\uDD5B\uDD67\uDD50\uDD5C\uDD51\uDD5D\uDD52\uDD5E\uDD53\uDD5F\uDD54\uDD60\uDD55\uDD61\uDD56\uDD62\uDD57\uDD63\uDD58\uDD64\uDD59\uDD65\uDD5A\uDD66\uDD25\uDCA7\uDEF7\uDD2E\uDD07-\uDD0A\uDCE2\uDCE3\uDCEF\uDD14\uDD15\uDCFB\uDCF1\uDCF2\uDCDE-\uDCE0\uDD0B\uDD0C\uDCBB\uDCBD-\uDCC0\uDCFA\uDCF7-\uDCF9\uDCFC\uDD0D\uDD0E\uDCA1\uDD26\uDCD4-\uDCDA\uDCD3\uDCD2\uDCC3\uDCDC\uDCC4\uDCF0\uDCD1\uDD16\uDCB0\uDCB4-\uDCB8\uDCB3\uDCB9\uDCB1\uDCB2\uDCE7-\uDCE9\uDCE4-\uDCE6\uDCEB\uDCEA\uDCEC-\uDCEE\uDCDD\uDCBC\uDCC1\uDCC2\uDCC5-\uDCD0\uDD12\uDD13\uDD0F-\uDD11\uDD28\uDD2B\uDD27\uDD29\uDD17\uDD2C\uDD2D\uDCE1\uDC89\uDC8A\uDEAA\uDEBD\uDEBF\uDEC1\uDED2\uDEAC\uDDFF\uDEAE\uDEB0\uDEB9-\uDEBC\uDEBE\uDEC2-\uDEC5\uDEB8\uDEAB\uDEB3\uDEAD\uDEAF\uDEB1\uDEB7\uDCF5\uDD1E\uDD03\uDD04\uDD19-\uDD1D\uDED0\uDD4E\uDD2F\uDD00-\uDD02\uDD3C\uDD3D\uDD05\uDD06\uDCF6\uDCF3\uDCF4\uDD31\uDCDB\uDD30\uDD1F\uDCAF\uDD20-\uDD24\uDD36-\uDD3B\uDCA0\uDD18\uDD32-\uDD35\uDEA9])|\uD83E(?:[\uDDD2\uDDD1\uDDD3](?:\uD83C[\uDFFB-\uDFFF])?|[\uDDB8\uDDB9](?:\u200D(?:[\u2640\u2642]\uFE0F?))?|[\uDD34\uDDD5\uDDD4\uDD35\uDD30\uDD31\uDD36](?:\uD83C[\uDFFB-\uDFFF])?|[\uDDD9-\uDDDD](?:(?:\uD83C(?:[\uDFFB-\uDFFF](?:\u200D(?:[\u2640\u2642]\uFE0F?))?)|\u200D(?:[\u2640\u2642]\uFE0F?)))?|[\uDDDE\uDDDF](?:\u200D(?:[\u2640\u2642]\uFE0F?))?|[\uDD26\uDD37](?:(?:\uD83C(?:[\uDFFB-\uDFFF](?:\u200D(?:[\u2642\u2640]\uFE0F?))?)|\u200D(?:[\u2642\u2640]\uFE0F?)))?|[\uDDD6-\uDDD8](?:(?:\uD83C(?:[\uDFFB-\uDFFF](?:\u200D(?:[\u2640\u2642]\uFE0F?))?)|\u200D(?:[\u2640\u2642]\uFE0F?)))?|\uDD38(?:(?:\uD83C(?:[\uDFFB-\uDFFF](?:\u200D(?:[\u2642\u2640]\uFE0F?))?)|\u200D(?:[\u2642\u2640]\uFE0F?)))?|\uDD3C(?:\u200D(?:[\u2642\u2640]\uFE0F?))?|[\uDD3D\uDD3E\uDD39](?:(?:\uD83C(?:[\uDFFB-\uDFFF](?:\u200D(?:[\u2642\u2640]\uFE0F?))?)|\u200D(?:[\u2642\u2640]\uFE0F?)))?|[\uDD33\uDDB5\uDDB6\uDD1E\uDD18\uDD19\uDD1B\uDD1C\uDD1A\uDD1F\uDD32](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD23\uDD70\uDD17\uDD29\uDD14\uDD28\uDD10\uDD24\uDD11\uDD2F\uDD75\uDD76\uDD2A\uDD2C\uDD12\uDD15\uDD22\uDD2E\uDD27\uDD20\uDD21\uDD73\uDD74\uDD7A\uDD25\uDD2B\uDD2D\uDDD0\uDD13\uDD16\uDD3A\uDD1D\uDDB0-\uDDB3\uDDE0\uDDB4\uDDB7\uDDE1\uDD7D\uDD7C\uDDE3-\uDDE6\uDD7E\uDD7F\uDDE2\uDD8D\uDD8A\uDD9D\uDD81\uDD84\uDD93\uDD8C\uDD99\uDD92\uDD8F\uDD9B\uDD94\uDD87\uDD98\uDDA1\uDD83\uDD85\uDD86\uDDA2\uDD89\uDD9A\uDD9C\uDD8E\uDD95\uDD96\uDD88\uDD80\uDD9E\uDD90\uDD91\uDD8B\uDD97\uDD82\uDD9F\uDDA0\uDD40\uDD6D\uDD5D\uDD65\uDD51\uDD54\uDD55\uDD52\uDD6C\uDD66\uDD5C\uDD50\uDD56\uDD68\uDD6F\uDD5E\uDDC0\uDD69\uDD53\uDD6A\uDD59\uDD5A\uDD58\uDD63\uDD57\uDDC2\uDD6B\uDD6E\uDD5F-\uDD61\uDDC1\uDD67\uDD5B\uDD42\uDD43\uDD64\uDD62\uDD44\uDDED\uDDF1\uDDF3\uDDE8\uDDE7\uDD47-\uDD49\uDD4E\uDD4F\uDD4D\uDD4A\uDD4B\uDD45\uDD4C\uDDFF\uDDE9\uDDF8\uDD41\uDDEE\uDDFE\uDDF0\uDDF2\uDDEA-\uDDEC\uDDEF\uDDF4-\uDDF7\uDDF9-\uDDFD])|[\u263A\u2639\u2620]\uFE0F?|\uD83C(?:\uDF85(?:\uD83C[\uDFFB-\uDFFF])?|\uDFC3(?:(?:\uD83C(?:[\uDFFB-\uDFFF](?:\u200D(?:[\u2642\u2640]\uFE0F?))?)|\u200D(?:[\u2642\u2640]\uFE0F?)))?|[\uDFC7\uDFC2](?:\uD83C[\uDFFB-\uDFFF])?|\uDFCC(?:(?:\uFE0F(?:\u200D(?:[\u2642\u2640]\uFE0F?))?|\uD83C(?:[\uDFFB-\uDFFF](?:\u200D(?:[\u2642\u2640]\uFE0F?))?)|\u200D(?:[\u2642\u2640]\uFE0F?)))?|[\uDFC4\uDFCA](?:(?:\uD83C(?:[\uDFFB-\uDFFF](?:\u200D(?:[\u2642\u2640]\uFE0F?))?)|\u200D(?:[\u2642\u2640]\uFE0F?)))?|\uDFCB(?:(?:\uFE0F(?:\u200D(?:[\u2642\u2640]\uFE0F?))?|\uD83C(?:[\uDFFB-\uDFFF](?:\u200D(?:[\u2642\u2640]\uFE0F?))?)|\u200D(?:[\u2642\u2640]\uFE0F?)))?|[\uDFCE\uDFCD\uDFF5\uDF36\uDF7D\uDFD4-\uDFD6\uDFDC-\uDFDF\uDFDB\uDFD7\uDFD8\uDFDA\uDFD9\uDF21\uDF24-\uDF2C\uDF97\uDF9F\uDF96\uDF99-\uDF9B\uDF9E\uDFF7\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37]\uFE0F?|\uDFF4(?:(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67\uDB40\uDC7F|\uDC73\uDB40\uDC63\uDB40\uDC74\uDB40\uDC7F|\uDC77\uDB40\uDC6C\uDB40\uDC73\uDB40\uDC7F)))?|\uDFF3(?:(?:\uFE0F(?:\u200D\uD83C\uDF08)?|\u200D\uD83C\uDF08))?|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|[\uDFFB-\uDFFF\uDF92\uDFA9\uDF93\uDF38-\uDF3C\uDF37\uDF31-\uDF35\uDF3E-\uDF43\uDF47-\uDF53\uDF45\uDF46\uDF3D\uDF44\uDF30\uDF5E\uDF56\uDF57\uDF54\uDF5F\uDF55\uDF2D-\uDF2F\uDF73\uDF72\uDF7F\uDF71\uDF58-\uDF5D\uDF60\uDF62-\uDF65\uDF61\uDF66-\uDF6A\uDF82\uDF70\uDF6B-\uDF6F\uDF7C\uDF75\uDF76\uDF7E\uDF77-\uDF7B\uDF74\uDFFA\uDF0D-\uDF10\uDF0B\uDFE0-\uDFE6\uDFE8-\uDFED\uDFEF\uDFF0\uDF01\uDF03-\uDF07\uDF09\uDF0C\uDFA0-\uDFA2\uDFAA\uDF11-\uDF20\uDF00\uDF08\uDF02\uDF0A\uDF83\uDF84\uDF86-\uDF8B\uDF8D-\uDF91\uDF80\uDF81\uDFAB\uDFC6\uDFC5\uDFC0\uDFD0\uDFC8\uDFC9\uDFBE\uDFB3\uDFCF\uDFD1-\uDFD3\uDFF8\uDFA3\uDFBD\uDFBF\uDFAF\uDFB1\uDFAE\uDFB0\uDFB2\uDCCF\uDC04\uDFB4\uDFAD\uDFA8\uDFBC\uDFB5\uDFB6\uDFA4\uDFA7\uDFB7-\uDFBB\uDFA5\uDFAC\uDFEE\uDFF9\uDFE7\uDFA6\uDD8E\uDD91-\uDD9A\uDE01\uDE36\uDE2F\uDE50\uDE39\uDE1A\uDE32\uDE51\uDE38\uDE34\uDE33\uDE3A\uDE35\uDFC1\uDF8C])|\u26F7\uFE0F?|\u26F9(?:(?:\uFE0F(?:\u200D(?:[\u2642\u2640]\uFE0F?))?|\uD83C(?:[\uDFFB-\uDFFF](?:\u200D(?:[\u2642\u2640]\uFE0F?))?)|\u200D(?:[\u2642\u2640]\uFE0F?)))?|[\u261D\u270C](?:(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F))?|[\u270B\u270A](?:\uD83C[\uDFFB-\uDFFF])?|\u270D(?:(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F))?|[\u2764\u2763\u26D1\u2618\u26F0\u26E9\u2668\u26F4\u2708\u23F1\u23F2\u2600\u2601\u26C8\u2602\u26F1\u2744\u2603\u2604\u26F8\u2660\u2665\u2666\u2663\u260E\u2328\u2709\u270F\u2712\u2702\u26CF\u2692\u2694\u2699\u2696\u26D3\u2697\u26B0\u26B1\u26A0\u2622\u2623\u2B06\u2197\u27A1\u2198\u2B07\u2199\u2B05\u2196\u2195\u2194\u21A9\u21AA\u2934\u2935\u269B\u267E\u2721\u2638\u262F\u271D\u2626\u262A\u262E\u25B6\u23ED\u23EF\u25C0\u23EE\u23F8-\u23FA\u23CF\u2640\u2642\u2695\u267B\u269C\u2611\u2714\u2716\u303D\u2733\u2734\u2747\u203C\u2049\u3030\u00A9\u00AE\u2122]\uFE0F?|[\u0023\u002A\u0030-\u0039](?:\uFE0F\u20E3|\u20E3)|[\u2139\u24C2\u3297\u3299\u25AA\u25AB\u25FB\u25FC]\uFE0F?|[\u2615\u26EA\u26F2\u26FA\u26FD\u2693\u26F5\u231B\u23F3\u231A\u23F0\u2B50\u26C5\u2614\u26A1\u26C4\u2728\u26BD\u26BE\u26F3\u267F\u26D4\u2648-\u2653\u26CE\u23E9-\u23EC\u2B55\u2705\u274C\u274E\u2795-\u2797\u27B0\u27BF\u2753-\u2755\u2757\u25FD\u25FE\u2B1B\u2B1C\u26AA\u26AB])"; return Regex.IsMatch(input, pattern) ? TypeReaderResult.FromSuccess(new Emoji(input)) : TypeReaderResult.FromError(CommandError.ParseFailed, "Emoji not found!"); }).ConfigureAwait(false)); }
public async Task InitializeAsync(DiscordSocketClient client) { this.client = client; client.MessageReceived += HandleMessageAsync; client.ReactionAdded += HandleReactionAsync; //badWords = File.ReadAllLines("Resources/bad_words.txt"); responses = new List <AutoResponse> { new AutoResponse( new Regex("[Hh][y][a]+[h][o]+", RegexOptions.Compiled), new Reaction("", Emote.Parse("<:Keelhaul:537265959442841600>")), 5), new AutoResponse( new Regex("[H][Y][A]+[H][O]+", RegexOptions.Compiled), new Reaction("", Emote.Parse("<:Vicious_Chop:537265959384121366>")), 5), new AutoResponse( new Regex("(Bubebo)", RegexOptions.Compiled | RegexOptions.IgnoreCase), new Reaction("Do you feel the earth rumbling? It must be Lord Babi rolling in his grave.", Emote.Parse("<:sad:685656410352386127>")), 60), new AutoResponse( new Regex("(Air).*(Rock).*(Sol Blade)|(Sol Blade).*(Air).*(Rock)", RegexOptions.Compiled | RegexOptions.IgnoreCase), new Reaction("I assume you are talking about the Air's Rock Glitch where you can get an early Sol Blade. Check TLPlexas video about it! https://www.youtube.com/watch?v=AIdt53_mqXQ&t=1s"), 30), new AutoResponse( new Regex(@"\¡\!", RegexOptions.Compiled | RegexOptions.IgnoreCase), new Reaction("If you want to summon me to seek my assistance, use the prefix `i!` as in **I**odem."), 30), new AutoResponse( new Regex(@"(\#\^\@\%\!)", RegexOptions.Compiled), new CurseReaction(), 2), new AutoResponse( new Regex(@"(^|\D)(420)(\D|$)", RegexOptions.Compiled), new Reaction("", Emote.Parse("<:Herb:543043292187590659>")), 60), new AutoResponse( new Regex(@"Krakden", RegexOptions.Compiled | RegexOptions.IgnoreCase), new Reaction("", Emote.Parse("<:Krakden:576856312500060161>")), 60) }; await Task.CompletedTask; }
private async Task Giveaway() { var ch = Client.GetChannel(549341713542414336) as SocketTextChannel; var m = await ch.GetMessageAsync(926466939168108574); var users = (await m.GetReactionUsersAsync(Emote.Parse("<:NamikoYes:806196730440974376>"), 100).FlattenAsync()).OrderBy(x => Guid.NewGuid()).ToList(); var me = users.First(x => x.Id == 113677776417980419); var proplus = new List <string> { }; var guild = new List <string> { }; string res = ""; foreach (var code in proplus) { try { var user = users.FirstOrDefault(); users.Remove(user); res += $"{user} - {user.Mention} - `{code}`\n"; await user.SendMessageAsync($"Congratulations! You won the giveaway for **Namiko Pro+**!\nYour code is `{code}`.\n\nTo activate it, use Namiko's redeem command: `!redeem {code}`\n\nMore info: <https://namiko.moe/Pro>"); } catch { } } res += "\n\n"; foreach (var code in guild) { try { var user = users.FirstOrDefault(); users.Remove(user); res += $"{user} - {user.Mention} - `{code}`\n"; await user.SendMessageAsync($"Congratulations! You won the giveaway for **Namiko Pro Guild**!\nYour code is `{code}`.\n\nUse Namiko's redeem command in the server that you wish to activate it: `!redeem {code}`\n\nMore info: <https://namiko.moe/Pro>"); } catch { } } Console.WriteLine(res); await me.SendMessageAsync(res); }
private EmbedBuilder ParseActivityContainer(ActivityContainer container) { (var icon, var activityName) = Activity .GetActivityInfo(container.ActivityType, container.ActivityName); var ftSize = Activity.GetFireteamSize(container.ActivityType); var users = new List <EmbedFieldBuilder>(); if (container.Users.Count() > 0) { var leader = container.Users.FirstOrDefault(); users.Add(new EmbedFieldBuilder { IsInline = false, Name = "Організатор збору", Value = $"<@{leader}>" }); var fireteam = container.Users.Skip(1).Take(ftSize - 1); if (fireteam.Count() > 0) { users.Add(new EmbedFieldBuilder { IsInline = false, Name = "Бойова група", Value = string.Join("\n", fireteam.Select(x => $"<@{x}>")) }); } var reserve = container.Users.Skip(ftSize); if (reserve.Count() > 0) { users.Add(new EmbedFieldBuilder { IsInline = false, Name = "Лава запасних", Value = string.Join("\n", reserve.Select(x => $"<@{x}>")) }); } } return(new EmbedBuilder() .WithColor(new Color(0xFFFFFF)) .WithThumbnailUrl(Emote.Parse(icon).Url) .WithTitle($"{activityName} @ {container.PlannedDate.ToLocalTime().ToString("dd.MM.yyyy HH:mm")}") .WithDescription(container.Description) .WithFields(users)); }
public override Task <TypeParserResult <IEmote> > ParseAsync(Parameter parameter, string value, ICommandContext context, IServiceProvider provider) { if (Emote.TryParse(value, out Emote emote)) { return(Task.FromResult(new TypeParserResult <IEmote>(emote))); } else if (Regex.Match(value, @"^\uD83C\uDFF4(?:\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74)\uDB40\uDC7F|\u200D\u2620\uFE0F)|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC68(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDB0-\uDDB3])|(?:\uD83C[\uDFFB-\uDFFF])\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDB0-\uDDB3]))|\uD83D\uDC69\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDB0-\uDDB3])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2695\u2696\u2708]|\uD83D\uDC68(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83D\uDC69\u200D[\u2695\u2696\u2708])\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC68(?:\u200D(?:(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D[\uDC66\uDC67])|\uD83C[\uDFFB-\uDFFF])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDB0-\uDDB3])|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDD1-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDEEB\uDEEC\uDEF4-\uDEF9]|\uD83E[\uDD10-\uDD3A\uDD3C-\uDD3E\uDD40-\uDD45\uDD47-\uDD70\uDD73-\uDD76\uDD7A\uDD7C-\uDDA2\uDDB0-\uDDB9\uDDC0-\uDDC2\uDDD0-\uDDFF])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEF9]|\uD83E[\uDD10-\uDD3A\uDD3C-\uDD3E\uDD40-\uDD45\uDD47-\uDD70\uDD73-\uDD76\uDD7A\uDD7C-\uDDA2\uDDB0-\uDDB9\uDDC0-\uDDC2\uDDD0-\uDDFF])\uFE0F?|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC69\uDC6E\uDC70-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD18-\uDD1C\uDD1E\uDD1F\uDD26\uDD30-\uDD39\uDD3D\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDD1-\uDDDD])+", RegexOptions.IgnoreCase).Success) { return(Task.FromResult(new TypeParserResult <IEmote>(new Emoji(value)))); } else { return(Task.FromResult(new TypeParserResult <IEmote>("Emote not found."))); } }
public static bool IsAvailable(this Emote self) { foreach (SocketGuild guild in Program.DiscordClient.Guilds) { foreach (GuildEmote emote in guild.Emotes) { if (emote.Id == self.Id) { return(true); } } } return(false); }
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { IEmote emote; JObject json = JObject.Load(reader); if (json.ContainsKey("Id")) { emote = Emote.Parse($"<:{json.Value<string>("Name")}:{json.Value<ulong>("Id")}>"); } else { emote = new Emoji(json.Value <string>("Name")); } return(emote); }
public static bool TryParse(string input, out IEmote emote) { if (Emote.TryParse(input, out Emote parsedEmote)) { emote = parsedEmote; return(true); } if (isEmoji(input)) { emote = new Emoji(input); return(true); } emote = null; return(false); }
public async Task DisableAll() { var sb = new StringBuilder(); foreach (BlockType type in Enum.GetValues(typeof(BlockType))) { sb.AppendLine(!_adsService.TryDisableGuild(Context.Guild, type) ? $":exclamation: Failed to disable `{type}`. Already disabled!" : $":white_check_mark: Disabled `{type}`."); } await ReplyAsync(sb.ToString()); await _logChannelService.LogMessageAsync(_client, Context.Client, Emote.Parse("<:Action:333712615731888129>"), $"{Context.User} disabled All Blocks in {Context.Guild}").ConfigureAwait(false); }
private IEmote GetEmote(string key) { IEmote resEmote = null; Emote emote = null; if (Emote.TryParse(key, out emote)) { resEmote = emote; } else { resEmote = new Emoji(key); } return(resEmote); }
public async Task Freact( [Summary("The message")] ulong mid, [Summary("The reaction")] string reaction) { reaction = "<:" + reaction + ">"; Emote res; if (Emote.TryParse(reaction, out res)) { var msg = await Context.Channel.GetMessageAsync(mid) as RestUserMessage; await msg.AddReactionAsync(res); } await Context.Message.DeleteAsync(); }
public HttpStatusCode Post([FromBody] Emote social) { if (!ModelState.IsValid) { var exception = new Exception("Invalid settings"); throw exception; } if (social == null) { return(HttpStatusCode.BadRequest); } _db.Save(social, DataBase.Collections.Socials); return(HttpStatusCode.OK); }
public Emote GetEmote(string id, string name, string url) { Emote emote = new Emote() { Id = id, Name = name, Url = url, Data = this.httpClient.DownloadData(url) }; using (Stream stream = new MemoryStream(emote.Data)) { Bitmap bitmap = new Bitmap(stream); emote.Bitmap = bitmap; emote.BitmapImage = this.bitmapFunctions.ToBitmapImage(emote.Bitmap); } return(emote); }
public async Task GetStats(IUser userObj) { var user = Context.Client.GetGuild(DiscordSettings.GuildId).GetUser(userObj.Id); const string WootString = "<:woot:329697747701727235>"; var hs = await Database.UNSAFE_GetOrCreateScoreUserAndLeaderboardPositionAsync(Context.Client, user.Id); var score = hs.Item1; var boostStr = score.BonusScore > 0 ? $" (+{score.BonusScore:F1})" : ""; var dailyStr = score.DailyCooldown.HasValue ? score.DailyStreakCount == 0 ? "" : $" (Streak: {score.DailyStreakCount})" : " (Daily available)"; await ReplyAsync($"[#{hs.Item2}] **{user.GetName()}**'s stats:", embed: new EmbedBuilder().WithDescription( Emote.Parse(WootString) + $" **Score:** {score.Score:F3}{boostStr}\n" + $":gem: **Gems:** {score.Gems}{dailyStr}\n" + }
public void UpdateEmotes() { if (_config[EMOTE_ACK] != null && Emote.TryParse(_config[EMOTE_ACK], out var ack)) { _ack = ack; } if (_config[EMOTE_FEATURE] != null && Emote.TryParse(_config[EMOTE_FEATURE], out var feature)) { _feature = feature; } if (_config[EMOTE_BUG] != null && Emote.TryParse(_config[EMOTE_BUG], out var bug)) { _bug = bug; } }
public async Task DeployCard(RoleCard c) { var eb = new EmbedBuilder() { Title = "Self-Assignable Role Menu", Color = Color.DarkBlue, Footer = new EmbedFooterBuilder() { Text = "Created on " + DateTime.UtcNow.ToLongDateString() + ", " + DateTime.UtcNow.ToShortTimeString() }, Timestamp = DateTime.Now }; string des = "**Here are all the Self-Assignable roles**\n\n"; List <IEmote> em = new List <IEmote>(); var sa = Context.Guild.Emotes; foreach (var r in c.RoleEmojiIDs) { des += $"{r.Emote} - <@&{r.RoleID}>\n{r.Description}\n\n"; var m = new Regex(@"\<.?\:(.*?)\:(\d*?)\>").Match(r.Emote); if (m.Success) { if (sa.Any(x => x.Id == ulong.Parse(m.Groups[2].Value))) { em.Add(sa.FirstOrDefault(x => x.Id == ulong.Parse(m.Groups[2].Value))); continue; } } if (Emote.TryParse(r.Emote, out var s)) { var name = new Regex(@"\<\:(.*?)\:(\d*?)\>").Match(r.Emote).Groups[1].Value; } else { em.Add(new Emoji(r.Emote)); } } eb.Description = des; var msg = await Context.Guild.GetTextChannel(c.ChannelID).SendMessageAsync("", false, eb.Build()); await msg.AddReactionsAsync(em.ToArray()); c.ServerID = Context.Guild.Id; c.MessageID = msg.Id; c.ChannelID = msg.Channel.Id; Rolecard = c; Global.SaveRoleCard(); }
/// <summary> /// Returns a shortened form a given Emote. e.g. "<:isaac_fallen:490017761972715530>" to "<:i:490017761972715530>". /// If the string is an Emoji, e.g. :grimasse: it returns it as is. /// Otherwise raises ArgumentException if invalid string. /// </summary> /// <param name="s"></param> /// <returns>The shortened form of the emote.</returns> public static string ToShortEmote(this string s) { if (!(Emote.TryParse(s, out _) || Emoji.TryParse(s, out _))) { throw new ArgumentException($"{s} not a valid Emote sequence"); } var emote = Regex.Match(s, @"<(a?):(.+):(\d{18})>"); if (!emote.Success) { return(s); } return($"<{emote.Groups[1].Value}:{emote.Groups[2].Value[0]}:{emote.Groups[3].Value}>"); //return m.Groups[0].Value; }
public async Task SendAndReactAsync(ISocketMessageChannel channel) { var message = await channel.SendMessageAsync("3 AHAHAHAHAHAHAHA 1"); var testemoji1 = new Emoji("3️⃣"); var testemoji2 = new Emoji("1️⃣"); await message.AddReactionAsync(testemoji1); await message.AddReactionAsync(testemoji2); var emote = Emote.Parse("<:thonkang:282745590985523200>"); await message.AddReactionAsync(emote); }
public async Task Christmas(SocketCommandContext context) { if (!ChristmasModeEnable) { return; } var rnd = new Random(); if (rnd.Next(ChristmasModeRate) != 0) { return; } await context.Message.AddReactionAsync(Emote.Parse(ChristmasEmotes[rnd.Next(ChristmasEmotes.Length)])); }
public async void RemoveReaction(Emote emote, ulong discordMessageId, SocketGuildUser user) { var discordEmote = new DiscordEmote() { Animated = emote.Animated, DiscordEmoteId = emote.Id, EmoteName = emote.Name, Url = emote.Url, CreatedAt = emote.CreatedAt, Blocked = false, LastUpdatedAt = DateTime.Now, // todo chech changes LocalPath = null }; DatabaseManager.ProcessDiscordEmote(discordEmote, discordMessageId, -1, true, user, false); }
public static string GetUrl(string emoji) { if (Emote.TryParse(emoji, out var found)) { return(found.Url); } else { const string EmojiLink = "https://raw.githubusercontent.com/twitter/twemoji/master/assets/72x72/"; var runes = emoji.EnumerateRunes(); var withoutTrailingVariantSelectors = runes.SkipLast(x => IsVariantSelector(x)); var hexValues = string.Join('-', withoutTrailingVariantSelectors.Select(x => x.Value.ToString("x"))); return($"{EmojiLink}{hexValues}.png"); }
public async Task EnableAll() { var sb = new StringBuilder(); foreach (BlockType type in Enum.GetValues(typeof(BlockType))) { sb.AppendLine(!_adsService.TryEnableGuild(Context.Guild, type) ? $":exclamation: Failed to enable `{type}`. Already enabled!" : $":white_check_mark: Enabled `{type}`."); } sb.AppendLine($"Please ensure that the bot has `MANAGE_MESSAGES` permission in the required channels"); await ReplyAsync(sb.ToString()); await _logChannelService.LogMessageAsync(_client, Context.Client, Emote.Parse("<:Action:333712615731888129>"), $"{Context.User} enabled All Blocks in {Context.Guild}").ConfigureAwait(false); }
public async Task Suggestion([Remainder] string propozycja) { try { var client = Context.Client as DiscordSocketClient; var guild = client.GetGuild(448884032391086090); var GuildAccount = GuildAccounts.GetAccount(guild); var dmChannel = await Context.User.GetOrCreateDMChannelAsync(); var sugChannel = guild.GetChannel(GuildAccount.SuggestionsChannelID) as ITextChannel; var admChannel = guild.GetChannel(GuildAccount.AdmChannelID) as ITextChannel; var nie = Emote.Parse(Messages.wrong); var ok = new Emoji("🆗"); if (Context.Channel is IPrivateChannel) { //Building and sending message EmbedBuilder eb = new EmbedBuilder(); eb.WithAuthor(Context.User.Username); eb.Author.WithIconUrl(Context.User.GetAvatarUrl()); eb.WithTitle("Propozycja"); eb.WithDescription(propozycja); eb.WithColor(Color.Green); eb.WithCurrentTimestamp(); var msg = await admChannel.SendMessageAsync("", false, eb.Build()); await msg.AddReactionAsync(nie); await msg.AddReactionAsync(ok); //Response await dmChannel.SendMessageAsync($"{Messages.check} Propozycja została wysłana pomyślnie."); } else { await Context.Channel.SendMessageAsync($"{Messages.wrong}Swoją propozycję napisz w wiadomości prywatnej."); await dmChannel.SendMessageAsync("`!propozycja [treść]` aby napisać propozycje :)"); } } catch { await ReplyAsync(Messages.UnknownError); } }
public async Task UpdateHouse() { //Roles with access List <string> roles = new List <string>(); roles.Add(Setup.ApeChieftainRole); if (await Tools.RolesCheck(Context, roles, true, roles[0])) { SocketTextChannel channel = Context.Guild.GetTextChannel(Setup.HouseChannelID); EmbedBuilder eb = new EmbedBuilder(); eb.Title = Setup.GorillaEmoji + Setup.MonkeyEmoji + Setup.BaboonEmoji + "Apewarts Houses"; string text = "__**" + "Press on one of the emojis to join a house." + "**__" + "\n" + "▫️ Each house receive points by doing events." + "\n" + "▫️ The house with the most points receive __***rewards***__ and or __***benefits***__." + "\n" + "▫️ Yes we like to be edgy 😉"; eb.WithDescription(text); eb.WithColor(255, 255, 255); await(channel as ISocketMessageChannel).SendMessageAsync("", false, eb.Build()); var gorillaBannerMessage = await(channel as ISocketMessageChannel).SendFileAsync(Setup.GorillaBannerPicturePath); IEmote gorillaEmote = Emote.Parse(Setup.GorillaEmoji); await gorillaBannerMessage.AddReactionAsync(gorillaEmote); var monkeyBannerMessage = await(channel as ISocketMessageChannel).SendFileAsync(Setup.MonkeyBannerPicturePath); IEmote monkeyEmote = Emote.Parse(Setup.MonkeyEmoji); await monkeyBannerMessage.AddReactionAsync(monkeyEmote); var baboonBannerMessage = await(channel as ISocketMessageChannel).SendFileAsync(Setup.BaboonBannerPicturePath); IEmote baboonEmote = Emote.Parse(Setup.BaboonEmoji); await baboonBannerMessage.AddReactionAsync(baboonEmote); eb.Title = "⚠️ __**Press on one of the emojis to join a house**__ " + Setup.GorillaEmoji + Setup.MonkeyEmoji + Setup.BaboonEmoji; string text2 = ""; eb.WithDescription(text2); eb.WithColor(Color.Gold); var infoMessage = await(channel as ISocketMessageChannel).SendMessageAsync("", false, eb.Build()); await infoMessage.AddReactionAsync(gorillaEmote); await infoMessage.AddReactionAsync(monkeyEmote); await infoMessage.AddReactionAsync(baboonEmote); } await Context.Message.DeleteAsync(); }
public async Task AddCommand([Remainder] string txt) { if (msgCfg.currentState == ConfigurationState.None) { await ReplyAsync("Da läuft gerade keine Config. Mach ne neue mit `jrr begin`!"); return; } string[] args = txt.Split(' '); if (args.Length < 2) { await ReplyAsync("Da fehlt mir info. Ich will einen emote und eine Rolle!"); return; } // This is a discord emote IEmote emote; bool isUnicode; if (Emote.TryParse(args[0], out Emote result)) { emote = result; isUnicode = false; } else { emote = new Emoji(args[0]); isUnicode = true; } var role = Context.Guild.GetRoleByName(args[1]); if (role == null) { await ReplyAsync($"Ich hab keine Rolle mit dem namen {args[1]} gefunden."); return; } msgCfg.emoteToRoleMapping.Add(new EmoteAndRole { emote = emote, roleId = role.Id, isUnicode = isUnicode }); await ReplyAsync($"Alles klar. {emote} zur Rolle {args[1]}! Verwende `jrr commit` um die config abzuschließen."); }
public async void AddReactionsAsync(List <string> Reactions, Discord.Rest.RestUserMessage Message) { foreach (var Reaction in Reactions) { if (Reaction != "" && Reaction != null) { if (Reaction.Contains("<:") && Reaction.Contains(":") && Reaction.Contains(">")) { await Message.AddReactionAsync(Emote.Parse(Reaction)); } else { await Message.AddReactionAsync(new Emoji(Reaction)); } } } }
public void PlayEmote(Emote emoteselect) { if (EmotePlayer != null) switch (emoteselect) { case Emote.Suprised: EmotePlayer.Suprised (); break; case Emote.Sleep: EmotePlayer.Sleep (); break; case Emote.Idea: EmotePlayer.Idea (); break; case Emote.Silence: EmotePlayer.Silence (); break; case Emote.Frustration: EmotePlayer.Frustration (); break; case Emote.SweatDrop: EmotePlayer.SweatDrop (); break; case Emote.Angry: EmotePlayer.Angry (); break; case Emote.Love: EmotePlayer.Love (); break; case Emote.Happy: EmotePlayer.Happy (); break; case Emote.Question: EmotePlayer.Question (); break; } }
public qEmote( Emote e, int msec_delay ) { _emote = e; _delay = msec_delay; }
private void _playerEmote(short playerID, Emote emote) { if (playerID != World.Instance.MainPlayer.ActiveCharacter.ID) World.Instance.ActiveMapRenderer.OtherPlayerEmote(playerID, emote); }
public void OtherPlayerEmote(short playerID, Emote emote) { lock (_rendererListLock) { CharacterRenderer rend = otherRenderers.Find(cc => cc.Character.ID == playerID); if (rend != null) { rend.Character.Emote(emote); rend.PlayerEmote(); } } }
private void MainForm_Load(object sender, EventArgs e) { //AllocConsole(); EmoteModuleMetadata meta = new EmoteModuleMetadata() { Text = @"NEKOPARA Vol.0", Path = @"neko0\emotedriver.dll", Key = "742877301", Ver = InterfaceVersion.NEKO0, ColorMode = ColorType.BGRA, }; emoteLibs.Add(meta); //emoteLibs.Add(new EmoteModuleMetadata() //{ // Text = @"NEKOPARA Vol.1", // Path = @"neko1\emotedriver.dll", // Key = "742877301", // Ver = InterfaceVersion.NEKO1, //}); { string pluginsDir = Path.Combine(Path.GetDirectoryName(new Uri(System.Reflection.Assembly.GetExecutingAssembly().CodeBase).LocalPath), "plugins"); if (!Directory.Exists(pluginsDir)) Directory.CreateDirectory(pluginsDir); List<string> plugins = Directory.GetFiles(pluginsDir, "*.dll", SearchOption.TopDirectoryOnly).ToList(); plugins.ForEach(dr => { try { ICharacterLoader[] pluginInstances = LoadAssembly(dr); foreach (ICharacterLoader plugin in pluginInstances) { CharacterLoaders.Add(plugin); } } catch { } }); } renderForm = new EnhancedRenderForm(); //renderForm.AutoScaleMode = AutoScaleMode.None; renderForm.FormBorderStyle = FormBorderStyle.None; renderForm.Width = 512; renderForm.Height = 512; renderForm.StartPosition = FormStartPosition.Manual; renderForm.Location = new Point(this.Location.X + this.Width, this.Location.Y); renderForm.Show(); emote = new Emote(renderForm.Handle, 1024, 1024, false); emote.LoadEmoteEngine(Path.Combine(Directory.GetCurrentDirectory(), @"engines", meta.Path), meta.Ver); emote.EmoteInit(); _device = new Device(new IntPtr(emote.D3Device)); functionGraph = new FunctionGraphForm(); functionGraph.Width = this.Width; functionGraph.Height = renderForm.Height - this.Height; functionGraph.StartPosition = FormStartPosition.Manual; functionGraph.Location = new Point(this.Location.X, this.Location.Y + this.Height); functionGraph.Show(); rendering = true; Task.Run(() => { while (rendering) { Render(); } }).ContinueWith((task) => { }); //timer1.Start(); LoadCharacters(); }
public void SetEmote(Emote which) { emote = which; update = true; }
public void Emote(Emote whichEmote) { if (this == World.Instance.MainPlayer.ActiveCharacter && whichEmote != EOLib.Net.Emote.LevelUp && whichEmote != EOLib.Net.Emote.Trade) { if (m_packetAPI.ReportEmote(whichEmote)) RenderData.SetEmote(whichEmote); else EOGame.Instance.LostConnectionDialog(); } State = CharacterActionState.Emote; RenderData.SetEmoteFrame(0); RenderData.SetEmote(whichEmote); }
private void _doEmote(Emote emote) { Character.Emote(emote); Renderer.PlayerEmote(); }
private void FormMain_Load(object sender, EventArgs e) { clearGA(); clearSub(); #region Emotes //emotesStyle = new GifImageStyle(textBox_chat); //Directory.CreateDirectory("emotes"); WebClient client = new WebClient(); string emotesJson = client.DownloadString("https://api.twitch.tv/kraken/chat/emoticons"); JObject emotes = JObject.Parse(emotesJson); foreach (var emote in emotes["emoticons"]) { try { string regex = emote["regex"].ToString(); foreach (var image in emote["images"]) { string url = image["url"].ToString(); string set = image["emoticon_set"].ToString(); string width = image["width"].ToString(); string height = image["height"].ToString(); Emote em = new Emote(); em.regex = regex; em.url = url; em.width = Int32.Parse(width); em.height = Int32.Parse(height); if (string.IsNullOrEmpty(set)) em.set = 0; else em.set = Int32.Parse(set); if (dic_emotes_set_.ContainsKey(em.set)) dic_emotes_set_[em.set].Add(em); else { List<Emote> lst = new List<Emote>(); lst.Add(em); dic_emotes_set_.Add(em.set, lst); } } } catch { } } //emotesStyle.StartAnimation(); #endregion }