From 3bfd5c4d3e5cf4221e9b800728a006bef5a3c436 Mon Sep 17 00:00:00 2001 From: Kamron Batman <3953314+kamronbatman@users.noreply.github.com> Date: Fri, 27 Aug 2021 19:12:32 -0700 Subject: [PATCH] fix: Adds CanSeeStaffOnly for staff only items (#739) --- Projects/Server/Items/Item.cs | 2 ++ Projects/Server/Maps/Map.cs | 4 +--- Projects/Server/Mobiles/Mobile.cs | 19 +++++++------------ .../UOContent/Engines/Spawners/BaseSpawner.cs | 9 +++++---- 4 files changed, 15 insertions(+), 19 deletions(-) diff --git a/Projects/Server/Items/Item.cs b/Projects/Server/Items/Item.cs index 5bd6eb253..64ce8c5f5 100644 --- a/Projects/Server/Items/Item.cs +++ b/Projects/Server/Items/Item.cs @@ -408,6 +408,8 @@ namespace Server public virtual bool IsVirtualItem => false; + public virtual bool CanSeeStaffOnly(Mobile from) => from.AccessLevel > AccessLevel.Counselor; + public virtual int LabelNumber { get diff --git a/Projects/Server/Maps/Map.cs b/Projects/Server/Maps/Map.cs index 3ddb12526..0c0e489ec 100644 --- a/Projects/Server/Maps/Map.cs +++ b/Projects/Server/Maps/Map.cs @@ -1238,9 +1238,7 @@ namespace Server if (org.X > dest.X || org.X == dest.X && org.Y > dest.Y || org.X == dest.X && org.Y == dest.Y && org.Z > dest.Z) { - var swap = org; - org = dest; - dest = swap; + (org, dest) = (dest, org); } int height; diff --git a/Projects/Server/Mobiles/Mobile.cs b/Projects/Server/Mobiles/Mobile.cs index 751518a26..8c51c64e3 100644 --- a/Projects/Server/Mobiles/Mobile.cs +++ b/Projects/Server/Mobiles/Mobile.cs @@ -5195,7 +5195,7 @@ namespace Server var map = from.Map; - if (DragEffects && map != null && (root == null || root is Item)) + if (DragEffects && map != null && root is null or Item) { var eable = map.GetClientsInRange(from.Location); var rootItem = root as Item; @@ -7181,17 +7181,12 @@ namespace Server public virtual bool CanSee(object o) { - if (o is Item item) + return o switch { - return CanSee(item); - } - - if (o is Mobile mobile) - { - return CanSee(mobile); - } - - return true; + Item item => CanSee(item), + Mobile mobile => CanSee(mobile), + _ => true + }; } public virtual bool CanSee(Item item) @@ -7239,7 +7234,7 @@ namespace Server } } - return !item.Deleted && item.Map == m_Map && (item.Visible || m_AccessLevel > AccessLevel.Counselor); + return !item.Deleted && item.Map == m_Map && (item.Visible || item.CanSeeStaffOnly(this)); } public virtual bool CanSee(Mobile m) diff --git a/Projects/UOContent/Engines/Spawners/BaseSpawner.cs b/Projects/UOContent/Engines/Spawners/BaseSpawner.cs index dcd1689d9..2920ec281 100644 --- a/Projects/UOContent/Engines/Spawners/BaseSpawner.cs +++ b/Projects/UOContent/Engines/Spawners/BaseSpawner.cs @@ -308,12 +308,13 @@ namespace Server.Engines.Spawners DoTimer(TimeSpan.FromSeconds(1)); } + public override bool CanSeeStaffOnly(Mobile from) => from.AccessLevel >= AccessLevel.Developer; + + public override bool IsAccessibleTo(Mobile from) => from.AccessLevel >= AccessLevel.Developer; + public override void OnDoubleClick(Mobile from) { - if (from.AccessLevel >= AccessLevel.Developer) - { - from.SendGump(new SpawnerGump(this)); - } + from.SendGump(new SpawnerGump(this)); } public virtual void GetSpawnerProperties(ObjectPropertyList list)