public void Execute(IDungeonMasterApp dungeonMasterApp, ChatMessage chatMessage) { const bool verbose = false; int playerId = dungeonMasterApp.GetPlayerIdFromName(TargetPlayer); string valueUppercase = valueAsStr.ToUpper().Trim(); if (valueUppercase == "TRUE" || valueUppercase == "FALSE") { string firstName = dungeonMasterApp.GetPlayFirstNameFromId(playerId); bool newValue = valueUppercase == "TRUE"; bool previousValue = dungeonMasterApp.GetBoolProperty(playerId, propertyName); if (previousValue == newValue) { if (verbose) { dungeonMasterApp.TellDungeonMaster($"{firstName}'s {propertyName} is already {valueAsStr.Trim()}."); } return; } dungeonMasterApp.SetBoolProperty(playerId, propertyName, newValue); bool newlySetValue = dungeonMasterApp.GetBoolProperty(playerId, propertyName); if (newlySetValue == previousValue) { dungeonMasterApp.TellDungeonMaster($"Error. Unable to set {firstName}'s {propertyName} to {valueAsStr.Trim()}."); } else if (verbose) { dungeonMasterApp.TellDungeonMaster($"{firstName}'s {propertyName} = {valueAsStr.Trim()}."); } } //bool GetBoolProperty(int playerId, string propertyName); }