diff --git a/libraries/entities/src/EntityScriptingInterface.cpp b/libraries/entities/src/EntityScriptingInterface.cpp index c9ac379827..bba9347cff 100644 --- a/libraries/entities/src/EntityScriptingInterface.cpp +++ b/libraries/entities/src/EntityScriptingInterface.cpp @@ -672,23 +672,20 @@ RayToEntityIntersectionResult EntityScriptingInterface::findRayIntersectionWorke } bool EntityScriptingInterface::reloadServerScripts(QUuid entityID) { - // Send packet to entity script server - auto nodeList = DependencyManager::get(); - SharedNodePointer entityScriptServer = nodeList->soloNodeOfType(NodeType::AssetServer); + auto client = DependencyManager::get(); + return client->reloadServerScript(entityID); +} - if (entityScriptServer) { - auto id = entityID.toByteArray(); - auto payloadSize = id.size(); - auto packet = NLPacket::create(PacketType::ReloadEntityServerScript, payloadSize, true); - - packet->write(id); - - if (nodeList->sendPacket(std::move(packet), *entityScriptServer) != -1) { - return true; - } - } - - return false; +bool EntityScriptingInterface::getServerScriptStatus(QUuid entityID, QScriptValue callback) { + auto client = DependencyManager::get(); + auto request = client->createScriptStatusRequest(entityID); + connect(request, &GetScriptStatusRequest::finished, callback.engine(), [callback](GetScriptStatusRequest* request) mutable { + QScriptValueList args { true }; + callback.call(QScriptValue(), args); + request->deleteLater(); + }); + request->start(); + return true; } void EntityScriptingInterface::setLightsArePickable(bool value) { diff --git a/libraries/entities/src/EntityScriptingInterface.h b/libraries/entities/src/EntityScriptingInterface.h index 30739782ea..12fef968f9 100644 --- a/libraries/entities/src/EntityScriptingInterface.h +++ b/libraries/entities/src/EntityScriptingInterface.h @@ -211,6 +211,7 @@ public slots: Q_INVOKABLE RayToEntityIntersectionResult findRayIntersectionBlocking(const PickRay& ray, bool precisionPicking = false, const QScriptValue& entityIdsToInclude = QScriptValue(), const QScriptValue& entityIdsToDiscard = QScriptValue()); Q_INVOKABLE bool reloadServerScripts(QUuid entityID); + Q_INVOKABLE bool getServerScriptStatus(QUuid entityID, QScriptValue callback); Q_INVOKABLE void setLightsArePickable(bool value); Q_INVOKABLE bool getLightsArePickable() const;