コード例 #1
0
        [LCommand("plugin.command")] //This relates to the localization.lang file in the root of the CLI project
        public async void Test(IPalBot bot, LangMessage msg, string cmd)
        {
            await bot.Reply(msg, "plugin.response");

            //This is an example of how to use the parameters localization files.
            await bot.Reply(msg, "plugin.cant", (await bot.GetUser(msg.UserId)).Nickname, msg.LanguageKey);
        }
コード例 #2
0
 public static void InitComponent()
 {
     using (MySqlConnection connection = new MySqlConnection(Data.Database.Connection.GetConnectionString()))
     {
         connection.Open();
         MySqlCommand command = connection.CreateCommand();
         command.CommandText = $"SELECT * FROM {tableName}";
         MySqlDataReader reader      = command.ExecuteReader();
         DataTable       schemaTable = reader.GetSchemaTable();
         while (reader.HasRows)
         {
             while (reader.Read())
             {
                 LangMessage newMessage = new LangMessage
                 {
                     Slug    = reader.GetString("slug"),
                     Lang    = reader.GetString("lang"),
                     Message = reader.GetString("message")
                 };
                 LangMessages.Add(newMessage);
             }
             reader.NextResult();
         }
     }
 }
コード例 #3
0
        public bool IsMatch(IPalBot bot, Message msg, string cmd, ICommand atr, out string capped, out Message nm)
        {
            nm = msg;
            if (msg is LangMessage && !string.IsNullOrEmpty(((LangMessage)msg).LanguageKey))
            {
                return(IsMatchAlready(bot, (LangMessage)msg, cmd, atr, out capped));
            }

            capped = cmd;

            var localizations = bot.Languages.Storage.Get(atr.Comparitor);

            if (localizations.Length <= 0)
            {
                return(false);
            }

            var local = localizations.FirstOrDefault(t => cmd.ToLower().StartsWith(t.Text.ToLower()));

            if (local == null)
            {
                return(false);
            }

            nm     = new LangMessage(msg, local.LanguageKey);
            capped = cmd.Remove(0, local.Text.Length);
            return(true);
        }
コード例 #4
0
        public async Task <Response> Reply(LangMessage msg, string id, params object[] parameters)
        {
            var lang = CheckLanguage(msg?.LanguageKey, id);

            if (parameters == null || parameters.Length == 0)
            {
                return(await Reply((Message)msg, lang));
            }

            return(await Reply((Message)msg, string.Format(lang, parameters)));
        }
コード例 #5
0
 public static string getMessage(string slug, string lang)
 {
     if (LangMessages.Exists(x => x.Slug == slug && x.Lang == lang))
     {
         LangMessage langMessage = LangMessages.First(x => x.Slug == slug && x.Lang == lang);
         if (string.IsNullOrEmpty(langMessage.Message))
         {
             return($"No se encontró el mensaje {slug}, reportelo a un administrador.");
         }
         return(langMessage.Message);
     }
     else
     {
         return($"No se encontró el mensaje {slug}, reportelo a un administrador.");
     }
 }
コード例 #6
0
        private bool IsMatchAlready(IPalBot bot, LangMessage msg, string cmd, ICommand atr, out string capped)
        {
            capped = cmd;
            var local = bot.Languages[msg.LanguageKey, atr.Comparitor];

            if (local == null)
            {
                return(false);
            }

            if (!cmd.ToLower().StartsWith(local.ToLower()))
            {
                return(false);
            }

            capped = cmd.Remove(0, local.Length);
            return(true);
        }