From 079d99d7b2ad768ec9a4c92917b991216cba4300 Mon Sep 17 00:00:00 2001 From: Michael Steenbeek Date: Tue, 20 Dec 2022 16:34:38 +0100 Subject: [PATCH] Require new plugins to specify a target API version --- distribution/openrct2.d.ts | 6 +++++- src/openrct2/scripting/Plugin.cpp | 6 ++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/distribution/openrct2.d.ts b/distribution/openrct2.d.ts index e365b013ae..bd2d29dac9 100644 --- a/distribution/openrct2.d.ts +++ b/distribution/openrct2.d.ts @@ -137,7 +137,11 @@ declare global { type: PluginType; licence: string; minApiVersion?: number; - targetApiVersion?: number; + /** + * The Plug-in API version the current plug-in is designed for. This is used for backwards compatibility. + * E.g.: 66 + */ + targetApiVersion: number; main: () => void; } diff --git a/src/openrct2/scripting/Plugin.cpp b/src/openrct2/scripting/Plugin.cpp index 699ccf5a7c..5a4b84257f 100644 --- a/src/openrct2/scripting/Plugin.cpp +++ b/src/openrct2/scripting/Plugin.cpp @@ -161,6 +161,12 @@ PluginMetadata Plugin::GetMetadata(const DukValue& dukMetadata) { metadata.TargetApiVersion = dukTargetApiVersion.as_int(); } + else + { + log_error( + u8"Plug-in ā€œ%sā€ does not specify a target API version or specifies it incorrectly. Emulating deprecated APIs.", + metadata.Name.c_str()); + } auto dukAuthors = dukMetadata["authors"]; dukAuthors.push();