예제 #1
0
bool BaseGuildManager::GetEntireGuild(uint32 guild_id, std::vector<CharGuildInfo *> &members) {
	members.clear();

	if(m_db == nullptr)
		return(false);

	char errbuf[MYSQL_ERRMSG_SIZE];
	char *query = 0;
	MYSQL_RES *result;
	MYSQL_ROW row;

	//load up the rank info for each guild.
	if (!m_db->RunQuery(query, MakeAnyLenString(&query,
		GuildMemberBaseQuery " WHERE g.guild_id=%d", guild_id
		), errbuf, &result)) {
		_log(GUILDS__ERROR, "Error loading guild member list '%s': %s", query, errbuf);
		safe_delete_array(query);
		return(false);
	}
	safe_delete_array(query);

	while ((row = mysql_fetch_row(result))) {
		CharGuildInfo *ci = new CharGuildInfo;
		ProcessGuildMember(row, *ci);
		members.push_back(ci);
	}
	mysql_free_result(result);

	_log(GUILDS__DB, "Retreived entire guild member list for guild %d from the database", guild_id);

	return(true);
}
예제 #2
0
파일: guild_base.cpp 프로젝트: EQEmu/Server
bool BaseGuildManager::GetCharInfo(uint32 char_id, CharGuildInfo &into) {
	if(m_db == nullptr) {
		Log(Logs::Detail, Logs::Guilds, "Requested char info on %d when we have no database object.", char_id);
		return false;
	}

	//load up the rank info for each guild.
	std::string query;
#ifdef BOTS
    query = StringFormat(GuildMemberBaseQuery " WHERE c.id=%d AND c.mob_type = 'C'", char_id);
#else
    query = StringFormat(GuildMemberBaseQuery " WHERE c.id=%d", char_id);
#endif
    auto results = m_db->QueryDatabase(query);
	if (!results.Success()) {
		return false;
	}

    if (results.RowCount() == 0)
        return false;

    auto row = results.begin();
    ProcessGuildMember(row, into);
    Log(Logs::Detail, Logs::Guilds, "Retreived guild member info for char %d", char_id);

	return true;

}
예제 #3
0
파일: guild_base.cpp 프로젝트: EQEmu/Server
bool BaseGuildManager::GetCharInfo(const char *char_name, CharGuildInfo &into) {
	if(m_db == nullptr) {
		Log(Logs::Detail, Logs::Guilds, "Requested char info on %s when we have no database object.", char_name);
		return(false);
	}

	//escape our strings.
	uint32 nl = strlen(char_name);
	auto esc = new char[nl * 2 + 1];
	m_db->DoEscapeString(esc, char_name, nl);

	//load up the rank info for each guild.
    std::string query = StringFormat(GuildMemberBaseQuery " WHERE c.name='%s'", esc);
    safe_delete_array(esc);
    auto results = m_db->QueryDatabase(query);
	if (!results.Success()) {
		return false;
	}

	if (results.RowCount() == 0)
        return false;

    auto row = results.begin();
    ProcessGuildMember(row, into);
    Log(Logs::Detail, Logs::Guilds, "Retreived guild member info for char %s from the database", char_name);

	return true;


}
예제 #4
0
파일: guild_base.cpp 프로젝트: quido/Server
bool BaseGuildManager::GetCharInfo(uint32 char_id, CharGuildInfo &into) {
	if(m_db == nullptr) {
		_log(GUILDS__DB, "Requested char info on %d when we have no database object.", char_id);
		return false;
	}

	//load up the rank info for each guild.
	std::string query;
    query = StringFormat(GuildMemberBaseQuery " WHERE c.id=%d", char_id);
    auto results = m_db->QueryDatabase(query);
	if (!results.Success()) {
		_log(GUILDS__ERROR, "Error loading guild member '%s': %s", query.c_str(), results.ErrorMessage().c_str());
		return false;
	}

    if (results.RowCount() == 0)
        return false;

    auto row = results.begin();
    ProcessGuildMember(row, into);
    _log(GUILDS__DB, "Retreived guild member info for char %d", char_id);

	return true;

}
예제 #5
0
bool BaseGuildManager::GetCharInfo(const char *char_name, CharGuildInfo &into) {
	if(m_db == nullptr) {
		_log(GUILDS__DB, "Requested char info on %s when we have no database object.", char_name);
		return(false);
	}

	char errbuf[MYSQL_ERRMSG_SIZE];
	char *query = 0;
	MYSQL_RES *result;
	MYSQL_ROW row;

	//escape our strings.
	uint32 nl = strlen(char_name);
	char *esc = new char[nl*2+1];
	m_db->DoEscapeString(esc, char_name, nl);

	//load up the rank info for each guild.
	if (!m_db->RunQuery(query, MakeAnyLenString(&query,
		GuildMemberBaseQuery " WHERE c.name='%s'", esc
		), errbuf, &result)) {
		_log(GUILDS__ERROR, "Error loading guild member '%s': %s", query, errbuf);
		safe_delete_array(query);
		safe_delete_array(esc);
		return(false);
	}
	safe_delete_array(query);
	safe_delete_array(esc);

	bool ret = true;
	if ((row = mysql_fetch_row(result))) {
		ProcessGuildMember(row, into);
		_log(GUILDS__DB, "Retreived guild member info for char %s from the database", char_name);
	} else {
		ret = true;
	}
	mysql_free_result(result);

	return(ret);


}
예제 #6
0
파일: guild_base.cpp 프로젝트: EQEmu/Server
bool BaseGuildManager::GetEntireGuild(uint32 guild_id, std::vector<CharGuildInfo *> &members) {
	members.clear();

	if(m_db == nullptr)
		return(false);

	//load up the rank info for each guild.
	std::string query = StringFormat(GuildMemberBaseQuery " WHERE g.guild_id=%d", guild_id);
	auto results = m_db->QueryDatabase(query);
	if (!results.Success()) {
		return false;
	}

	for (auto row = results.begin(); row != results.end(); ++row) {
		auto ci = new CharGuildInfo;
		ProcessGuildMember(row, *ci);
		members.push_back(ci);
	}

	Log(Logs::Detail, Logs::Guilds, "Retreived entire guild member list for guild %d from the database", guild_id);

	return true;
}
예제 #7
0
bool BaseGuildManager::GetCharInfo(uint32 char_id, CharGuildInfo &into) {
	if(m_db == nullptr) {
		_log(GUILDS__DB, "Requested char info on %d when we have no database object.", char_id);
		return(false);
	}

	char errbuf[MYSQL_ERRMSG_SIZE];
	char *query = 0;
	MYSQL_RES *result;
	MYSQL_ROW row;

	//load up the rank info for each guild.
	if (!m_db->RunQuery(query, MakeAnyLenString(&query,
#ifdef BOTS
		GuildMemberBaseQuery " WHERE c.id=%d AND c.mobtype = 'C'", char_id
#else
		GuildMemberBaseQuery " WHERE c.id=%d", char_id
#endif
		), errbuf, &result)) {
		_log(GUILDS__ERROR, "Error loading guild member '%s': %s", query, errbuf);
		safe_delete_array(query);
		return(false);
	}
	safe_delete_array(query);

	bool ret = true;
	if ((row = mysql_fetch_row(result))) {
		ProcessGuildMember(row, into);
		_log(GUILDS__DB, "Retreived guild member info for char %d", char_id);
	} else {
		ret = true;
	}
	mysql_free_result(result);

	return(ret);

}
예제 #8
0
파일: guild_base.cpp 프로젝트: quido/Server
bool BaseGuildManager::GetEntireGuild(uint32 guild_id, std::vector<CharGuildInfo *> &members) {
	members.clear();

	if(m_db == nullptr)
		return(false);

	//load up the rank info for each guild.
	std::string query = StringFormat(GuildMemberBaseQuery " WHERE g.guild_id=%d", guild_id);
	auto results = m_db->QueryDatabase(query);
	if (!results.Success()) {
		_log(GUILDS__ERROR, "Error loading guild member list '%s': %s", query.c_str(), results.ErrorMessage().c_str());
		return false;
	}

    for (auto row = results.begin(); row != results.end(); ++row) {
		CharGuildInfo *ci = new CharGuildInfo;
		ProcessGuildMember(row, *ci);
		members.push_back(ci);
	}

	_log(GUILDS__DB, "Retreived entire guild member list for guild %d from the database", guild_id);

	return true;
}