diff --git a/common/database.cpp b/common/database.cpp index ac5ae16bf..581f4c082 100644 --- a/common/database.cpp +++ b/common/database.cpp @@ -338,6 +338,27 @@ bool Database::ReserveName(uint32 account_id, char* name) { query = StringFormat("INSERT INTO `character_data` SET `account_id` = %i, `name` = '%s'", account_id, name); results = QueryDatabase(query); if (!results.Success() || results.ErrorMessage() != ""){ return false; } + + // Put character into the default guild if rule is being used. + int guild_id = RuleI(Character, DefaultGuild); + + if (guild_id != 0) { + int char_id=-1; + query = StringFormat("select `id` FROM `character_data` WHERE `name` = '%s'", name); + results = QueryDatabase(query); + for (auto row = results.begin(); row != results.end(); ++row) { + char_id = atoi(row[0]); + } + + if (char_id > -1) { + query = StringFormat("INSERT INTO `guild_members` SET `char_id` = %i, `guild_id` = '%i'", char_id, guild_id); + results = QueryDatabase(query); + if (!results.Success() || results.ErrorMessage() != ""){ + LogInfo("Could not put character [{}] into default Guild", name); + } + } + } + return true; }