Major change to how commands are loaded

This commit is contained in:
Uleat
2015-12-07 19:28:13 -05:00
parent 1c0192dce3
commit 6f1ad1fbc1
8 changed files with 396 additions and 414 deletions
+17 -8
View File
@@ -1325,19 +1325,28 @@ int32 SharedDatabase::DeleteStalePlayerCorpses() {
return results.RowsAffected();
}
bool SharedDatabase::GetCommandSettings(std::map<std::string,uint8> &commands) {
bool SharedDatabase::GetCommandSettings(std::map<std::string, std::pair<uint8, std::vector<std::string>>> &command_settings)
{
command_settings.clear();
const std::string query = "SELECT command, access FROM commands";
std::string query = "SELECT `command`, `access`, `aliases` FROM `command_settings`";
auto results = QueryDatabase(query);
if (!results.Success()) {
if (!results.Success())
return false;
for (auto row = results.begin(); row != results.end(); ++row) {
command_settings[row[0]].first = atoi(row[1]);
if (row[2][0] == 0)
continue;
std::vector<std::string> aliases = SplitString(row[2], '|');
for (std::vector<std::string>::iterator iter = aliases.begin(); iter != aliases.end(); ++iter) {
if (iter->empty())
continue;
command_settings[row[0]].second.push_back(*iter);
}
}
commands.clear();
for (auto row = results.begin(); row != results.end(); ++row)
commands[row[0]]=atoi(row[1]);
return true;
}