From df3f7203d348787b060b60d3cc154ee1087cb8b6 Mon Sep 17 00:00:00 2001 From: PopSlime Date: Sat, 2 Dec 2023 00:49:07 +0800 Subject: [PATCH] Improve the error message on judge not found. --- Assets/Cryville/Crtr/Ruleset/Judge.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Assets/Cryville/Crtr/Ruleset/Judge.cs b/Assets/Cryville/Crtr/Ruleset/Judge.cs index d66a77d..3d5a847 100644 --- a/Assets/Cryville/Crtr/Ruleset/Judge.cs +++ b/Assets/Cryville/Crtr/Ruleset/Judge.cs @@ -90,7 +90,10 @@ namespace Cryville.Crtr.Ruleset { } void InsertEvent(Chart.Judge ev, Clip clip, Identifier id, NoteHandler handler, JudgeCallContext call = default(JudgeCallContext)) { if (id.Key == _var_pause) throw new InvalidOperationException("Cannot assign the special judge \"pause\" to notes"); - var def = _rs.judges[id]; + JudgeDefinition def; + if (!_rs.judges.TryGetValue(id, out def)) { + throw new ArgumentException(string.Format("The chart uses a judge named \"{0}\" that is undefined in the ruleset.", id)); + } _etor.Evaluate(_identop, def.input); _etor.Evaluate(_clipop, def.clip); var list = evs[_identbuf];