public ReadResults Read(out ScoreboardSlot result) { result = default; ReadResults readResults = StringReader.ReadUnquotedString(out string slot); if (!readResults.Successful) { return(readResults); } string[] values = slot.Split('.'); if (Resources.ScoreboardSlots.TryGetSlot(values[0], out Collections.ScoreboardSlot contents)) { if (contents.Read(slot.Substring(values[0].Length), Resources)) { result = new ScoreboardSlot(slot); return(ReadResults.Success()); } } return(ReadResults.Failure(CommandError.UnknownDisplaySlot(slot))); }