diff --git a/distribution/openrct2.d.ts b/distribution/openrct2.d.ts index 2e6983a6f2..7d6baf2a22 100644 --- a/distribution/openrct2.d.ts +++ b/distribution/openrct2.d.ts @@ -616,6 +616,7 @@ declare global { readonly numPlayers: number; readonly groups: PlayerGroup[]; readonly players: Player[]; + readonly currentPlayer: Player; defaultGroup: number; getServerInfo(): ServerInfo; diff --git a/src/openrct2/scripting/ScNetwork.hpp b/src/openrct2/scripting/ScNetwork.hpp index 5cb76da3f1..3fae022955 100644 --- a/src/openrct2/scripting/ScNetwork.hpp +++ b/src/openrct2/scripting/ScNetwork.hpp @@ -343,6 +343,16 @@ namespace OpenRCT2::Scripting return players; } + std::shared_ptr currentPlayer_get() const + { + std::shared_ptr player; +# ifndef DISABLE_NETWORK + auto playerId = network_get_current_player_id(); + player = std::make_shared(playerId); +# endif + return player; + } + std::shared_ptr getPlayer(int32_t index) const { # ifndef DISABLE_NETWORK @@ -443,6 +453,7 @@ namespace OpenRCT2::Scripting dukglue_register_property(ctx, &ScNetwork::numPlayers_get, nullptr, "numPlayers"); dukglue_register_property(ctx, &ScNetwork::groups_get, nullptr, "groups"); dukglue_register_property(ctx, &ScNetwork::players_get, nullptr, "players"); + dukglue_register_property(ctx, &ScNetwork::currentPlayer_get, nullptr, "currentPlayer"); dukglue_register_property(ctx, &ScNetwork::defaultGroup_get, &ScNetwork::defaultGroup_set, "defaultGroup"); dukglue_register_method(ctx, &ScNetwork::addGroup, "addGroup"); dukglue_register_method(ctx, &ScNetwork::getGroup, "getGroup");