Skip to content

Commit

Permalink
fix: fixed rpc response in mockmode
Browse files Browse the repository at this point in the history
  • Loading branch information
momintlh committed Jun 12, 2024
1 parent 674f69d commit 0fd6a3f
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 9 deletions.
23 changes: 16 additions & 7 deletions Assets/PlayroomKit/MockMode.cs
Original file line number Diff line number Diff line change
Expand Up @@ -54,28 +54,37 @@ private static T MockGetState<T>(string key)
}
}

private static Dictionary<string, Action> mockCallbackOnResponse = new();
private static Dictionary<string, (Action<string, string> callback, string response)> mockRegisterCallbacks = new();
private static Dictionary<string, Action> mockResponseCallbacks = new();

private static void MockRpcRegister(string name, Action<string, string> rpcRegisterCallback, string onResponseReturn = null)
{
CallbackManager.RegisterCallback(rpcRegisterCallback, name);
if (!string.IsNullOrEmpty(onResponseReturn)) Debug.Log(onResponseReturn);
mockRegisterCallbacks.TryAdd(name, (rpcRegisterCallback, onResponseReturn));
}

private static void MockRpcCall(string name, object data, RpcMode mode, Action callbackOnResponse)
{
if (!mockCallbackOnResponse.ContainsKey(name))
mockCallbackOnResponse.Add(name, callbackOnResponse);
mockResponseCallbacks.TryAdd(name, callbackOnResponse);

string stringData = Convert.ToString(data);
var player = MyPlayer();
CallbackManager.InvokeCallback(name, stringData, player.id);

if (mockCallbackOnResponse.TryGetValue(name, out var callback))
if (mockRegisterCallbacks.TryGetValue(name, out var responseHandler))
{
responseHandler.callback?.Invoke(stringData, player.id);

if (!string.IsNullOrEmpty(responseHandler.response))
{
Debug.Log($"Response received: {responseHandler.response}");
}
}

if (mockResponseCallbacks.TryGetValue(name, out var callback))
{
callback?.Invoke();
}
}

}

}
1 change: 0 additions & 1 deletion Assets/PlayroomKit/modules/CallbackManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ public static string RegisterCallback(Delegate callback, string key = null)
if (string.IsNullOrEmpty(key))
key = GenerateKey();


if (!callbacks.ContainsKey(key))
{
callbacks.Add(key, callback);
Expand Down
2 changes: 1 addition & 1 deletion Assets/PlayroomKit/modules/RPC.cs
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ public static void RpcCall(string name, object data, RpcMode mode, Action callba
}
else
{
MockRpcCall(name, data, RpcMode.ALL, callbackOnResponse);
MockRpcCall(name, data, mode, callbackOnResponse);
}

}
Expand Down

0 comments on commit 0fd6a3f

Please sign in to comment.