mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-13 10:31: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 QueueWebhookMessage(uint32 webhook_id, const std::string& message);
|
||||||
void ProcessMessageQueue();
|
void ProcessMessageQueue();
|
||||||
void QueuePlayerEventMessage(const PlayerEvent::PlayerEventContainer& e);
|
void QueuePlayerEventMessage(const PlayerEvent::PlayerEventContainer& e);
|
||||||
|
|
||||||
|
static DiscordManager* Instance()
|
||||||
|
{
|
||||||
|
static DiscordManager instance;
|
||||||
|
return &instance;
|
||||||
|
}
|
||||||
private:
|
private:
|
||||||
std::mutex webhook_queue_lock{};
|
std::mutex webhook_queue_lock{};
|
||||||
std::map<uint32, std::vector<std::string>> webhook_message_queue{};
|
std::map<uint32, std::vector<std::string>> webhook_message_queue{};
|
||||||
|
|||||||
@ -20,7 +20,6 @@
|
|||||||
#include "../common/net/console_server.h"
|
#include "../common/net/console_server.h"
|
||||||
#include "../queryserv/zonelist.h"
|
#include "../queryserv/zonelist.h"
|
||||||
#include "../queryserv/zoneserver.h"
|
#include "../queryserv/zoneserver.h"
|
||||||
#include "../common/discord/discord_manager.h"
|
|
||||||
|
|
||||||
volatile bool RunLoops = true;
|
volatile bool RunLoops = true;
|
||||||
|
|
||||||
@ -34,7 +33,6 @@ EQEmuLogSys LogSys;
|
|||||||
PlayerEventLogs player_event_logs;
|
PlayerEventLogs player_event_logs;
|
||||||
ZSList zs_list;
|
ZSList zs_list;
|
||||||
uint32 numzones = 0;
|
uint32 numzones = 0;
|
||||||
DiscordManager discord_manager;
|
|
||||||
|
|
||||||
void CatchSignal(int sig_num)
|
void CatchSignal(int sig_num)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -5,9 +5,6 @@
|
|||||||
#include "../common/events/player_event_logs.h"
|
#include "../common/events/player_event_logs.h"
|
||||||
#include "../common/discord/discord_manager.h"
|
#include "../common/discord/discord_manager.h"
|
||||||
|
|
||||||
extern DiscordManager discord_manager;
|
|
||||||
|
|
||||||
|
|
||||||
ZoneServer::ZoneServer(
|
ZoneServer::ZoneServer(
|
||||||
std::shared_ptr<EQ::Net::ServertalkServerConnection> in_connection,
|
std::shared_ptr<EQ::Net::ServertalkServerConnection> in_connection,
|
||||||
EQ::Net::ConsoleServer *in_console
|
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);
|
player_event_logs.AddToQueue(n.player_event_log);
|
||||||
|
|
||||||
discord_manager.QueuePlayerEventMessage(n);
|
DiscordManager::Instance()->QueuePlayerEventMessage(n);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
default: {
|
default: {
|
||||||
|
|||||||
@ -47,7 +47,6 @@ Clientlist *g_Clientlist;
|
|||||||
EQEmuLogSys LogSys;
|
EQEmuLogSys LogSys;
|
||||||
UCSDatabase database;
|
UCSDatabase database;
|
||||||
WorldServer *worldserver = nullptr;
|
WorldServer *worldserver = nullptr;
|
||||||
DiscordManager discord_manager;
|
|
||||||
PlayerEventLogs player_event_logs;
|
PlayerEventLogs player_event_logs;
|
||||||
|
|
||||||
const ucsconfig *Config;
|
const ucsconfig *Config;
|
||||||
@ -95,7 +94,7 @@ void CatchSignal(int sig_num) {
|
|||||||
|
|
||||||
void PlayerEventQueueListener() {
|
void PlayerEventQueueListener() {
|
||||||
while (caught_loop == 0) {
|
while (caught_loop == 0) {
|
||||||
discord_manager.ProcessMessageQueue();
|
DiscordManager::Instance()->ProcessMessageQueue();
|
||||||
Sleep(100);
|
Sleep(100);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -42,7 +42,6 @@ extern WorldServer worldserver;
|
|||||||
extern Clientlist *g_Clientlist;
|
extern Clientlist *g_Clientlist;
|
||||||
extern const ucsconfig *Config;
|
extern const ucsconfig *Config;
|
||||||
extern UCSDatabase database;
|
extern UCSDatabase database;
|
||||||
extern DiscordManager discord_manager;
|
|
||||||
|
|
||||||
void ProcessMailTo(Client *c, const std::string& from, const std::string& subject, const std::string& message);
|
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);
|
cereal::BinaryInputArchive archive(ss);
|
||||||
archive(n);
|
archive(n);
|
||||||
|
|
||||||
discord_manager.QueuePlayerEventMessage(n);
|
DiscordManager::Instance()->QueuePlayerEventMessage(n);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ServerOP_DiscordWebhookMessage: {
|
case ServerOP_DiscordWebhookMessage: {
|
||||||
auto *q = (DiscordWebhookMessage_Struct *) p.Data();
|
auto *q = (DiscordWebhookMessage_Struct *) p.Data();
|
||||||
|
|
||||||
discord_manager.QueueWebhookMessage(
|
DiscordManager::Instance()->QueueWebhookMessage(
|
||||||
q->webhook_id,
|
q->webhook_id,
|
||||||
q->message
|
q->message
|
||||||
);
|
);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user