Skip to content

Commit 409f8ba

Browse files
committed
fix(usermessage): GetUserMessage + Destructor
1 parent 25ad44b commit 409f8ba

File tree

5 files changed

+16
-16
lines changed

5 files changed

+16
-16
lines changed

src/entrypoint.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -264,12 +264,13 @@ void Swiftly::AllPluginsLoaded()
264264

265265
bool Swiftly::Unload(char* error, size_t maxlen)
266266
{
267+
g_addons.Destroy();
268+
g_voiceManager.OnShutdown();
269+
267270
g_pluginManager->StopPlugins();
268271
g_pluginManager->UnloadPlugins();
269272

270273
UnloadHooks();
271-
g_voiceManager.OnShutdown();
272-
g_addons.Destroy();
273274
eventManager->Shutdown();
274275

275276
SH_REMOVE_HOOK_MEMFUNC(IServerGameDLL, GameFrame, server, this, &Swiftly::Hook_GameFrame, true);

src/plugins/core/scripting.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,7 @@ class PluginUserMessage
208208

209209
public:
210210
PluginUserMessage(std::string msgname);
211-
PluginUserMessage(INetworkMessageInternal* msg, NetMessageInfo_t* msgInfo, CNetMessage* pData);
211+
PluginUserMessage(INetworkMessageInternal* msg);
212212
~PluginUserMessage();
213213

214214
bool IsValidMessage();

src/plugins/core/scripting/usermessage.cpp

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -85,20 +85,23 @@ PluginUserMessage::PluginUserMessage(std::string msgname)
8585
this->internalMsg = msg;
8686
}
8787

88-
PluginUserMessage::PluginUserMessage(INetworkMessageInternal* msg, NetMessageInfo_t* msgInfo, CNetMessage* pData)
88+
PluginUserMessage::PluginUserMessage(INetworkMessageInternal* msg)
8989
{
9090
this->msgid = INVALID_MESSAGE_ID;
9191

92-
if (!msgInfo || !pData || !msg) return;
92+
if (!msg) return;
9393

94-
this->msgid = msgInfo->m_MessageId;
95-
this->msgBuffer = pData->ToPB<google::protobuf::Message>();
94+
NetMessageInfo_t* msginfo = msg->GetNetMessageInfo();
95+
if (!msginfo)
96+
return;
97+
98+
this->msgid = msginfo->m_MessageId;
99+
this->msgBuffer = msg->AllocateMessage()->ToPB<google::protobuf::Message>();
96100
this->internalMsg = msg;
97101
}
98102

99103
PluginUserMessage::~PluginUserMessage()
100104
{
101-
if(this->msgBuffer) delete this->msgBuffer;
102105
}
103106

104107
bool PluginUserMessage::IsValidMessage()

src/plugins/core/scripting/utils.cpp

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -35,12 +35,8 @@ std::string scripting_GetPluginPath(std::string plugin_name)
3535

3636
PluginUserMessage scripting_GetUserMessage(std::string str)
3737
{
38-
auto ptrs = explode(str, "|");
39-
if (ptrs.size() != 3) return PluginUserMessage("");
38+
if (!starts_with(str, "0x")) return PluginUserMessage("");
4039

41-
INetworkMessageInternal* msg = (INetworkMessageInternal*)(strtol(ptrs[0].c_str(), nullptr, 16));
42-
NetMessageInfo_t* msginfo = (NetMessageInfo_t*)(strtol(ptrs[1].c_str(), nullptr, 16));
43-
CNetMessage* data = (CNetMessage*)(strtol(ptrs[2].c_str(), nullptr, 16));
44-
45-
return PluginUserMessage(msg, msginfo, data);
40+
INetworkMessageInternal* msg = (INetworkMessageInternal*)(strtol(str.c_str(), nullptr, 16));
41+
return PluginUserMessage(msg);
4642
}

src/usermessages/usermessages.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ bool UserMessages_SendNetMessage(INetChannel* pNetChan, CNetMessage* pData, NetC
77
int playerid = FindClientByNetChannel(pNetChan);
88

99
PluginEvent* event = new PluginEvent("core", nullptr, nullptr);
10-
auto result = g_pluginManager->ExecuteEvent("core", "OnUserMessageSend", encoders::msgpack::SerializeToString({ playerid, string_format("%p|%p|%p", netmsg, netmsg->GetNetMessageInfo(), pData), bufType == BUF_RELIABLE }), event);
10+
auto result = g_pluginManager->ExecuteEvent("core", "OnUserMessageSend", encoders::msgpack::SerializeToString({ playerid, string_format("%p", netmsg), bufType == BUF_RELIABLE }), event);
1111
delete event;
1212

1313
return (result != EventResult::Stop);

0 commit comments

Comments
 (0)