diff --git a/ArchiSteamFarm.sln.DotSettings b/ArchiSteamFarm.sln.DotSettings
index 5a9b16887..541695d51 100644
--- a/ArchiSteamFarm.sln.DotSettings
+++ b/ArchiSteamFarm.sln.DotSettings
@@ -10,6 +10,7 @@
FS
HTML
ID
+ IP
OK
PIN
SC
diff --git a/ArchiSteamFarm/ArchiWebHandler.cs b/ArchiSteamFarm/ArchiWebHandler.cs
index d5d99478a..fcf59f89f 100644
--- a/ArchiSteamFarm/ArchiWebHandler.cs
+++ b/ArchiSteamFarm/ArchiWebHandler.cs
@@ -377,11 +377,8 @@ namespace ArchiSteamFarm {
string request = SteamCommunityURL + "/my/games/?xml=1";
XmlDocument response = await WebBrowser.UrlGetToXMLRetry(request).ConfigureAwait(false);
- if (response == null) {
- return null;
- }
- XmlNodeList xmlNodeList = response.SelectNodes("gamesList/games/game");
+ XmlNodeList xmlNodeList = response?.SelectNodes("gamesList/games/game");
if ((xmlNodeList == null) || (xmlNodeList.Count == 0)) {
return null;
}
@@ -492,11 +489,8 @@ namespace ArchiSteamFarm {
string request = SteamCommunityURL + "/tradeoffer/" + tradeID + "?l=english";
HtmlDocument htmlDocument = await WebBrowser.UrlGetToHtmlDocumentRetry(request).ConfigureAwait(false);
- if (htmlDocument == null) {
- return null;
- }
- HtmlNode htmlNode = htmlDocument.DocumentNode.SelectSingleNode("//div[@class='pagecontent']/script");
+ HtmlNode htmlNode = htmlDocument?.DocumentNode.SelectSingleNode("//div[@class='pagecontent']/script");
if (htmlNode == null) { // Trade can be no longer valid
return null;
}
@@ -713,11 +707,8 @@ namespace ArchiSteamFarm {
string request = SteamCommunityURL + "/my/inventory/json/" + Steam.Item.SteamAppID + "/" + Steam.Item.SteamContextID + "?trading=" + (tradable ? "1" : "0") + "&start=" + currentPage;
JObject jObject = await WebBrowser.UrlGetToJObjectRetry(request).ConfigureAwait(false);
- if (jObject == null) {
- return null;
- }
- IEnumerable descriptions = jObject.SelectTokens("$.rgDescriptions.*");
+ IEnumerable descriptions = jObject?.SelectTokens("$.rgDescriptions.*");
if (descriptions == null) {
return null; // OK, empty inventory
}
@@ -913,11 +904,7 @@ namespace ArchiSteamFarm {
string request = SteamCommunityURL + "/my/videos";
Uri uri = await WebBrowser.UrlHeadToUriRetry(request).ConfigureAwait(false);
- if (uri == null) {
- return null;
- }
-
- return !uri.AbsolutePath.StartsWith("/login", StringComparison.Ordinal);
+ return !uri?.AbsolutePath.StartsWith("/login", StringComparison.Ordinal);
}
private async Task RefreshSessionIfNeeded() {
diff --git a/ArchiSteamFarm/Bot.cs b/ArchiSteamFarm/Bot.cs
index b37149e8a..d7f2244c3 100755
--- a/ArchiSteamFarm/Bot.cs
+++ b/ArchiSteamFarm/Bot.cs
@@ -252,25 +252,11 @@ namespace ArchiSteamFarm {
LoginSemaphore.Dispose();
HandledGifts.Dispose();
- if (AcceptConfirmationsTimer != null) {
- AcceptConfirmationsTimer.Dispose();
- }
-
- if (ArchiWebHandler != null) {
- ArchiWebHandler.Dispose();
- }
-
- if (CardsFarmer != null) {
- CardsFarmer.Dispose();
- }
-
- if (SendItemsTimer != null) {
- SendItemsTimer.Dispose();
- }
-
- if (Trading != null) {
- Trading.Dispose();
- }
+ AcceptConfirmationsTimer?.Dispose();
+ ArchiWebHandler?.Dispose();
+ CardsFarmer?.Dispose();
+ SendItemsTimer?.Dispose();
+ Trading?.Dispose();
}
internal async Task AcceptConfirmations(bool accept, Steam.ConfirmationDetails.EType acceptedType = Steam.ConfirmationDetails.EType.Unknown, ulong acceptedSteamID = 0, HashSet acceptedTradeIDs = null) {
@@ -333,7 +319,7 @@ namespace ArchiSteamFarm {
return false;
}
- if ((callback == null) || string.IsNullOrEmpty(callback.Nonce)) {
+ if (string.IsNullOrEmpty(callback?.Nonce)) {
Start().Forget();
return false;
}
@@ -1609,7 +1595,7 @@ namespace ArchiSteamFarm {
}
private async void OnGuestPassList(SteamApps.GuestPassListCallback callback) {
- if ((callback == null) || (callback.GuestPasses == null)) {
+ if (callback?.GuestPasses == null) {
Logging.LogNullError(nameof(callback) + " || " + nameof(callback.GuestPasses), BotName);
return;
}
@@ -1647,7 +1633,7 @@ namespace ArchiSteamFarm {
}
private void OnChatInvite(SteamFriends.ChatInviteCallback callback) {
- if ((callback == null) || (callback.ChatRoomID == null) || (callback.PatronID == null)) {
+ if ((callback?.ChatRoomID == null) || (callback.PatronID == null)) {
Logging.LogNullError(nameof(callback) + " || " + nameof(callback.ChatRoomID) + " || " + nameof(callback.PatronID), BotName);
return;
}
@@ -1689,7 +1675,7 @@ namespace ArchiSteamFarm {
}
private void OnFriendsList(SteamFriends.FriendsListCallback callback) {
- if ((callback == null) || (callback.FriendList == null)) {
+ if (callback?.FriendList == null) {
Logging.LogNullError(nameof(callback) + " || " + nameof(callback.FriendList), BotName);
return;
}
@@ -1722,7 +1708,7 @@ namespace ArchiSteamFarm {
}
private async void OnFriendMsgHistory(SteamFriends.FriendMsgHistoryCallback callback) {
- if ((callback == null) || (callback.Messages == null) || (callback.SteamID == null)) {
+ if ((callback?.Messages == null) || (callback.SteamID == null)) {
Logging.LogNullError(nameof(callback) + " || " + nameof(callback.Messages) + " || " + nameof(callback.SteamID), BotName);
return;
}
@@ -1865,7 +1851,7 @@ namespace ArchiSteamFarm {
}
private void OnLoginKey(SteamUser.LoginKeyCallback callback) {
- if ((callback == null) || string.IsNullOrEmpty(callback.LoginKey)) {
+ if (string.IsNullOrEmpty(callback?.LoginKey)) {
Logging.LogNullError(nameof(callback) + " || " + nameof(callback.LoginKey), BotName);
return;
}
diff --git a/ArchiSteamFarm/CardsFarmer.cs b/ArchiSteamFarm/CardsFarmer.cs
index 4cacedffb..88d8f69ff 100755
--- a/ArchiSteamFarm/CardsFarmer.cs
+++ b/ArchiSteamFarm/CardsFarmer.cs
@@ -75,9 +75,7 @@ namespace ArchiSteamFarm {
FarmResetEvent.Dispose();
FarmingSemaphore.Dispose();
- if (Timer != null) {
- Timer.Dispose();
- }
+ Timer?.Dispose();
}
internal async Task SwitchToManualMode(bool manualMode) {
diff --git a/ArchiSteamFarm/ConcurrentEnumerator.cs b/ArchiSteamFarm/ConcurrentEnumerator.cs
index c091917ed..a9e0268bc 100644
--- a/ArchiSteamFarm/ConcurrentEnumerator.cs
+++ b/ArchiSteamFarm/ConcurrentEnumerator.cs
@@ -50,10 +50,6 @@ namespace ArchiSteamFarm {
public bool MoveNext() => Enumerator.MoveNext();
public void Reset() => Enumerator.Reset();
- public void Dispose() {
- if (Lock != null) {
- Lock.ExitReadLock();
- }
- }
+ public void Dispose() => Lock?.ExitReadLock();
}
}
diff --git a/ArchiSteamFarm/ConcurrentHashSet.cs b/ArchiSteamFarm/ConcurrentHashSet.cs
index fc3d54c91..b93fc3774 100644
--- a/ArchiSteamFarm/ConcurrentHashSet.cs
+++ b/ArchiSteamFarm/ConcurrentHashSet.cs
@@ -100,11 +100,7 @@ namespace ArchiSteamFarm {
}
}
- public void Dispose() {
- if (Lock != null) {
- Lock.Dispose();
- }
- }
+ public void Dispose() => Lock?.Dispose();
public void CopyTo(T[] array, int arrayIndex) {
Lock.EnterReadLock();
diff --git a/ArchiSteamFarm/GlobalDatabase.cs b/ArchiSteamFarm/GlobalDatabase.cs
index 55a59141c..77f5b6189 100644
--- a/ArchiSteamFarm/GlobalDatabase.cs
+++ b/ArchiSteamFarm/GlobalDatabase.cs
@@ -91,14 +91,7 @@ namespace ArchiSteamFarm {
return globalDatabase;
}
- private void OnServerListUpdated(object sender, EventArgs e) {
- if ((sender == null) || (e == null)) {
- Logging.LogNullError(nameof(sender) + " || " + nameof(e));
- return;
- }
-
- Save();
- }
+ private void OnServerListUpdated(object sender, EventArgs e) => Save();
// This constructor is used when creating new database
private GlobalDatabase(string filePath) : this() {
diff --git a/ArchiSteamFarm/MobileAuthenticator.cs b/ArchiSteamFarm/MobileAuthenticator.cs
index dce937e66..fd3f626f0 100644
--- a/ArchiSteamFarm/MobileAuthenticator.cs
+++ b/ArchiSteamFarm/MobileAuthenticator.cs
@@ -173,11 +173,8 @@ namespace ArchiSteamFarm {
}
HtmlDocument htmlDocument = await Bot.ArchiWebHandler.GetConfirmations(DeviceID, confirmationHash, time).ConfigureAwait(false);
- if (htmlDocument == null) {
- return null;
- }
- HtmlNodeCollection confirmationNodes = htmlDocument.DocumentNode.SelectNodes("//div[@class='mobileconf_list_entry']");
+ HtmlNodeCollection confirmationNodes = htmlDocument?.DocumentNode.SelectNodes("//div[@class='mobileconf_list_entry']");
if (confirmationNodes == null) {
return null;
}
diff --git a/ArchiSteamFarm/Program.cs b/ArchiSteamFarm/Program.cs
index cbe766f3d..2aa03554b 100644
--- a/ArchiSteamFarm/Program.cs
+++ b/ArchiSteamFarm/Program.cs
@@ -437,8 +437,8 @@ namespace ArchiSteamFarm {
}
private static void UnhandledExceptionHandler(object sender, UnhandledExceptionEventArgs args) {
- if ((sender == null) || (args == null) || (args.ExceptionObject == null)) {
- Logging.LogNullError(nameof(sender) + " || " + nameof(args) + " || " + nameof(args.ExceptionObject));
+ if (args?.ExceptionObject == null) {
+ Logging.LogNullError(nameof(args) + " || " + nameof(args.ExceptionObject));
return;
}
@@ -446,8 +446,8 @@ namespace ArchiSteamFarm {
}
private static void UnobservedTaskExceptionHandler(object sender, UnobservedTaskExceptionEventArgs args) {
- if ((sender == null) || (args == null) || (args.Exception == null)) {
- Logging.LogNullError(nameof(sender) + " || " + nameof(args) + " || " + nameof(args.Exception));
+ if (args?.Exception == null) {
+ Logging.LogNullError(nameof(args) + " || " + nameof(args.Exception));
return;
}
diff --git a/ArchiSteamFarm/WCF.cs b/ArchiSteamFarm/WCF.cs
index b20d2b078..65974f808 100644
--- a/ArchiSteamFarm/WCF.cs
+++ b/ArchiSteamFarm/WCF.cs
@@ -75,13 +75,8 @@ namespace ArchiSteamFarm {
}
public void Dispose() {
- if (ServiceHost != null) {
- ServiceHost.Close();
- }
-
- if (Client != null) {
- Client.Close();
- }
+ ServiceHost?.Close();
+ Client?.Close();
}
internal bool IsServerRunning() => ServiceHost != null;
diff --git a/ArchiSteamFarm/WebBrowser.cs b/ArchiSteamFarm/WebBrowser.cs
index 0fbc73ec6..4bb5d814b 100644
--- a/ArchiSteamFarm/WebBrowser.cs
+++ b/ArchiSteamFarm/WebBrowser.cs
@@ -365,7 +365,7 @@ namespace ArchiSteamFarm {
}
using (HttpResponseMessage response = await UrlHeadToResponse(request, referer).ConfigureAwait(false)) {
- return response == null ? null : response.RequestMessage.RequestUri;
+ return response?.RequestMessage.RequestUri;
}
}