From 41dc29454278881c793e6069daaebcb0d8145da8 Mon Sep 17 00:00:00 2001 From: bbassie <17990055+bbassie@users.noreply.github.com> Date: Sat, 17 Oct 2026 20:26:50 +0000 Subject: [PATCH] Reject negative distance bonuses in imported player data Co-Authored-By: Claude Opus 5.5 --- plugins/player_sync/messages.ts | 12 ++++++------ plugins/player_sync/test/plugin.js | 1 + 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/plugins/player_sync/messages.ts b/plugins/player_sync/messages.ts index 53251537..6799e41c 100644 --- a/plugins/player_sync/messages.ts +++ b/plugins/player_sync/messages.ts @@ -60,12 +60,12 @@ const jsonCharacter = Type.Object({ character_mining_speed_modifier: Type.Optional(Type.Number({ minimum: -1 })), character_additional_mining_categories: Type.Optional(jsonList(Type.String())), character_running_speed_modifier: Type.Optional(Type.Number({ minimum: -1 })), - character_build_distance_bonus: Type.Optional(Type.Number()), - character_item_drop_distance_bonus: Type.Optional(Type.Number()), - character_reach_distance_bonus: Type.Optional(Type.Number()), - character_resource_reach_distance_bonus: Type.Optional(Type.Number()), - character_item_pickup_distance_bonus: Type.Optional(Type.Number()), - character_loot_pickup_distance_bonus: Type.Optional(Type.Number()), + character_build_distance_bonus: Type.Optional(Type.Number({ minimum: 0 })), + character_item_drop_distance_bonus: Type.Optional(Type.Number({ minimum: 0 })), + character_reach_distance_bonus: Type.Optional(Type.Number({ minimum: 0 })), + character_resource_reach_distance_bonus: Type.Optional(Type.Number({ minimum: 0 })), + character_item_pickup_distance_bonus: Type.Optional(Type.Number({ minimum: 0 })), + character_loot_pickup_distance_bonus: Type.Optional(Type.Number({ minimum: 0 })), character_inventory_slots_bonus: Type.Optional(Type.Integer({ minimum: 0 })), character_trash_slot_count_bonus: Type.Optional(Type.Integer({ minimum: 0 })), character_maximum_following_robot_count_bonus: Type.Optional(Type.Integer({ minimum: 0 })), diff --git a/plugins/player_sync/test/plugin.js b/plugins/player_sync/test/plugin.js index 57d7b4a4..123ab9e6 100644 --- a/plugins/player_sync/test/plugin.js +++ b/plugins/player_sync/test/plugin.js @@ -124,6 +124,7 @@ describe("player_sync plugin", function() { ["shortcuts", { "toggle-personal-roboport": "yes" }], ["character", { character_health_bonus: "100" }], ["character", { character_inventory_slots_bonus: -1 }], + ["character", { character_reach_distance_bonus: -1 }], ["character", { character_crafting_speed_modifier: -5 }], ["quick_bar", { 1: { t: "f", n: "iron-plate", q: "normal", c: "~" } }], ["crafting_queue", {}],