44#include " ll/api/service/Bedrock.h"
55#include " magic_enum.hpp"
66#include " mc/certificates/WebToken.h"
7+ #include " mc/enums/InputMode.h"
78#include " mc/network/ConnectionRequest.h"
89#include " mc/network/ServerNetworkHandler.h"
910#include " mc/world/actor/player/Player.h"
1314#include < string>
1415
1516// ////////////////// Class Definition ////////////////////
17+ ClassDefine<void > InputModeStaticBuilder = EnumDefineBuilder<InputMode>::build(" InputMode" );
1618
1719ClassDefine<DeviceClass> DeviceClassBuilder = defineClass<DeviceClass>(" LLSE_Device" )
1820 .constructor(nullptr )
@@ -22,8 +24,8 @@ ClassDefine<DeviceClass> DeviceClassBuilder = defineClass<DeviceClass>("LLSE_Dev
2224 .instanceProperty(" lastPing" , &DeviceClass::getLastPing)
2325 .instanceProperty(" lastPacketLoss" , &DeviceClass::getLastPacketLoss)
2426 .instanceProperty(" os" , &DeviceClass::getOs)
25- // .instanceProperty("inputMode", &DeviceClass::getInputMode)
26- // .instanceProperty("playMode", &DeviceClass::getPlayMode)
27+ .instanceProperty(" inputMode" , &DeviceClass::getInputMode)
28+ // .instanceProperty("playMode", &DeviceClass::getPlayMode)
2729 .instanceProperty(" serverAddress" , &DeviceClass::getServerAddress)
2830 .instanceProperty(" clientId" , &DeviceClass::getClientId)
2931 .build();
@@ -121,9 +123,9 @@ Local<Value> DeviceClass::getServerAddress() {
121123 return Local<Value>();
122124 }
123125 if (player->isSimulatedPlayer ()) String::newString (" unknown" );
124- Json::Value requestJson = ll::service::getServerNetworkHandler ()
125- ->fetchConnectionRequest (player->getNetworkIdentifier ())
126- .mRawToken ->mDataInfo ;
126+ Json::Value& requestJson = ll::service::getServerNetworkHandler ()
127+ ->fetchConnectionRequest (player->getNetworkIdentifier ())
128+ .mRawToken ->mDataInfo ;
127129 return String::newString (requestJson.get (" ServerAddress" , " unknown" ).asString (" unknown" ));
128130 }
129131 CATCH (" Fail in getServerAddress!" )
@@ -136,29 +138,30 @@ Local<Value> DeviceClass::getClientId() {
136138
137139 return String::newString (
138140 ll::service::getServerNetworkHandler ()->fetchConnectionRequest (player->getNetworkIdentifier ()).getDeviceId ()
139- ); // =============???
141+ );
140142 }
141143 CATCH (" Fail in getClientId!" )
142144}
143145
144- // Local<Value> DeviceClass::getInputMode() {
145- // try {
146- // Player* player = getPlayer();
147- // if (!player)
148- // return Local<Value>();
149- //
150- // return Number::newNumber((int)player->getInputMode());
151- // }
152- // CATCH("Fail in getInputMode!")
153- // }
154- //
146+ Local<Value> DeviceClass::getInputMode () {
147+ try {
148+ Player* player = getPlayer ();
149+ if (!player) return Local<Value>();
150+
151+ Json::Value& requestJson = ll::service::getServerNetworkHandler ()
152+ ->fetchConnectionRequest (player->getNetworkIdentifier ())
153+ .mRawToken ->mDataInfo ;
154+ return Number::newNumber (requestJson.get (" CurrentInputMode" , 0 ).asInt (0 ));
155+ }
156+ CATCH (" Fail in getInputMode!" )
157+ }
158+
155159// Local<Value> DeviceClass::getPlayMode() {
156160// try {
157161// Player* player = getPlayer();
158- // if (!player)
159- // return Local<Value>();
160- //
161- // return Number::newNumber((int)player->getPlayMode());
162+ // if (!player) return Local<Value>();
163+
164+ // return Number::newNumber(0);
162165// }
163166// CATCH("Fail in getPlayMode!")
164167// }
0 commit comments