diff --git a/bin/config_sample/text/logtext.ini b/bin/config_sample/text/logtext.ini index 1fa40ba9..e3fd83fd 100644 --- a/bin/config_sample/text/logtext.ini +++ b/bin/config_sample/text/logtext.ini @@ -3,20 +3,24 @@ ; Each logtype will mention what data is available and what their formatter is. ; %1 = Event Time -; %2 = Character Name -; %3 = Out-Of-Courtroom Name -; %4 = Client IPID -; %5 = Area Name -; %6 = Message -ic="[%1][%5][IC][%2(%3)][%4]%6" +; %2 = Area Name +; %3 = Client IPID +; %4 = Client ID +; %5 = Character Name +; %6 = Out-Of-Courtroom Name +; %7 = Message + +ic="[%1][%2][IC][%3][%4][%5(%6)]%7" ; %1 = Event Time -; %2 = Character Name -; %3 = Out-Of-Courtroom Name -; %4 = Client IPID -; %5 = Area Name -; %6 = Message -ooc="[%1][%5][OOC][%2(%3)][%4]%6" +; %2 = Area Name +; %3 = Client IPID +; %4 = Client ID +; %5 = Character Name +; %6 = Out-Of-Courtroom Name +; %7 = Message + +ooc="[%1][%2][OOC][%3][%4][%5(%6)]%7" ; %1 = Event Time ; %2 = Success/Fail @@ -69,10 +73,11 @@ ban="[%1][%2][BAN][%3][%4]" ; %1 = Event Time ; %2 = Area Name -; %3 = Character Name -; %4 = Out-Of-Courtroom Name -; %5 = Client IPID -modcall="[%1][%2][MODCALL][%5][%3(%4)]" +; %3 = Client IPID +; %4 = Client ID +; %5 = Character Name +; %6 = Out-Of-Courtroom Name +modcall="[%1][%2][MODCALL][%3][%4][%5(%6)]" ; %1 = Event Time ; %2 = IP Address diff --git a/src/aoclient.h b/src/aoclient.h index 44417776..a3e1493b 100644 --- a/src/aoclient.h +++ b/src/aoclient.h @@ -2155,14 +2155,12 @@ class AOClient : public QObject /** * @brief Signal connected to universal logger. Sends IC chat usage to the logger. */ - void logIC(const QString &f_charName, const QString &f_oocName, const QString &f_ipid, - const QString &f_areaName, const QString &f_message); + void logIC(const QString &f_areaName, const QString &f_ipid, const QString &f_oocName, const QString &f_id, const QString &f_charName, const QString &f_message); /** * @brief Signal connected to universal logger. Sends OOC chat usage to the logger. */ - void logOOC(const QString &f_charName, const QString &f_oocName, const QString &f_ipid, - const QString &f_areaName, const QString &f_message); + void logOOC(const QString &f_areaName, const QString &f_ipid, const QString &f_oocName, const QString &f_id, const QString &f_charName, const QString &f_message); /** * @brief Signal connected to universal logger. Sends login attempt to the logger. @@ -2190,7 +2188,7 @@ class AOClient : public QObject * @brief Signal connected to universal logger. Sends modcall information to the logger, triggering a write of the buffer * when modcall logging is used. */ - void logModcall(const QString &f_charName, const QString &f_ipid, const QString &f_oocName, const QString &f_areaName); + void logModcall(const QString &f_area_name, const QString &f_ipid, const QString &f_ooc_name, const QString &f_id, const QString &f_char_name); /** * @brief Signals the server that the client has disconnected and marks its userID as free again. diff --git a/src/discord.cpp b/src/discord.cpp index 30971691..a9d9276a 100644 --- a/src/discord.cpp +++ b/src/discord.cpp @@ -27,10 +27,10 @@ Discord::Discord(QObject *parent) : this, &Discord::onReplyFinished); } -void Discord::onModcallWebhookRequested(const QString &f_name, const QString &f_area, const QString &f_reason, const QQueue &f_buffer) +void Discord::onModcallWebhookRequested(const QString &f_name, const QString &f_area, const QString &f_id, const QString &f_reason, const QQueue &f_buffer) { m_request.setUrl(QUrl(ConfigManager::discordModcallWebhookUrl())); - QJsonDocument l_json = constructModcallJson(f_name, f_area, f_reason); + QJsonDocument l_json = constructModcallJson(f_name, f_area, f_id, f_reason); postJsonWebhook(l_json); if (ConfigManager::discordModcallWebhookSendFile()) { @@ -46,13 +46,13 @@ void Discord::onBanWebhookRequested(const QString &f_ipid, const QString &f_mode postJsonWebhook(l_json); } -QJsonDocument Discord::constructModcallJson(const QString &f_name, const QString &f_area, const QString &f_reason) const +QJsonDocument Discord::constructModcallJson(const QString &f_name, const QString &f_area, const QString &f_id, const QString &f_reason) const { QJsonObject l_json; QJsonArray l_array; QJsonObject l_object{ {"color", ConfigManager::discordWebhookColor()}, - {"title", f_name + " filed a modcall in " + f_area}, + {"title", "[" + f_id + "]" + f_name + " filed a modcall in " + f_area}, {"description", f_reason}}; l_array.append(l_object); diff --git a/src/discord.h b/src/discord.h index 1a10f56d..f4e0bdce 100644 --- a/src/discord.h +++ b/src/discord.h @@ -67,7 +67,7 @@ class Discord : public QObject * @param f_reason The reason for the modcall. * @param f_buffer The area's log buffer. */ - void onModcallWebhookRequested(const QString &f_name, const QString &f_area, const QString &f_reason, const QQueue &f_buffer); + void onModcallWebhookRequested(const QString &f_name, const QString &f_area, const QString &f_id, const QString &f_reason, const QQueue &f_buffer); /** * @brief Handles a ban webhook request. @@ -95,11 +95,12 @@ class Discord : public QObject * * @param f_name The name of the modcall sender. * @param f_area The name of the area the modcall was sent from. + * @param f_id The client id of the client who sent the modcall. * @param f_reason The reason for the modcall. * * @return A JSON document for the modcall. */ - QJsonDocument constructModcallJson(const QString &f_name, const QString &f_area, const QString &f_reason) const; + QJsonDocument constructModcallJson(const QString &f_name, const QString &f_area, const QString &f_id, const QString &f_reason) const; /** * @brief Constructs a new QHttpMultiPart document for log files. diff --git a/src/logger/u_logger.cpp b/src/logger/u_logger.cpp index 5c1ab29c..c4d4400d 100644 --- a/src/logger/u_logger.cpp +++ b/src/logger/u_logger.cpp @@ -45,20 +45,20 @@ ULogger::~ULogger() } } -void ULogger::logIC(const QString &f_char_name, const QString &f_ooc_name, const QString &f_ipid, - const QString &f_area_name, const QString &f_message) +void ULogger::logIC(const QString &f_area_name, const QString &f_ipid, const QString &f_ooc_name, + const QString &f_id, const QString &f_char_name, const QString &f_message) { QString l_time = QDateTime::currentDateTime().toString("ddd MMMM d yyyy | hh:mm:ss"); - QString l_logEntry = QString(m_logtext.value("ic") + "\n").arg(l_time, f_char_name, f_ooc_name, f_ipid, f_area_name, f_message); + QString l_logEntry = QString(m_logtext.value("ic") + "\n").arg(l_time, f_area_name, f_ipid, f_id, f_char_name, f_ooc_name, f_message); updateAreaBuffer(f_area_name, l_logEntry); } -void ULogger::logOOC(const QString &f_char_name, const QString &f_ooc_name, const QString &f_ipid, - const QString &f_area_name, const QString &f_message) +void ULogger::logOOC(const QString &f_area_name, const QString &f_ipid, const QString &f_ooc_name, + const QString &f_id, const QString &f_char_name, const QString &f_message) { QString l_time = QDateTime::currentDateTime().toString("ddd MMMM d yyyy | hh:mm:ss"); QString l_logEntry = QString(m_logtext.value("ooc") + "\n") - .arg(l_time, f_char_name, f_ooc_name, f_ipid, f_area_name, f_message); + .arg(l_time, f_area_name, f_ipid, f_id, f_char_name, f_ooc_name, f_message); updateAreaBuffer(f_area_name, l_logEntry); } @@ -114,11 +114,11 @@ void ULogger::logBan(const QString &f_moderator, const QString &f_target_ipid, c updateAreaBuffer("SERVER", l_logEntry); } -void ULogger::logModcall(const QString &f_char_name, const QString &f_ipid, const QString &f_ooc_name, const QString &f_area_name) +void ULogger::logModcall(const QString &f_area_name, const QString &f_ipid, const QString &f_ooc_name, const QString &f_id, const QString &f_char_name) { QString l_time = QDateTime::currentDateTime().toString("ddd MMMM d yyyy | hh:mm:ss"); QString l_logEvent = QString(m_logtext.value("modcall") + "\n") - .arg(l_time, f_area_name, f_char_name, f_ooc_name, f_ipid); + .arg(l_time, f_area_name, f_ipid, f_id, f_char_name, f_ooc_name); updateAreaBuffer(f_area_name, l_logEvent); if (ConfigManager::loggingType() == DataTypes::LogType::MODCALL) { diff --git a/src/logger/u_logger.h b/src/logger/u_logger.h index d08e19d9..95565254 100644 --- a/src/logger/u_logger.h +++ b/src/logger/u_logger.h @@ -56,14 +56,12 @@ class ULogger : public QObject /** * @brief Adds an IC log entry to the area buffer and writes it to the respective log format. */ - void logIC(const QString &f_char_name, const QString &f_ooc_name, const QString &f_ipid, - const QString &f_area_name, const QString &f_message); + void logIC(const QString &f_area_name, const QString &f_ipid, const QString &f_ooc_name, const QString &f_id, const QString &f_char_name, const QString &f_message); /** * @brief Adds an OOC log entry to the area buffer and writes it to the respective log format. */ - void logOOC(const QString &f_char_Name, const QString &f_ooc_name, const QString &f_ipid, - const QString &f_area_name, const QString &f_message); + void logOOC(const QString &f_area_name, const QString &f_ipid, const QString &f_ooc_name, const QString &f_id, const QString &f_char_name, const QString &f_message); /** * @brief Adds an login attempt to the area buffer and writes it to the respective log format. @@ -90,7 +88,7 @@ class ULogger : public QObject /** * @brief Adds a modcall event to the area buffer, also triggers modcall writing. */ - void logModcall(const QString &f_char_name, const QString &f_ipid, const QString &f_ooc_name, const QString &f_area_name); + void logModcall(const QString &f_area_name, const QString &f_ipid, const QString &f_ooc_name, const QString &f_id, const QString &f_char_name); /** * @brief Logs any connection attempt to the server, wether sucessful or not. @@ -143,7 +141,7 @@ class ULogger : public QObject {"cmd", "[%1][%2][CMD][%7][%3(%4)]/%5 %6"}, {"kick", "[%1][%2][KICK][%3]"}, {"ban", "[%1][%2][BAN][%3][%4]"}, - {"modcall", "[%1][%2][MODCALL][%5][%3(%4)]"}, + {"modcall", "[%1][%2][MODCALL][%3][%4][%5(%6)]"}, {"connect", "[%1][CONNECT][%2][%3][%4]"}}; }; diff --git a/src/packet/packet_ct.cpp b/src/packet/packet_ct.cpp index d0efd8e4..f49981b7 100644 --- a/src/packet/packet_ct.cpp +++ b/src/packet/packet_ct.cpp @@ -69,5 +69,5 @@ void PacketCT::handlePacket(AreaData *area, AOClient &client) const AOPacket *final_packet = PacketFactory::createPacket("CT", {client.name(), l_message, "0"}); client.getServer()->broadcast(final_packet, client.areaId()); } - emit client.logOOC((client.character() + " " + client.characterName()), client.name(), client.m_ipid, area->name(), l_message); + emit client.logOOC(client.getServer()->getAreaById(client.areaId())->name(), client.m_ipid, client.name(), QString::number(client.clientId()), (client.character() + " " + client.characterName()), l_message); } diff --git a/src/packet/packet_ms.cpp b/src/packet/packet_ms.cpp index 7ce04dd1..abba29dd 100644 --- a/src/packet/packet_ms.cpp +++ b/src/packet/packet_ms.cpp @@ -77,7 +77,7 @@ void PacketMS::handlePacket(AreaData *area, AOClient &client) const client.getServer()->broadcast(validated_packet, client.areaId()); } - emit client.logIC((client.character() + " " + client.characterName()), client.name(), client.m_ipid, client.getServer()->getAreaById(client.areaId())->name(), client.m_last_message); + emit client.logIC(client.getServer()->getAreaById(client.areaId())->name(), client.m_ipid, client.name(), QString::number(client.clientId()), (client.character() + " " + client.characterName()), client.m_last_message); area->updateLastICMessage(validated_packet->getContent()); area->startMessageFloodguard(ConfigManager::messageFloodguard()); diff --git a/src/packet/packet_zz.cpp b/src/packet/packet_zz.cpp index a308e6b7..2c3c8ae9 100644 --- a/src/packet/packet_zz.cpp +++ b/src/packet/packet_zz.cpp @@ -27,7 +27,9 @@ void PacketZZ::handlePacket(AreaData *area, AOClient &client) const QString l_areaName = area->name(); - QString l_modcallNotice = "!!!MODCALL!!!\nArea: " + l_areaName + "\nCaller: " + l_name + "\n"; + QString l_id = QString::number(client.clientId()); + + QString l_modcallNotice = "!!!MODCALL!!!\nArea: " + l_areaName + "\nCaller: " + "[" + l_id + "]" + l_name + "\n"; int target_id = m_content.at(1).toInt(); if (target_id != -1) { @@ -43,7 +45,7 @@ void PacketZZ::handlePacket(AreaData *area, AOClient &client) const if (l_client->m_authenticated) l_client->sendPacket(PacketFactory::createPacket("ZZ", {l_modcallNotice})); } - emit client.logModcall((client.character() + " " + client.characterName()), client.m_ipid, client.name(), client.getServer()->getAreaById(client.areaId())->name()); + emit client.logModcall(client.getServer()->getAreaById(client.areaId())->name(), client.m_ipid, client.name(), QString::number(client.clientId()), (client.character() + " " + client.characterName())); if (ConfigManager::discordModcallWebhookEnabled()) { QString l_name = client.name(); @@ -60,6 +62,6 @@ void PacketZZ::handlePacket(AreaData *area, AOClient &client) const } } - emit client.getServer()->modcallWebhookRequest(l_name, l_areaName, webhook_reason, client.getServer()->getAreaBuffer(l_areaName)); + emit client.getServer()->modcallWebhookRequest(l_name, l_areaName, l_id, webhook_reason, client.getServer()->getAreaBuffer(l_areaName)); } } diff --git a/src/server.h b/src/server.h index 6f94a38d..053f6464 100644 --- a/src/server.h +++ b/src/server.h @@ -391,9 +391,10 @@ class Server : public QObject * @param f_name The character or OOC name of the client who sent the modcall. * @param f_area The name of the area the modcall was sent from. * @param f_reason The reason the client specified for the modcall. + * @param f_id The client id of the client who sent the modcall. * @param f_buffer The area's log buffer. */ - void modcallWebhookRequest(const QString &f_name, const QString &f_area, const QString &f_reason, const QQueue &f_buffer); + void modcallWebhookRequest(const QString &f_name, const QString &f_area, const QString &f_id, const QString &f_reason, const QQueue &f_buffer); /** * @brief Sends a ban webhook request, emitted by AOClient::cmdBan