internal void Commit(StatePayload payload) { if (!this.Store.ContainsKey(payload.FarmerId) || this.Store[payload.FarmerId] == null) { this.Store[payload.FarmerId] = new Dictionary <string, StatePayload>(); } this.Store[payload.FarmerId][payload.QuestName] = payload; this.Monitor.Log($"Payload `{payload.QuestName}/{payload.FarmerId}` type `{payload.StateData.Type}` commited to store"); }
public void Verify(long farmerUid, IEnumerable <CustomQuest> customQuests) { var payloadList = this.GetPayloadList(farmerUid); foreach (var customQuest in customQuests) { StatePayload payload = payloadList[customQuest.Name]; if (customQuest is IStateRestorable restorable && !restorable.VerifyState(payload)) { this.Monitor.Log($"State for quest `{customQuest.Name}` for farmer UID {farmerUid} mismatch! " + $"Did you call Sync() in your CustomQuest type?", LogLevel.Warn); } } }