Core Merge PR - Replace OnPlayerChat with OnPlayerCanUseChat (#1838)

First stab at getting this working. Im not sure if Im missing something,
but it seemed to be a pretty simple change overall.

Based on testing the bots do respond to commands via whisper and group.

Edit: Relevant PR this addresses.

50f8f145d2 (diff-baadebd8cd1117ca48225f316a5ab3fd5fd55b20963394d302341147183db067)
This commit is contained in:
Keleborn
2025-11-23 11:45:31 -08:00
committed by GitHub
parent cf743a186a
commit 2424f73bc4

View File

@@ -82,12 +82,12 @@ public:
PlayerbotsPlayerScript() : PlayerScript("PlayerbotsPlayerScript", { PlayerbotsPlayerScript() : PlayerScript("PlayerbotsPlayerScript", {
PLAYERHOOK_ON_LOGIN, PLAYERHOOK_ON_LOGIN,
PLAYERHOOK_ON_AFTER_UPDATE, PLAYERHOOK_ON_AFTER_UPDATE,
PLAYERHOOK_ON_CHAT,
PLAYERHOOK_ON_CHAT_WITH_CHANNEL,
PLAYERHOOK_ON_CHAT_WITH_GROUP,
PLAYERHOOK_ON_BEFORE_CRITERIA_PROGRESS, PLAYERHOOK_ON_BEFORE_CRITERIA_PROGRESS,
PLAYERHOOK_ON_BEFORE_ACHI_COMPLETE, PLAYERHOOK_ON_BEFORE_ACHI_COMPLETE,
PLAYERHOOK_CAN_PLAYER_USE_PRIVATE_CHAT, PLAYERHOOK_CAN_PLAYER_USE_PRIVATE_CHAT,
PLAYERHOOK_CAN_PLAYER_USE_GROUP_CHAT,
PLAYERHOOK_CAN_PLAYER_USE_GUILD_CHAT,
PLAYERHOOK_CAN_PLAYER_USE_CHANNEL_CHAT,
PLAYERHOOK_ON_GIVE_EXP, PLAYERHOOK_ON_GIVE_EXP,
PLAYERHOOK_ON_BEFORE_TELEPORT PLAYERHOOK_ON_BEFORE_TELEPORT
}) {} }) {}
@@ -163,15 +163,12 @@ public:
if (PlayerbotAI* botAI = GET_PLAYERBOT_AI(receiver)) if (PlayerbotAI* botAI = GET_PLAYERBOT_AI(receiver))
{ {
botAI->HandleCommand(type, msg, player); botAI->HandleCommand(type, msg, player);
return false;
} }
} }
return true; return true;
} }
void OnPlayerChat(Player* player, uint32 type, uint32 /*lang*/, std::string& msg, Group* group) override bool OnPlayerCanUseChat(Player* player, uint32 type, uint32 /*lang*/, std::string& msg, Group* group) override
{ {
for (GroupReference* itr = group->GetFirstMember(); itr != nullptr; itr = itr->next()) for (GroupReference* itr = group->GetFirstMember(); itr != nullptr; itr = itr->next())
{ {
@@ -183,9 +180,10 @@ public:
} }
} }
} }
return true;
} }
void OnPlayerChat(Player* player, uint32 type, uint32 /*lang*/, std::string& msg) override bool OnPlayerCanUseChat(Player* player, uint32 type, uint32 /*lang*/, std::string& msg, Guild* guild) override
{ {
if (type == CHAT_MSG_GUILD) if (type == CHAT_MSG_GUILD)
{ {
@@ -204,9 +202,10 @@ public:
} }
} }
} }
return true;
} }
void OnPlayerChat(Player* player, uint32 type, uint32 /*lang*/, std::string& msg, Channel* channel) override bool OnPlayerCanUseChat(Player* player, uint32 type, uint32 /*lang*/, std::string& msg, Channel* channel) override
{ {
if (PlayerbotMgr* playerbotMgr = GET_PLAYERBOT_MGR(player)) if (PlayerbotMgr* playerbotMgr = GET_PLAYERBOT_MGR(player))
{ {
@@ -217,6 +216,7 @@ public:
} }
sRandomPlayerbotMgr->HandleCommand(type, msg, player); sRandomPlayerbotMgr->HandleCommand(type, msg, player);
return true;
} }
bool OnPlayerBeforeAchievementComplete(Player* player, AchievementEntry const* achievement) override bool OnPlayerBeforeAchievementComplete(Player* player, AchievementEntry const* achievement) override