diff --git a/src/RandomPlayerbotFactory.cpp b/src/RandomPlayerbotFactory.cpp index d961b290..910eaa6c 100644 --- a/src/RandomPlayerbotFactory.cpp +++ b/src/RandomPlayerbotFactory.cpp @@ -497,6 +497,12 @@ void RandomPlayerbotFactory::CreateRandomGuilds() if (guildName.empty()) continue; + if (sGuildMgr->GetGuildByName(guildName)) + { + LOG_WARN("playerbots", "GuildName %s is busy. Skipped...", guildName.c_str()); + continue; + } + if (availableLeaders.empty()) { LOG_ERROR("playerbots", "No leaders for random guilds available"); @@ -508,14 +514,16 @@ void RandomPlayerbotFactory::CreateRandomGuilds() Player* player = ObjectAccessor::FindPlayer(leader); if (!player) { - LOG_ERROR("playerbots", "Cannot find player for leader {}", player->GetName().c_str()); + LOG_ERROR("playerbots", "ObjectAccessor Cannot find player to set leader for guild {} . Skipped...", guildName.c_str()); continue; } Guild* guild = new Guild(); if (!guild->Create(player, guildName)) { - LOG_ERROR("playerbots", "Error creating guild {}", guildName.c_str()); + // it very strange, but sometimes Guild can't be created by unknown reason + // We already checked that player is exists and guildName are correct + LOG_ERROR("playerbots", "Error creating guild [ {} ] with leader [ {} ]", guildName.c_str(), player->GetName().c_str()); delete guild; continue; }