fix: Fixes town crier NPE (#942)

This commit is contained in:
Kamron Batman 2022-02-23 21:21:20 -08:00 committed by GitHub
parent 032f21ff27
commit dc2b00ec5b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -28,14 +28,9 @@ namespace Server.Mobiles
public TownCrierEntry GetRandomEntry()
{
if (Entries == null || Entries.Count == 0)
for (var i = (Entries?.Count ?? 0) - 1; i >= 0; --i)
{
return null;
}
for (var i = Entries.Count - 1; Entries != null && i >= 0; --i)
{
if (i >= Entries.Count)
if (i >= Entries!.Count)
{
continue;
}
@ -366,14 +361,9 @@ namespace Server.Mobiles
public TownCrierEntry GetRandomEntry()
{
if (Entries == null || Entries.Count == 0)
for (var i = (Entries?.Count ?? 0) - 1; i >= 0; --i)
{
return GlobalTownCrierEntryList.Instance.GetRandomEntry();
}
for (var i = Entries.Count - 1; Entries != null && i >= 0; --i)
{
if (i >= Entries.Count)
if (i >= Entries!.Count)
{
continue;
}
@ -387,8 +377,12 @@ namespace Server.Mobiles
}
var entry = GlobalTownCrierEntryList.Instance.GetRandomEntry();
if (entry == null || Entries?.Count > 0 && Utility.RandomBool())
{
entry = Entries.RandomElement();
}
return entry ?? (Entries?.Count > 0 && Utility.RandomBool() ? Entries.RandomElement() : null);
return entry;
}
public TownCrierEntry AddEntry(string[] lines, TimeSpan duration)
@ -420,7 +414,7 @@ namespace Server.Mobiles
if (Entries == null && GlobalTownCrierEntryList.Instance.IsEmpty)
{
_autoShoutTimer.Stop();
_autoShoutTimer?.Stop();
_autoShoutTimer = null;
}
}