altmp/coreclr-module

StreamSyncedMetaData has been broken by dev.303 or 304

Closed this issue · 2 comments

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)

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

Fixed in dev.306