EDBGS/EDPlayerJournal/Entries/ReceiveTextEntry.cs

78 lines
1.9 KiB
C#

namespace EDPlayerJournal.Entries;
public class ReceiveTextEntry : Entry {
/// <summary>
/// From whom this message is
/// </summary>
public string? From { get; set; }
/// <summary>
/// The message, if it is just an NPC text, it will be a message ID
/// </summary>
public string? Message { get; set; }
/// <summary>
/// Message localised
/// </summary>
public string? MessageLocalised { get; set; }
/// <summary>
/// On what channel this was received.
/// </summary>
public string? Channel { get; set; }
public bool HasNPCCategory {
get {
if (From == null) {
return false;
}
if (From.Contains(';') && From.StartsWith("$")) {
return true;
}
return false;
}
}
/// <summary>
/// Returns the NPC's category, if it has one.
/// </summary>
public string? NPCCategory {
get {
if (!HasNPCCategory || From == null) {
return null;
}
string[] parts = From.Split(";", StringSplitOptions.TrimEntries);
if (parts.Length < 2) {
return null;
}
return string.Format("{0};", parts[0]);
}
}
/// <summary>
/// Returns the NPC's category, if it has one.
/// </summary>
public string? NPCName {
get {
if (!HasNPCCategory || From == null) {
return null;
}
string[] parts = From.Split(";", StringSplitOptions.TrimEntries);
if (parts.Length < 2) {
return null;
}
return parts[1];
}
}
protected override void Initialise() {
From = JSON.Value<string>("From");
Message = JSON.Value<string>("Message");
MessageLocalised = JSON.Value<string>("Message_localised");
Channel = JSON.Value<string>("Channel");
}
}