void WorldSession::HandleGuildFinderPostRequest(WorldPacket& recvPacket) { sLog->outDebug(LOG_FILTER_NETWORKIO, "WORLD: Received CMSG_LF_GUILD_POST_REQUEST"); // Empty opcode Player* player = GetPlayer(); if (!player->GetGuildId()) // Player must be in guild return; bool isGuildMaster = true; if (Guild* guild = sGuildMgr->GetGuildById(player->GetGuildId())) if (guild->GetLeaderGUID() != player->GetGUID()) isGuildMaster = false; LFGuildSettings settings = sGuildFinderMgr->GetGuildSettings(player->GetGuildId()); WorldPacket data(SMSG_LF_GUILD_POST_UPDATED, 35); data.WriteBit(isGuildMaster); // Guessed if (isGuildMaster) { data.WriteBit(settings.IsListed()); data.WriteBits(settings.GetComment().size(), 11); data << uint32(settings.GetLevel()); data << uint32(0); // Unk Int32 data << uint32(settings.GetAvailability()); data.WriteString(settings.GetComment()); data << uint32(settings.GetClassRoles()); data << uint32(settings.GetInterests()); } else data.FlushBits(); player->SendDirectMessage(&data); }
void GuildFinderMgr::SetGuildSettings(uint32 guildGuid, LFGuildSettings const& settings) { m_guildSettings[guildGuid] = settings; static SqlStatementID replaceGuildFinderSettings; SqlStatement stmt = CharacterDatabase.CreateStatement(replaceGuildFinderSettings, "REPLACE INTO guild_finder_guild_settings (guildId, availability, classRoles, interests, level, listed, comment) VALUES(?, ?, ?, ?, ?, ?, ?)"); stmt.addUInt32(settings.GetGuid()); stmt.addUInt8(settings.GetAvailability()); stmt.addUInt8(settings.GetClassRoles()); stmt.addUInt8(settings.GetInterests()); stmt.addUInt8(settings.GetLevel()); stmt.addUInt8(settings.IsListed()); stmt.addString(settings.GetComment()); stmt.Execute(); }
void GuildFinderMgr::SetGuildSettings(uint32 guildGuid, LFGuildSettings const& settings) { _guildSettings[guildGuid] = settings; SQLTransaction trans = CharacterDatabase.BeginTransaction(); PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_REP_GUILD_FINDER_GUILD_SETTINGS); stmt->setUInt32(0, settings.GetGUID()); stmt->setUInt8(1, settings.GetAvailability()); stmt->setUInt8(2, settings.GetClassRoles()); stmt->setUInt8(3, settings.GetInterests()); stmt->setUInt8(4, settings.GetLevel()); stmt->setUInt8(5, settings.IsListed()); stmt->setString(6, settings.GetComment()); trans->Append(stmt); CharacterDatabase.CommitTransaction(trans); }
void WorldSession::HandleGuildFinderPostRequest(WorldPacket& /*recvPacket*/) { TC_LOG_DEBUG("network", "WORLD: Received CMSG_LF_GUILD_POST_REQUEST"); // Empty opcode Player* player = GetPlayer(); if (!player->GetGuildId()) // Player must be in guild return; bool isGuildMaster = true; if (Guild* guild = sGuildMgr->GetGuildById(player->GetGuildId())) if (guild->GetLeaderGUID() != player->GetGUID()) isGuildMaster = false; LFGuildSettings settings = sGuildFinderMgr->GetGuildSettings(player->GetGuildId()); WorldPacket data(SMSG_LF_GUILD_POST_UPDATED); data.WriteBit(isGuildMaster); if (isGuildMaster) { data.WriteBit(settings.IsListed()); data.WriteBits(settings.GetComment().size(), 10); data << uint32(0); // Unk Int32 if (settings.GetComment().size() > 0) data.append(settings.GetComment().c_str(), settings.GetComment().size()); data << uint32(settings.GetAvailability()); data << uint32(settings.GetClassRoles()); data << uint32(settings.GetLevel()); data << uint32(settings.GetInterests()); } else data.FlushBits(); player->SendDirectMessage(&data); }
void GuildFinderMgr::SetGuildSettings(uint32 guildGuid, LFGuildSettings const& settings) { _guildSettings[guildGuid] = settings; std::string comment = settings.GetComment(); CharacterDatabase.escape_string(comment); CharacterDatabase.PExecute("REPLACE INTO guild_finder_guild_settings (guildId, availability, classRoles, interests, level, listed, comment) VALUES('%u', '%u', '%u', '%u', '%u', '%u', '%s')", settings.GetGUID(), settings.GetAvailability(), settings.GetClassRoles(), settings.GetInterests(), settings.GetLevel(), settings.IsListed(), comment.c_str()); }