Fix repository struct defaults for varchar | text

This commit is contained in:
Akkadius 2020-04-04 02:04:48 -05:00
parent d691db6621
commit 3aaa5020b1
45 changed files with 375 additions and 194 deletions

View File

@ -116,7 +116,7 @@ public:
AaAbility entry{}; AaAbility entry{};
entry.id = 0; entry.id = 0;
entry.name = 0; entry.name = "";
entry.category = -1; entry.category = -1;
entry.classes = 131070; entry.classes = 131070;
entry.races = 65535; entry.races = 65535;

View File

@ -94,8 +94,8 @@ public:
AccountFlags entry{}; AccountFlags entry{};
entry.p_accid = 0; entry.p_accid = 0;
entry.p_flag = 0; entry.p_flag = "";
entry.p_value = 0; entry.p_value = "";
return entry; return entry;
} }

View File

@ -92,7 +92,7 @@ public:
AdventureTemplateEntryFlavor entry{}; AdventureTemplateEntryFlavor entry{};
entry.id = 0; entry.id = 0;
entry.text = 0; entry.text = "";
return entry; return entry;
} }

View File

@ -154,7 +154,7 @@ public:
AdventureTemplate entry{}; AdventureTemplate entry{};
entry.id = 0; entry.id = 0;
entry.zone = 0; entry.zone = "";
entry.zone_version = 0; entry.zone_version = 0;
entry.is_hard = 0; entry.is_hard = 0;
entry.is_raid = 0; entry.is_raid = 0;

View File

@ -111,7 +111,7 @@ public:
entry.type = 0; entry.type = 0;
entry.npc_type = 0; entry.npc_type = 0;
entry.name = 0; entry.name = "";
entry.spell_id = 0; entry.spell_id = 0;
entry.distance = 60; entry.distance = 60;
entry.aura_type = 1; entry.aura_type = 1;

View File

