mirror of
https://github.com/esx-framework/esx_core.git
synced 2026-08-29 09:18:53 +00:00
Merge pull request #1715 from esx-framework/feature/argument-isValid-on-register-command
add a new argument on the register command feature
This commit is contained in:
@@ -62,6 +62,7 @@ return {
|
||||
["command_setgroup_group"] = "Název skupiny",
|
||||
["commanderror_argumentmismatch"] = "Chybný počet hodnot (správně %s, potřebných %s)",
|
||||
["commanderror_argumentmismatch_number"] = "Chybně zadaná hodnot #%s (správně, špatně)",
|
||||
["commanderror_argumentmismatch_positive_number"] = "Chybně zadaná hodnota #%s (zadáno záporné/nula, požadováno kladné číslo)",
|
||||
["commanderror_argumentmismatch_string"] = "Invalid Argument #%s data type (passed number, wanted string)",
|
||||
["commanderror_invaliditem"] = "Špatný předmět",
|
||||
["commanderror_invalidweapon"] = "Špatná zbraň",
|
||||
|
||||
@@ -67,6 +67,7 @@ return {
|
||||
["commanderror_argumentmismatch"] = "Ungültiges Argument (gegeben %s, gewollt %s)",
|
||||
["commanderror_argumentmismatch_number"] = "Ungültiges Argument #%s Datentyp (String gegeben, Nummer gefordert)",
|
||||
["commanderror_argumentmismatch_string"] = "Ungültiges Argument #%s Datentyp (Nummer gegeben, String gefordert)",
|
||||
["commanderror_argumentmismatch_positive_number"] = "Ungültiges Argument #%s Datentyp (negativ/null übergeben, positive Zahl gewünscht)",
|
||||
["commanderror_invaliditem"] = "Ungültiger Gegenstand",
|
||||
["commanderror_invalidweapon"] = "Ungültige Waffe",
|
||||
["commanderror_console"] = "Befehl kann nicht von der Konsole aus ausgeführt werden!",
|
||||
|
||||
@@ -67,6 +67,7 @@ return {
|
||||
["commanderror_argumentmismatch"] = "Μη έγκυρος αριθμός ορισμάτων (δόθηκαν %s, αναμενόμενα %s)",
|
||||
["commanderror_argumentmismatch_number"] = "Μη έγκυρος τύπος δεδομένων για το όρισμα #%s (δόθηκε συμβολοσειρά, αναμενόμενος αριθμός)",
|
||||
["commanderror_argumentmismatch_string"] = "Μη έγκυρος τύπος δεδομένων για το όρισμα #%s (δόθηκε αριθμός, αναμενόμενη συμβολοσειρά)",
|
||||
["commanderror_argumentmismatch_positive_number"] = "Μη έγκυρος τύπος δεδομένων για το όρισμα #%s (δόθηκε αρνητικός/μηδέν, αναμενόμενος θετικός αριθμός)",
|
||||
["commanderror_invaliditem"] = "Μη έγκυρο αντικείμενο",
|
||||
["commanderror_invalidweapon"] = "Μη έγκυρο όπλο",
|
||||
["commanderror_console"] = "Η εντολή δεν μπορεί να εκτελεστεί από την κονσόλα",
|
||||
|
||||
@@ -69,6 +69,7 @@ return {
|
||||
["commanderror_argumentmismatch"] = "Invalid Argument Count (passed %s, wanted %s)",
|
||||
["commanderror_argumentmismatch_number"] = "Invalid Argument #%s data type (passed string, wanted number)",
|
||||
["commanderror_argumentmismatch_string"] = "Invalid Argument #%s data type (passed number, wanted string)",
|
||||
["commanderror_argumentmismatch_positive_number"] = "Invalid Argument #%s data type (passed negative/zero, wanted positive number)",
|
||||
["commanderror_invaliditem"] = "Invalid item",
|
||||
["commanderror_invalidweapon"] = "Invalid weapon",
|
||||
["commanderror_console"] = "Command Cannot be executed from console",
|
||||
|
||||
@@ -67,6 +67,7 @@ return {
|
||||
["commanderror_argumentmismatch"] = "Número de argumentos inválido (pasados %s, esperados %s)",
|
||||
["commanderror_argumentmismatch_number"] = "Tipo de datos del argumento #%s inválido (pasado string, esperado número)",
|
||||
["commanderror_argumentmismatch_string"] = "Tipo de datos del argumento #%s inválido (pasado número, esperado string)",
|
||||
["commanderror_argumentmismatch_positive_number"] = "Argumento inválido #%s tipo de datos (pasado negativo/cero, se requiere número positivo)",
|
||||
["commanderror_invaliditem"] = "Objeto inválido",
|
||||
["commanderror_invalidweapon"] = "Arma inválida",
|
||||
["commanderror_console"] = "El comando no se puede ejecutar desde la consola",
|
||||
|
||||
@@ -58,6 +58,7 @@ return {
|
||||
["commanderror_argumentmismatch"] = "Argumenttien määrä ei täsmää (hyväksytty %s, haluttu %s)",
|
||||
["commanderror_argumentmismatch_number"] = "Argumentin #%s tyyppi ei täsmää (syötetty merkkijono, haluttu numero)",
|
||||
["commanderror_argumentmismatch_string"] = "Invalid Argument #%s data type (passed number, wanted string)",
|
||||
["commanderror_argumentmismatch_positive_number"] = "Virheellinen argumentti #%s tietotyyppi (annettu negatiivinen/nolla, haluttu positiivinen luku)",
|
||||
["commanderror_invaliditem"] = "Virheellinen esineen nimi",
|
||||
["commanderror_invalidweapon"] = "Virheellinen ase",
|
||||
["commanderror_console"] = "Komentoa ei voi suorittaa konsolissa",
|
||||
|
||||
@@ -67,6 +67,7 @@ return {
|
||||
["commanderror_argumentmismatch"] = "Le nombre d'arguments est invalide (Argument·s donné·s: %s, Argument·s demandé·s: %s)",
|
||||
["commanderror_argumentmismatch_number"] = "Type de données de l'argument #%s invalide (Type donné: texte, Type demandé: nombre)",
|
||||
["commanderror_argumentmismatch_string"] = "Type de données de l'argument #%s invalide (Type donné: nombre, Type demandé: texte)",
|
||||
["commanderror_argumentmismatch_positive_number"] = "Argument invalide #%s type de données (passé négatif/zéro, nombre positif requis)",
|
||||
["commanderror_invaliditem"] = "Le nom de l'objet est invalide",
|
||||
["commanderror_invalidweapon"] = "Le nom de l'arme est invalide",
|
||||
["commanderror_console"] = "Cette commande ne peut pas être éxécutée depuis la console",
|
||||
|
||||
@@ -67,6 +67,7 @@ return {
|
||||
["commanderror_argumentmismatch"] = "כמות וסוגי הארגומנטים אינם תואמים (נשלח %s, נדרש %s)",
|
||||
["commanderror_argumentmismatch_number"] = "טיפוס ארגומנט #%s לא תקין (נשלח מחרוזת, נדרש מספר)",
|
||||
["commanderror_argumentmismatch_string"] = "טיפוס ארגומנט #%s לא תקין (נשלח מספר, נדרש מחרוזת)",
|
||||
["commanderror_argumentmismatch_positive_number"] = "טיפוס ארגומנט #%s לא תקין (נשלח שלילי/אפס, נדרש מספר חיובי)",
|
||||
["commanderror_invaliditem"] = "שם פריט לא חוקי",
|
||||
["commanderror_invalidweapon"] = "נשק לא חוקי",
|
||||
["commanderror_console"] = "לא ניתן להפעיל פקודה מהקונסול",
|
||||
|
||||
@@ -63,6 +63,7 @@ return {
|
||||
["commanderror_argumentmismatch"] = "Érvénytelen argumentumszám (%s megadva, %s szükséges)",
|
||||
["commanderror_argumentmismatch_number"] = "Érvénytelen argumentum #%s adat típus (szöveg megadva, szám szükséges)",
|
||||
["commanderror_argumentmismatch_string"] = "Invalid Argument #%s data type (passed number, wanted string)",
|
||||
["commanderror_argumentmismatch_positive_number"] = "Érvénytelen argumentum #%s adattípus (negatív/nulla átadva, pozitív szám szükséges)",
|
||||
["commanderror_invaliditem"] = "Érvénytelen tárgy",
|
||||
["commanderror_invalidweapon"] = "Érvénytelen fegyver",
|
||||
["commanderror_console"] = "Parancs nem használható konzolból",
|
||||
|
||||
@@ -67,6 +67,7 @@ return {
|
||||
["commanderror_argumentmismatch"] = "Jumlah Argument Salah (passed %s, wanted %s)",
|
||||
["commanderror_argumentmismatch_number"] = "Argument #%s salah tipe data (passed string, wanted number)",
|
||||
["commanderror_argumentmismatch_string"] = "Argument #%s salah tipe data (passed number, wanted string)",
|
||||
["commanderror_argumentmismatch_positive_number"] = "Argument #%s salah tipe data (diberikan negatif/nol, diinginkan angka positif)",
|
||||
["commanderror_invaliditem"] = "Barang salah",
|
||||
["commanderror_invalidweapon"] = "Senjata salah",
|
||||
["commanderror_console"] = "Perintah tidak dapat dieksekusi dari console",
|
||||
|
||||
@@ -67,6 +67,7 @@ return {
|
||||
["commanderror_argumentmismatch"] = "Conta argomenti non valida (passati %s, richiesti %s)",
|
||||
["commanderror_argumentmismatch_number"] = "Argomento #%s di tipologia errata (passato testo, richiesto numero)",
|
||||
["commanderror_argumentmismatch_string"] = "Invalid Argument #%s data type (passed number, wanted string)",
|
||||
["commanderror_argumentmismatch_positive_number"] = "Argomento #%s tipo di dato non valido (passato negativo/zero, richiesto numero positivo)",
|
||||
["commanderror_invaliditem"] = "Oggetto non valido",
|
||||
["commanderror_invalidweapon"] = "Arma non valida",
|
||||
["commanderror_console"] = "Comando non eseguibile dalla console",
|
||||
|
||||
@@ -59,6 +59,7 @@ return {
|
||||
["commanderror_argumentmismatch"] = "Ongeldig aantal argumenten (geslaagd %s, gezocht %s)",
|
||||
["commanderror_argumentmismatch_number"] = "Ongeldig argument #%s gegevenstype (doorgegeven string, gewenst nummer)",
|
||||
["commanderror_argumentmismatch_string"] = "Invalid Argument #%s data type (doorgegeven string, gewenst nummer)",
|
||||
["commanderror_argumentmismatch_positive_number"] = "Ongeldig Argument #%s gegevenstype (doorgegeven negatief/nul, gewenst positief getal)",
|
||||
["commanderror_invaliditem"] = "Ongeldig item",
|
||||
["commanderror_invalidweapon"] = "Ongeldig wapen",
|
||||
["commanderror_console"] = "Command kan niet worden uitgevoerd vanaf console.",
|
||||
|
||||
@@ -57,6 +57,7 @@ return {
|
||||
["commanderror_argumentmismatch"] = "nieprawiłowa ilość argumentów (przeszło %s, wymagane %s)",
|
||||
["commanderror_argumentmismatch_number"] = "nieprawidłowy typ argumentu #%s (przeszedł tekst, wymagany numer)",
|
||||
["commanderror_argumentmismatch_string"] = "Invalid Argument #%s data type (passed number, wanted string)",
|
||||
["commanderror_argumentmismatch_positive_number"] = "Nieprawidłowy argument #%s typ danych (przekazano ujemny/zero, oczekiwano liczby dodatniej)",
|
||||
["commanderror_invaliditem"] = "nieprawidłowa nazwa przedmiotu",
|
||||
["commanderror_invalidweapon"] = "nieprawidłowa broń",
|
||||
["commanderror_console"] = "podana komenda nie może zostać uruchomiona przez konsole",
|
||||
|
||||
@@ -63,6 +63,7 @@ return {
|
||||
["commanderror_argumentmismatch"] = "Neveljavno stetje argumentov (podano %s, zeleno %s)",
|
||||
["commanderror_argumentmismatch_number"] = "Neveljaven podatkovni tip argumenta #%s (posredovan niz, zeleno stevilo)",
|
||||
["commanderror_argumentmismatch_string"] = "Invalid Argument #%s data type (passed number, wanted string)",
|
||||
["commanderror_argumentmismatch_positive_number"] = "Neveljaven argument #%s tip podatkov (podano negativno/nič, zahtevano pozitivno število)",
|
||||
["commanderror_invaliditem"] = "Neveljaven element",
|
||||
["commanderror_invalidweapon"] = "Neveljavno orozje",
|
||||
["commanderror_console"] = "Ukaza ni mogoce izvesti s konzole",
|
||||
|
||||
@@ -63,6 +63,7 @@ return {
|
||||
["commanderror_argumentmismatch"] = "Nevazeci broj argumenata (položio %s, željeno %s)",
|
||||
["commanderror_argumentmismatch_number"] = "Nevažeći argument #%s tip podataka (položeno, željeno)",
|
||||
["commanderror_argumentmismatch_string"] = "Invalid Argument #%s data type (passed number, wanted string)",
|
||||
["commanderror_argumentmismatch_positive_number"] = "Nevaljan argument #%s tip podataka (prosleđen negativan/nula, potreban pozitivan broj)",
|
||||
["commanderror_invaliditem"] = "Nevažeći item",
|
||||
["commanderror_invalidweapon"] = "Nevažeće oružje",
|
||||
["commanderror_console"] = "Komanda se ne može izvršiti iz konzole",
|
||||
|
||||
@@ -67,6 +67,7 @@ return {
|
||||
["commanderror_argumentmismatch"] = "Invalid Argument Count (passed %s, wanted %s)",
|
||||
["commanderror_argumentmismatch_number"] = "Invalid Argument #%s data type (passed string, wanted number)",
|
||||
["commanderror_argumentmismatch_string"] = "Invalid Argument #%s data type (passed number, wanted string)",
|
||||
["commanderror_argumentmismatch_positive_number"] = "Ogiltigt argument #%s datatyp (skickade negativt/noll, ville ha positivt tal)",
|
||||
["commanderror_invaliditem"] = "Ogiltigt föremål",
|
||||
["commanderror_invalidweapon"] = "Ogiltigt vapen",
|
||||
["commanderror_console"] = "Kommandot kan inte användas i konsolen",
|
||||
|
||||
@@ -67,6 +67,7 @@ return {
|
||||
["commanderror_argumentmismatch"] = "Geçersiz Argüman Sayısı (Verilen %s, İstenen %s)",
|
||||
["commanderror_argumentmismatch_number"] = "Geçersiz Argüman #%s Veri Tipi (Verilen Metin, İstenen Sayı)",
|
||||
["commanderror_argumentmismatch_string"] = "Geçersiz Argüman #%s Veri Tipi (Verilen Sayı, İstenen Metin)",
|
||||
["commanderror_argumentmismatch_positive_number"] = "Geçersiz Argüman #%s Veri Tipi (Verilen Negatif/Sıfır, İstenen Pozitif Sayı)",
|
||||
["commanderror_invaliditem"] = "Geçersiz Eşya",
|
||||
["commanderror_invalidweapon"] = "Geçersiz Silah",
|
||||
["commanderror_console"] = "Komut Konsoldan Çalıştırılamaz",
|
||||
|
||||
@@ -67,6 +67,7 @@ return {
|
||||
["commanderror_argumentmismatch"] = "参数数量错误 (需%s个, 输入%s个)",
|
||||
["commanderror_argumentmismatch_number"] = "参数#%s类型不符 (需数字类型)",
|
||||
["commanderror_argumentmismatch_string"] = "参数#%s类型不符 (需文本类型)",
|
||||
["commanderror_argumentmismatch_positive_number"] = "参数#%s类型不符 (传入负数/零,需要正数)",
|
||||
["commanderror_invaliditem"] = "错误: 无效物品标识",
|
||||
["commanderror_invalidweapon"] = "错误: 无效武器标识",
|
||||
["commanderror_console"] = "控制台无法执行此指令",
|
||||
|
||||
@@ -64,16 +64,16 @@ function ESX.RegisterCommand(name, group, cb, allowConsole, suggestion)
|
||||
if not command.allowConsole and playerId == 0 then
|
||||
print(("[^3WARNING^7] ^5%s^0"):format(TranslateCap("commanderror_console")))
|
||||
else
|
||||
local xPlayer, error = ESX.Players[playerId], nil
|
||||
local xPlayer, err = ESX.Players[playerId], nil
|
||||
|
||||
if command.suggestion then
|
||||
if command.suggestion.validate then
|
||||
if #args ~= #command.suggestion.arguments then
|
||||
error = TranslateCap("commanderror_argumentmismatch", #args, #command.suggestion.arguments)
|
||||
err = TranslateCap("commanderror_argumentmismatch", #args, #command.suggestion.arguments)
|
||||
end
|
||||
end
|
||||
|
||||
if not error and command.suggestion.arguments then
|
||||
if not err and command.suggestion.arguments then
|
||||
local newArgs = {}
|
||||
|
||||
for k, v in ipairs(command.suggestion.arguments) do
|
||||
@@ -84,7 +84,7 @@ function ESX.RegisterCommand(name, group, cb, allowConsole, suggestion)
|
||||
if newArg then
|
||||
newArgs[v.name] = newArg
|
||||
else
|
||||
error = TranslateCap("commanderror_argumentmismatch_number", k)
|
||||
err = TranslateCap("commanderror_argumentmismatch_number", k)
|
||||
end
|
||||
elseif v.type == "player" or v.type == "playerId" then
|
||||
local targetPlayer = tonumber(args[k])
|
||||
@@ -103,29 +103,29 @@ function ESX.RegisterCommand(name, group, cb, allowConsole, suggestion)
|
||||
newArgs[v.name] = targetPlayer
|
||||
end
|
||||
else
|
||||
error = TranslateCap("commanderror_invalidplayerid")
|
||||
err = TranslateCap("commanderror_invalidplayerid")
|
||||
end
|
||||
else
|
||||
error = TranslateCap("commanderror_argumentmismatch_number", k)
|
||||
err = TranslateCap("commanderror_argumentmismatch_number", k)
|
||||
end
|
||||
elseif v.type == "string" then
|
||||
local newArg = tonumber(args[k])
|
||||
if not newArg then
|
||||
newArgs[v.name] = args[k]
|
||||
else
|
||||
error = TranslateCap("commanderror_argumentmismatch_string", k)
|
||||
err = TranslateCap("commanderror_argumentmismatch_string", k)
|
||||
end
|
||||
elseif v.type == "item" then
|
||||
if ESX.Items[args[k]] then
|
||||
newArgs[v.name] = args[k]
|
||||
else
|
||||
error = TranslateCap("commanderror_invaliditem")
|
||||
err = TranslateCap("commanderror_invaliditem")
|
||||
end
|
||||
elseif v.type == "weapon" then
|
||||
if ESX.GetWeapon(args[k]) then
|
||||
newArgs[v.name] = string.upper(args[k])
|
||||
else
|
||||
error = TranslateCap("commanderror_invalidweapon")
|
||||
err = TranslateCap("commanderror_invalidweapon")
|
||||
end
|
||||
elseif v.type == "any" then
|
||||
newArgs[v.name] = args[k]
|
||||
@@ -140,19 +140,27 @@ function ESX.RegisterCommand(name, group, cb, allowConsole, suggestion)
|
||||
elseif v.type == "coordinate" then
|
||||
local coord = tonumber(args[k]:match("(-?%d+%.?%d*)"))
|
||||
if not coord then
|
||||
error = TranslateCap("commanderror_argumentmismatch_number", k)
|
||||
err = TranslateCap("commanderror_argumentmismatch_number", k)
|
||||
else
|
||||
newArgs[v.name] = coord
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if ESX.IsFunctionReference(v.Validator?.validate) and not err then
|
||||
local candidate = newArgs[v.name]
|
||||
local ok, res = pcall(v.Validator.validate, candidate)
|
||||
if not ok or res ~= true then
|
||||
err = v.Validator.err or TranslateCap("commanderror_argumentmismatch")
|
||||
end
|
||||
end
|
||||
|
||||
--backwards compatibility
|
||||
if v.validate ~= nil and not v.validate then
|
||||
error = nil
|
||||
err = nil
|
||||
end
|
||||
|
||||
if error then
|
||||
if err then
|
||||
break
|
||||
end
|
||||
end
|
||||
@@ -161,11 +169,11 @@ function ESX.RegisterCommand(name, group, cb, allowConsole, suggestion)
|
||||
end
|
||||
end
|
||||
|
||||
if error then
|
||||
if err then
|
||||
if playerId == 0 then
|
||||
print(("[^3WARNING^7] %s^7"):format(error))
|
||||
print(("[^3WARNING^7] %s^7"):format(err))
|
||||
else
|
||||
xPlayer.showNotification(error)
|
||||
xPlayer.showNotification(err)
|
||||
end
|
||||
else
|
||||
cb(xPlayer or false, args, function(msg)
|
||||
|
||||
@@ -313,7 +313,10 @@ if not Config.CustomInventory then
|
||||
arguments = {
|
||||
{ name = "playerId", help = TranslateCap("commandgeneric_playerid"), type = "player" },
|
||||
{ name = "item", help = TranslateCap("command_giveitem_item"), type = "item" },
|
||||
{ name = "count", help = TranslateCap("command_giveitem_count"), type = "number" },
|
||||
{ name = "count", help = TranslateCap("command_giveitem_count"), type = "number", Validator = {
|
||||
validate = function(x) return x > 0 end,
|
||||
err = TranslateCap("commanderror_argumentmismatch_positive_number", "count")
|
||||
}},
|
||||
},
|
||||
}
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user