altmp / coreclr-module

CoreClr (.NET Core Common Language Runtime) community made module
MIT License
15 stars 7 forks source link

StreamSyncedMetaData has been broken by dev.303 or 304 #7

Closed M1raclee closed 5 months ago

M1raclee commented 5 months ago

It seems like something happened with key names. I saw some changes in http_client.cpp in 89b8ad3cf125547e94cf22603535383e192e457a, maybe it's a reason, because yesterday same code worked fine

In most cases keys looks like "empty": image

And sometimes it has strange symbols instead key name: image

Server-side:

Alt.OnPlayerConnect += (player, _) =>
{
     player.SetStreamSyncedMetaData("TestUserKey", "test user string data");
};

Client-side:

Alt.OnStreamSyncedMetaChange += (entity, key, newValue, oldValue) =>
{
    Alt.Log($"StreamSyncedMetaChange: {entity.Type}, {entity.Id}, Key: {key}, old: {oldValue}, new: {newValue}");
};

await Task.Delay(3000);

Alt.LocalPlayer.GetStreamSyncedMetaData("TestUserKey", out var value);
Alt.Log("StreamSyncedMetaData with key 'TestUserKey': " + value);

Expected result: Get a set value when request a meta-data by key

Actual result: Get an "empty" value, because key name is broken (see StreamSyncedMetaChange)

It worked fine for dev.299, but broken with dev.304 (client-side)

xLuxy commented 5 months ago

Same thing also happens on JS using the following code:

Client:

alt.on('streamSyncedMetaChange', alt.log);

Server:

player.setStreamSyncedMeta('hello', 'there');
player.setStreamSyncedMeta('hello', 'yes');

Result:

img

M1raclee commented 5 months ago

Fixed in dev.306