@ -91,7 +91,7 @@ public:
{ {
BannedIps entry{}; BannedIps entry{};
entry.ip_address = 0; entry.ip_address = "";
entry.notes = 0; entry.notes = 0;
return entry; return entry;

View File

@ -27,8 +27,8 @@
class BaseDataRepository { class BaseDataRepository {
public: public:
struct BaseData { struct BaseData {
int level; int level;
int class; int class;
std::string hp; std::string hp;
std::string mana; std::string mana;
std::string end; std::string end;
@ -107,9 +107,8 @@ public:
{ {
BaseData entry{}; BaseData entry{};
entry.level = 0; entry.level = 0;
entry. entry.class = 0;
class = 0;
entry.hp = 0; entry.hp = 0;
entry.mana = 0; entry.mana = 0;
entry.end = 0; entry.end = 0;
@ -128,7 +127,7 @@ public:
) )
{ {
for (auto &base_data : base_datas) { for (auto &base_data : base_datas) {
if (base_data. { class }== base_data_id) { if (base_data.class == base_data_id) {
return base_data; return base_data;
} }
} }
@ -152,9 +151,8 @@ public:
if (results.RowCount() == 1) { if (results.RowCount() == 1) {
BaseData entry{}; BaseData entry{};
entry.level = atoi(row[0]); entry.level = atoi(row[0]);
entry. entry.class = atoi(row[1]);
class = atoi(row[1]);
entry.hp = atof(row[2]); entry.hp = atof(row[2]);
entry.mana = atof(row[3]); entry.mana = atof(row[3]);
entry.end = atof(row[4]); entry.end = atof(row[4]);
@ -203,16 +201,14 @@ public:
update_values.push_back(columns[8] + " = '" + EscapeString(base_data_entry.mana_fac) + "'"); update_values.push_back(columns[8] + " = '" + EscapeString(base_data_entry.mana_fac) + "'");
update_values.push_back(columns[9] + " = '" + EscapeString(base_data_entry.end_fac) + "'"); update_values.push_back(columns[9] + " = '" + EscapeString(base_data_entry.end_fac) + "'");
auto auto results = content_db.QueryDatabase(
results = content_db.QueryDatabase(
fmt::format( fmt::format(
"UPDATE {} SET {} WHERE {} = {}", "UPDATE {} SET {} WHERE {} = {}",
TableName(), TableName(),
implode(", ", update_values), implode(", ", update_values),
PrimaryKey(), PrimaryKey(),
base_data_entry. base_data_entry.class
class )
)
); );
return (results.Success() ? results.RowsAffected() : 0); return (results.Success() ? results.RowsAffected() : 0);
@ -301,9 +297,8 @@ public:
for (auto row = results.begin(); row != results.end(); ++row) { for (auto row = results.begin(); row != results.end(); ++row) {
BaseData entry{}; BaseData entry{};
entry.level = atoi(row[0]); entry.level = atoi(row[0]);
entry. entry.class = atoi(row[1]);
class = atoi(row[1]);
entry.hp = atof(row[2]); entry.hp = atof(row[2]);
entry.mana = atof(row[3]); entry.mana = atof(row[3]);
entry.end = atof(row[4]); entry.end = atof(row[4]);

View File

@ -94,7 +94,7 @@ public:
Books entry{}; Books entry{};
entry.name = ""; entry.name = "";
entry.txtfile = 0; entry.txtfile = "";
entry.language = 0; entry.language = 0;
return entry; return entry;

View File

@ -114,16 +114,16 @@ public:
Bugs entry{}; Bugs entry{};
entry.id = 0; entry.id = 0;
entry.zone = 0; entry.zone = "";
entry.name = 0; entry.name = "";
entry.ui = 0; entry.ui = "";
entry.x = 0; entry.x = 0;
entry.y = 0; entry.y = 0;
entry.z = 0; entry.z = 0;
entry.type = 0; entry.type = "";
entry.flag = 0; entry.flag = 0;
entry.target = 0; entry.target = 0;
entry.bug = 0; entry.bug = "";
entry.date = 0; entry.date = 0;
entry.status = 0; entry.status = 0;

View File

@ -125,7 +125,7 @@ public:
entry.slot_id = 0; entry.slot_id = 0;
entry.spell_id = 0; entry.spell_id = 0;
entry.caster_level = 0; entry.caster_level = 0;
entry.caster_name = 0; entry.caster_name = "";
entry.ticsremaining = 0; entry.ticsremaining = 0;
entry.counters = 0; entry.counters = 0;
entry.numhits = 0; entry.numhits = 0;

View File

@ -160,9 +160,7 @@ public:
auto columns = Columns(); auto columns = Columns();
update_values.push_back( update_values.push_back(columns[1] + " = '" + EscapeString(character_inspect_messages_entry.inspect_message) + "'");
columns[1] + " = '" + EscapeString(character_inspect_messages_entry.inspect_message) + "'"
);
auto results = database.QueryDatabase( auto results = database.QueryDatabase(
fmt::format( fmt::format(

View File

@ -34,7 +34,7 @@ public:
static std::string PrimaryKey() static std::string PrimaryKey()
{ {
return std::string(""); return std::string("id");
} }
static std::vector<std::string> Columns() static std::vector<std::string> Columns()
@ -106,7 +106,7 @@ public:
) )
{ {
for (auto &character_tribute : character_tributes) { for (auto &character_tribute : character_tributes) {
if (character_tribute.== character_tribute_id) { if (character_tribute.id == character_tribute_id) {
return character_tribute; return character_tribute;
} }
} }
@ -174,7 +174,7 @@ public:
TableName(), TableName(),
implode(", ", update_values), implode(", ", update_values),
PrimaryKey(), PrimaryKey(),
character_tribute_entry. character_tribute_entry.id
) )
); );

View File

@ -95,7 +95,7 @@ public:
entry.id = 0; entry.id = 0;
entry.type = 0; entry.type = 0;
entry.value = 0; entry.value = "";
return entry; return entry;
} }

View File

@ -115,7 +115,7 @@ public:
entry.target = 'None'; entry.target = 'None';
entry.time = current_timestamp(); entry.time = current_timestamp();
entry.descriptiontype = ""; entry.descriptiontype = "";
entry.description = 0; entry.description = "";
entry.event_nid = 0; entry.event_nid = 0;
return entry; return entry;

View File

@ -98,7 +98,7 @@ public:
entry.id = 0; entry.id = 0;
entry.faction_id = 0; entry.faction_id = 0;
entry.mod = 0; entry.mod = 0;
entry.mod_name = 0; entry.mod_name = "";
return entry; return entry;
} }

View File

@ -95,7 +95,7 @@ public:
entry.charid = 0; entry.charid = 0;
entry.type = 1; entry.type = 1;
entry.name = 0; entry.name = "";
return entry; return entry;
} }

View File

@ -122,11 +122,10 @@ public:
entry.rare = 0; entry.rare = 0;
entry.raid = 0; entry.raid = 0;
entry.race = 0; entry.race = 0;
entry. entry.class = 0;
class = 0; entry.bodytype = 0;
entry.bodytype = 0; entry.zone = 0;
entry.zone = 0; entry.hot_zone = 0;
entry.hot_zone = 0;
return entry; return entry;
} }
@ -170,11 +169,10 @@ public:
entry.rare = atoi(row[6]); entry.rare = atoi(row[6]);
entry.raid = atoi(row[7]); entry.raid = atoi(row[7]);
entry.race = row[8]; entry.race = row[8];
entry. entry.class = row[9];
class = row[9]; entry.bodytype = row[10];
entry.bodytype = row[10]; entry.zone = row[11];
entry.zone = row[11]; entry.hot_zone = atoi(row[12]);
entry.hot_zone = atoi(row[12]);
return entry; return entry;
} }
@ -214,8 +212,7 @@ public:
update_values.push_back(columns[6] + " = " + std::to_string(global_loot_entry.rare)); update_values.push_back(columns[6] + " = " + std::to_string(global_loot_entry.rare));
update_values.push_back(columns[7] + " = " + std::to_string(global_loot_entry.raid)); update_values.push_back(columns[7] + " = " + std::to_string(global_loot_entry.raid));
update_values.push_back(columns[8] + " = '" + EscapeString(global_loot_entry.race) + "'"); update_values.push_back(columns[8] + " = '" + EscapeString(global_loot_entry.race) + "'");
update_values.push_back(columns[9] + " = '" + EscapeString(global_loot_entry. update_values.push_back(columns[9] + " = '" + EscapeString(global_loot_entry.class) + "'");
class) +"'");
update_values.push_back(columns[10] + " = '" + EscapeString(global_loot_entry.bodytype) + "'"); update_values.push_back(columns[10] + " = '" + EscapeString(global_loot_entry.bodytype) + "'");
update_values.push_back(columns[11] + " = '" + EscapeString(global_loot_entry.zone) + "'"); update_values.push_back(columns[11] + " = '" + EscapeString(global_loot_entry.zone) + "'");
update_values.push_back(columns[12] + " = " + std::to_string(global_loot_entry.hot_zone)); update_values.push_back(columns[12] + " = " + std::to_string(global_loot_entry.hot_zone));
@ -247,8 +244,7 @@ public:
insert_values.push_back(std::to_string(global_loot_entry.rare)); insert_values.push_back(std::to_string(global_loot_entry.rare));
insert_values.push_back(std::to_string(global_loot_entry.raid)); insert_values.push_back(std::to_string(global_loot_entry.raid));
insert_values.push_back("'" + EscapeString(global_loot_entry.race) + "'"); insert_values.push_back("'" + EscapeString(global_loot_entry.race) + "'");
insert_values.push_back("'" + EscapeString(global_loot_entry. insert_values.push_back("'" + EscapeString(global_loot_entry.class) + "'");
class) +"'");
insert_values.push_back("'" + EscapeString(global_loot_entry.bodytype) + "'"); insert_values.push_back("'" + EscapeString(global_loot_entry.bodytype) + "'");
insert_values.push_back("'" + EscapeString(global_loot_entry.zone) + "'"); insert_values.push_back("'" + EscapeString(global_loot_entry.zone) + "'");
insert_values.push_back(std::to_string(global_loot_entry.hot_zone)); insert_values.push_back(std::to_string(global_loot_entry.hot_zone));
@ -288,8 +284,7 @@ public:
insert_values.push_back(std::to_string(global_loot_entry.rare)); insert_values.push_back(std::to_string(global_loot_entry.rare));
insert_values.push_back(std::to_string(global_loot_entry.raid)); insert_values.push_back(std::to_string(global_loot_entry.raid));
insert_values.push_back("'" + EscapeString(global_loot_entry.race) + "'"); insert_values.push_back("'" + EscapeString(global_loot_entry.race) + "'");
insert_values.push_back("'" + EscapeString(global_loot_entry. insert_values.push_back("'" + EscapeString(global_loot_entry.class) + "'");
class) +"'");
insert_values.push_back("'" + EscapeString(global_loot_entry.bodytype) + "'"); insert_values.push_back("'" + EscapeString(global_loot_entry.bodytype) + "'");
insert_values.push_back("'" + EscapeString(global_loot_entry.zone) + "'"); insert_values.push_back("'" + EscapeString(global_loot_entry.zone) + "'");
insert_values.push_back(std::to_string(global_loot_entry.hot_zone)); insert_values.push_back(std::to_string(global_loot_entry.hot_zone));
@ -335,11 +330,10 @@ public:
entry.rare = atoi(row[6]); entry.rare = atoi(row[6]);
entry.raid = atoi(row[7]); entry.raid = atoi(row[7]);
entry.race = row[8]; entry.race = row[8];
entry. entry.class = row[9];
class = row[9]; entry.bodytype = row[10];
entry.bodytype = row[10]; entry.zone = row[11];
entry.zone = row[11]; entry.hot_zone = atoi(row[12]);
entry.hot_zone = atoi(row[12]);
all_entries.push_back(entry); all_entries.push_back(entry);
} }

View File

@ -93,9 +93,9 @@ public:
{ {
GmIps entry{}; GmIps entry{};
entry.name = 0; entry.name = "";
entry.account_id = 0; entry.account_id = 0;
entry.ip_address = 0; entry.ip_address = "";
return entry; return entry;
} }

View File

@ -97,7 +97,7 @@ public:
entry.groupid = 0; entry.groupid = 0;
entry.charid = 0; entry.charid = 0;
entry.name = 0; entry.name = "";
entry.ismerc = 0; entry.ismerc = 0;
return entry; return entry;

View File

@ -112,7 +112,7 @@ public:
entry.maintank = ""; entry.maintank = "";
entry.assist = ""; entry.assist = "";
entry.puller = ""; entry.puller = "";
entry.mentoree = 0; entry.mentoree = "";
entry.mentor_percent = 0; entry.mentor_percent = 0;
return entry; return entry;

View File

@ -112,7 +112,7 @@ public:
entry.total_tribute = 0; entry.total_tribute = 0;
entry.last_tribute = 0; entry.last_tribute = 0;
entry.banker = 0; entry.banker = 0;
entry.public_note = 0; entry.public_note = "";
entry.alt = 0; entry.alt = 0;
return entry; return entry;

View File

@ -109,7 +109,7 @@ public:
entry.name = ""; entry.name = "";
entry.leader = 0; entry.leader = 0;
entry.minstatus = 0; entry.minstatus = 0;
entry.motd = 0; entry.motd = "";
entry.tribute = 0; entry.tribute = 0;
entry.motd_setter = ""; entry.motd_setter = "";
entry.channel = ""; entry.channel = "";

View File

@ -100,9 +100,9 @@ public:
Hackers entry{}; Hackers entry{};
entry.id = 0; entry.id = 0;
entry.account = 0; entry.account = "";
entry.name = 0; entry.name = "";
entry.hacked = 0; entry.hacked = "";
entry.zone = 0; entry.zone = 0;
entry.date = current_timestamp(); entry.date = current_timestamp();

View File

@ -27,13 +27,13 @@
class InstanceListRepository { class InstanceListRepository {
public: public:
struct InstanceList { struct InstanceList {
int id; int id;
int zone; int zone;
int version; int8 version;
int is_global; int8 is_global;
int start_time; int start_time;
int duration; int duration;
int never_expires; int8 never_expires;
}; };
static std::string PrimaryKey() static std::string PrimaryKey()

View File

@ -103,7 +103,7 @@ public:
entry.it_chance = 0; entry.it_chance = 0;
entry.it_level = 0; entry.it_level = 0;
entry.it_id = 0; entry.it_id = 0;
entry.it_qglobal = 0; entry.it_qglobal = "";
entry.it_bagslot = 0; entry.it_bagslot = 0;
return entry; return entry;

View File

@ -106,8 +106,8 @@ public:
Lfguild entry{}; Lfguild entry{};
entry.type = 0; entry.type = 0;
entry.name = 0; entry.name = "";
entry.comment = 0; entry.comment = "";
entry.fromlevel = 0; entry.fromlevel = 0;
entry.tolevel = 0; entry.tolevel = 0;
entry.classes = 0; entry.classes = 0;

View File

@ -106,11 +106,11 @@ public:
LoginAccounts entry{}; LoginAccounts entry{};
entry.id = 0; entry.id = 0;
entry.account_name = 0; entry.account_name = "";
entry.account_password = 0; entry.account_password = "";
entry.account_email = 0; entry.account_email = "";
entry.source_loginserver = 0; entry.source_loginserver = 0;
entry.last_ip_address = 0; entry.last_ip_address = "";
entry.last_login_date = 0; entry.last_login_date = 0;
entry.created_at = 0; entry.created_at = 0;
entry.updated_at = current_timestamp(); entry.updated_at = current_timestamp();

View File

@ -104,13 +104,13 @@ public:
LoginServerAdmins entry{}; LoginServerAdmins entry{};
entry.id = 0; entry.id = 0;
entry.account_name = 0; entry.account_name = "";
entry.account_password = 0; entry.account_password = "";
entry.first_name = 0; entry.first_name = "";
entry.last_name = 0; entry.last_name = "";
entry.email = 0; entry.email = "";
entry.registration_date = 0; entry.registration_date = 0;
entry.registration_ip_address = 0; entry.registration_ip_address = "";
return entry; return entry;
} }

View File

@ -92,7 +92,7 @@ public:
LoginServerListTypes entry{}; LoginServerListTypes entry{};
entry.id = 0; entry.id = 0;
entry.description = 0; entry.description = "";
return entry; return entry;
} }

View File

@ -108,8 +108,8 @@ public:
LoginWorldServers entry{}; LoginWorldServers entry{};
entry.id = 0; entry.id = 0;
entry.long_name = 0; entry.long_name = "";
entry.short_name = 0; entry.short_name = "";
entry.tag_description = ""; entry.tag_description = "";
entry.login_server_list_type_id = 0; entry.login_server_list_type_id = 0;
entry.last_login_date = 0; entry.last_login_date = 0;
@ -195,8 +195,7 @@ public:
update_values.push_back(columns[1] + " = '" + EscapeString(login_world_servers_entry.long_name) + "'"); update_values.push_back(columns[1] + " = '" + EscapeString(login_world_servers_entry.long_name) + "'");
update_values.push_back(columns[2] + " = '" + EscapeString(login_world_servers_entry.short_name) + "'"); update_values.push_back(columns[2] + " = '" + EscapeString(login_world_servers_entry.short_name) + "'");
update_values.push_back(columns[3] + " = '" + EscapeString(login_world_servers_entry.tag_description) + "'"); update_values.push_back(columns[3] + " = '" + EscapeString(login_world_servers_entry.tag_description) + "'");
update_values.push_back( update_values.push_back(columns[4] + " = " + std::to_string(login_world_servers_entry.login_server_list_type_id));
columns[4] + " = " + std::to_string(login_world_servers_entry.login_server_list_type_id));
update_values.push_back(columns[5] + " = '" + EscapeString(login_world_servers_entry.last_login_date) + "'"); update_values.push_back(columns[5] + " = '" + EscapeString(login_world_servers_entry.last_login_date) + "'");
update_values.push_back(columns[6] + " = '" + EscapeString(login_world_servers_entry.last_ip_address) + "'"); update_values.push_back(columns[6] + " = '" + EscapeString(login_world_servers_entry.last_ip_address) + "'");
update_values.push_back(columns[7] + " = " + std::to_string(login_world_servers_entry.login_server_admin_id)); update_values.push_back(columns[7] + " = " + std::to_string(login_world_servers_entry.login_server_admin_id));

View File

@ -108,8 +108,8 @@ public:
entry.timestamp = 0; entry.timestamp = 0;
entry.from = ""; entry.from = "";
entry.subject = ""; entry.subject = "";
entry.body = 0; entry.body = "";
entry.to = 0; entry.to = "";
entry.status = 0; entry.status = 0;
return entry; return entry;

View File

@ -101,7 +101,7 @@ public:
entry.emoteid = 0; entry.emoteid = 0;
entry.event_ = 0; entry.event_ = 0;
entry.type = 0; entry.type = 0;
entry.text = 0; entry.text = "";
return entry; return entry;
} }

View File

@ -332,7 +332,7 @@ public:
NpcTypes entry{}; NpcTypes entry{};
entry.id = 0; entry.id = 0;
entry.name = 0; entry.name = "";
entry.lastname = 0; entry.lastname = 0;
entry.level = 0; entry.level = 0;
entry.race = 0; entry.race = 0;

View File

@ -146,7 +146,7 @@ public:
NpcTypesTint entry{}; NpcTypesTint entry{};
entry.id = 0; entry.id = 0;
entry.tint_set_name = 0; entry.tint_set_name = "";
entry.red1h = 0; entry.red1h = 0;
entry.grn1h = 0; entry.grn1h = 0;
entry.blu1h = 0; entry.blu1h = 0;

View File

@ -124,7 +124,7 @@ public:
entry.charname = ""; entry.charname = "";
entry.accountname = ""; entry.accountname = "";
entry.lastgm = ""; entry.lastgm = "";
entry.petitiontext = 0; entry.petitiontext = "";
entry.gmtext = 0; entry.gmtext = 0;
entry.zone = ""; entry.zone = "";
entry.urgency = 0; entry.urgency = 0;

View File

@ -107,12 +107,12 @@ public:
entry.gid = 0; entry.gid = 0;
entry.rid = 0; entry.rid = 0;
entry.marknpc = 0; entry.marknpc = "";
entry.maintank = 0; entry.maintank = "";
entry.assist = 0; entry.assist = "";
entry.puller = 0; entry.puller = "";
entry.leadershipaa = 0; entry.leadershipaa = 0;
entry.mentoree = 0; entry.mentoree = "";
entry.mentor_percent = 0; entry.mentor_percent = 0;
return entry; return entry;

View File

@ -97,7 +97,7 @@ public:
entry.id = 0; entry.id = 0;
entry.value = 0; entry.value = 0;
entry.zone = 0; entry.zone = "";
entry.instance_id = 0; entry.instance_id = 0;
return entry; return entry;

View File

@ -124,7 +124,7 @@ public:
entry.duration = 0; entry.duration = 0;
entry.duration_code = 0; entry.duration_code = 0;
entry.title = ""; entry.title = "";
entry.description = 0; entry.description = "";
entry.reward = ""; entry.reward = "";
entry.rewardid = 0; entry.rewardid = 0;
entry.cashreward = 0; entry.cashreward = 0;

View File

@ -27,12 +27,12 @@
class TitlesRepository { class TitlesRepository {
public: public:
struct Titles { struct Titles {
int id; int id;
int8 skill_id; int8 skill_id;
int min_skill_value; int min_skill_value;
int max_skill_value; int max_skill_value;
int min_aa_points; int min_aa_points;
int max_aa_points; int max_aa_points;
int8 class; int8 class;
int8 gender; int8 gender;
int char_id; int char_id;
@ -121,15 +121,14 @@ public:
entry.max_skill_value = -1; entry.max_skill_value = -1;
entry.min_aa_points = -1; entry.min_aa_points = -1;
entry.max_aa_points = -1; entry.max_aa_points = -1;
entry. entry.class = -1;
class = -1; entry.gender = -1;
entry.gender = -1; entry.char_id = -1;
entry.char_id = -1; entry.status = -1;
entry.status = -1; entry.item_id = -1;
entry.item_id = -1; entry.prefix = "";
entry.prefix = ""; entry.suffix = "";
entry.suffix = ""; entry.title_set = 0;
entry.title_set = 0;
return entry; return entry;
} }
@ -170,15 +169,14 @@ public:
entry.max_skill_value = atoi(row[3]); entry.max_skill_value = atoi(row[3]);
entry.min_aa_points = atoi(row[4]); entry.min_aa_points = atoi(row[4]);
entry.max_aa_points = atoi(row[5]); entry.max_aa_points = atoi(row[5]);
entry. entry.class = atoi(row[6]);
class = atoi(row[6]); entry.gender = atoi(row[7]);
entry.gender = atoi(row[7]); entry.char_id = atoi(row[8]);
entry.char_id = atoi(row[8]); entry.status = atoi(row[9]);
entry.status = atoi(row[9]); entry.item_id = atoi(row[10]);
entry.item_id = atoi(row[10]); entry.prefix = row[11];
entry.prefix = row[11]; entry.suffix = row[12];
entry.suffix = row[12]; entry.title_set = atoi(row[13]);
entry.title_set = atoi(row[13]);
return entry; return entry;
} }
@ -215,8 +213,7 @@ public:
update_values.push_back(columns[3] + " = " + std::to_string(titles_entry.max_skill_value)); update_values.push_back(columns[3] + " = " + std::to_string(titles_entry.max_skill_value));
update_values.push_back(columns[4] + " = " + std::to_string(titles_entry.min_aa_points)); update_values.push_back(columns[4] + " = " + std::to_string(titles_entry.min_aa_points));
update_values.push_back(columns[5] + " = " + std::to_string(titles_entry.max_aa_points)); update_values.push_back(columns[5] + " = " + std::to_string(titles_entry.max_aa_points));
update_values.push_back(columns[6] + " = " + std::to_string(titles_entry. update_values.push_back(columns[6] + " = " + std::to_string(titles_entry.class));
class));
update_values.push_back(columns[7] + " = " + std::to_string(titles_entry.gender)); update_values.push_back(columns[7] + " = " + std::to_string(titles_entry.gender));
update_values.push_back(columns[8] + " = " + std::to_string(titles_entry.char_id)); update_values.push_back(columns[8] + " = " + std::to_string(titles_entry.char_id));
update_values.push_back(columns[9] + " = " + std::to_string(titles_entry.status)); update_values.push_back(columns[9] + " = " + std::to_string(titles_entry.status));
@ -249,8 +246,7 @@ public:
insert_values.push_back(std::to_string(titles_entry.max_skill_value)); insert_values.push_back(std::to_string(titles_entry.max_skill_value));
insert_values.push_back(std::to_string(titles_entry.min_aa_points)); insert_values.push_back(std::to_string(titles_entry.min_aa_points));
insert_values.push_back(std::to_string(titles_entry.max_aa_points)); insert_values.push_back(std::to_string(titles_entry.max_aa_points));
insert_values.push_back(std::to_string(titles_entry. insert_values.push_back(std::to_string(titles_entry.class));
class));
insert_values.push_back(std::to_string(titles_entry.gender)); insert_values.push_back(std::to_string(titles_entry.gender));
insert_values.push_back(std::to_string(titles_entry.char_id)); insert_values.push_back(std::to_string(titles_entry.char_id));
insert_values.push_back(std::to_string(titles_entry.status)); insert_values.push_back(std::to_string(titles_entry.status));
@ -291,8 +287,7 @@ public:
insert_values.push_back(std::to_string(titles_entry.max_skill_value)); insert_values.push_back(std::to_string(titles_entry.max_skill_value));
insert_values.push_back(std::to_string(titles_entry.min_aa_points)); insert_values.push_back(std::to_string(titles_entry.min_aa_points));
insert_values.push_back(std::to_string(titles_entry.max_aa_points)); insert_values.push_back(std::to_string(titles_entry.max_aa_points));
insert_values.push_back(std::to_string(titles_entry. insert_values.push_back(std::to_string(titles_entry.class));
class));
insert_values.push_back(std::to_string(titles_entry.gender)); insert_values.push_back(std::to_string(titles_entry.gender));
insert_values.push_back(std::to_string(titles_entry.char_id)); insert_values.push_back(std::to_string(titles_entry.char_id));
insert_values.push_back(std::to_string(titles_entry.status)); insert_values.push_back(std::to_string(titles_entry.status));
@ -339,15 +334,14 @@ public:
entry.max_skill_value = atoi(row[3]); entry.max_skill_value = atoi(row[3]);
entry.min_aa_points = atoi(row[4]); entry.min_aa_points = atoi(row[4]);
entry.max_aa_points = atoi(row[5]); entry.max_aa_points = atoi(row[5]);
entry. entry.class = atoi(row[6]);
class = atoi(row[6]); entry.gender = atoi(row[7]);
entry.gender = atoi(row[7]); entry.char_id = atoi(row[8]);
entry.char_id = atoi(row[8]); entry.status = atoi(row[9]);
entry.status = atoi(row[9]); entry.item_id = atoi(row[10]);
entry.item_id = atoi(row[10]); entry.prefix = row[11];
entry.prefix = row[11]; entry.suffix = row[12];
entry.suffix = row[12]; entry.title_set = atoi(row[13]);
entry.title_set = atoi(row[13]);
all_entries.push_back(entry); all_entries.push_back(entry);
} }

View File

@ -29,17 +29,22 @@ public:
struct TradeskillRecipe { struct TradeskillRecipe {
int id; int id;
std::string name; std::string name;
int tradeskill; int16 tradeskill;
int skillneeded; int16 skillneeded;
int trivial; int16 trivial;
uint8 nofail; int8 nofail;
int replace_container; int8 replace_container;
std::string notes; std::string notes;
uint8 must_learn; int8 must_learn;
uint8 quest; int8 quest;
uint8 enabled; int8 enabled;
}; };
static std::string PrimaryKey()
{
return std::string("id");
}
static std::vector<std::string> Columns() static std::vector<std::string> Columns()
{ {
return { return {
@ -62,6 +67,21 @@ public:
return std::string(implode(", ", Columns())); return std::string(implode(", ", Columns()));
} }
static std::string InsertColumnsRaw()
{
std::vector<std::string> insert_columns;
for (auto &column : Columns()) {
if (column == PrimaryKey()) {
continue;
}
insert_columns.push_back(column);
}
return std::string(implode(", ", insert_columns));
}
static std::string TableName() static std::string TableName()
{ {
return std::string("tradeskill_recipe"); return std::string("tradeskill_recipe");
@ -69,18 +89,25 @@ public:
static std::string BaseSelect() static std::string BaseSelect()
{ {
return std::string( return fmt::format(
fmt::format( "SELECT {} FROM {}",
"SELECT {} FROM {}", ColumnsRaw(),
ColumnsRaw(), TableName()
TableName() );
) }
static std::string BaseInsert()
{
return fmt::format(
"INSERT INTO {} ({}) ",
TableName(),
InsertColumnsRaw()
); );
} }
static TradeskillRecipe NewEntity() static TradeskillRecipe NewEntity()
{ {
TradeskillRecipe entry; TradeskillRecipe entry{};
entry.id = 0; entry.id = 0;
entry.name = ""; entry.name = "";
@ -89,46 +116,215 @@ public:
entry.trivial = 0; entry.trivial = 0;
entry.nofail = 0; entry.nofail = 0;
entry.replace_container = 0; entry.replace_container = 0;
entry.notes = ""; entry.notes = 0;
entry.must_learn = 0; entry.must_learn = 0;
entry.quest = 0; entry.quest = 0;
entry.enabled = 0; entry.enabled = 1;
return entry; return entry;
} }
static TradeskillRecipe GetRecipe(int recipe_id) static TradeskillRecipe GetTradeskillRecipeEntry(
const std::vector<TradeskillRecipe> &tradeskill_recipes,
int tradeskill_recipe_id
)
{
for (auto &tradeskill_recipe : tradeskill_recipes) {
if (tradeskill_recipe.id == tradeskill_recipe_id) {
return tradeskill_recipe;
}
}
return NewEntity();
}
static TradeskillRecipe FindOne(
int tradeskill_recipe_id
)
{ {
auto results = content_db.QueryDatabase( auto results = content_db.QueryDatabase(
fmt::format( fmt::format(
"{} WHERE id = {}", "{} WHERE id = {} LIMIT 1",
BaseSelect(), BaseSelect(),
recipe_id tradeskill_recipe_id
) )
); );
TradeskillRecipe tradeskill_recipe = NewEntity();
auto row = results.begin(); auto row = results.begin();
if (results.RowCount() == 0) { if (results.RowCount() == 1) {
return tradeskill_recipe; TradeskillRecipe entry{};
entry.id = atoi(row[0]);
entry.name = row[1];
entry.tradeskill = atoi(row[2]);
entry.skillneeded = atoi(row[3]);
entry.trivial = atoi(row[4]);
entry.nofail = atoi(row[5]);
entry.replace_container = atoi(row[6]);
entry.notes = row[7];
entry.must_learn = atoi(row[8]);
entry.quest = atoi(row[9]);
entry.enabled = atoi(row[10]);
return entry;
} }
tradeskill_recipe.id = atoi(row[0]); return NewEntity();
tradeskill_recipe.name = (row[1] ? row[1] : ""); }
tradeskill_recipe.tradeskill = atoi(row[2]);
tradeskill_recipe.skillneeded = atoi(row[3]);
tradeskill_recipe.trivial = atoi(row[4]);
tradeskill_recipe.nofail = atoi(row[5]);
tradeskill_recipe.replace_container = atoi(row[6]);
tradeskill_recipe.notes = (row[7] ? row[7] : "");
tradeskill_recipe.must_learn = atoi(row[8]);
tradeskill_recipe.quest = atoi(row[9]);
tradeskill_recipe.enabled = atoi(row[10]);
return tradeskill_recipe; static int DeleteOne(
int tradeskill_recipe_id
)
{
auto results = content_db.QueryDatabase(
fmt::format(
"DELETE FROM {} WHERE {} = {}",
TableName(),
PrimaryKey(),
tradeskill_recipe_id
)
);
return (results.Success() ? results.RowsAffected() : 0);
}
static int UpdateOne(
TradeskillRecipe tradeskill_recipe_entry
)
{
std::vector<std::string> update_values;
auto columns = Columns();
update_values.push_back(columns[1] + " = '" + EscapeString(tradeskill_recipe_entry.name) + "'");
update_values.push_back(columns[2] + " = " + std::to_string(tradeskill_recipe_entry.tradeskill));
update_values.push_back(columns[3] + " = " + std::to_string(tradeskill_recipe_entry.skillneeded));
update_values.push_back(columns[4] + " = " + std::to_string(tradeskill_recipe_entry.trivial));
update_values.push_back(columns[5] + " = " + std::to_string(tradeskill_recipe_entry.nofail));
update_values.push_back(columns[6] + " = " + std::to_string(tradeskill_recipe_entry.replace_container));
update_values.push_back(columns[7] + " = '" + EscapeString(tradeskill_recipe_entry.notes) + "'");
update_values.push_back(columns[8] + " = " + std::to_string(tradeskill_recipe_entry.must_learn));
update_values.push_back(columns[9] + " = " + std::to_string(tradeskill_recipe_entry.quest));
update_values.push_back(columns[10] + " = " + std::to_string(tradeskill_recipe_entry.enabled));
auto results = content_db.QueryDatabase(
fmt::format(
"UPDATE {} SET {} WHERE {} = {}",
TableName(),
implode(", ", update_values),
PrimaryKey(),
tradeskill_recipe_entry.id
)
);
return (results.Success() ? results.RowsAffected() : 0);
}
static TradeskillRecipe InsertOne(
TradeskillRecipe tradeskill_recipe_entry
)
{
std::vector<std::string> insert_values;
insert_values.push_back("'" + EscapeString(tradeskill_recipe_entry.name) + "'");
insert_values.push_back(std::to_string(tradeskill_recipe_entry.tradeskill));
insert_values.push_back(std::to_string(tradeskill_recipe_entry.skillneeded));
insert_values.push_back(std::to_string(tradeskill_recipe_entry.trivial));
insert_values.push_back(std::to_string(tradeskill_recipe_entry.nofail));
insert_values.push_back(std::to_string(tradeskill_recipe_entry.replace_container));
insert_values.push_back("'" + EscapeString(tradeskill_recipe_entry.notes) + "'");
insert_values.push_back(std::to_string(tradeskill_recipe_entry.must_learn));
insert_values.push_back(std::to_string(tradeskill_recipe_entry.quest));
insert_values.push_back(std::to_string(tradeskill_recipe_entry.enabled));
auto results = content_db.QueryDatabase(
fmt::format(
"{} VALUES ({})",
BaseInsert(),
implode(",", insert_values)
)
);
if (results.Success()) {
tradeskill_recipe_entry.id = results.LastInsertedID();
return tradeskill_recipe_entry;
}
tradeskill_recipe_entry = InstanceListRepository::NewEntity();
return tradeskill_recipe_entry;
}
static int InsertMany(
std::vector<TradeskillRecipe> tradeskill_recipe_entries
)
{
std::vector<std::string> insert_chunks;
for (auto &tradeskill_recipe_entry: tradeskill_recipe_entries) {
std::vector<std::string> insert_values;
insert_values.push_back("'" + EscapeString(tradeskill_recipe_entry.name) + "'");
insert_values.push_back(std::to_string(tradeskill_recipe_entry.tradeskill));
insert_values.push_back(std::to_string(tradeskill_recipe_entry.skillneeded));
insert_values.push_back(std::to_string(tradeskill_recipe_entry.trivial));
insert_values.push_back(std::to_string(tradeskill_recipe_entry.nofail));
insert_values.push_back(std::to_string(tradeskill_recipe_entry.replace_container));
insert_values.push_back("'" + EscapeString(tradeskill_recipe_entry.notes) + "'");
insert_values.push_back(std::to_string(tradeskill_recipe_entry.must_learn));
insert_values.push_back(std::to_string(tradeskill_recipe_entry.quest));
insert_values.push_back(std::to_string(tradeskill_recipe_entry.enabled));
insert_chunks.push_back("(" + implode(",", insert_values) + ")");
}
std::vector<std::string> insert_values;
auto results = content_db.QueryDatabase(
fmt::format(
"{} VALUES {}",
BaseInsert(),
implode(",", insert_chunks)
)
);
return (results.Success() ? results.RowsAffected() : 0);
}
static std::vector<TradeskillRecipe> All()
{
std::vector<TradeskillRecipe> all_entries;
auto results = content_db.QueryDatabase(
fmt::format(
"{}",
BaseSelect()
)
);
all_entries.reserve(results.RowCount());
for (auto row = results.begin(); row != results.end(); ++row) {
TradeskillRecipe entry{};
entry.id = atoi(row[0]);
entry.name = row[1];
entry.tradeskill = atoi(row[2]);
entry.skillneeded = atoi(row[3]);
entry.trivial = atoi(row[4]);
entry.nofail = atoi(row[5]);
entry.replace_container = atoi(row[6]);
entry.notes = row[7];
entry.must_learn = atoi(row[8]);
entry.quest = atoi(row[9]);
entry.enabled = atoi(row[10]);
all_entries.push_back(entry);
}
return all_entries;
} }
}; };
#endif #endif //EQEMU_TRADESKILL_RECIPE_REPOSITORY_H

View File

@ -100,7 +100,7 @@ public:
entry.id = 0; entry.id = 0;
entry.unknown = 0; entry.unknown = 0;
entry.name = ""; entry.name = "";
entry.descr = 0; entry.descr = "";
entry.isguild = 0; entry.isguild = 0;
return entry; return entry;

View File

@ -96,8 +96,8 @@ public:
Variables entry{}; Variables entry{};
entry.varname = ""; entry.varname = "";
entry.value = 0; entry.value = "";
entry.information = 0; entry.information = "";
entry.ts = current_timestamp(); entry.ts = current_timestamp();
return entry; return entry;

View File

@ -98,7 +98,7 @@ public:
VeteranRewardTemplates entry{}; VeteranRewardTemplates entry{};
entry.claim_id = 0; entry.claim_id = 0;
entry.name = 0; entry.name = "";
entry.item_id = 0; entry.item_id = 0;
entry.charges = 0; entry.charges = 0;
entry.reward_slot = 0; entry.reward_slot = 0;

View File

@ -262,7 +262,7 @@ public:
entry.short_name = 0; entry.short_name = 0;
entry.id = 0; entry.id = 0;
entry.file_name = 0; entry.file_name = 0;
entry.long_name = 0; entry.long_name = "";
entry.map_file_name = 0; entry.map_file_name = 0;
entry.safe_x = 0; entry.safe_x = 0;
entry.safe_y = 0; entry.safe_y = 0;

View File

@ -78,9 +78,8 @@ my $pass = $config->{"server"}{"database"}{"password"};
my $dsn = "dbi:mysql:$database_name:$host:3306"; my $dsn = "dbi:mysql:$database_name:$host:3306";
my $connect = DBI->connect($dsn, $user, $pass); my $connect = DBI->connect($dsn, $user, $pass);
my @tables = (); my @tables = ($requested_table_to_generate);
if ($requested_table_to_generate eq "all" || !$requested_table_to_generate) { if ($requested_table_to_generate eq "all" || !$requested_table_to_generate) {
my $table_names_exec = $connect->prepare( my $table_names_exec = $connect->prepare(
" "
SELECT SELECT
@ -177,6 +176,9 @@ foreach my $table_to_generate (@tables) {
my %table_data = (); my %table_data = ();
my %table_primary_key = (); my %table_primary_key = ();
$ex->execute($database_name, $table_to_generate); $ex->execute($database_name, $table_to_generate);
$table_primary_key{$table_to_generate} = "id";
while (my @row = $ex->fetchrow_array()) { while (my @row = $ex->fetchrow_array()) {
my $column_name = $row[0]; my $column_name = $row[0];
my $table_name = $row[1]; my $table_name = $row[1];
@ -197,6 +199,9 @@ foreach my $table_to_generate (@tables) {
if ($column_default eq "''") { if ($column_default eq "''") {
$default_value = '""'; $default_value = '""';
} }
if (trim($column_default) eq "" && $column_type =~ /text|varchar/i) {
$default_value = '""';
}
my $struct_data_type = translate_mysql_data_type_to_c($data_type); my $struct_data_type = translate_mysql_data_type_to_c($data_type);
@ -275,7 +280,7 @@ foreach my $table_to_generate (@tables) {
exit; exit;
} }
foreach my $column (keys %{ $table_data{$table_to_generate} }) { foreach my $column (keys %{$table_data{$table_to_generate}}) {
my $column_data = $table_data{$table_to_generate}{$column}; my $column_data = $table_data{$table_to_generate}{$column};
my $data_type = $column_data->[0]; my $data_type = $column_data->[0];
my $column_type = $column_data->[1]; my $column_type = $column_data->[1];
@ -367,4 +372,4 @@ sub translate_mysql_data_type_to_c {
} }
return $struct_data_type; return $struct_data_type;
} }