From 52a8d1abfe92418b19439ee58acce25022b49498 Mon Sep 17 00:00:00 2001 From: WisoAltred Date: Mon, 9 Feb 2026 12:24:55 +0200 Subject: [PATCH 1/2] Add ID to OOC, IC and modcall logs Most people report via ID, and not being able to see it and having to go on to check is odd. Also re-orders the arguments so the sample properly has 1 through 7 args in sequence since thats what the default is. This will be superseded by the packet rework in some future time, but it will do if that is not the near future. --- bin/config_sample/text/logtext.ini | 37 +++++++++++++++++------------- src/aoclient.h | 10 ++++---- src/discord.cpp | 8 +++---- src/discord.h | 5 ++-- src/logger/u_logger.cpp | 16 ++++++------- src/logger/u_logger.h | 12 +++++----- src/packet/packet_ct.cpp | 2 +- src/packet/packet_ms.cpp | 2 +- src/packet/packet_zz.cpp | 8 ++++--- src/server.h | 3 ++- 10 files changed, 56 insertions(+), 47 deletions(-) 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..a9b58367 100644 --- a/src/aoclient.h +++ b/src/aoclient.h @@ -2155,14 +2155,14 @@ 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 +2190,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..bbc53c50 100644 --- a/src/logger/u_logger.h +++ b/src/logger/u_logger.h @@ -56,14 +56,14 @@ 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 +90,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 +143,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..f52a55af 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 From e96eb56b9fda318b96abc315d189da80043e5f05 Mon Sep 17 00:00:00 2001 From: WisoAltred Date: Mon, 9 Feb 2026 12:53:18 +0200 Subject: [PATCH 2/2] format --- src/aoclient.h | 6 ++---- src/logger/u_logger.h | 6 ++---- src/packet/packet_zz.cpp | 2 +- 3 files changed, 5 insertions(+), 9 deletions(-) diff --git a/src/aoclient.h b/src/aoclient.h index a9b58367..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_areaName, const QString &f_ipid, const QString &f_oocName, - const QString &f_id, const QString &f_charName, 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_areaName, const QString &f_ipid, const QString &f_oocName, - const QString &f_id, const QString &f_charName, 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. diff --git a/src/logger/u_logger.h b/src/logger/u_logger.h index bbc53c50..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_area_name, const QString &f_ipid, const QString &f_ooc_name, - const QString &f_id, const QString &f_char_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_area_name, const QString &f_ipid, const QString &f_ooc_name, - const QString &f_id, const QString &f_char_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. diff --git a/src/packet/packet_zz.cpp b/src/packet/packet_zz.cpp index f52a55af..2c3c8ae9 100644 --- a/src/packet/packet_zz.cpp +++ b/src/packet/packet_zz.cpp @@ -29,7 +29,7 @@ void PacketZZ::handlePacket(AreaData *area, AOClient &client) const QString l_id = QString::number(client.clientId()); - QString l_modcallNotice = "!!!MODCALL!!!\nArea: " + l_areaName + "\nCaller: " "[" + l_id + "]" + l_name + "\n"; + 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) {