mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-23 18:36:31 +01:00
Core/PacketIO: Updated and enabled SMSG_CHAT_SERVER_MESSAGE
This commit is contained in:
@@ -221,3 +221,15 @@ WorldPacket const* WorldPackets::Chat::ChatPlayerNotfound::Write()
|
||||
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
WorldPacket const* WorldPackets::Chat::ChatServerMessage::Write()
|
||||
{
|
||||
_worldPacket << MessageID;
|
||||
|
||||
_worldPacket.WriteBits(StringParam.length(), 11);
|
||||
_worldPacket.FlushBits();
|
||||
|
||||
_worldPacket.WriteString(StringParam);
|
||||
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
@@ -239,6 +239,17 @@ namespace WorldPackets
|
||||
|
||||
std::string Name;
|
||||
};
|
||||
|
||||
class ChatServerMessage final : public ServerPacket
|
||||
{
|
||||
public:
|
||||
ChatServerMessage() : ServerPacket(SMSG_CHAT_SERVER_MESSAGE, 4 + 2) { }
|
||||
|
||||
WorldPacket const* Write() override;
|
||||
|
||||
int32 MessageID = 0;
|
||||
std::string StringParam;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1012,7 +1012,7 @@ void OpcodeTable::Initialize()
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHAT_PLAYER_NOTFOUND, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHAT_RECONNECT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHAT_RESTRICTED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHAT_SERVER_MESSAGE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHAT_SERVER_MESSAGE, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHEAT_IGNORE_DIMISHING_RETURNS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHECK_WARGAME_ENTRY, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHUNKED_PACKET, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
|
||||
@@ -2747,7 +2747,7 @@ void World::ShutdownMsg(bool show, Player* player, const std::string& reason)
|
||||
|
||||
ServerMessageType msgid = (m_ShutdownMask & SHUTDOWN_MASK_RESTART) ? SERVER_MSG_RESTART_TIME : SERVER_MSG_SHUTDOWN_TIME;
|
||||
|
||||
SendServerMessage(msgid, str.c_str(), player);
|
||||
SendServerMessage(msgid, str, player);
|
||||
TC_LOG_DEBUG("misc", "Server is %s in %s", (m_ShutdownMask & SHUTDOWN_MASK_RESTART ? "restart" : "shuttingdown"), str.c_str());
|
||||
}
|
||||
}
|
||||
@@ -2772,17 +2772,17 @@ void World::ShutdownCancel()
|
||||
}
|
||||
|
||||
/// Send a server message to the user(s)
|
||||
void World::SendServerMessage(ServerMessageType type, const char *text, Player* player)
|
||||
void World::SendServerMessage(ServerMessageType messageID, std::string stringParam /*= ""*/, Player* player /*= NULL*/)
|
||||
{
|
||||
WorldPacket data(SMSG_CHAT_SERVER_MESSAGE, 50); // guess size
|
||||
data << uint32(type);
|
||||
if (type <= SERVER_MSG_STRING)
|
||||
data << text;
|
||||
WorldPackets::Chat::ChatServerMessage chatServerMessage;
|
||||
chatServerMessage.MessageID = int32(messageID);
|
||||
if (messageID <= SERVER_MSG_STRING)
|
||||
chatServerMessage.StringParam = stringParam;
|
||||
|
||||
if (player)
|
||||
player->GetSession()->SendPacket(&data);
|
||||
player->GetSession()->SendPacket(chatServerMessage.Write());
|
||||
else
|
||||
SendGlobalMessage(&data);
|
||||
SendGlobalMessage(chatServerMessage.Write());
|
||||
}
|
||||
|
||||
void World::UpdateSessions(uint32 diff)
|
||||
|
||||
@@ -671,7 +671,7 @@ class World
|
||||
void SendWorldText(uint32 string_id, ...);
|
||||
void SendGlobalText(const char* text, WorldSession* self);
|
||||
void SendGMText(uint32 string_id, ...);
|
||||
void SendServerMessage(ServerMessageType type, const char *text = "", Player* player = NULL);
|
||||
void SendServerMessage(ServerMessageType messageID, std::string stringParam = "", Player* player = NULL);
|
||||
void SendGlobalMessage(WorldPacket const* packet, WorldSession* self = nullptr, uint32 team = 0);
|
||||
void SendGlobalGMMessage(WorldPacket const* packet, WorldSession* self = nullptr, uint32 team = 0);
|
||||
bool SendZoneMessage(uint32 zone, WorldPacket const* packet, WorldSession* self = nullptr, uint32 team = 0);
|
||||
|
||||
@@ -134,9 +134,9 @@ public:
|
||||
if (!*args)
|
||||
return false;
|
||||
|
||||
char buff[2048];
|
||||
sprintf(buff, handler->GetTrinityString(LANG_SYSTEMMESSAGE), args);
|
||||
sWorld->SendServerMessage(SERVER_MSG_STRING, buff);
|
||||
std::string str = handler->PGetParseString(LANG_SYSTEMMESSAGE, args);
|
||||
|
||||
sWorld->SendServerMessage(SERVER_MSG_STRING, str);
|
||||
return true;
|
||||
}
|
||||
// announce to logged in GMs
|
||||
|
||||
Reference in New Issue
Block a user