From 30067959d74e148e35c3cce3d447b68fb2039125 Mon Sep 17 00:00:00 2001 From: RogueException Date: Thu, 13 Oct 2016 12:02:34 -0300 Subject: [PATCH] Unpack the arg array if one exists when generating bucket ids --- src/Discord.Net.Core/API/DiscordRestApiClient.cs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/Discord.Net.Core/API/DiscordRestApiClient.cs b/src/Discord.Net.Core/API/DiscordRestApiClient.cs index 6611f233a..cb05b1896 100644 --- a/src/Discord.Net.Core/API/DiscordRestApiClient.cs +++ b/src/Discord.Net.Core/API/DiscordRestApiClient.cs @@ -1120,6 +1120,15 @@ namespace Discord.API var methodArgs = methodCall.Arguments.ToArray(); string format = (methodArgs[0] as ConstantExpression).Value as string; + //Unpack the array, if one exists (happens with 4+ parameters) + if (methodArgs.Length > 1 && methodArgs[1].NodeType == ExpressionType.NewArrayInit) + { + var arrayExpr = methodArgs[1] as NewArrayExpression; + var elements = arrayExpr.Expressions.ToArray(); + Array.Resize(ref methodArgs, elements.Length + 1); + Array.Copy(elements, 0, methodArgs, 1, elements.Length); + } + int endIndex = format.IndexOf('?'); //Dont include params if (endIndex == -1) endIndex = format.Length;