コード例 #1
0
        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));
        }
コード例 #2
0
ファイル: Emote.cs プロジェクト: Vulttwin/EndlessClient
        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);
        }
コード例 #3
0
        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);
                }
            }
        }
コード例 #4
0
        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();
        }
コード例 #5
0
        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));
        }
コード例 #6
0
        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));
        }
コード例 #7
0
        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;
        }
コード例 #8
0
        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);
        }
コード例 #9
0
        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));
        }
コード例 #10
0
 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.")));
     }
 }
コード例 #11
0
        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);
        }
コード例 #12
0
        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);
        }
コード例 #13
0
 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);
 }
コード例 #14
0
        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);
        }
コード例 #15
0
        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);
        }
コード例 #16
0
        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();
        }
コード例 #17
0
        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);
        }
コード例 #18
0
ファイル: EmoteFactory.cs プロジェクト: ckorn/cuddle
        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);
        }
コード例 #19
0
ファイル: ScoreCommands.cs プロジェクト: different55/GregBot
 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" +
 }
コード例 #20
0
 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;
     }
 }
コード例 #21
0
            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();
            }
コード例 #22
0
        /// <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;
        }
コード例 #23
0
        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);
        }
コード例 #24
0
ファイル: SpecialModes.cs プロジェクト: ta1H3n/Namiko
        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)]));
        }
コード例 #25
0
        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);
        }
コード例 #26
0
        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");
            }
コード例 #27
0
        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);
        }
コード例 #28
0
        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);
            }
        }
コード例 #29
0
        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();
        }
コード例 #30
0
        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.");
        }
コード例 #31
0
 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));
             }
         }
     }
 }
コード例 #32
0
 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;
         }
 }
コード例 #33
0
ファイル: Character.cs プロジェクト: karliky/wowwow
		public qEmote( Emote e, int msec_delay )
		{
			_emote = e;
			_delay = msec_delay;
		}
コード例 #34
0
 private void _playerEmote(short playerID, Emote emote)
 {
     if (playerID != World.Instance.MainPlayer.ActiveCharacter.ID)
         World.Instance.ActiveMapRenderer.OtherPlayerEmote(playerID, emote);
 }
コード例 #35
0
		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();
				}
			}
		}
コード例 #36
0
ファイル: MainForm.cs プロジェクト: Nielk1/NekoPuppet
        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();
        }
コード例 #37
0
ファイル: Character.cs プロジェクト: Vulttwin/EndlessClient
 public void SetEmote(Emote which)
 {
     emote = which; update = true;
 }
コード例 #38
0
ファイル: Character.cs プロジェクト: Vulttwin/EndlessClient
        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);
        }
コード例 #39
0
		private void _doEmote(Emote emote)
		{
			Character.Emote(emote);
			Renderer.PlayerEmote();
		}
コード例 #40
0
ファイル: FormMain.cs プロジェクト: kimen/IRCCohhilitionChat
        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
        }