1
1
#include " api/PlayerAPI.h"
2
2
3
+ #include " EventAPI.h"
3
4
#include " MoreGlobal.h"
4
5
#include " ScriptX/ScriptX.h"
5
6
#include " api/APIHelp.h"
@@ -171,6 +172,7 @@ ClassDefine<PlayerClass> PlayerClassBuilder =
171
172
.instanceFunction(" disconnect" , &PlayerClass::kick)
172
173
.instanceFunction(" tell" , &PlayerClass::tell)
173
174
.instanceFunction(" talkAs" , &PlayerClass::talkAs)
175
+ .instanceFunction(" talkTo" , &PlayerClass::talkTo)
174
176
.instanceFunction(" sendText" , &PlayerClass::tell)
175
177
.instanceFunction(" setTitle" , &PlayerClass::setTitle)
176
178
.instanceFunction(" rename" , &PlayerClass::rename)
@@ -1525,14 +1527,25 @@ Local<Value> PlayerClass::talkAs(const Arguments& args) {
1525
1527
Player* player = get ();
1526
1528
if (!player) return Local<Value>();
1527
1529
1528
- TextPacket pkt = TextPacket::createChat (
1529
- player->getRealName (),
1530
- args[0 ].asString ().toString (),
1531
- player->getXuid (),
1532
- player->getPlatformOnlineId ()
1533
- );
1534
- ;
1535
- ll::service::getServerNetworkHandler ()->handle (player->getNetworkIdentifier (), pkt);
1530
+ TextPacket pkt =
1531
+ TextPacket::createChat (player->getName (), args[0 ].asString ().toString (), player->getXuid (), " " );
1532
+ if (ll::service::getLevel ().has_value ()) {
1533
+ IF_LISTENED (EVENT_TYPES::onChat) {
1534
+ CallEventRtnValue (
1535
+ EVENT_TYPES::onChat,
1536
+ Boolean::newBoolean (false ),
1537
+ PlayerClass::newPlayer (player),
1538
+ String::newString (args[0 ].asString ().toString ())
1539
+ );
1540
+ }
1541
+ IF_LISTENED_END (EVENT_TYPES::onChat);
1542
+ ll::service::getLevel ()->forEachPlayer ([&pkt](Player& player) {
1543
+ player.sendNetworkPacket (pkt);
1544
+ return true ;
1545
+ });
1546
+ } else {
1547
+ Boolean::newBoolean (false );
1548
+ }
1536
1549
return Boolean::newBoolean (true );
1537
1550
}
1538
1551
CATCH (" Fail in talkAs!" );
@@ -1548,13 +1561,8 @@ Local<Value> PlayerClass::talkTo(const Arguments& args) {
1548
1561
Player* player = get ();
1549
1562
if (!player) return Local<Value>();
1550
1563
1551
- TextPacket pkt = TextPacket ();
1552
- pkt.createChat (
1553
- player->getRealName (),
1554
- args[0 ].asString ().toString (),
1555
- player->getXuid (),
1556
- player->getPlatformOnlineId ()
1557
- );
1564
+ TextPacket pkt =
1565
+ TextPacket::createChat (player->getRealName (), args[0 ].asString ().toString (), player->getXuid (), " " );
1558
1566
target->sendNetworkPacket (pkt);
1559
1567
return Boolean::newBoolean (true );
1560
1568
}
0 commit comments