#include "APIHelp.h" #include "DeviceAPI.h" #include #include #include #include using namespace std; //////////////////// Class Definition //////////////////// ClassDefine DeviceClassBuilder = defineClass("LLSE_Device") .constructor(nullptr) .instanceProperty("ip", &DeviceClass::getIP) .instanceProperty("avgPing", &DeviceClass::getAvgPing) .instanceProperty("avgPacketLoss", &DeviceClass::getAvgPacketLoss) .instanceProperty("lastPing", &DeviceClass::getLastPing) .instanceProperty("lastPacketLoss", &DeviceClass::getLastPacketLoss) .instanceProperty("os", &DeviceClass::getOs) .instanceProperty("serverAddress", &DeviceClass::getServerAddress) .instanceProperty("clientId", &DeviceClass::getClientId) .build(); //////////////////// Classes //////////////////// //生成函数 Local DeviceClass::newDevice(Player* p) { auto newp = new DeviceClass(p); return newp->getScriptObject(); } //成员函数 void DeviceClass::setPlayer(Player* player) { __try { id = player->getUniqueID(); } __except (EXCEPTION_EXECUTE_HANDLER) { isValid = false; } } Player* DeviceClass::getPlayer() { if (!isValid) return nullptr; else return ::Global->getPlayer(id); } Local DeviceClass::getIP() { try { Player* player = getPlayer(); if (!player) return Local(); return String::newString(player->getNetworkIdentifier()->getIP()); } CATCH("Fail in GetIP!") } Local DeviceClass::getAvgPing() { try { Player* player = getPlayer(); if (!player) return Local(); return Number::newNumber(player->getAvgPing()); } CATCH("Fail in getAvgPing!") } Local DeviceClass::getAvgPacketLoss() { try { Player* player = getPlayer(); if (!player) return Local(); return Number::newNumber(player->getAvgPacketLoss()); } CATCH("Fail in getAvgPacketLoss!") } Local DeviceClass::getLastPing() { try { Player* player = getPlayer(); if (!player) { return Local(); } return Number::newNumber(player->getLastPing()); } CATCH("Fail in getLastPing!") } Local DeviceClass::getLastPacketLoss() { try { Player* player = getPlayer(); if (!player) { return Local(); } return Number::newNumber(player->getLastPacketLoss()); } CATCH("Fail in getLastPacketLoss!") } Local DeviceClass::getOs() { try { Player* player = getPlayer(); if (!player) return Local(); return String::newString(player->getDeviceName()); } CATCH("Fail in getOs!") } Local DeviceClass::getServerAddress() { try { Player* player = getPlayer(); if (!player) { return Local(); } return String::newString(player->getServerAddress()); } CATCH("Fail in getServerAddress!") } Local DeviceClass::getClientId() { try { Player* player = getPlayer(); if (!player) return Local(); return String::newString(player->getClientId()); //=============??? } CATCH("Fail in getClientId!") }