diff --git a/generate.sh b/generate.sh
index e74dcebe..76d39add 100755
--- a/generate.sh
+++ b/generate.sh
@@ -83,6 +83,9 @@ sed -i 's/IsRequired = true/IsRequired = false/g' src/VRChat.API/Model/CurrentUs
# Add RequiresTwoFactorAuth property to CurrentUser
sed -i '/public string UserIcon { get; set; }/a\\n /// \n /// An array of two-factor authentication methods available to use to with two factor authentication.\n /// \n [DataMember(Name = "requiresTwoFactorAuth", IsRequired = false, EmitDefaultValue = true)]\n public List RequiresTwoFactorAuth { get; set; }' src/VRChat.API/Model/CurrentUser.cs
+# Avoid percent-encoding for "(" and ")" characters in URI
+sed -i 's/Uri.EscapeDataString(\([\.a-zA-Z _]*\))\([^\.]\)/Uri.EscapeDataString(\1).Replace("%28", "(").Replace("%29", ")")\2/g' src/VRChat.API/Client/WebRequestPathBuilder.cs
+
# Remove messily pasted markdown at top of every file
for i in src/VRChat.API/*/*.cs; do
sed -i '/VRChat API Banner/d' $i
diff --git a/src/VRChat.API/Client/WebRequestPathBuilder.cs b/src/VRChat.API/Client/WebRequestPathBuilder.cs
index 647ff169..0a5581db 100644
--- a/src/VRChat.API/Client/WebRequestPathBuilder.cs
+++ b/src/VRChat.API/Client/WebRequestPathBuilder.cs
@@ -30,7 +30,7 @@ public void AddPathParameters(Dictionary parameters)
{
foreach (var parameter in parameters)
{
- _path = _path.Replace("{" + parameter.Key + "}", Uri.EscapeDataString(parameter.Value));
+ _path = _path.Replace("{" + parameter.Key + "}", Uri.EscapeDataString(parameter.Value).Replace("%28", "(").Replace("%29", ")"));
}
}
@@ -40,7 +40,7 @@ public void AddQueryParameters(Multimap parameters)
{
foreach (var value in parameter.Value)
{
- _query = _query + parameter.Key + "=" + Uri.EscapeDataString(value) + "&";
+ _query = _query + parameter.Key + "=" + Uri.EscapeDataString(value).Replace("%28", "(").Replace("%29", ")") + "&";
}
}
}