diff --git a/src/armory/controllers/CharacterController.ts b/src/armory/controllers/CharacterController.ts index 60a5aeb..ac01118 100644 --- a/src/armory/controllers/CharacterController.ts +++ b/src/armory/controllers/CharacterController.ts @@ -31,6 +31,7 @@ interface IEquipmentData { randomPropertyId: number; classId: number; subclassId: number; + quality: number; } interface ICustomizationOption { @@ -331,7 +332,7 @@ export class CharacterController { } private async getEquipmentData(realm: string, charGuid: number): Promise { - const [rows, fields] = await this.armory.getCharactersDb(realm).query({ + let [rows, fields] = await this.armory.getCharactersDb(realm).query({ sql: ` SELECT character_inventory.slot, item_instance.itemEntry, item_instance.flags, item_instance.enchantments, item_instance.randomPropertyId FROM character_inventory @@ -350,6 +351,16 @@ export class CharacterController { row.subclassId = item.subclassId; } + [rows, fields] = await this.armory.worldDb.query({ + sql: "SELECT entry, quality FROM item_template WHERE entry IN (?)", + values: [data.map((row) => row.itemEntry)], + timeout: this.armory.config.dbQueryTimeout, + }); + for (const row of rows as RowDataPacket[]) { + const item = data.find((item) => item.itemEntry === row.entry); + item.quality = row.quality; + } + return data; } diff --git a/static/character.hbs b/static/character.hbs index 7b82c02..333a132 100644 --- a/static/character.hbs +++ b/static/character.hbs @@ -134,10 +134,11 @@ characterModel.items.push(...items); } - function createItemSlot(item, invSlot, icon, rel, container) { + function createItemSlot(item, invSlot, icon, quality, rel, container) { const $item = $itemSlotTemplate.clone(); $item .data("icon", icon) + .data("quality", quality) .find(".inventory-slot") .css("background-image", `url("{{websiteRoot}}/img/inventory-slot/${invSlot}.png")`); if (item !== undefined) { @@ -168,7 +169,7 @@ rel.push("rand=" + item.randomPropertyId); } } - createItemSlot(item?.itemEntry, slot, item?.icon?.toLowerCase(), rel.join("&"), side.element); + createItemSlot(item?.itemEntry, slot, item?.icon?.toLowerCase(), item?.quality, rel.join("&"), side.element); } } const nbItemRows = Math.max($("#equipment-col-left").children().length, $("#equipment-col-right").children().length); @@ -186,9 +187,13 @@ const $item = $(el); const item = $item.data("item"); const icon = $item.data("icon"); + const quality = $item.data("quality"); if (item !== undefined) { $item.find(".icon").css("background-image", `url("{{aowow}}/static/images/wow/icons/${iconSize}/${icon}.jpg")`); } + if (quality !== undefined) { + $item.find(".border").css("background-image", `url("{{websiteRoot}}/img/icon-border/${iconSize}/q${quality}.png")`); + } }); if (!init) { diff --git a/static/img/icon-border/large/default.png b/static/img/icon-border/large/default.png new file mode 100644 index 0000000..5a2221a Binary files /dev/null and b/static/img/icon-border/large/default.png differ diff --git a/static/img/icon-border/large/q0.png b/static/img/icon-border/large/q0.png new file mode 100644 index 0000000..36047a3 Binary files /dev/null and b/static/img/icon-border/large/q0.png differ diff --git a/static/img/icon-border/large/q1.png b/static/img/icon-border/large/q1.png new file mode 100644 index 0000000..866992e Binary files /dev/null and b/static/img/icon-border/large/q1.png differ diff --git a/static/img/icon-border/large/q2.png b/static/img/icon-border/large/q2.png new file mode 100644 index 0000000..3c33d2c Binary files /dev/null and b/static/img/icon-border/large/q2.png differ diff --git a/static/img/icon-border/large/q3.png b/static/img/icon-border/large/q3.png new file mode 100644 index 0000000..61ddea1 Binary files /dev/null and b/static/img/icon-border/large/q3.png differ diff --git a/static/img/icon-border/large/q4.png b/static/img/icon-border/large/q4.png new file mode 100644 index 0000000..ab20c91 Binary files /dev/null and b/static/img/icon-border/large/q4.png differ diff --git a/static/img/icon-border/large/q5.png b/static/img/icon-border/large/q5.png new file mode 100644 index 0000000..67d39c9 Binary files /dev/null and b/static/img/icon-border/large/q5.png differ diff --git a/static/img/icon-border/large/q6.png b/static/img/icon-border/large/q6.png new file mode 100644 index 0000000..83afe88 Binary files /dev/null and b/static/img/icon-border/large/q6.png differ diff --git a/static/img/icon-border/large/q7.png b/static/img/icon-border/large/q7.png new file mode 100644 index 0000000..83afe88 Binary files /dev/null and b/static/img/icon-border/large/q7.png differ diff --git a/static/img/icon-border/large/q8.png b/static/img/icon-border/large/q8.png new file mode 100644 index 0000000..83afe88 Binary files /dev/null and b/static/img/icon-border/large/q8.png differ diff --git a/static/img/icon-border/large/q9.png b/static/img/icon-border/large/q9.png new file mode 100644 index 0000000..7f5d999 Binary files /dev/null and b/static/img/icon-border/large/q9.png differ diff --git a/static/img/icon-border/medium/default.png b/static/img/icon-border/medium/default.png new file mode 100644 index 0000000..9d91ac9 Binary files /dev/null and b/static/img/icon-border/medium/default.png differ diff --git a/static/img/icon-border/medium/q0.png b/static/img/icon-border/medium/q0.png new file mode 100644 index 0000000..4901e95 Binary files /dev/null and b/static/img/icon-border/medium/q0.png differ diff --git a/static/img/icon-border/medium/q1.png b/static/img/icon-border/medium/q1.png new file mode 100644 index 0000000..56cfea1 Binary files /dev/null and b/static/img/icon-border/medium/q1.png differ diff --git a/static/img/icon-border/medium/q2.png b/static/img/icon-border/medium/q2.png new file mode 100644 index 0000000..866bc6f Binary files /dev/null and b/static/img/icon-border/medium/q2.png differ diff --git a/static/img/icon-border/medium/q3.png b/static/img/icon-border/medium/q3.png new file mode 100644 index 0000000..bc43301 Binary files /dev/null and b/static/img/icon-border/medium/q3.png differ diff --git a/static/img/icon-border/medium/q4.png b/static/img/icon-border/medium/q4.png new file mode 100644 index 0000000..ea74f5b Binary files /dev/null and b/static/img/icon-border/medium/q4.png differ diff --git a/static/img/icon-border/medium/q5.png b/static/img/icon-border/medium/q5.png new file mode 100644 index 0000000..b9f4b89 Binary files /dev/null and b/static/img/icon-border/medium/q5.png differ diff --git a/static/img/icon-border/medium/q6.png b/static/img/icon-border/medium/q6.png new file mode 100644 index 0000000..cedeb6e Binary files /dev/null and b/static/img/icon-border/medium/q6.png differ diff --git a/static/img/icon-border/medium/q7.png b/static/img/icon-border/medium/q7.png new file mode 100644 index 0000000..cedeb6e Binary files /dev/null and b/static/img/icon-border/medium/q7.png differ diff --git a/static/img/icon-border/medium/q8.png b/static/img/icon-border/medium/q8.png new file mode 100644 index 0000000..cedeb6e Binary files /dev/null and b/static/img/icon-border/medium/q8.png differ diff --git a/static/img/icon-border/medium/q9.png b/static/img/icon-border/medium/q9.png new file mode 100644 index 0000000..8db67b1 Binary files /dev/null and b/static/img/icon-border/medium/q9.png differ diff --git a/static/partials/icons.hbs b/static/partials/icons.hbs index aab509e..62a5c39 100644 --- a/static/partials/icons.hbs +++ b/static/partials/icons.hbs @@ -1,7 +1,7 @@