Skip to content

Commit 27e4b55

Browse files
committed
Fully customise creation/close embeds
1 parent 288ddbd commit 27e4b55

File tree

1 file changed

+34
-11
lines changed

1 file changed

+34
-11
lines changed

core/thread.py

Lines changed: 34 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -123,27 +123,41 @@ async def setup(self, *, creator=None, category=None):
123123
channel.send(mention, embed=info_embed)
124124
)
125125

126+
self.bot.loop.create_task(msg.pin()) # pin message
126127
self.ready = True
127128

128129
# Once thread is ready, tell the recipient.
129130
thread_creation_response = self.bot.config.get(
130131
'thread_creation_response',
131-
'The moderation team will get back to you as soon as possible!'
132+
'The staff team will get back to you as soon as possible.'
132133
)
133134

134135
embed = discord.Embed(
135136
color=self.bot.mod_color,
136137
description=thread_creation_response,
137-
timestamp=datetime.utcnow(),
138+
timestamp=channel.created_at,
138139
)
139-
embed.set_footer(text='Your message has been sent',
140+
141+
footer = 'Your message has been sent'
142+
if not self.bot.config.get('disable_recipient_thread_close'):
143+
footer = 'Click the lock to close the thread'
144+
145+
footer = self.bot.config.get('thread_creation_footer', footer)
146+
147+
148+
embed.set_footer(text=footer,
140149
icon_url=self.bot.guild.icon_url)
141-
embed.set_author(name='Thread Created')
142150

143-
if creator is None:
144-
self.bot.loop.create_task(recipient.send(embed=embed))
151+
embed.title = self.bot.config.get('thread_creation_title', 'Thread Created')
145152

146-
await msg.pin()
153+
154+
if creator is None:
155+
msg = await recipient.send(embed=embed)
156+
if not self.bot.config.get('disable_recipient_thread_close'):
157+
close_emoji = self.bot.config.get('close_emoji', '🔒')
158+
close_emoji = await self.bot.convert_emoji(close_emoji)
159+
await msg.add_reaction(close_emoji)
160+
147161

148162
def _close_after(self, closer, silent, delete_channel, message):
149163
return self.bot.loop.create_task(
@@ -227,12 +241,17 @@ async def _close(self, closer, silent=False, delete_channel=True,
227241
user = f"{self.recipient} (`{self.id}`)"
228242
else:
229243
user = f'`{self.id}`'
244+
245+
if self.id == closer.id:
246+
_closer = 'the Recipient'
247+
else:
248+
_closer = f'{closer} ({closer.id})'
230249

231250
embed.title = user
232251

233252
event = 'Thread Closed as Scheduled' if scheduled else 'Thread Closed'
234253
# embed.set_author(name=f'Event: {event}', url=log_url)
235-
embed.set_footer(text=f'{event} by {closer} ({closer.id})')
254+
embed.set_footer(text=f'{event} by {_closer}')
236255
embed.timestamp = datetime.utcnow()
237256

238257
tasks = [
@@ -244,14 +263,18 @@ async def _close(self, closer, silent=False, delete_channel=True,
244263

245264
# Thread closed message
246265

247-
embed = discord.Embed(title='Thread Closed',
266+
embed = discord.Embed(title=self.bot.config.get('thread_close_title', 'Thread Closed'),
248267
color=discord.Color.red(),
249268
timestamp=datetime.utcnow())
250269

251270
if not message:
252-
message = f'{closer.mention} has closed this Modmail thread.'
271+
if self.id == closer.id:
272+
message = 'You have closed this modmail thread.'
273+
else:
274+
message = f'{closer.mention} has closed this Modmail thread.'
253275
embed.description = message
254-
embed.set_footer(text='Replying will create a new thread',
276+
footer = self.bot.config.get('thread_close_footer', 'Replying will create a new thread')
277+
embed.set_footer(text=footer,
255278
icon_url=self.bot.guild.icon_url)
256279

257280
if not silent and self.recipient is not None:

0 commit comments

Comments
 (0)