From 2009ac6892faf83332dec48acaa23ce4c06e1447 Mon Sep 17 00:00:00 2001 From: Kamron Batman <3953314+kamronbatman@users.noreply.github.com> Date: Fri, 18 Feb 2022 11:13:38 -0800 Subject: [PATCH] fix: Adds more null checks for text definition to prevent NPEs (#936) --- .../UOContent/Engines/Craft/Core/CraftGump.cs | 15 +++++---- .../UOContent/Engines/Craft/Core/CraftItem.cs | 30 +++++++++++------- .../UOContent/Engines/Craft/Core/CraftRes.cs | 4 +-- .../Factions/Gumps/FactionImbueGump.cs | 15 +++++---- .../Engines/Harvest/Core/HarvestResource.cs | 15 +++++---- Projects/UOContent/Gumps/NoticeGump.cs | 31 ++++++++++--------- Projects/UOContent/Gumps/WarningGump.cs | 31 ++++++++++--------- .../Skill Items/Magical/Misc/Moongate.cs | 2 +- 8 files changed, 82 insertions(+), 61 deletions(-) diff --git a/Projects/UOContent/Engines/Craft/Core/CraftGump.cs b/Projects/UOContent/Engines/Craft/Core/CraftGump.cs index 653444076..29b1d469d 100644 --- a/Projects/UOContent/Engines/Craft/Core/CraftGump.cs +++ b/Projects/UOContent/Engines/Craft/Core/CraftGump.cs @@ -106,13 +106,16 @@ namespace Server.Engines.Craft } // **************************************** - if (notice.Number > 0) + if (notice != null) { - AddHtmlLocalized(170, 295, 350, 40, notice.Number, LabelColor); - } - else - { - AddHtml(170, 295, 350, 40, $"{notice.String}"); + if (notice.Number > 0) + { + AddHtmlLocalized(170, 295, 350, 40, notice.Number, LabelColor); + } + else + { + AddHtml(170, 295, 350, 40, $"{notice.String}"); + } } // If the system has more than one resource diff --git a/Projects/UOContent/Engines/Craft/Core/CraftItem.cs b/Projects/UOContent/Engines/Craft/Core/CraftItem.cs index 9e738f8dc..ee825dce3 100644 --- a/Projects/UOContent/Engines/Craft/Core/CraftItem.cs +++ b/Projects/UOContent/Engines/Craft/Core/CraftItem.cs @@ -1088,13 +1088,16 @@ namespace Server.Engines.Craft { from.SendGump(new CraftGump(from, craftSystem, tool, message)); } - else if (message.Number > 0) + else if (message != null) { - from.SendLocalizedMessage(message.Number); - } - else - { - from.SendMessage(message.String); + if (message.Number > 0) + { + from.SendLocalizedMessage(message.Number); + } + else + { + from.SendMessage(message.String); + } } return; @@ -1268,13 +1271,16 @@ namespace Server.Engines.Craft { from.SendGump(new CraftGump(from, craftSystem, tool, message)); } - else if (message.Number > 0) + else if (message != null) { - from.SendLocalizedMessage(message.Number); - } - else - { - from.SendMessage(message.String); + if (message.Number > 0) + { + from.SendLocalizedMessage(message.Number); + } + else + { + from.SendMessage(message.String); + } } return; diff --git a/Projects/UOContent/Engines/Craft/Core/CraftRes.cs b/Projects/UOContent/Engines/Craft/Core/CraftRes.cs index f3fd089e6..dc6657b97 100644 --- a/Projects/UOContent/Engines/Craft/Core/CraftRes.cs +++ b/Projects/UOContent/Engines/Craft/Core/CraftRes.cs @@ -23,11 +23,11 @@ namespace Server.Engines.Craft public void SendMessage(Mobile from) { - if (Message.Number > 0) + if (Message?.Number > 0) { from.SendLocalizedMessage(Message.Number); } - else if (!string.IsNullOrEmpty(Message.String)) + else if (!string.IsNullOrEmpty(Message?.String)) { from.SendMessage(Message.String); } diff --git a/Projects/UOContent/Engines/Factions/Gumps/FactionImbueGump.cs b/Projects/UOContent/Engines/Factions/Gumps/FactionImbueGump.cs index 29931054a..e8ffee06d 100644 --- a/Projects/UOContent/Engines/Factions/Gumps/FactionImbueGump.cs +++ b/Projects/UOContent/Engines/Factions/Gumps/FactionImbueGump.cs @@ -98,13 +98,16 @@ namespace Server.Factions { m_Mobile.SendGump(new CraftGump(m_Mobile, m_CraftSystem, m_Tool, m_Notice)); } - else if (m_Notice.Number > 0) + else if (m_Notice != null) { - m_Mobile.SendLocalizedMessage(m_Notice.Number); - } - else - { - m_Mobile.SendMessage(m_Notice.String); + if (m_Notice.Number > 0) + { + m_Mobile.SendLocalizedMessage(m_Notice.Number); + } + else + { + m_Mobile.SendMessage(m_Notice.String); + } } } } diff --git a/Projects/UOContent/Engines/Harvest/Core/HarvestResource.cs b/Projects/UOContent/Engines/Harvest/Core/HarvestResource.cs index 37df99a26..72ad34b8f 100644 --- a/Projects/UOContent/Engines/Harvest/Core/HarvestResource.cs +++ b/Projects/UOContent/Engines/Harvest/Core/HarvestResource.cs @@ -25,13 +25,16 @@ namespace Server.Engines.Harvest public void SendSuccessTo(Mobile m) { - if (SuccessMessage.Number > 0) + if (SuccessMessage != null) { - m.SendLocalizedMessage(SuccessMessage.Number); - } - else - { - m.SendMessage(SuccessMessage.String); + if (SuccessMessage.Number > 0) + { + m.SendLocalizedMessage(SuccessMessage.Number); + } + else + { + m.SendMessage(SuccessMessage.String); + } } } } diff --git a/Projects/UOContent/Gumps/NoticeGump.cs b/Projects/UOContent/Gumps/NoticeGump.cs index 6ae0fa683..eb10a69a0 100644 --- a/Projects/UOContent/Gumps/NoticeGump.cs +++ b/Projects/UOContent/Gumps/NoticeGump.cs @@ -28,21 +28,24 @@ namespace Server.Gumps AddImageTiled(10, 40, width - 20, height - 80, 2624); AddAlphaRegion(10, 40, width - 20, height - 80); - if (content.Number > 0) + if (content != null) { - AddHtmlLocalized(10, 40, width - 20, height - 80, content.Number, contentColor, false, true); - } - else - { - AddHtml( - 10, - 40, - width - 20, - height - 80, - $"{content.String}", - false, - true - ); + if (content.Number > 0) + { + AddHtmlLocalized(10, 40, width - 20, height - 80, content.Number, contentColor, false, true); + } + else + { + AddHtml( + 10, + 40, + width - 20, + height - 80, + $"{content.String}", + false, + true + ); + } } AddImageTiled(10, height - 30, width - 20, 20, 2624); diff --git a/Projects/UOContent/Gumps/WarningGump.cs b/Projects/UOContent/Gumps/WarningGump.cs index 6b5315f78..3217bcdf9 100644 --- a/Projects/UOContent/Gumps/WarningGump.cs +++ b/Projects/UOContent/Gumps/WarningGump.cs @@ -28,21 +28,24 @@ namespace Server.Gumps AddImageTiled(10, 40, width - 20, height - 80, 2624); AddAlphaRegion(10, 40, width - 20, height - 80); - if (content.Number > 0) + if (content != null) { - AddHtmlLocalized(10, 40, width - 20, height - 80, content.Number, contentColor, false, true); - } - else - { - AddHtml( - 10, - 40, - width - 20, - height - 80, - $"{content.String}", - false, - true - ); + if (content.Number > 0) + { + AddHtmlLocalized(10, 40, width - 20, height - 80, content.Number, contentColor, false, true); + } + else + { + AddHtml( + 10, + 40, + width - 20, + height - 80, + $"{content.String}", + false, + true + ); + } } AddImageTiled(10, height - 30, width - 20, 20, 2624); diff --git a/Projects/UOContent/Items/Skill Items/Magical/Misc/Moongate.cs b/Projects/UOContent/Items/Skill Items/Magical/Misc/Moongate.cs index e56860bb1..9bf834dba 100644 --- a/Projects/UOContent/Items/Skill Items/Magical/Misc/Moongate.cs +++ b/Projects/UOContent/Items/Skill Items/Magical/Misc/Moongate.cs @@ -286,7 +286,7 @@ namespace Server.Items public override void BeginConfirmation(Mobile from) { - if (GumpWidth > 0 && GumpHeight > 0 && TitleNumber > 0 && !Message.IsEmpty) + if (GumpWidth > 0 && GumpHeight > 0 && TitleNumber > 0 && Message?.IsEmpty == false) { from.CloseGump(); from.SendGump(