Created
September 8, 2017 20:10
-
-
Save TellowKrinkle/4579e76bf44b65897b87a3c230e5cdc4 to your computer and use it in GitHub Desktop.
SwiftDiscord Swift 4 DiscordGatewayPayloadData Changes
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
From a301a28f43fc9faa20bd3d3e8452bf20dfe988d6 Mon Sep 17 00:00:00 2001 | |
From: Evan Tang <etang110@gmail.com> | |
Date: Thu, 7 Sep 2017 12:02:26 -0500 | |
Subject: [PATCH 1/4] Fixed an issue where the library would infinitely try to | |
reconnect NSNumber bools are convertible to Integers and NSNumber integers | |
that are 0 or 1 are convertible to booleans This caused the reconnect code to | |
improperly assume that a netsplit occurred because it received an int | |
payload, not a bool | |
--- | |
Sources/SwiftDiscord/Gateway/DiscordGateway.swift | 4 ++-- | |
1 file changed, 2 insertions(+), 2 deletions(-) | |
diff --git a/Sources/SwiftDiscord/Gateway/DiscordGateway.swift b/Sources/SwiftDiscord/Gateway/DiscordGateway.swift | |
index 8deaa9e..9a54786 100644 | |
--- a/Sources/SwiftDiscord/Gateway/DiscordGateway.swift | |
+++ b/Sources/SwiftDiscord/Gateway/DiscordGateway.swift | |
@@ -142,10 +142,10 @@ extension DiscordGatewayPayloadData { | |
switch data { | |
case let object as [String: Any]: | |
return .object(object) | |
+ case let number as NSNumber where number === kCFBooleanTrue || number === kCFBooleanFalse: | |
+ return .bool(number.boolValue) | |
case let integer as Int: | |
return .integer(integer) | |
- case let bool as Bool: | |
- return .bool(bool) | |
default: | |
return .null | |
} | |
-- | |
2.14.1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
From 5eb40ff2316742ec0a9d125f810bff951e5e6527 Mon Sep 17 00:00:00 2001 | |
From: Evan Tang <etang110@gmail.com> | |
Date: Thu, 7 Sep 2017 12:38:21 -0500 | |
Subject: [PATCH 4/4] Hopefully fixed it for both OSX and Linux | |
--- | |
Sources/SwiftDiscord/Gateway/DiscordGateway.swift | 33 ++++++++++++++++------- | |
1 file changed, 23 insertions(+), 10 deletions(-) | |
diff --git a/Sources/SwiftDiscord/Gateway/DiscordGateway.swift b/Sources/SwiftDiscord/Gateway/DiscordGateway.swift | |
index 9a54786..19e6ae6 100644 | |
--- a/Sources/SwiftDiscord/Gateway/DiscordGateway.swift | |
+++ b/Sources/SwiftDiscord/Gateway/DiscordGateway.swift | |
@@ -139,16 +139,29 @@ extension DiscordGatewayPayloadData { | |
static func dataFromDictionary(_ data: Any?) -> DiscordGatewayPayloadData { | |
guard let data = data else { return .null } | |
- switch data { | |
- case let object as [String: Any]: | |
- return .object(object) | |
- case let number as NSNumber where number === kCFBooleanTrue || number === kCFBooleanFalse: | |
- return .bool(number.boolValue) | |
- case let integer as Int: | |
- return .integer(integer) | |
- default: | |
- return .null | |
- } | |
+ #if os(OSX) || os(iOS) | |
+ switch data { | |
+ case let object as [String: Any]: | |
+ return .object(object) | |
+ case let number as NSNumber where number === kCFBooleanTrue || number === kCFBooleanFalse: | |
+ return .bool(number.boolValue) | |
+ case let integer as Int: | |
+ return .integer(integer) | |
+ default: | |
+ return .null | |
+ } | |
+ #else | |
+ switch data { | |
+ case let object as [String: Any]: | |
+ return .object(object) | |
+ case let bool as Bool: | |
+ return .bool(bool) | |
+ case let integer as Int: | |
+ return .integer(integer) | |
+ default: | |
+ return .null | |
+ } | |
+ #endif | |
} | |
} | |
-- | |
2.14.1 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment