Logs::QSServer to LogInfo

This commit is contained in:
Akkadius 2019-09-02 04:23:50 -05:00
parent 89bfbe6bd2
commit acae5d81ab
3 changed files with 268 additions and 216 deletions

View File

@ -39,8 +39,10 @@
#define strncasecmp _strnicmp #define strncasecmp _strnicmp
#define strcasecmp _stricmp #define strcasecmp _stricmp
#else #else
#include "../common/unix.h" #include "../common/unix.h"
#include <netinet/in.h> #include <netinet/in.h>
#endif #endif
#include "database.h" #include "database.h"
@ -67,27 +69,26 @@ bool Database::Connect(const char* host, const char* user, const char* passwd, c
{ {
uint32 errnum = 0; uint32 errnum = 0;
char errbuf[MYSQL_ERRMSG_SIZE]; char errbuf[MYSQL_ERRMSG_SIZE];
if (!Open(host, user, passwd, database, port, &errnum, errbuf)) if (!Open(host, user, passwd, database, port, &errnum, errbuf)) {
{
LogError("Failed to connect to database: Error: {}", errbuf); LogError("Failed to connect to database: Error: {}", errbuf);
HandleMysqlError(errnum); HandleMysqlError(errnum);
return false; return false;
} }
else else {
{
LogInfo("Using database [{}] at [{}]:[{}]", database, host, port); LogInfo("Using database [{}] at [{}]:[{}]", database, host, port);
return true; return true;
} }
} }
void Database::DBInitVars() { void Database::DBInitVars()
{
} }
void Database::HandleMysqlError(uint32 errnum)
void Database::HandleMysqlError(uint32 errnum) { {
} }
/* /*
@ -98,7 +99,15 @@ Database::~Database()
{ {
} }
void Database::AddSpeech(const char* from, const char* to, const char* message, uint16 minstatus, uint32 guilddbid, uint8 type) { void Database::AddSpeech(
const char *from,
const char *to,
const char *message,
uint16 minstatus,
uint32 guilddbid,
uint8 type
)
{
auto escapedFrom = new char[strlen(from) * 2 + 1]; auto escapedFrom = new char[strlen(from) * 2 + 1];
auto escapedTo = new char[strlen(to) * 2 + 1]; auto escapedTo = new char[strlen(to) * 2 + 1];
@ -107,58 +116,68 @@ void Database::AddSpeech(const char* from, const char* to, const char* message,
DoEscapeString(escapedTo, to, strlen(to)); DoEscapeString(escapedTo, to, strlen(to));
DoEscapeString(escapedMessage, message, strlen(message)); DoEscapeString(escapedMessage, message, strlen(message));
std::string query = StringFormat("INSERT INTO `qs_player_speech` " std::string query = StringFormat(
"INSERT INTO `qs_player_speech` "
"SET `from` = '%s', `to` = '%s', `message`='%s', " "SET `from` = '%s', `to` = '%s', `message`='%s', "
"`minstatus`='%i', `guilddbid`='%i', `type`='%i'", "`minstatus`='%i', `guilddbid`='%i', `type`='%i'",
escapedFrom, escapedTo, escapedMessage, minstatus, guilddbid, type); escapedFrom, escapedTo, escapedMessage, minstatus, guilddbid, type
);
safe_delete_array(escapedFrom); safe_delete_array(escapedFrom);
safe_delete_array(escapedTo); safe_delete_array(escapedTo);
safe_delete_array(escapedMessage); safe_delete_array(escapedMessage);
auto results = QueryDatabase(query); auto results = QueryDatabase(query);
if (!results.Success()) { if (!results.Success()) {
Log(Logs::Detail, Logs::QSServer, "Failed Speech Entry Insert: %s", results.ErrorMessage().c_str()); LogInfo("Failed Speech Entry Insert: [{}]", results.ErrorMessage().c_str());
Log(Logs::Detail, Logs::QSServer, "%s", query.c_str()); LogInfo("[{}]", query.c_str());
} }
} }
void Database::LogPlayerDropItem(QSPlayerDropItem_Struct* QS) { void Database::LogPlayerDropItem(QSPlayerDropItem_Struct *QS)
{
std::string query = StringFormat("INSERT INTO `qs_player_drop_record` SET `time` = NOW(), " std::string query = StringFormat(
"INSERT INTO `qs_player_drop_record` SET `time` = NOW(), "
"`char_id` = '%i', `pickup` = '%i', " "`char_id` = '%i', `pickup` = '%i', "
"`zone_id` = '%i', `x` = '%i', `y` = '%i', `z` = '%i' ", "`zone_id` = '%i', `x` = '%i', `y` = '%i', `z` = '%i' ",
QS->char_id, QS->pickup, QS->zone_id, QS->x, QS->y, QS->z); QS->char_id, QS->pickup, QS->zone_id, QS->x, QS->y, QS->z
);
auto results = QueryDatabase(query); auto results = QueryDatabase(query);
if (!results.Success()) { if (!results.Success()) {
Log(Logs::Detail, Logs::QSServer, "Failed Drop Record Insert: %s", results.ErrorMessage().c_str()); LogInfo("Failed Drop Record Insert: [{}]", results.ErrorMessage().c_str());
Log(Logs::Detail, Logs::QSServer, "%s", query.c_str()); LogInfo("[{}]", query.c_str());
} }
if (QS->_detail_count == 0) if (QS->_detail_count == 0) {
return; return;
}
int lastIndex = results.LastInsertedID(); int lastIndex = results.LastInsertedID();
for (int i = 0; i < QS->_detail_count; i++) { for (int i = 0; i < QS->_detail_count; i++) {
query = StringFormat("INSERT INTO `qs_player_drop_record_entries` SET `event_id` = '%i', " query = StringFormat(
"INSERT INTO `qs_player_drop_record_entries` SET `event_id` = '%i', "
"`item_id` = '%i', `charges` = '%i', `aug_1` = '%i', `aug_2` = '%i', " "`item_id` = '%i', `charges` = '%i', `aug_1` = '%i', `aug_2` = '%i', "
"`aug_3` = '%i', `aug_4` = '%i', `aug_5` = '%i'", "`aug_3` = '%i', `aug_4` = '%i', `aug_5` = '%i'",
lastIndex, QS->items[i].item_id, lastIndex, QS->items[i].item_id,
QS->items[i].charges, QS->items[i].aug_1, QS->items[i].aug_2, QS->items[i].charges, QS->items[i].aug_1, QS->items[i].aug_2,
QS->items[i].aug_3, QS->items[i].aug_4, QS->items[i].aug_5); QS->items[i].aug_3, QS->items[i].aug_4, QS->items[i].aug_5
);
results = QueryDatabase(query); results = QueryDatabase(query);
if (!results.Success()) { if (!results.Success()) {
Log(Logs::Detail, Logs::QSServer, "Failed Drop Record Entry Insert: %s", results.ErrorMessage().c_str()); LogInfo("Failed Drop Record Entry Insert: [{}]", results.ErrorMessage().c_str());
Log(Logs::Detail, Logs::QSServer, "%s", query.c_str()); LogInfo("[{}]", query.c_str());
} }
} }
} }
void Database::LogPlayerTrade(QSPlayerLogTrade_Struct* QS, uint32 detailCount) { void Database::LogPlayerTrade(QSPlayerLogTrade_Struct *QS, uint32 detailCount)
{
std::string query = StringFormat("INSERT INTO `qs_player_trade_record` SET `time` = NOW(), " std::string query = StringFormat(
"INSERT INTO `qs_player_trade_record` SET `time` = NOW(), "
"`char1_id` = '%i', `char1_pp` = '%i', `char1_gp` = '%i', " "`char1_id` = '%i', `char1_pp` = '%i', `char1_gp` = '%i', "
"`char1_sp` = '%i', `char1_cp` = '%i', `char1_items` = '%i', " "`char1_sp` = '%i', `char1_cp` = '%i', `char1_items` = '%i', "
"`char2_id` = '%i', `char2_pp` = '%i', `char2_gp` = '%i', " "`char2_id` = '%i', `char2_pp` = '%i', `char2_gp` = '%i', "
@ -166,40 +185,46 @@ void Database::LogPlayerTrade(QSPlayerLogTrade_Struct* QS, uint32 detailCount) {
QS->char1_id, QS->char1_money.platinum, QS->char1_money.gold, QS->char1_id, QS->char1_money.platinum, QS->char1_money.gold,
QS->char1_money.silver, QS->char1_money.copper, QS->char1_count, QS->char1_money.silver, QS->char1_money.copper, QS->char1_count,
QS->char2_id, QS->char2_money.platinum, QS->char2_money.gold, QS->char2_id, QS->char2_money.platinum, QS->char2_money.gold,
QS->char2_money.silver, QS->char2_money.copper, QS->char2_count); QS->char2_money.silver, QS->char2_money.copper, QS->char2_count
);
auto results = QueryDatabase(query); auto results = QueryDatabase(query);
if (!results.Success()) { if (!results.Success()) {
Log(Logs::Detail, Logs::QSServer, "Failed Trade Log Record Insert: %s", results.ErrorMessage().c_str()); LogInfo("Failed Trade Log Record Insert: [{}]", results.ErrorMessage().c_str());
Log(Logs::Detail, Logs::QSServer, "%s", query.c_str()); LogInfo("[{}]", query.c_str());
} }
if(detailCount == 0) if (detailCount == 0) {
return; return;
}
int lastIndex = results.LastInsertedID(); int lastIndex = results.LastInsertedID();
for (int i = 0; i < detailCount; i++) { for (int i = 0; i < detailCount; i++) {
query = StringFormat("INSERT INTO `qs_player_trade_record_entries` SET `event_id` = '%i', " query = StringFormat(
"INSERT INTO `qs_player_trade_record_entries` SET `event_id` = '%i', "
"`from_id` = '%i', `from_slot` = '%i', `to_id` = '%i', `to_slot` = '%i', " "`from_id` = '%i', `from_slot` = '%i', `to_id` = '%i', `to_slot` = '%i', "
"`item_id` = '%i', `charges` = '%i', `aug_1` = '%i', `aug_2` = '%i', " "`item_id` = '%i', `charges` = '%i', `aug_1` = '%i', `aug_2` = '%i', "
"`aug_3` = '%i', `aug_4` = '%i', `aug_5` = '%i'", "`aug_3` = '%i', `aug_4` = '%i', `aug_5` = '%i'",
lastIndex, QS->items[i].from_id, QS->items[i].from_slot, lastIndex, QS->items[i].from_id, QS->items[i].from_slot,
QS->items[i].to_id, QS->items[i].to_slot, QS->items[i].item_id, QS->items[i].to_id, QS->items[i].to_slot, QS->items[i].item_id,
QS->items[i].charges, QS->items[i].aug_1, QS->items[i].aug_2, QS->items[i].charges, QS->items[i].aug_1, QS->items[i].aug_2,
QS->items[i].aug_3, QS->items[i].aug_4, QS->items[i].aug_5); QS->items[i].aug_3, QS->items[i].aug_4, QS->items[i].aug_5
);
results = QueryDatabase(query); results = QueryDatabase(query);
if (!results.Success()) { if (!results.Success()) {
Log(Logs::Detail, Logs::QSServer, "Failed Trade Log Record Entry Insert: %s", results.ErrorMessage().c_str()); LogInfo("Failed Trade Log Record Entry Insert: [{}]", results.ErrorMessage().c_str());
Log(Logs::Detail, Logs::QSServer, "%s", query.c_str()); LogInfo("[{}]", query.c_str());
} }
} }
} }
void Database::LogPlayerHandin(QSPlayerLogHandin_Struct* QS, uint32 detailCount) { void Database::LogPlayerHandin(QSPlayerLogHandin_Struct *QS, uint32 detailCount)
{
std::string query = StringFormat("INSERT INTO `qs_player_handin_record` SET `time` = NOW(), " std::string query = StringFormat(
"INSERT INTO `qs_player_handin_record` SET `time` = NOW(), "
"`quest_id` = '%i', `char_id` = '%i', `char_pp` = '%i', " "`quest_id` = '%i', `char_id` = '%i', `char_pp` = '%i', "
"`char_gp` = '%i', `char_sp` = '%i', `char_cp` = '%i', " "`char_gp` = '%i', `char_sp` = '%i', `char_cp` = '%i', "
"`char_items` = '%i', `npc_id` = '%i', `npc_pp` = '%i', " "`char_items` = '%i', `npc_id` = '%i', `npc_pp` = '%i', "
@ -209,138 +234,160 @@ void Database::LogPlayerHandin(QSPlayerLogHandin_Struct* QS, uint32 detailCount)
QS->char_money.gold, QS->char_money.silver, QS->char_money.copper, QS->char_money.gold, QS->char_money.silver, QS->char_money.copper,
QS->char_count, QS->npc_id, QS->npc_money.platinum, QS->char_count, QS->npc_id, QS->npc_money.platinum,
QS->npc_money.gold, QS->npc_money.silver, QS->npc_money.copper, QS->npc_money.gold, QS->npc_money.silver, QS->npc_money.copper,
QS->npc_count); QS->npc_count
);
auto results = QueryDatabase(query); auto results = QueryDatabase(query);
if (!results.Success()) { if (!results.Success()) {
Log(Logs::Detail, Logs::QSServer, "Failed Handin Log Record Insert: %s", results.ErrorMessage().c_str()); LogInfo("Failed Handin Log Record Insert: [{}]", results.ErrorMessage().c_str());
Log(Logs::Detail, Logs::QSServer, "%s", query.c_str()); LogInfo("[{}]", query.c_str());
} }
if(detailCount == 0) if (detailCount == 0) {
return; return;
}
int lastIndex = results.LastInsertedID(); int lastIndex = results.LastInsertedID();
for (int i = 0; i < detailCount; i++) { for (int i = 0; i < detailCount; i++) {
query = StringFormat("INSERT INTO `qs_player_handin_record_entries` SET `event_id` = '%i', " query = StringFormat(
"INSERT INTO `qs_player_handin_record_entries` SET `event_id` = '%i', "
"`action_type` = '%s', `char_slot` = '%i', `item_id` = '%i', " "`action_type` = '%s', `char_slot` = '%i', `item_id` = '%i', "
"`charges` = '%i', `aug_1` = '%i', `aug_2` = '%i', `aug_3` = '%i', " "`charges` = '%i', `aug_1` = '%i', `aug_2` = '%i', `aug_3` = '%i', "
"`aug_4` = '%i', `aug_5` = '%i'", "`aug_4` = '%i', `aug_5` = '%i'",
lastIndex, QS->items[i].action_type, QS->items[i].char_slot, lastIndex, QS->items[i].action_type, QS->items[i].char_slot,
QS->items[i].item_id, QS->items[i].charges, QS->items[i].aug_1, QS->items[i].item_id, QS->items[i].charges, QS->items[i].aug_1,
QS->items[i].aug_2, QS->items[i].aug_3, QS->items[i].aug_4, QS->items[i].aug_2, QS->items[i].aug_3, QS->items[i].aug_4,
QS->items[i].aug_5); QS->items[i].aug_5
);
if (!results.Success()) { if (!results.Success()) {
Log(Logs::Detail, Logs::QSServer, "Failed Handin Log Record Entry Insert: %s", results.ErrorMessage().c_str()); LogInfo("Failed Handin Log Record Entry Insert: [{}]", results.ErrorMessage().c_str());
Log(Logs::Detail, Logs::QSServer, "%s", query.c_str()); LogInfo("[{}]", query.c_str());
} }
} }
} }
void Database::LogPlayerNPCKill(QSPlayerLogNPCKill_Struct* QS, uint32 members){ void Database::LogPlayerNPCKill(QSPlayerLogNPCKill_Struct *QS, uint32 members)
{
std::string query = StringFormat("INSERT INTO `qs_player_npc_kill_record` " std::string query = StringFormat(
"INSERT INTO `qs_player_npc_kill_record` "
"SET `npc_id` = '%i', `type` = '%i', " "SET `npc_id` = '%i', `type` = '%i', "
"`zone_id` = '%i', `time` = NOW()", "`zone_id` = '%i', `time` = NOW()",
QS->s1.NPCID, QS->s1.Type, QS->s1.ZoneID); QS->s1.NPCID, QS->s1.Type, QS->s1.ZoneID
);
auto results = QueryDatabase(query); auto results = QueryDatabase(query);
if (!results.Success()) { if (!results.Success()) {
Log(Logs::Detail, Logs::QSServer, "Failed NPC Kill Log Record Insert: %s", results.ErrorMessage().c_str()); LogInfo("Failed NPC Kill Log Record Insert: [{}]", results.ErrorMessage().c_str());
Log(Logs::Detail, Logs::QSServer, "%s", query.c_str()); LogInfo("[{}]", query.c_str());
} }
if(members == 0) if (members == 0) {
return; return;
}
int lastIndex = results.LastInsertedID(); int lastIndex = results.LastInsertedID();
for (int i = 0; i < members; i++) { for (int i = 0; i < members; i++) {
query = StringFormat("INSERT INTO `qs_player_npc_kill_record_entries` " query = StringFormat(
"INSERT INTO `qs_player_npc_kill_record_entries` "
"SET `event_id` = '%i', `char_id` = '%i'", "SET `event_id` = '%i', `char_id` = '%i'",
lastIndex, QS->Chars[i].char_id); lastIndex, QS->Chars[i].char_id
);
auto results = QueryDatabase(query); auto results = QueryDatabase(query);
if (!results.Success()) { if (!results.Success()) {
Log(Logs::Detail, Logs::QSServer, "Failed NPC Kill Log Entry Insert: %s", results.ErrorMessage().c_str()); LogInfo("Failed NPC Kill Log Entry Insert: [{}]", results.ErrorMessage().c_str());
Log(Logs::Detail, Logs::QSServer, "%s", query.c_str()); LogInfo("[{}]", query.c_str());
} }
} }
} }
void Database::LogPlayerDelete(QSPlayerLogDelete_Struct* QS, uint32 items) { void Database::LogPlayerDelete(QSPlayerLogDelete_Struct *QS, uint32 items)
{
std::string query = StringFormat("INSERT INTO `qs_player_delete_record` SET `time` = NOW(), " std::string query = StringFormat(
"INSERT INTO `qs_player_delete_record` SET `time` = NOW(), "
"`char_id` = '%i', `stack_size` = '%i', `char_items` = '%i'", "`char_id` = '%i', `stack_size` = '%i', `char_items` = '%i'",
QS->char_id, QS->stack_size, QS->char_count, QS->char_count); QS->char_id, QS->stack_size, QS->char_count, QS->char_count
);
auto results = QueryDatabase(query); auto results = QueryDatabase(query);
if (!results.Success()) { if (!results.Success()) {
Log(Logs::Detail, Logs::QSServer, "Failed Delete Log Record Insert: %s", results.ErrorMessage().c_str()); LogInfo("Failed Delete Log Record Insert: [{}]", results.ErrorMessage().c_str());
Log(Logs::Detail, Logs::QSServer, "%s", query.c_str()); LogInfo("[{}]", query.c_str());
} }
if(items == 0) if (items == 0) {
return; return;
}
int lastIndex = results.LastInsertedID(); int lastIndex = results.LastInsertedID();
for (int i = 0; i < items; i++) { for (int i = 0; i < items; i++) {
query = StringFormat("INSERT INTO `qs_player_delete_record_entries` SET `event_id` = '%i', " query = StringFormat(
"INSERT INTO `qs_player_delete_record_entries` SET `event_id` = '%i', "
"`char_slot` = '%i', `item_id` = '%i', `charges` = '%i', `aug_1` = '%i', " "`char_slot` = '%i', `item_id` = '%i', `charges` = '%i', `aug_1` = '%i', "
"`aug_2` = '%i', `aug_3` = '%i', `aug_4` = '%i', `aug_5` = '%i'", "`aug_2` = '%i', `aug_3` = '%i', `aug_4` = '%i', `aug_5` = '%i'",
lastIndex, QS->items[i].char_slot, QS->items[i].item_id, QS->items[i].charges, lastIndex, QS->items[i].char_slot, QS->items[i].item_id, QS->items[i].charges,
QS->items[i].aug_1, QS->items[i].aug_2, QS->items[i].aug_3, QS->items[i].aug_4, QS->items[i].aug_1, QS->items[i].aug_2, QS->items[i].aug_3, QS->items[i].aug_4,
QS->items[i].aug_5); QS->items[i].aug_5
);
results = QueryDatabase(query); results = QueryDatabase(query);
if (!results.Success()) { if (!results.Success()) {
Log(Logs::Detail, Logs::QSServer, "Failed Delete Log Record Entry Insert: %s", results.ErrorMessage().c_str()); LogInfo("Failed Delete Log Record Entry Insert: [{}]", results.ErrorMessage().c_str());
Log(Logs::Detail, Logs::QSServer, "%s", query.c_str()); LogInfo("[{}]", query.c_str());
} }
} }
} }
void Database::LogPlayerMove(QSPlayerLogMove_Struct* QS, uint32 items) { void Database::LogPlayerMove(QSPlayerLogMove_Struct *QS, uint32 items)
{
/* These are item moves */ /* These are item moves */
std::string query = StringFormat("INSERT INTO `qs_player_move_record` SET `time` = NOW(), " std::string query = StringFormat(
"INSERT INTO `qs_player_move_record` SET `time` = NOW(), "
"`char_id` = '%i', `from_slot` = '%i', `to_slot` = '%i', " "`char_id` = '%i', `from_slot` = '%i', `to_slot` = '%i', "
"`stack_size` = '%i', `char_items` = '%i', `postaction` = '%i'", "`stack_size` = '%i', `char_items` = '%i', `postaction` = '%i'",
QS->char_id, QS->from_slot, QS->to_slot, QS->stack_size, QS->char_id, QS->from_slot, QS->to_slot, QS->stack_size,
QS->char_count, QS->postaction); QS->char_count, QS->postaction
);
auto results = QueryDatabase(query); auto results = QueryDatabase(query);
if (!results.Success()) { if (!results.Success()) {
Log(Logs::Detail, Logs::QSServer, "Failed Move Log Record Insert: %s", results.ErrorMessage().c_str()); LogInfo("Failed Move Log Record Insert: [{}]", results.ErrorMessage().c_str());
Log(Logs::Detail, Logs::QSServer, "%s", query.c_str()); LogInfo("[{}]", query.c_str());
} }
if(items == 0) if (items == 0) {
return; return;
}
int lastIndex = results.LastInsertedID(); int lastIndex = results.LastInsertedID();
for (int i = 0; i < items; i++) { for (int i = 0; i < items; i++) {
query = StringFormat("INSERT INTO `qs_player_move_record_entries` SET `event_id` = '%i', " query = StringFormat(
"INSERT INTO `qs_player_move_record_entries` SET `event_id` = '%i', "
"`from_slot` = '%i', `to_slot` = '%i', `item_id` = '%i', `charges` = '%i', " "`from_slot` = '%i', `to_slot` = '%i', `item_id` = '%i', `charges` = '%i', "
"`aug_1` = '%i', `aug_2` = '%i', `aug_3` = '%i', `aug_4` = '%i', `aug_5` = '%i'", "`aug_1` = '%i', `aug_2` = '%i', `aug_3` = '%i', `aug_4` = '%i', `aug_5` = '%i'",
lastIndex, QS->items[i].from_slot, QS->items[i].to_slot, QS->items[i].item_id, lastIndex, QS->items[i].from_slot, QS->items[i].to_slot, QS->items[i].item_id,
QS->items[i].charges, QS->items[i].aug_1, QS->items[i].aug_2, QS->items[i].charges, QS->items[i].aug_1, QS->items[i].aug_2,
QS->items[i].aug_3, QS->items[i].aug_4, QS->items[i].aug_5); QS->items[i].aug_3, QS->items[i].aug_4, QS->items[i].aug_5
);
results = QueryDatabase(query); results = QueryDatabase(query);
if (!results.Success()) { if (!results.Success()) {
Log(Logs::Detail, Logs::QSServer, "Failed Move Log Record Entry Insert: %s", results.ErrorMessage().c_str()); LogInfo("Failed Move Log Record Entry Insert: [{}]", results.ErrorMessage().c_str());
Log(Logs::Detail, Logs::QSServer, "%s", query.c_str()); LogInfo("[{}]", query.c_str());
}
}
} }
} void Database::LogMerchantTransaction(QSMerchantLogTransaction_Struct *QS, uint32 items)
{
}
void Database::LogMerchantTransaction(QSMerchantLogTransaction_Struct* QS, uint32 items) {
/* Merchant transactions are from the perspective of the merchant, not the player */ /* Merchant transactions are from the perspective of the merchant, not the player */
std::string query = StringFormat("INSERT INTO `qs_merchant_transaction_record` SET `time` = NOW(), " std::string query = StringFormat(
"INSERT INTO `qs_merchant_transaction_record` SET `time` = NOW(), "
"`zone_id` = '%i', `merchant_id` = '%i', `merchant_pp` = '%i', " "`zone_id` = '%i', `merchant_id` = '%i', `merchant_pp` = '%i', "
"`merchant_gp` = '%i', `merchant_sp` = '%i', `merchant_cp` = '%i', " "`merchant_gp` = '%i', `merchant_sp` = '%i', `merchant_cp` = '%i', "
"`merchant_items` = '%i', `char_id` = '%i', `char_pp` = '%i', " "`merchant_items` = '%i', `char_id` = '%i', `char_pp` = '%i', "
@ -350,29 +397,33 @@ void Database::LogMerchantTransaction(QSMerchantLogTransaction_Struct* QS, uint3
QS->merchant_money.gold, QS->merchant_money.silver, QS->merchant_money.gold, QS->merchant_money.silver,
QS->merchant_money.copper, QS->merchant_count, QS->char_id, QS->merchant_money.copper, QS->merchant_count, QS->char_id,
QS->char_money.platinum, QS->char_money.gold, QS->char_money.silver, QS->char_money.platinum, QS->char_money.gold, QS->char_money.silver,
QS->char_money.copper, QS->char_count); QS->char_money.copper, QS->char_count
);
auto results = QueryDatabase(query); auto results = QueryDatabase(query);
if (!results.Success()) { if (!results.Success()) {
Log(Logs::Detail, Logs::QSServer, "Failed Transaction Log Record Insert: %s", results.ErrorMessage().c_str()); LogInfo("Failed Transaction Log Record Insert: [{}]", results.ErrorMessage().c_str());
Log(Logs::Detail, Logs::QSServer, "%s", query.c_str()); LogInfo("[{}]", query.c_str());
} }
if(items == 0) if (items == 0) {
return; return;
}
int lastIndex = results.LastInsertedID(); int lastIndex = results.LastInsertedID();
for (int i = 0; i < items; i++) { for (int i = 0; i < items; i++) {
query = StringFormat("INSERT INTO `qs_merchant_transaction_record_entries` SET `event_id` = '%i', " query = StringFormat(
"INSERT INTO `qs_merchant_transaction_record_entries` SET `event_id` = '%i', "
"`char_slot` = '%i', `item_id` = '%i', `charges` = '%i', `aug_1` = '%i', " "`char_slot` = '%i', `item_id` = '%i', `charges` = '%i', `aug_1` = '%i', "
"`aug_2` = '%i', `aug_3` = '%i', `aug_4` = '%i', `aug_5` = '%i'", "`aug_2` = '%i', `aug_3` = '%i', `aug_4` = '%i', `aug_5` = '%i'",
lastIndex, QS->items[i].char_slot, QS->items[i].item_id, QS->items[i].charges, lastIndex, QS->items[i].char_slot, QS->items[i].item_id, QS->items[i].charges,
QS->items[i].aug_1, QS->items[i].aug_2, QS->items[i].aug_3, QS->items[i].aug_4, QS->items[i].aug_1, QS->items[i].aug_2, QS->items[i].aug_3, QS->items[i].aug_4,
QS->items[i].aug_5); QS->items[i].aug_5
);
results = QueryDatabase(query); results = QueryDatabase(query);
if (!results.Success()) { if (!results.Success()) {
Log(Logs::Detail, Logs::QSServer, "Failed Transaction Log Record Entry Insert: %s", results.ErrorMessage().c_str()); LogInfo("Failed Transaction Log Record Entry Insert: [{}]", results.ErrorMessage().c_str());
Log(Logs::Detail, Logs::QSServer, "%s", query.c_str()); LogInfo("[{}]", query.c_str());
} }
} }
@ -380,7 +431,8 @@ void Database::LogMerchantTransaction(QSMerchantLogTransaction_Struct* QS, uint3
} }
// this function does not delete the ServerPacket, so it must be handled at call site // this function does not delete the ServerPacket, so it must be handled at call site
void Database::GeneralQueryReceive(ServerPacket *pack) { void Database::GeneralQueryReceive(ServerPacket *pack)
{
/* /*
These are general queries passed from anywhere in zone instead of packing structures and breaking them down again and again These are general queries passed from anywhere in zone instead of packing structures and breaking them down again and again
*/ */
@ -390,8 +442,8 @@ void Database::GeneralQueryReceive(ServerPacket *pack) {
std::string query(queryBuffer); std::string query(queryBuffer);
auto results = QueryDatabase(query); auto results = QueryDatabase(query);
if (!results.Success()) { if (!results.Success()) {
Log(Logs::Detail, Logs::QSServer, "Failed Delete Log Record Insert: %s", results.ErrorMessage().c_str()); LogInfo("Failed Delete Log Record Insert: [{}]", results.ErrorMessage().c_str());
Log(Logs::Detail, Logs::QSServer, "%s", query.c_str()); LogInfo("[{}]", query.c_str());
} }
safe_delete_array(queryBuffer); safe_delete_array(queryBuffer);

View File

@ -52,16 +52,16 @@ int main() {
set_exception_handler(); set_exception_handler();
Timer LFGuildExpireTimer(60000); Timer LFGuildExpireTimer(60000);
Log(Logs::General, Logs::QSServer, "Starting EQEmu QueryServ."); LogInfo("Starting EQEmu QueryServ");
if (!queryservconfig::LoadConfig()) { if (!queryservconfig::LoadConfig()) {
Log(Logs::General, Logs::QSServer, "Loading server configuration failed."); LogInfo("Loading server configuration failed");
return 1; return 1;
} }
Config = queryservconfig::get(); Config = queryservconfig::get();
WorldShortName = Config->ShortName; WorldShortName = Config->ShortName;
Log(Logs::General, Logs::QSServer, "Connecting to MySQL..."); LogInfo("Connecting to MySQL");
/* MySQL Connection */ /* MySQL Connection */
if (!database.Connect( if (!database.Connect(
@ -70,7 +70,7 @@ int main() {
Config->QSDatabasePassword.c_str(), Config->QSDatabasePassword.c_str(),
Config->QSDatabaseDB.c_str(), Config->QSDatabaseDB.c_str(),
Config->QSDatabasePort)) { Config->QSDatabasePort)) {
Log(Logs::General, Logs::QSServer, "Cannot continue without a database connection."); LogInfo("Cannot continue without a database connection");
return 1; return 1;
} }
@ -79,11 +79,11 @@ int main() {
LogSys.StartFileLogs(); LogSys.StartFileLogs();
if (signal(SIGINT, CatchSignal) == SIG_ERR) { if (signal(SIGINT, CatchSignal) == SIG_ERR) {
Log(Logs::General, Logs::QSServer, "Could not set signal handler"); LogInfo("Could not set signal handler");
return 1; return 1;
} }
if (signal(SIGTERM, CatchSignal) == SIG_ERR) { if (signal(SIGTERM, CatchSignal) == SIG_ERR) {
Log(Logs::General, Logs::QSServer, "Could not set signal handler"); LogInfo("Could not set signal handler");
return 1; return 1;
} }

View File

@ -168,7 +168,7 @@ void WorldServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p)
break; break;
} }
default: default:
Log(Logs::Detail, Logs::QSServer, "Received unhandled ServerOP_QueryServGeneric", Type); LogInfo("Received unhandled ServerOP_QueryServGeneric", Type);
break; break;
} }
break; break;