From e06eefeab017867f7a42bd9c3e7e827d7eb2e5c3 Mon Sep 17 00:00:00 2001 From: "Dylan K. Taylor" Date: Sat, 11 Dec 2021 21:28:52 +0000 Subject: [PATCH] build/generate-known-translation-apis: fixed incorrect positional parameter order closes #4639 --- build/generate-known-translation-apis.php | 6 ++++++ src/lang/KnownTranslationFactory.php | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/build/generate-known-translation-apis.php b/build/generate-known-translation-apis.php index e4f35893b..a85cbb1b3 100644 --- a/build/generate-known-translation-apis.php +++ b/build/generate-known-translation-apis.php @@ -41,6 +41,7 @@ use function preg_match_all; use function str_replace; use function strtoupper; use const INI_SCANNER_RAW; +use const SORT_NUMERIC; use const SORT_STRING; use const STDERR; @@ -142,15 +143,20 @@ HEADER; $translationContainerClass = (new \ReflectionClass(Translatable::class))->getShortName(); foreach(Utils::stringifyKeys($languageDefinitions) as $key => $value){ $parameters = []; + $allParametersPositional = true; if(preg_match_all($parameterRegex, $value, $matches) > 0){ foreach($matches[1] as $parameterName){ if(is_numeric($parameterName)){ $parameters[$parameterName] = "param$parameterName"; }else{ $parameters[$parameterName] = $parameterName; + $allParametersPositional = false; } } } + if($allParametersPositional){ + ksort($parameters, SORT_NUMERIC); + } echo "\tpublic static function " . functionify($key) . "(" . implode(", ", array_map(fn(string $paramName) => "$translationContainerClass|string \$$paramName", $parameters)) . ") : $translationContainerClass{\n"; diff --git a/src/lang/KnownTranslationFactory.php b/src/lang/KnownTranslationFactory.php index c8536d885..6aea89053 100644 --- a/src/lang/KnownTranslationFactory.php +++ b/src/lang/KnownTranslationFactory.php @@ -244,10 +244,10 @@ final class KnownTranslationFactory{ return new Translatable(KnownTranslationKeys::COMMANDS_ENCHANT_USAGE, []); } - public static function commands_gamemode_success_other(Translatable|string $param1, Translatable|string $param0) : Translatable{ + public static function commands_gamemode_success_other(Translatable|string $param0, Translatable|string $param1) : Translatable{ return new Translatable(KnownTranslationKeys::COMMANDS_GAMEMODE_SUCCESS_OTHER, [ - 1 => $param1, 0 => $param0, + 1 => $param1, ]); }