From 0779baa0accde5ed06a97f9a1193850459cfe1fe Mon Sep 17 00:00:00 2001 From: Mixu78 <45693771+Mixu78@users.noreply.github.com> Date: Fri, 23 Apr 2021 22:11:17 +0300 Subject: [PATCH] Block usage of "Name" or "Parent" in $properties (#413) * Ignore usage of "Name" or "Parent" in $properties * Use match instead of array * Add changelog entry Co-authored-by: Lucien Greathouse --- CHANGELOG.md | 3 +++ src/snapshot_middleware/project.rs | 14 ++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 211906fa..cf0041a8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,9 @@ * Added the `gameId` and `placeId` optional properties to project files. * When connecting from the Rojo Roblox Studio plugin, Rojo will set the game and place ID of the current place to these values, if set. * This is equivalent to running `game:SetUniverseId(...)` and `game:SetPlaceId(...)` from the command bar in Studio. +* Fixed `Name` and `Parent` properties being allowed in Rojo projects. ([#413](pr-413)) + +[pr-413]: https://github.com/rojo-rbx/rojo/pull/413 ## [7.0.0-alpha.3][7.0.0-alpha.3] (February 19, 2021) * Updated dependencies, fixing `OptionalCoordinateFrame`-related issues. diff --git a/src/snapshot_middleware/project.rs b/src/snapshot_middleware/project.rs index 1c88e4b9..b7468c0f 100644 --- a/src/snapshot_middleware/project.rs +++ b/src/snapshot_middleware/project.rs @@ -182,6 +182,20 @@ pub fn snapshot_project_node( ) })?; + match key.as_str() { + "Name" | "Parent" => { + log::warn!( + "Property '{}' cannot be set manually, ignoring. Attempted to set in '{}' at {}", + key, + instance_name, + project_path.display() + ); + continue; + } + + _ => {} + } + properties.insert(key.clone(), value); }