From 76164312e198c37da261f53c6d5d40b22f8b4fee Mon Sep 17 00:00:00 2001 From: DEATHB4DEFEAT Date: Thu, 14 Nov 2024 17:20:58 -0800 Subject: [PATCH] whitelist --- Content.Server/Paint/PaintSystem.cs | 13 +++++++++---- Content.Shared/Paint/PaintComponent.cs | 3 +++ 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/Content.Server/Paint/PaintSystem.cs b/Content.Server/Paint/PaintSystem.cs index 578030924a0..bdda9ed8873 100644 --- a/Content.Server/Paint/PaintSystem.cs +++ b/Content.Server/Paint/PaintSystem.cs @@ -111,7 +111,9 @@ public void Paint(Entity entity, EntityUid target, EntityUid use return; } - if (!entity.Comp.Blacklist?.IsValid(target, EntityManager) != true || HasComp(target) || HasComp(target)) + if (!entity.Comp.Whitelist?.IsValid(target, EntityManager) == true + || !entity.Comp.Blacklist?.IsValid(target, EntityManager) == false + || HasComp(target) || HasComp(target)) { _popup.PopupEntity(Loc.GetString("paint-failure", ("target", target)), user, user, PopupType.Medium); return; @@ -133,7 +135,8 @@ public void Paint(Entity entity, EntityUid target, EntityUid use { if (!_inventory.TryGetSlotEntity(target, slot.Name, out var slotEnt) || HasComp(slotEnt.Value) - || !entity.Comp.Blacklist?.IsValid(slotEnt.Value, EntityManager) != true + || !entity.Comp.Whitelist?.IsValid(slotEnt.Value, EntityManager) != true + || !entity.Comp.Blacklist?.IsValid(slotEnt.Value, EntityManager) != false || HasComp(slotEnt.Value) || HasComp(slotEnt.Value)) continue; @@ -155,9 +158,10 @@ public void Paint(Entity entity, EntityUid target, EntityUid use _popup.PopupEntity(Loc.GetString("paint-empty", ("used", entity)), user, user, PopupType.Medium); } - public void Paint(EntityWhitelist blacklist, EntityUid target, Color color) + public void Paint(EntityWhitelist whitelist, EntityWhitelist blacklist, EntityUid target, Color color) { - if (blacklist.IsValid(target, EntityManager)) + if (!whitelist.IsValid(target, EntityManager) + || blacklist.IsValid(target, EntityManager)) return; EnsureComp(target, out var paint); @@ -171,6 +175,7 @@ public void Paint(EntityWhitelist blacklist, EntityUid target, Color color) foreach (var slot in slotDefinitions) { if (!_inventory.TryGetSlotEntity(target, slot.Name, out var slotEnt) + || !whitelist.IsValid(slotEnt.Value, EntityManager) || blacklist.IsValid(slotEnt.Value, EntityManager)) continue; diff --git a/Content.Shared/Paint/PaintComponent.cs b/Content.Shared/Paint/PaintComponent.cs index 92dfd1a55cc..dc35b8fd438 100644 --- a/Content.Shared/Paint/PaintComponent.cs +++ b/Content.Shared/Paint/PaintComponent.cs @@ -16,6 +16,9 @@ public sealed partial class PaintComponent : Component [DataField] public SoundSpecifier Spray = new SoundPathSpecifier("/Audio/Effects/spray2.ogg"); + [DataField, ViewVariables(VVAccess.ReadWrite)] + public EntityWhitelist? Whitelist; + [DataField, ViewVariables(VVAccess.ReadWrite)] public EntityWhitelist? Blacklist;