From 1f9e1c033fb9670e8e0f6d256777d595cfec7408 Mon Sep 17 00:00:00 2001 From: Vera Aguilera Puerto Date: Tue, 9 Nov 2021 13:08:09 +0100 Subject: [PATCH] EntityWhitelist uses EntityUid --- .../Tests/Utility/EntityWhitelistTest.cs | 8 ++++---- Content.Server/HandLabeler/HandLabelerSystem.cs | 2 +- Content.Server/Pinpointer/ServerPinpointerSystem.cs | 2 +- .../Storage/Components/ServerStorageComponent.cs | 2 +- .../Storage/EntitySystems/ItemCounterSystem.cs | 4 ++-- .../Storage/EntitySystems/ItemMapperSystem.cs | 4 ++-- .../Containers/ItemSlot/SharedItemSlotsSystem.cs | 6 +++--- Content.Shared/Whitelist/EntityWhitelist.cs | 10 ++++++---- 8 files changed, 20 insertions(+), 18 deletions(-) diff --git a/Content.IntegrationTests/Tests/Utility/EntityWhitelistTest.cs b/Content.IntegrationTests/Tests/Utility/EntityWhitelistTest.cs index b77b41cd70..08cacfadd6 100644 --- a/Content.IntegrationTests/Tests/Utility/EntityWhitelistTest.cs +++ b/Content.IntegrationTests/Tests/Utility/EntityWhitelistTest.cs @@ -72,11 +72,11 @@ namespace Content.IntegrationTests.Tests.Utility var mapId = GetMainMapId(mapManager); var mapCoordinates = new MapCoordinates(0, 0, mapId); - var validComponent = entityManager.SpawnEntity("ValidComponentDummy", mapCoordinates); - var validTag = entityManager.SpawnEntity("ValidTagDummy", mapCoordinates); + var validComponent = entityManager.SpawnEntity("ValidComponentDummy", mapCoordinates).Uid; + var validTag = entityManager.SpawnEntity("ValidTagDummy", mapCoordinates).Uid; - var invalidComponent = entityManager.SpawnEntity("InvalidComponentDummy", mapCoordinates); - var invalidTag = entityManager.SpawnEntity("InvalidTagDummy", mapCoordinates); + var invalidComponent = entityManager.SpawnEntity("InvalidComponentDummy", mapCoordinates).Uid; + var invalidTag = entityManager.SpawnEntity("InvalidTagDummy", mapCoordinates).Uid; // Test instantiated on its own var whitelistInst = new EntityWhitelist diff --git a/Content.Server/HandLabeler/HandLabelerSystem.cs b/Content.Server/HandLabeler/HandLabelerSystem.cs index a06ffc6d64..768e736777 100644 --- a/Content.Server/HandLabeler/HandLabelerSystem.cs +++ b/Content.Server/HandLabeler/HandLabelerSystem.cs @@ -34,7 +34,7 @@ namespace Content.Server.HandLabeler private void AfterInteractOn(EntityUid uid, HandLabelerComponent handLabeler, AfterInteractEvent args) { - if (args.Target == null || !handLabeler.Whitelist.IsValid(args.Target)) + if (args.Target == null || !handLabeler.Whitelist.IsValid(args.Target.Uid)) return; AddLabelTo(uid, handLabeler, args.Target, out string? result); diff --git a/Content.Server/Pinpointer/ServerPinpointerSystem.cs b/Content.Server/Pinpointer/ServerPinpointerSystem.cs index c52c7b9e29..15d5a1ecaa 100644 --- a/Content.Server/Pinpointer/ServerPinpointerSystem.cs +++ b/Content.Server/Pinpointer/ServerPinpointerSystem.cs @@ -60,7 +60,7 @@ namespace Content.Server.Pinpointer var l = new SortedList(); foreach (var e in ents) { - if (whitelist.IsValid(e)) + if (whitelist.IsValid(e.Uid)) { var dist = (e.Transform.WorldPosition - transform.WorldPosition).LengthSquared; l.TryAdd(dist, e.Uid); diff --git a/Content.Server/Storage/Components/ServerStorageComponent.cs b/Content.Server/Storage/Components/ServerStorageComponent.cs index 8fe1a6d58d..2ee1f1e2ce 100644 --- a/Content.Server/Storage/Components/ServerStorageComponent.cs +++ b/Content.Server/Storage/Components/ServerStorageComponent.cs @@ -135,7 +135,7 @@ namespace Content.Server.Storage.Components return false; } - if (_whitelist != null && !_whitelist.IsValid(entity)) + if (_whitelist != null && !_whitelist.IsValid(entity.Uid)) { return false; } diff --git a/Content.Server/Storage/EntitySystems/ItemCounterSystem.cs b/Content.Server/Storage/EntitySystems/ItemCounterSystem.cs index 74b355b5e7..43f76c7b68 100644 --- a/Content.Server/Storage/EntitySystems/ItemCounterSystem.cs +++ b/Content.Server/Storage/EntitySystems/ItemCounterSystem.cs @@ -20,10 +20,10 @@ namespace Content.Server.Storage.EntitySystems var count = 0; foreach (var entity in component.StoredEntities) { - if (itemCounter.Count.IsValid(entity)) count++; + if (itemCounter.Count.IsValid(entity.Uid)) count++; } return count; } } -} \ No newline at end of file +} diff --git a/Content.Server/Storage/EntitySystems/ItemMapperSystem.cs b/Content.Server/Storage/EntitySystems/ItemMapperSystem.cs index 889122e196..84ba80ab5d 100644 --- a/Content.Server/Storage/EntitySystems/ItemMapperSystem.cs +++ b/Content.Server/Storage/EntitySystems/ItemMapperSystem.cs @@ -24,7 +24,7 @@ namespace Content.Server.Storage.EntitySystems { foreach (var entity in containedLayers) { - if (mapLayerData.Whitelist.IsValid(entity)) + if (mapLayerData.Whitelist.IsValid(entity.Uid)) { list.Add(mapLayerData.Layer); break; @@ -40,4 +40,4 @@ namespace Content.Server.Storage.EntitySystems return false; } } -} \ No newline at end of file +} diff --git a/Content.Shared/Containers/ItemSlot/SharedItemSlotsSystem.cs b/Content.Shared/Containers/ItemSlot/SharedItemSlotsSystem.cs index 6b6cdb30e3..d427558bb0 100644 --- a/Content.Shared/Containers/ItemSlot/SharedItemSlotsSystem.cs +++ b/Content.Shared/Containers/ItemSlot/SharedItemSlotsSystem.cs @@ -30,7 +30,7 @@ namespace Content.Shared.Containers.ItemSlots private void OnComponentInit(EntityUid uid, SharedItemSlotsComponent itemSlots, ComponentInit args) { - // create container for each slot + // create container for each slot foreach (var pair in itemSlots.Slots) { var slotName = pair.Key; @@ -131,7 +131,7 @@ namespace Content.Shared.Containers.ItemSlots foreach (var (slotName, slot) in itemSlots.Slots) { // check if item allowed in whitelist - if (slot.Whitelist != null && !slot.Whitelist.IsValid(item)) + if (slot.Whitelist != null && !slot.Whitelist.IsValid(item.Uid)) continue; // check if slot does not contain the item currently being inserted??? @@ -179,7 +179,7 @@ namespace Content.Shared.Containers.ItemSlots return false; // check if item allowed in whitelist - if (slot.Whitelist != null && !slot.Whitelist.IsValid(item)) + if (slot.Whitelist != null && !slot.Whitelist.IsValid(item.Uid)) return false; return true; diff --git a/Content.Shared/Whitelist/EntityWhitelist.cs b/Content.Shared/Whitelist/EntityWhitelist.cs index 89a6f6ea53..b1534cd223 100644 --- a/Content.Shared/Whitelist/EntityWhitelist.cs +++ b/Content.Shared/Whitelist/EntityWhitelist.cs @@ -67,11 +67,13 @@ namespace Content.Shared.Whitelist /// /// Returns whether a given entity fits the whitelist. /// - public bool IsValid(IEntity entity) + public bool IsValid(EntityUid uid, IEntityManager? entityManager = null) { - if (Tags != null) + entityManager ??= IoCManager.Resolve(); + + if (Tags != null && entityManager.TryGetComponent(uid, out TagComponent? tags)) { - if (entity.HasAnyTag(Tags)) + if (tags.HasAnyTag(Tags)) return true; } @@ -79,7 +81,7 @@ namespace Content.Shared.Whitelist { foreach (var reg in _registrations) { - if (entity.HasComponent(reg.Type)) + if (entityManager.HasComponent(uid, reg.Type)) return true; } }