@@ -27,6 +27,9 @@ ClassDefine<void> DataClassBuilder = defineClass("data")
27
27
.function(" xuid2uuid" , &DataClass::xuid2uuid)
28
28
.function(" name2uuid" , &DataClass::name2uuid)
29
29
.function(" getAllPlayerInfo" , &DataClass::getAllPlayerInfo)
30
+ .function(" fromUuid" , &DataClass::fromUuid)
31
+ .function(" fromXuid" , &DataClass::fromXuid)
32
+ .function(" fromName" , &DataClass::fromName)
30
33
.function(" parseJson" , &DataClass::parseJson)
31
34
.function(" toJson" , &DataClass::toJson)
32
35
.function(" toMD5" , &DataClass::toMD5)
@@ -701,7 +704,11 @@ Local<Value> DataClass::xuid2name(const Arguments& args) {
701
704
702
705
try {
703
706
auto playerInfo = ll::service::PlayerInfo::getInstance ().fromXuid (args[0 ].asString ().toString ());
704
- return String::newString (playerInfo ? playerInfo->name : std::string ());
707
+ if (playerInfo) {
708
+ return String::newString (playerInfo->name );
709
+ } else {
710
+ return {};
711
+ }
705
712
}
706
713
CATCH (" Fail in XuidToName!" );
707
714
}
@@ -712,7 +719,11 @@ Local<Value> DataClass::name2xuid(const Arguments& args) {
712
719
713
720
try {
714
721
auto playerInfo = ll::service::PlayerInfo::getInstance ().fromName (args[0 ].asString ().toString ());
715
- return String::newString (playerInfo ? playerInfo->xuid : std::string ());
722
+ if (playerInfo) {
723
+ return String::newString (playerInfo->xuid );
724
+ } else {
725
+ return {};
726
+ }
716
727
}
717
728
CATCH (" Fail in NameToXuid!" );
718
729
}
@@ -723,7 +734,11 @@ Local<Value> DataClass::name2uuid(const Arguments& args) {
723
734
724
735
try {
725
736
auto playerInfo = ll::service::PlayerInfo::getInstance ().fromName (args[0 ].asString ().toString ());
726
- return String::newString (playerInfo ? playerInfo->uuid .asString () : std::string ());
737
+ if (playerInfo) {
738
+ return String::newString (playerInfo->uuid .asString ());
739
+ } else {
740
+ return {};
741
+ }
727
742
}
728
743
CATCH (" Fail in NameToUuid!" );
729
744
}
@@ -734,12 +749,15 @@ Local<Value> DataClass::xuid2uuid(const Arguments& args) {
734
749
735
750
try {
736
751
auto playerInfo = ll::service::PlayerInfo::getInstance ().fromXuid (args[0 ].asString ().toString ());
737
- return String::newString (playerInfo ? playerInfo->uuid .asString () : std::string ());
752
+ if (playerInfo) {
753
+ return String::newString (playerInfo->uuid .asString ());
754
+ } else {
755
+ return {};
756
+ }
738
757
}
739
758
CATCH (" Fail in XuidToUuid!" );
740
759
}
741
760
742
- // Unsupported
743
761
Local<Value> DataClass::getAllPlayerInfo (const Arguments& args) {
744
762
CHECK_ARGS_COUNT (args, 0 );
745
763
@@ -763,6 +781,64 @@ Local<Value> DataClass::getAllPlayerInfo(const Arguments& args) {
763
781
CATCH (" Fail in getAllPlayerInfo!" );
764
782
}
765
783
784
+ // New API for LSE
785
+ Local<Value> DataClass::fromUuid (const Arguments& args) {
786
+ CHECK_ARGS_COUNT (args, 1 );
787
+ CHECK_ARG_TYPE (args[0 ], ValueKind::kString );
788
+
789
+ try {
790
+ auto playerInfo = ll::service::PlayerInfo::getInstance ().fromUuid (args[0 ].asString ().toString ());
791
+ if (playerInfo) {
792
+ auto object = Object::newObject ();
793
+ object.set (" xuid" , playerInfo->xuid );
794
+ object.set (" name" , playerInfo->name );
795
+ object.set (" uuid" , playerInfo->uuid .asString ());
796
+ return object;
797
+ } else {
798
+ return {};
799
+ }
800
+ }
801
+ CATCH (" Fail in NameToUuid!" );
802
+ }
803
+
804
+ Local<Value> DataClass::fromXuid (const Arguments& args) {
805
+ CHECK_ARGS_COUNT (args, 1 );
806
+ CHECK_ARG_TYPE (args[0 ], ValueKind::kString );
807
+
808
+ try {
809
+ auto playerInfo = ll::service::PlayerInfo::getInstance ().fromXuid (args[0 ].asString ().toString ());
810
+ if (playerInfo) {
811
+ auto object = Object::newObject ();
812
+ object.set (" xuid" , playerInfo->xuid );
813
+ object.set (" name" , playerInfo->name );
814
+ object.set (" uuid" , playerInfo->uuid .asString ());
815
+ return object;
816
+ } else {
817
+ return {};
818
+ }
819
+ }
820
+ CATCH (" Fail in NameToUuid!" );
821
+ }
822
+
823
+ Local<Value> DataClass::fromName (const Arguments& args) {
824
+ CHECK_ARGS_COUNT (args, 1 );
825
+ CHECK_ARG_TYPE (args[0 ], ValueKind::kString );
826
+
827
+ try {
828
+ auto playerInfo = ll::service::PlayerInfo::getInstance ().fromName (args[0 ].asString ().toString ());
829
+ if (playerInfo) {
830
+ auto object = Object::newObject ();
831
+ object.set (" xuid" , playerInfo->xuid );
832
+ object.set (" name" , playerInfo->name );
833
+ object.set (" uuid" , playerInfo->uuid .asString ());
834
+ return object;
835
+ } else {
836
+ return {};
837
+ }
838
+ }
839
+ CATCH (" Fail in NameToUuid!" );
840
+ }
841
+
766
842
Local<Value> DataClass::toJson (const Arguments& args) {
767
843
CHECK_ARGS_COUNT (args, 1 );
768
844
if (args.size () >= 2 ) CHECK_ARG_TYPE (args[1 ], ValueKind::kNumber );
0 commit comments