Skip to content

Commit 08c9d8b

Browse files
committed
Queue icons
1 parent 1e63b54 commit 08c9d8b

5 files changed

Lines changed: 32 additions & 3 deletions

File tree

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
export const up = (pgm) => {
2+
pgm.addColumn('queues', {
3+
queue_icon: {
4+
type: 'varchar(255)',
5+
notNull: false,
6+
default: null,
7+
},
8+
})
9+
}
10+
11+
export const down = (pgm) => {
12+
pgm.dropColumn('queues', 'queue_icon')
13+
}

src/@types/global.d.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ declare module 'psqlDB' {
2424
instaqueue_min: number
2525
instaqueue_max: number
2626
use_tuple_bans: boolean
27+
queue_icon?: string | null
2728
}
2829

2930
export interface QueueRoles {

src/commands/moderation/editQueue.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ export default {
6666
)
6767

6868
const useTupleBans = interaction.options.getBoolean('use-tuple-bans', false)
69+
const queueIcon = interaction.options.getString('queue-icon', false)
6970

7071
try {
7172
const result = await pool.query(
@@ -88,7 +89,8 @@ export default {
8889
color = COALESCE($15, color),
8990
instaqueue_min = COALESCE($16, instaqueue_min),
9091
instaqueue_max = COALESCE($17, instaqueue_max),
91-
use_tuple_bans = COALESCE($18, use_tuple_bans)
92+
use_tuple_bans = COALESCE($18, use_tuple_bans),
93+
queue_icon = COALESCE($19, queue_icon)
9294
WHERE queue_name = $1
9395
RETURNING queue_name
9496
`,
@@ -111,6 +113,7 @@ export default {
111113
instaqueueMin,
112114
instaqueueMax,
113115
useTupleBans,
116+
queueIcon,
114117
],
115118
)
116119

src/commands/superCommands/edit.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,13 @@ export default {
151151
.setName('use-tuple-bans')
152152
.setDescription('Whether or not this queue should use tuple bans.')
153153
.setRequired(false),
154+
)
155+
.addStringOption((option) =>
156+
option
157+
.setName('queue-icon')
158+
.setDescription('Emoji displayed next to the queue name')
159+
.setRequired(false)
160+
.setMaxLength(64),
154161
),
155162
)
156163
.addSubcommand((sub) =>

src/utils/queueHelpers.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,8 +77,11 @@ export async function updateQueueMessage(): Promise<Message | undefined> {
7777
const queueFields: APIEmbedField[] = await Promise.all(
7878
queueList.map(async (queue) => {
7979
const usersInQueue = await getUsersInQueue(queue.id)
80+
const displayName = queue.queue_icon
81+
? `${queue.queue_icon} ${queue.queue_name}`
82+
: queue.queue_name
8083
return {
81-
name: queue.queue_name,
84+
name: displayName,
8285
value: `${usersInQueue.length}`,
8386
inline: true,
8487
}
@@ -94,10 +97,12 @@ export async function updateQueueMessage(): Promise<Message | undefined> {
9497
.setColor('#ff0000')
9598

9699
const options: StringSelectMenuOptionBuilder[] = queueList.map((queue) => {
97-
return new StringSelectMenuOptionBuilder()
100+
const option = new StringSelectMenuOptionBuilder()
98101
.setLabel(queue.queue_name.slice(0, 100))
99102
.setDescription((queue.queue_desc || '').slice(0, 100))
100103
.setValue(queue.id.toString())
104+
if (queue.queue_icon) option.setEmoji(queue.queue_icon)
105+
return option
101106
})
102107

103108
if (options.length == 0) return

0 commit comments

Comments
 (0)