diff --git a/client/src/bindings/Player.cpp b/client/src/bindings/Player.cpp index e1fd1981..78f84116 100644 --- a/client/src/bindings/Player.cpp +++ b/client/src/bindings/Player.cpp @@ -238,6 +238,7 @@ extern V8Class v8Player("Player", V8Helpers::SetAccessor(isolate, tpl, "maxArmour"); V8Helpers::SetAccessor(isolate, tpl, "spatialVolume"); V8Helpers::SetAccessor(isolate, tpl, "nonSpatialVolume"); + V8Helpers::SetAccessor(isolate, tpl, "taskData"); // Weapon getters V8Helpers::SetAccessor(isolate, tpl, "currentWeaponComponents", &CurrentWeaponComponentsGetter); diff --git a/client/src/events/Entity.cpp b/client/src/events/Entity.cpp index 7cbc2201..a308b175 100644 --- a/client/src/events/Entity.cpp +++ b/client/src/events/Entity.cpp @@ -121,3 +121,23 @@ V8_LOCAL_EVENT_HANDLER entityHitEntity(EventType::ENTITY_HIT_ENTITY, args.push_back(resource->GetBaseObjectOrNull(ev->GetTarget())); args.push_back(V8Helpers::JSValue(ev->GetWeapon())); }); + +V8_LOCAL_EVENT_HANDLER playerStartTalking(EventType::PLAYER_START_TALKING, + "playerStartTalking", + [](V8ResourceImpl* resource, const CEvent* e, std::vector>& args) + { + auto ev = static_cast(e); + v8::Isolate* isolate = resource->GetIsolate(); + + args.push_back(resource->GetBaseObjectOrNull(ev->GetPlayer())); + }); + +V8_LOCAL_EVENT_HANDLER playerStopTalking(EventType::PLAYER_STOP_TALKING, + "playerStopTalking", + [](V8ResourceImpl* resource, const CEvent* e, std::vector>& args) + { + auto ev = static_cast(e); + v8::Isolate* isolate = resource->GetIsolate(); + + args.push_back(resource->GetBaseObjectOrNull(ev->GetPlayer())); + }); diff --git a/client/src/events/Vehicle.cpp b/client/src/events/Vehicle.cpp index 4b39b3a8..6092e47e 100644 --- a/client/src/events/Vehicle.cpp +++ b/client/src/events/Vehicle.cpp @@ -43,6 +43,9 @@ V8_LOCAL_EVENT_HANDLER enterVehicle(EventType::PLAYER_START_ENTER_VEHICLE, args.push_back(resource->GetOrCreateEntity(ev->GetTarget())->GetJSVal(isolate)); args.push_back(V8Helpers::JSValue(ev->GetSeat())); + + // TODO (xLuxy): Maybe move up? Would cause breaking change + args.push_back(resource->GetOrCreateEntity(ev->GetPlayer())->GetJSVal(isolate)); }); V8_LOCAL_EVENT_HANDLER leaveVehicle(EventType::PLAYER_START_LEAVE_VEHICLE, @@ -54,6 +57,9 @@ V8_LOCAL_EVENT_HANDLER leaveVehicle(EventType::PLAYER_START_LEAVE_VEHICLE, args.push_back(resource->GetOrCreateEntity(ev->GetTarget())->GetJSVal(isolate)); args.push_back(V8Helpers::JSValue(ev->GetSeat())); + + // TODO (xLuxy): Maybe move up? Would cause breaking change + args.push_back(resource->GetOrCreateEntity(ev->GetPlayer())->GetJSVal(isolate)); }); V8_LOCAL_EVENT_HANDLER diff --git a/server/src/bindings/Checkpoint.cpp b/server/src/bindings/Checkpoint.cpp index 72ee6173..237353f3 100644 --- a/server/src/bindings/Checkpoint.cpp +++ b/server/src/bindings/Checkpoint.cpp @@ -112,33 +112,27 @@ static void GetStreamSyncedMetaDataKeys(const v8::FunctionCallbackInfo& info) { V8_GET_ISOLATE_CONTEXT(); - - V8_CHECK_ARGS_LEN(2); - V8_ARG_TO_STRING(1, key); - V8_ARG_TO_MVALUE(2, value); - V8_GET_THIS_BASE_OBJECT(checkpoint, alt::ICheckpoint); - checkpoint->SetStreamSyncedMetaData(key, value); -} - -static void SetMultipleStreamSyncedMetaData(const v8::FunctionCallbackInfo& info) -{ - V8_GET_ISOLATE_CONTEXT(); - V8_GET_THIS_BASE_OBJECT(entity, alt::ICheckpoint); + if(info.Length() == 2) + { + V8_ARG_TO_STRING(1, key); + V8_ARG_TO_MVALUE(2, value); - V8_CHECK(info[0]->IsObject(), "Failed to convert argument 1 to object"); + checkpoint->SetStreamSyncedMetaData(key, value); + } + else if(info.Length() == 1 && info[0]->IsObject()) + { + auto dict = V8Helpers::CppValue>(info[0].As()); + std::unordered_map values; - auto dict = V8Helpers::CppValue>(info[0].As()); - std::unordered_map values; + if(dict.has_value()) + { + for(auto& [key, value] : dict.value()) values[key] = V8Helpers::V8ToMValue(value); + } - if (dict.has_value()) - { - for (auto& [key, value] : dict.value()) - values[key] = V8Helpers::V8ToMValue(value); + checkpoint->SetMultipleStreamSyncedMetaData(values); } - - entity->SetMultipleStreamSyncedMetaData(values); } static void DeleteStreamSyncedMeta(const v8::FunctionCallbackInfo& info) @@ -172,7 +166,6 @@ static void StaticGetByID(const v8::FunctionCallbackInfo& info) } } -// TODO (xLuxy): Checkpoints also exist on Client-side extern V8Class v8Colshape; extern V8Class v8Checkpoint("Checkpoint", v8Colshape, @@ -191,6 +184,5 @@ extern V8Class v8Checkpoint("Checkpoint", V8Helpers::SetMethod(isolate, tpl, "getStreamSyncedMeta", GetStreamSyncedMeta); V8Helpers::SetMethod(isolate, tpl, "getStreamSyncedMetaKeys", GetStreamSyncedMetaDataKeys); V8Helpers::SetMethod(isolate, tpl, "setStreamSyncedMeta", SetStreamSyncedMeta); - V8Helpers::SetMethod(isolate, tpl, "setMultipleStreamSyncedMetaData", SetMultipleStreamSyncedMetaData); V8Helpers::SetMethod(isolate, tpl, "deleteStreamSyncedMeta", DeleteStreamSyncedMeta); }); diff --git a/server/src/bindings/Main.cpp b/server/src/bindings/Main.cpp index c432d5e6..882f12be 100644 --- a/server/src/bindings/Main.cpp +++ b/server/src/bindings/Main.cpp @@ -285,15 +285,6 @@ static void DeleteSyncedMeta(const v8::FunctionCallbackInfo& info) alt::ICore::Instance().DeleteSyncedMetaData(key); } -static void GetNetTime(const v8::FunctionCallbackInfo& info) -{ - V8_GET_ISOLATE(); - - uint32_t netTime = alt::ICore::Instance().GetNetTime(); - - V8_RETURN_UINT(netTime); -} - static void SetPassword(const v8::FunctionCallbackInfo& info) { V8_GET_ISOLATE_CONTEXT(); @@ -415,6 +406,7 @@ static void GetVehicleModelByHash(const v8::FunctionCallbackInfo& inf infoObj->Set(ctx, V8Helpers::JSValue("bones"), boneArr); infoObj->Set(ctx, V8Helpers::JSValue("canAttachCars"), V8Helpers::JSValue(modelInfo.canAttachCars)); + infoObj->Set(ctx, V8Helpers::JSValue("handlingNameHash"), V8Helpers::JSValue(modelInfo.handlingNameHash)); V8_RETURN(infoObj); } @@ -813,8 +805,6 @@ extern V8Module V8Helpers::RegisterFunc(exports, "setSyncedMeta", &SetSyncedMeta); V8Helpers::RegisterFunc(exports, "deleteSyncedMeta", &DeleteSyncedMeta); - V8Helpers::RegisterFunc(exports, "getNetTime", &GetNetTime); - V8Helpers::RegisterFunc(exports, "setPassword", &SetPassword); V8Helpers::RegisterFunc(exports, "hashServerPassword", &HashServerPassword); diff --git a/server/src/events/Main.cpp b/server/src/events/Main.cpp index c9474107..e11d3d29 100644 --- a/server/src/events/Main.cpp +++ b/server/src/events/Main.cpp @@ -13,6 +13,7 @@ #include "cpp-sdk/events/CMetaDataChangeEvent.h" #include "cpp-sdk/events/CClientDeleteObjectEvent.h" #include "cpp-sdk/events/CClientRequestObjectEvent.h" +#include "cpp-sdk/events/CGivePedScriptedTaskEvent.h" using alt::CEvent; using EventType = CEvent::Type; @@ -253,3 +254,15 @@ V8_LOCAL_EVENT_HANDLER clientRequestObject(EventType::CLIENT_REQUEST_OBJECT_EVEN args.push_back(V8Helpers::JSValue(ev->GetModel())); args.push_back(resource->CreateVector3(ev->GetPosition())); }); + +V8_LOCAL_EVENT_HANDLER givePedScriptedTask(EventType::GIVE_PED_SCRIPTED_TASK, + "givePedScriptedTask", + [](V8ResourceImpl* resource, const CEvent* e, std::vector>& args) + { + auto ev = static_cast(e); + v8::Isolate* isolate = resource->GetIsolate(); + + args.push_back(resource->GetBaseObjectOrNull(ev->GetSource())); + args.push_back(resource->GetBaseObjectOrNull(ev->GetTarget())); + args.push_back(V8Helpers::JSValue(ev->GetTaskType())); + }); diff --git a/server/src/events/Ped.cpp b/server/src/events/Ped.cpp new file mode 100644 index 00000000..d8bfb121 --- /dev/null +++ b/server/src/events/Ped.cpp @@ -0,0 +1,55 @@ +#include "stdafx.h" + +#include "V8ResourceImpl.h" +#include "V8Helpers.h" + +#include "CNodeResourceImpl.h" + +#include "cpp-sdk/events/CPedDamageEvent.h" +#include "cpp-sdk/events/CPedDeathEvent.h" +#include "cpp-sdk/events/CPedHealEvent.h" + +using alt::CEvent; +using EventType = CEvent::Type; + +extern V8Class v8ConnectionInfo; + +V8Helpers::LocalEventHandler pedDamage(EventType::PED_DAMAGE, + "pedDamage", + [](V8ResourceImpl* resource, const CEvent* e, std::vector>& args) + { + auto ev = static_cast(e); + v8::Isolate* isolate = resource->GetIsolate(); + + args.push_back(resource->GetBaseObjectOrNull(ev->GetTarget())); + args.push_back(resource->GetBaseObjectOrNull(ev->GetAttacker())); + args.push_back(V8Helpers::JSValue(ev->GetHealthDamage())); + args.push_back(V8Helpers::JSValue(ev->GetArmourDamage())); + args.push_back(V8Helpers::JSValue(ev->GetWeapon())); + }); + +V8Helpers::LocalEventHandler pedDeath(EventType::PED_DEATH, + "pedDeath", + [](V8ResourceImpl* resource, const CEvent* e, std::vector>& args) + { + auto ev = static_cast(e); + v8::Isolate* isolate = resource->GetIsolate(); + + args.push_back(resource->GetBaseObjectOrNull(ev->GetTarget())); + args.push_back(resource->GetBaseObjectOrNull(ev->GetKiller())); + args.push_back(V8Helpers::JSValue(ev->GetWeapon())); + }); + +V8Helpers::LocalEventHandler pedHeal(EventType::PED_HEAL, + "pedHeal", + [](V8ResourceImpl* resource, const CEvent* e, std::vector>& args) + { + auto ev = static_cast(e); + v8::Isolate* isolate = resource->GetIsolate(); + + args.push_back(resource->GetBaseObjectOrNull(ev->GetTarget())); + args.push_back(V8Helpers::JSValue(ev->GetOldHealth())); + args.push_back(V8Helpers::JSValue(ev->GetNewHealth())); + args.push_back(V8Helpers::JSValue(ev->GetOldArmour())); + args.push_back(V8Helpers::JSValue(ev->GetNewArmour())); + }); diff --git a/shared/bindings/BaseObject.cpp b/shared/bindings/BaseObject.cpp index 0c9c389a..a3ffa5ac 100644 --- a/shared/bindings/BaseObject.cpp +++ b/shared/bindings/BaseObject.cpp @@ -92,32 +92,27 @@ static void GetMeta(const v8::FunctionCallbackInfo& info) static void SetMeta(const v8::FunctionCallbackInfo& info) { V8_GET_ISOLATE_CONTEXT(); - - V8_CHECK_ARGS_LEN(2); - V8_ARG_TO_STRING(1, key); - V8_ARG_TO_MVALUE(2, value); - V8_GET_THIS_BASE_OBJECT(obj, alt::IBaseObject); - obj->SetMetaData(key, value); -} - -static void SetMultipleMetaData(const v8::FunctionCallbackInfo& info) -{ - V8_GET_ISOLATE_CONTEXT(); - V8_GET_THIS_BASE_OBJECT(obj, alt::IBaseObject); + if (info.Length() == 2) + { + V8_ARG_TO_STRING(1, key); + V8_ARG_TO_MVALUE(2, value); - V8_CHECK(info[0]->IsObject(), "Failed to convert argument 1 to object"); + obj->SetMetaData(key, value); + } + else if (info.Length() == 1 && info[0]->IsObject()) + { + auto dict = V8Helpers::CppValue>(info[0].As()); + std::unordered_map values; - auto dict = V8Helpers::CppValue>(info[0].As()); - std::unordered_map values; + if(dict.has_value()) + { + for(auto& [key, value] : dict.value()) values[key] = V8Helpers::V8ToMValue(value); + } - if(dict.has_value()) - { - for(auto& [key, value] : dict.value()) values[key] = V8Helpers::V8ToMValue(value); + obj->SetMultipleMetaData(values); } - - obj->SetMultipleMetaData(values); } static void DeleteMeta(const v8::FunctionCallbackInfo& info) @@ -172,14 +167,28 @@ static void StaticGetById(const v8::FunctionCallbackInfo& info) static void SetSyncedMeta(const v8::FunctionCallbackInfo& info) { V8_GET_ISOLATE_CONTEXT(); + V8_GET_THIS_BASE_OBJECT(ent, alt::IBaseObject); - V8_CHECK_ARGS_LEN(2); - V8_ARG_TO_STRING(1, key); - V8_ARG_TO_MVALUE(2, value); + if (info.Length() == 2) + { + V8_ARG_TO_STRING(1, key); + V8_ARG_TO_MVALUE(2, value); - V8_GET_THIS_BASE_OBJECT(ent, alt::IBaseObject); + ent->SetSyncedMetaData(key, value); + } + else if (info.Length() == 1 && info[0]->IsObject()) + { + auto dict = V8Helpers::CppValue>(info[0].As()); + std::unordered_map values; - ent->SetSyncedMetaData(key, value); + if (dict.has_value()) + { + for (auto& [key, value] : dict.value()) + values[key] = V8Helpers::V8ToMValue(value); + } + + ent->SetMultipleSyncedMetaData(values); + } } static void DeleteSyncedMeta(const v8::FunctionCallbackInfo& info) @@ -234,7 +243,6 @@ extern V8Class v8BaseObject("BaseObject", V8Helpers::SetMethod(isolate, tpl, "hasMeta", HasMeta); V8Helpers::SetMethod(isolate, tpl, "getMeta", GetMeta); V8Helpers::SetMethod(isolate, tpl, "setMeta", SetMeta); - V8Helpers::SetMethod(isolate, tpl, "setMultipleMetaData", SetMultipleMetaData); V8Helpers::SetMethod(isolate, tpl, "deleteMeta", DeleteMeta); V8Helpers::SetMethod(isolate, tpl, "getMetaDataKeys", GetMetaDataKeys); V8Helpers::SetMethod(isolate, tpl, "destroy", Destroy); diff --git a/shared/bindings/BindingsMain.cpp b/shared/bindings/BindingsMain.cpp index a0bf4ca3..83db3dbf 100644 --- a/shared/bindings/BindingsMain.cpp +++ b/shared/bindings/BindingsMain.cpp @@ -456,6 +456,15 @@ static void GetVoiceConnectionState(const v8::FunctionCallbackInfo& i V8_RETURN_NUMBER(alt::ICore::Instance().GetVoiceConnectionState()); } +static void GetNetTime(const v8::FunctionCallbackInfo& info) +{ + V8_GET_ISOLATE(); + + uint32_t netTime = alt::ICore::Instance().GetNetTime(); + + V8_RETURN_UINT(netTime); +} + extern V8Class v8BaseObject, v8WorldObject, v8Entity, v8File, v8RGBA, v8Vector2, v8Vector3, v8Quaternion, v8Blip, v8AreaBlip, v8RadiusBlip, v8PointBlip, v8Resource, v8Utils; extern V8Module @@ -511,6 +520,8 @@ extern V8Module V8Helpers::RegisterFunc(exports, "getVoiceConnectionState", &GetVoiceConnectionState); + V8Helpers::RegisterFunc(exports, "getNetTime", &GetNetTime); + V8_OBJECT_SET_STRING(exports, "version", alt::ICore::Instance().GetVersion()); V8_OBJECT_SET_STRING(exports, "branch", alt::ICore::Instance().GetBranch()); // V8_OBJECT_SET_RAW_STRING(exports, "sdkVersion", ALT_SDK_VERSION); diff --git a/shared/bindings/Entity.cpp b/shared/bindings/Entity.cpp index 38bc7a7f..3f8ee548 100644 --- a/shared/bindings/Entity.cpp +++ b/shared/bindings/Entity.cpp @@ -77,33 +77,28 @@ static void ModelSetter(v8::Local, v8::Local val, const v static void SetStreamSyncedMeta(const v8::FunctionCallbackInfo& info) { V8_GET_ISOLATE_CONTEXT(); - - V8_CHECK_ARGS_LEN(2); - V8_ARG_TO_STRING(1, key); - V8_ARG_TO_MVALUE(2, value); - V8_GET_THIS_BASE_OBJECT(ent, alt::IEntity); - ent->SetStreamSyncedMetaData(key, value); -} - -static void SetMultipleSyncedMetaData(const v8::FunctionCallbackInfo& info) -{ - V8_GET_ISOLATE_CONTEXT(); - V8_GET_THIS_BASE_OBJECT(entity, alt::IEntity); + if (info.Length() == 2) + { + V8_ARG_TO_STRING(1, key); + V8_ARG_TO_MVALUE(2, value); - V8_CHECK(info[0]->IsObject(), "Failed to convert argument 1 to object"); + ent->SetStreamSyncedMetaData(key, value); + } + else if (info.Length() == 1 && info[0]->IsObject()) + { + auto dict = V8Helpers::CppValue>(info[0].As()); + std::unordered_map values; - auto dict = V8Helpers::CppValue>(info[0].As()); - std::unordered_map values; + if (dict.has_value()) + { + for (auto& [key, value] : dict.value()) + values[key] = V8Helpers::V8ToMValue(value); + } - if (dict.has_value()) - { - for (auto& [key, value] : dict.value()) - values[key] = V8Helpers::V8ToMValue(value); + ent->SetMultipleStreamSyncedMetaData(values); } - - entity->SetMultipleSyncedMetaData(values); } static void DeleteStreamSyncedMeta(const v8::FunctionCallbackInfo& info) @@ -278,7 +273,6 @@ extern V8Class v8Entity("Entity", V8Helpers::SetAccessor(isolate, tpl, "streamed"); V8Helpers::SetMethod(isolate, tpl, "setStreamSyncedMeta", SetStreamSyncedMeta); - V8Helpers::SetMethod(isolate, tpl, "setMultipleSyncedMetaData", SetMultipleSyncedMetaData); V8Helpers::SetMethod(isolate, tpl, "deleteStreamSyncedMeta", DeleteStreamSyncedMeta); V8Helpers::SetMethod(isolate, tpl, "setNetOwner", SetNetOwner); diff --git a/shared/bindings/VirtualEntity.cpp b/shared/bindings/VirtualEntity.cpp index 6b6b82fb..ce9b0747 100644 --- a/shared/bindings/VirtualEntity.cpp +++ b/shared/bindings/VirtualEntity.cpp @@ -85,14 +85,19 @@ static void GetMetaKeys(const v8::FunctionCallbackInfo& info) static void SetMeta(const v8::FunctionCallbackInfo& info) { V8_GET_ISOLATE_CONTEXT(); + V8_GET_THIS_BASE_OBJECT(ent, alt::IVirtualEntity); - V8_CHECK_ARGS_LEN(2); - V8_ARG_TO_STRING(1, key); - V8_ARG_TO_MVALUE(2, value); + if (info.Length() == 2) + { + V8_ARG_TO_STRING(1, key); + V8_ARG_TO_MVALUE(2, value); - V8_GET_THIS_BASE_OBJECT(ent, alt::IVirtualEntity); + ent->SetMetaData(key, value); + } + else if (info.Length() == 1 && info[0]->IsObject()) + { - ent->SetMetaData(key, value); + } } static void DeleteMeta(const v8::FunctionCallbackInfo& info) @@ -152,33 +157,28 @@ static void GetStreamSyncedMetaDataKeys(const v8::FunctionCallbackInfo& info) { V8_GET_ISOLATE_CONTEXT(); - - V8_CHECK_ARGS_LEN(2); - V8_ARG_TO_STRING(1, key); - V8_ARG_TO_MVALUE(2, value); - V8_GET_THIS_BASE_OBJECT(ent, alt::IVirtualEntity); - ent->SetStreamSyncedMetaData(key, value); -} - -static void SetMultipleStreamSyncedMetaData(const v8::FunctionCallbackInfo& info) -{ - V8_GET_ISOLATE_CONTEXT(); - V8_GET_THIS_BASE_OBJECT(entity, alt::IVirtualEntity); + if (info.Length() == 2) + { + V8_ARG_TO_STRING(1, key); + V8_ARG_TO_MVALUE(2, value); - V8_CHECK(info[0]->IsObject(), "Failed to convert argument 1 to object"); + ent->SetStreamSyncedMetaData(key, value); + } + else if (info.Length() == 1 && info[0]->IsObject()) + { + auto dict = V8Helpers::CppValue>(info[0].As()); + std::unordered_map values; - auto dict = V8Helpers::CppValue>(info[0].As()); - std::unordered_map values; + if (dict.has_value()) + { + for (auto& [key, value] : dict.value()) + values[key] = V8Helpers::V8ToMValue(value); + } - if (dict.has_value()) - { - for (auto& [key, value] : dict.value()) - values[key] = V8Helpers::V8ToMValue(value); + ent->SetMultipleStreamSyncedMetaData(values); } - - entity->SetMultipleStreamSyncedMetaData(values); } static void DeleteStreamSyncedMeta(const v8::FunctionCallbackInfo& info) @@ -234,7 +234,6 @@ extern V8Class v8VirtualEntity("VirtualEntity", #ifdef ALT_SERVER_API V8Helpers::SetMethod(isolate, tpl, "setStreamSyncedMeta", SetStreamSyncedMeta); - V8Helpers::SetMethod(isolate, tpl, "setMultipleStreamSyncedMetaData", SetMultipleStreamSyncedMetaData); V8Helpers::SetMethod(isolate, tpl, "deleteStreamSyncedMeta", DeleteStreamSyncedMeta); #endif // ALT_SERVER_API diff --git a/shared/bindings/VirtualEntityGroup.cpp b/shared/bindings/VirtualEntityGroup.cpp index 3151abbc..310ce123 100644 --- a/shared/bindings/VirtualEntityGroup.cpp +++ b/shared/bindings/VirtualEntityGroup.cpp @@ -67,14 +67,28 @@ static void GetMetaKeys(const v8::FunctionCallbackInfo& info) static void SetMeta(const v8::FunctionCallbackInfo& info) { V8_GET_ISOLATE_CONTEXT(); + V8_GET_THIS_BASE_OBJECT(ent, alt::IVirtualEntityGroup); - V8_CHECK_ARGS_LEN(2); - V8_ARG_TO_STRING(1, key); - V8_ARG_TO_MVALUE(2, value); + if (info.Length() == 2) + { + V8_ARG_TO_STRING(1, key); + V8_ARG_TO_MVALUE(2, value); - V8_GET_THIS_BASE_OBJECT(ent, alt::IVirtualEntityGroup); + ent->SetMetaData(key, value); + } + else if (info.Length() == 1 && info[0]->IsObject()) + { + auto dict = V8Helpers::CppValue>(info[0].As()); + std::unordered_map values; - ent->SetMetaData(key, value); + if (dict.has_value()) + { + for (auto& [key, value] : dict.value()) + values[key] = V8Helpers::V8ToMValue(value); + } + + ent->SetMultipleMetaData(values); + } } static void DeleteMeta(const v8::FunctionCallbackInfo& info) diff --git a/shared/deps/cpp-sdk b/shared/deps/cpp-sdk index 22c74ce2..91be63bb 160000 --- a/shared/deps/cpp-sdk +++ b/shared/deps/cpp-sdk @@ -1 +1 @@ -Subproject commit 22c74ce2dc45891de76ed80ba37ee9628f0c56b3 +Subproject commit 91be63bbdff082ece762e0c829b108e7867e47f3