diff options
Diffstat (limited to 'IrcStates')
-rw-r--r-- | IrcStates/ISupport.cs | 15 | ||||
-rw-r--r-- | IrcStates/Tests/ISupport.cs | 2 |
2 files changed, 13 insertions, 4 deletions
diff --git a/IrcStates/ISupport.cs b/IrcStates/ISupport.cs index db2f537..f481f5f 100644 --- a/IrcStates/ISupport.cs +++ b/IrcStates/ISupport.cs @@ -71,13 +71,22 @@ namespace IrcStates StatusMsg.AddRange(value.Select(c => c.ToString(CultureInfo.InvariantCulture))); break; case "MODES": - Modes = int.Parse(value, NumberStyles.Integer, CultureInfo.InvariantCulture); + if (int.TryParse(value, NumberStyles.Integer, CultureInfo.InvariantCulture, out var modes)) + Modes = modes; + else + Modes = -1; break; case "MONITOR": - Monitor = int.Parse(value, NumberStyles.Integer, CultureInfo.InvariantCulture); + if (int.TryParse(value, NumberStyles.Integer, CultureInfo.InvariantCulture, out var monitor)) + Monitor = monitor; + else + Monitor = -1; break; case "WATCH": - Watch = int.Parse(value, NumberStyles.Integer, CultureInfo.InvariantCulture); + if (int.TryParse(value, NumberStyles.Integer, CultureInfo.InvariantCulture, out var watch)) + Watch = watch; + else + Watch = -1; break; case "CASEMAPPING": if (Enum.TryParse(value, true, out Casemap.CaseMapping caseMapping)) CaseMapping = caseMapping; diff --git a/IrcStates/Tests/ISupport.cs b/IrcStates/Tests/ISupport.cs index c5698a2..6cd2f48 100644 --- a/IrcStates/Tests/ISupport.cs +++ b/IrcStates/Tests/ISupport.cs @@ -53,7 +53,7 @@ namespace IrcStates.Tests Assert.AreEqual("o", _server.ISupport.Prefix.FromPrefix("@")); Assert.IsNull(_server.ISupport.Prefix.FromPrefix("&")); - _server.Parse(new Line("005 * PREFIX=(qaohv)~&#%+ *")); + _server.Parse(new Line("005 * PREFIX=(qaohv)~&@%+ *")); CollectionAssert.AreEqual(new List<string> { "q", |