fix: Fixes town crier NPE (#942)
This commit is contained in:
parent
032f21ff27
commit
dc2b00ec5b
1 changed files with 10 additions and 16 deletions
|
|
@ -28,14 +28,9 @@ namespace Server.Mobiles
|
||||||
|
|
||||||
public TownCrierEntry GetRandomEntry()
|
public TownCrierEntry GetRandomEntry()
|
||||||
{
|
{
|
||||||
if (Entries == null || Entries.Count == 0)
|
for (var i = (Entries?.Count ?? 0) - 1; i >= 0; --i)
|
||||||
{
|
{
|
||||||
return null;
|
if (i >= Entries!.Count)
|
||||||
}
|
|
||||||
|
|
||||||
for (var i = Entries.Count - 1; Entries != null && i >= 0; --i)
|
|
||||||
{
|
|
||||||
if (i >= Entries.Count)
|
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
@ -366,14 +361,9 @@ namespace Server.Mobiles
|
||||||
|
|
||||||
public TownCrierEntry GetRandomEntry()
|
public TownCrierEntry GetRandomEntry()
|
||||||
{
|
{
|
||||||
if (Entries == null || Entries.Count == 0)
|
for (var i = (Entries?.Count ?? 0) - 1; i >= 0; --i)
|
||||||
{
|
{
|
||||||
return GlobalTownCrierEntryList.Instance.GetRandomEntry();
|
if (i >= Entries!.Count)
|
||||||
}
|
|
||||||
|
|
||||||
for (var i = Entries.Count - 1; Entries != null && i >= 0; --i)
|
|
||||||
{
|
|
||||||
if (i >= Entries.Count)
|
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
@ -387,8 +377,12 @@ namespace Server.Mobiles
|
||||||
}
|
}
|
||||||
|
|
||||||
var entry = GlobalTownCrierEntryList.Instance.GetRandomEntry();
|
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)
|
public TownCrierEntry AddEntry(string[] lines, TimeSpan duration)
|
||||||
|
|
@ -420,7 +414,7 @@ namespace Server.Mobiles
|
||||||
|
|
||||||
if (Entries == null && GlobalTownCrierEntryList.Instance.IsEmpty)
|
if (Entries == null && GlobalTownCrierEntryList.Instance.IsEmpty)
|
||||||
{
|
{
|
||||||
_autoShoutTimer.Stop();
|
_autoShoutTimer?.Stop();
|
||||||
_autoShoutTimer = null;
|
_autoShoutTimer = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue