mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-11 16:51:29 +00:00
[Code] DiscordManager Global to Singleton Cleanup (#4926)
* [Code] DiscordManager Global to Singleton Cleanup * Update discord_manager.h --------- Co-authored-by: Chris Miles <akkadius1@gmail.com>
This commit is contained in:
parent
83918ce020
commit
b5f1e99d3b
@ -13,6 +13,12 @@ public:
|
||||
void QueueWebhookMessage(uint32 webhook_id, const std::string& message);
|
||||
void ProcessMessageQueue();
|
||||
void QueuePlayerEventMessage(const PlayerEvent::PlayerEventContainer& e);
|
||||
|
||||
static DiscordManager* Instance()
|
||||
{
|
||||
static DiscordManager instance;
|
||||
return &instance;
|
||||
}
|
||||
private:
|
||||
std::mutex webhook_queue_lock{};
|
||||
std::map<uint32, std::vector<std::string>> webhook_message_queue{};
|
||||
|
||||
@ -20,7 +20,6 @@
|
||||
#include "../common/net/console_server.h"
|
||||
#include "../queryserv/zonelist.h"
|
||||
#include "../queryserv/zoneserver.h"
|
||||
#include "../common/discord/discord_manager.h"
|
||||
|
||||
volatile bool RunLoops = true;
|
||||
|
||||
@ -34,7 +33,6 @@ EQEmuLogSys LogSys;
|
||||
PlayerEventLogs player_event_logs;
|
||||
ZSList zs_list;
|
||||
uint32 numzones = 0;
|
||||
DiscordManager discord_manager;
|
||||
|
||||
void CatchSignal(int sig_num)
|
||||
{
|
||||
|
||||
@ -5,9 +5,6 @@
|
||||
#include "../common/events/player_event_logs.h"
|
||||
#include "../common/discord/discord_manager.h"
|
||||
|
||||
extern DiscordManager discord_manager;
|
||||
|
||||
|
||||
ZoneServer::ZoneServer(
|
||||
std::shared_ptr<EQ::Net::ServertalkServerConnection> in_connection,
|
||||
EQ::Net::ConsoleServer *in_console
|
||||
@ -38,7 +35,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p)
|
||||
|
||||
player_event_logs.AddToQueue(n.player_event_log);
|
||||
|
||||
discord_manager.QueuePlayerEventMessage(n);
|
||||
DiscordManager::Instance()->QueuePlayerEventMessage(n);
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
|
||||
@ -47,7 +47,6 @@ Clientlist *g_Clientlist;
|
||||
EQEmuLogSys LogSys;
|
||||
UCSDatabase database;
|
||||
WorldServer *worldserver = nullptr;
|
||||
DiscordManager discord_manager;
|
||||
PlayerEventLogs player_event_logs;
|
||||
|
||||
const ucsconfig *Config;
|
||||
@ -95,7 +94,7 @@ void CatchSignal(int sig_num) {
|
||||
|
||||
void PlayerEventQueueListener() {
|
||||
while (caught_loop == 0) {
|
||||
discord_manager.ProcessMessageQueue();
|
||||
DiscordManager::Instance()->ProcessMessageQueue();
|
||||
Sleep(100);
|
||||
}
|
||||
}
|
||||
|
||||
@ -42,7 +42,6 @@ extern WorldServer worldserver;
|
||||
extern Clientlist *g_Clientlist;
|
||||
extern const ucsconfig *Config;
|
||||
extern UCSDatabase database;
|
||||
extern DiscordManager discord_manager;
|
||||
|
||||
void ProcessMailTo(Client *c, const std::string& from, const std::string& subject, const std::string& message);
|
||||
|
||||
@ -92,14 +91,14 @@ void WorldServer::ProcessMessage(uint16 opcode, EQ::Net::Packet &p)
|
||||
cereal::BinaryInputArchive archive(ss);
|
||||
archive(n);
|
||||
|
||||
discord_manager.QueuePlayerEventMessage(n);
|
||||
DiscordManager::Instance()->QueuePlayerEventMessage(n);
|
||||
|
||||
break;
|
||||
}
|
||||
case ServerOP_DiscordWebhookMessage: {
|
||||
auto *q = (DiscordWebhookMessage_Struct *) p.Data();
|
||||
|
||||
discord_manager.QueueWebhookMessage(
|
||||
DiscordManager::Instance()->QueueWebhookMessage(
|
||||
q->webhook_id,
|
||||
q->message
|
||||
);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user