Merge 4cefefe420 into 6cb84817ac
This commit is contained in:
commit
303c4de18a
1 changed files with 36 additions and 14 deletions
|
|
@ -342,20 +342,42 @@ export class CharacterController {
|
||||||
|
|
||||||
private async getCharacterData(realm: IRealmConfig, character: string | number): Promise<ICharacterData> {
|
private async getCharacterData(realm: IRealmConfig, character: string | number): Promise<ICharacterData> {
|
||||||
const where = typeof character === "string" ? "LOWER(`characters`.`name`) = LOWER(?)" : "`characters`.`guid` = ?";
|
const where = typeof character === "string" ? "LOWER(`characters`.`name`) = LOWER(?)" : "`characters`.`guid` = ?";
|
||||||
const [rows] = await this.armory.getCharactersDb(realm.name).query({
|
const baseQuery = `
|
||||||
sql: `
|
SELECT \`characters\`.\`guid\`, \`characters\`.\`name\`, \`race\`, \`class\`, \`gender\`, \`level\`, \`skin\`, \`face\`, \`hairStyle\`, \`hairColor\`, \`facialStyle\`, \`playerFlags\`, \`online\`, \`guild\`.\`name\` AS \`guild\`
|
||||||
SELECT \`characters\`.\`guid\`, \`characters\`.\`name\`, \`race\`, \`class\`, \`gender\`, \`level\`, \`skin\`, \`face\`, \`hairStyle\`, \`hairColor\`, \`facialStyle\`, \`playerFlags\`, \`online\`, \`guild\`.\`name\` AS \`guild\`
|
FROM \`characters\`
|
||||||
FROM \`characters\`
|
LEFT JOIN \`guild_member\` ON \`guild_member\`.\`guid\` = \`characters\`.\`guid\`
|
||||||
LEFT JOIN \`guild_member\` ON \`guild_member\`.\`guid\` = \`characters\`.\`guid\`
|
LEFT JOIN \`guild\` ON \`guild\`.\`guildid\` = \`guild_member\`.\`guildid\`
|
||||||
LEFT JOIN \`guild\` ON \`guild\`.\`guildid\` = \`guild_member\`.\`guildid\`
|
`;
|
||||||
LEFT JOIN \`${realm.authDatabase}\`.\`account_access\` ON \`account_access\`.\`id\` = \`characters\`.\`account\` AND \`account_access\`.\`RealmID\` IN (-1, ${realm.realmId}) AND \`account_access\`.\`gmlevel\` > 0
|
let additionalSql = '';
|
||||||
WHERE
|
const queryParams: any[] = [character];
|
||||||
${where}
|
|
||||||
AND (\`account_access\`.\`id\` IS NULL OR ? = 0)
|
if (this.armory.config.hideGameMasters) {
|
||||||
`,
|
additionalSql = `
|
||||||
values: [character, this.armory.config.hideGameMasters ? 1 : 0],
|
LEFT JOIN \`${realm.authDatabase}\`.\`account_access\` ON \`account_access\`.\`id\` = \`characters\`.\`account\` AND \`account_access\`.\`RealmID\` IN (-1, ${realm.realmId}) AND \`account_access\`.\`gmlevel\` > 0
|
||||||
timeout: this.armory.config.dbQueryTimeout,
|
WHERE
|
||||||
});
|
${typeof character === "string"
|
||||||
|
? "LOWER(`characters`.`name`) = LOWER(?)"
|
||||||
|
: "`characters`.`guid` = ?"
|
||||||
|
}
|
||||||
|
AND (\`account_access\`.\`id\` IS NULL OR ? = 0)
|
||||||
|
`;
|
||||||
|
queryParams.push(1); // Hide GMs
|
||||||
|
} else {
|
||||||
|
additionalSql = `
|
||||||
|
WHERE
|
||||||
|
${typeof character === "string"
|
||||||
|
? "LOWER(`characters`.`name`) = LOWER(?)"
|
||||||
|
: "`characters`.`guid` = ?"
|
||||||
|
}
|
||||||
|
`;
|
||||||
|
queryParams.push(0); // No GM filter
|
||||||
|
}
|
||||||
|
const sql = baseQuery + additionalSql;
|
||||||
|
const [rows] = await this.armory.getCharactersDb(realm.name).query({
|
||||||
|
sql,
|
||||||
|
values: queryParams,
|
||||||
|
timeout: this.armory.config.dbQueryTimeout,
|
||||||
|
});
|
||||||
|
|
||||||
if ((rows as RowDataPacket[]).length === 0) {
|
if ((rows as RowDataPacket[]).length === 0) {
|
||||||
return null;
|
return null;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue