示例#1
0
        // Emoji Test
        public static async Task EmojiList()
        {
            EmojiList emojis = await Client.EmojiListAsync();

            Console.WriteLine("Emojis: ");

            foreach (EmojiDef emoji in emojis.EmojiDefinitions)
            {
                Console.WriteLine("-------------------------------------------------------------------------------");
                Console.WriteLine("Emoji ID: {0}", emoji.ID.ToString());
                Console.WriteLine("Emoji slug: {0}", emoji.Slug);
                Console.WriteLine("Emoji image url: {0}", emoji.ImageUrlMedium);
                Console.WriteLine("-------------------------------------------------------------------------------");
            }

            Console.WriteLine("\n\n\n");
        }
示例#2
0
        private int ParseQuadruple(byte[] utf32, int index, StringBuilder sb, string last = null, int cnt = 0)
        {
            if (cnt == _tokenMax)
            {
                return(-1);
            }

            if (index == utf32.Length)
            {
                return(-1);
            }

            var quad = new byte[4];

            Array.Copy(utf32, index, quad, 0, 4);
            var strHex = Convert(quad);

            var suggestion = strHex;

            if (last != null)
            {
                suggestion = last + SEPERATOR + suggestion;
            }

            int result = ParseQuadruple(utf32, index + 4, sb, suggestion, cnt + 1);

            if (result == -1)
            {
                if (EmojiList.Contains(suggestion))
                {
                    sb.Append(FormatFunction(suggestion));
                    return(index + 4);
                }
                else
                {
                    if (cnt == 0)
                    {
                        var replacement = Encoding.UTF32.GetString(utf32, index, 4);

                        // See if it is an SoftBank encoded character
                        var alternative = SoftBankConverter.GetNewUnicode(suggestion);
                        if (alternative != null)
                        {
                            if (EmojiList.Contains(alternative))
                            {
                                replacement = FormatFunction(alternative);
                            }
                        }


                        sb.Append(replacement);
                        if (Debug != null)
                        {
                            int dbgVal = BitConverter.ToInt32(quad, 0);
                            Debug.WriteLine($"{dbgVal} {alternative}");
                        }
                        return(index + 4);
                    }
                }

                return(-1);
            }
            else
            {
                return(result);
            }
        }
示例#3
0
        private Task MessageHandler(SocketMessage message)
        {
            string firstWord = message.Content.Split()[0];
            bool   pong      = message.Author.Id == _client.CurrentUser.Id && firstWord == "Pinging...";

            if (pong || (!message.Author.IsBot && !message.Author.IsWebhook))
            {
                Recieved.Message = message;
            }
            else
            {
                return(Task.CompletedTask);
            }

            try
            {
                // Events
                BotMention.DoEvent().Wait();
                Emojify.DoEvent().Wait();
                Xp.DoEvent().Wait();

                if (pong)
                {
                    Ping.DoCommand(true).Wait();
                }
                if (!message.Content.StartsWith(BaseConfig.GetConfig().Prefix) || message.Author.IsBot)
                {
                    return(Task.CompletedTask);
                }

                string command = firstWord.Substring(1, firstWord.Length - 1).ToLower();

                // Commands
                // Dev
                if (Evaluate.Aliases.Contains(command) && HasPerm(Evaluate.AllowedRoles))
                {
                    Evaluate.DoCommand().Wait();
                }
                if (Ping.Aliases.Contains(command) && BotChannel())
                {
                    Ping.DoCommand(false).Wait();
                }
                if (Restart.Aliases.Contains(command) && BotChannel() && HasPerm(Restart.AllowedRoles))
                {
                    Restart.DoCommand().Wait();
                }
                if (Test.Aliases.Contains(command) && BotChannel() && HasPerm(Test.AllowedRoles))
                {
                    Test.DoCommand().Wait();
                }
                // Fun
                if (Minesweeper.Aliases.Contains(command) && BotChannel())
                {
                    Minesweeper.DoCommand().Wait();
                }
                if (MathEval.Aliases.Contains(command) && BotChannel())
                {
                    MathEval.DoCommand().Wait();
                }
                // Info
                if (Commands.Commands.Aliases.Contains(command) && BotChannel())
                {
                    Commands.Commands.DoCommand().Wait();
                }
                if (EmojiList.Aliases.Contains(command) && BotChannel())
                {
                    EmojiList.DoCommand().Wait();
                }
                if (Leaderboard.Aliases.Contains(command) && BotChannel())
                {
                    Leaderboard.DoCommand().Wait();
                }
                if (UserInfo.Aliases.Contains(command) && BotChannel())
                {
                    UserInfo.DoCommand().Wait();
                }
                // Util
                if (AnswerRequest.Aliases.Contains(command))
                {
                    AnswerRequest.DoCommand().Wait();
                }
                if (PingRequest.Aliases.Contains(command))
                {
                    PingRequest.DoCommand().Wait();
                }
                if (Store.Aliases.Contains(command) && BotChannel())
                {
                    Store.DoCommand().Wait();
                }
            }
            catch (Exception e)
            {
                foreach (var i in BaseConfig.GetConfig().Channels.BotTerminal)
                {
                    ((IMessageChannel)_client.GetChannel(i)).SendMessageAsync($"```{e}```");
                }
            }
            return(Task.CompletedTask);
        }