Skip to content

Commit 9957ec4

Browse files
authored
feat: improve PlayerClass::talkAs (#287)
1 parent 36b054d commit 9957ec4

File tree

1 file changed

+7
-14
lines changed

1 file changed

+7
-14
lines changed

src/legacy/api/PlayerAPI.cpp

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1678,20 +1678,13 @@ Local<Value> PlayerClass::talkAs(const Arguments& args) {
16781678
try {
16791679
Player* player = get();
16801680
if (!player) return Local<Value>();
1681-
1682-
TextPacket pkt =
1683-
TextPacket::createChat(player->getRealName(), args[0].asString().toString(), {}, player->getXuid(), {});
16841681
if (ll::service::getLevel().has_value()) {
1685-
IF_LISTENED(EVENT_TYPES::onChat) {
1686-
if (!CallEvent(
1687-
EVENT_TYPES::onChat,
1688-
PlayerClass::newPlayer(player),
1689-
String::newString(args[0].asString().toString())
1690-
)) {
1691-
return Boolean::newBoolean(false);
1692-
}
1693-
}
1694-
IF_LISTENED_END(EVENT_TYPES::onChat);
1682+
auto msg = args[0].asString().toString();
1683+
ll::event::PlayerChatEvent event{*reinterpret_cast<ServerPlayer*>(player), msg};
1684+
ll::event::EventBus::getInstance().publish(event);
1685+
if (event.isCancelled()) return Boolean::newBoolean(false);
1686+
TextPacket pkt =
1687+
TextPacket::createChat(player->getRealName(), msg, {}, player->getXuid(), {});
16951688
ll::service::getLevel()->forEachPlayer([&pkt](Player& player) {
16961689
player.sendNetworkPacket(pkt);
16971690
return true;
@@ -3717,4 +3710,4 @@ Local<Value> PlayerClass::toEntity(const Arguments&) {
37173710
return EntityClass::newEntity(get());
37183711
}
37193712
CATCH("Fail in toEntity!");
3720-
}
3713+
}

0 commit comments

Comments
 (0)