Info messages displayDetails and separated deleteTimeout

This commit is contained in:
mmacierzanka committed 2021-08-30 01:53:55 +02:00
1 parent 8398034a44
commit 1699174df9
2 files changed
+45 -15

No files matched your search

+19 -11
View File
@@ -298,26 +298,34 @@ There are 4 information messages:
- **PERMISSION** - "Insufficient permissions" message (sent when the caller doesn't have enough permissions)
- **NOT_FOUND** - "Command not found" message (sent when someone tries to call a command that does not exist)
Each of these messages can be customized with these properties:
Their configuration is stored in _messages.system_ property.
- **enabled** - _boolean_ - enables or disables the message
- **title** - _string_ - title of the message
Each of these messages can be customized with these properties (\* - required):
- **enabled\*** - _boolean_ - enables or disables the message
- **title\*** - _string_ - title of the message
- **bottomText** - _string_ - text below the title (also known as description)
- **accentColor** - _ColorResolvable_ - embed color
- **displayDetails** - _boolean_ - whether to display additional informations
- **showTimestamp** - _boolean_ - whether to show date and time in the footer
- **footer** - _string_ - message footer
- **deleteTimeout** - _number_ - time (ms) after the message gets deleted
There is also a global _deleteTimeout_ property (_messages.system.deleteTimeout_)
## Help message
You can customize the help message with these properties:
Its configuration is stored in _messages.help_ property.
- **enabled** - _boolean_ - enables or disables the message
- **title** - _string_ - title of the message
- **bottomText** - _string_ - text below the title (also known as description)
- **accentColor** - _ColorResolvable_ - embed color
- **description** - _string_ - description shown in the message itself
- **usage** - _string_ - usage displayed in the message itself
- **visible** - _boolean_ - whether to show the help command in the list
You can customize the help message with these properties (\* - required):
- **enabled\*** - _boolean_ - enables or disables the message
- **title\*** - _string_ - title of the message
- **bottomText\*** - _string_ - text below the title (also known as description)
- **accentColor\*** - _ColorResolvable_ - embed color
- **description\*** - _string_ - description shown in the message itself
- **usage\*** - _string_ - usage displayed in the message itself
- **visible\*** - _boolean_ - whether to show the help command in the list
# Issues
+26 -4
View File
@@ -8,8 +8,10 @@ export interface SystemMessageAppearance {
title: string;
bottomText?: string;
accentColor?: ColorResolvable;
displayDetails?: boolean;
showTimestamp?: boolean;
footer?: string;
deleteTimeout?: number;
}
interface SystemMessageData {
command?: Command;
@@ -31,6 +33,7 @@ export class SystemMessageManager {
title: "👮‍♂️ Insufficient permissions",
bottomText: "You don't have enough permissions to run this command",
accentColor: "#1d1dc4",
displayDetails: true,
showTimestamp: true,
footer: botName,
};
@@ -39,6 +42,7 @@ export class SystemMessageManager {
title: "❌ An error occurred",
bottomText: "Something went wrong while processing your request.",
accentColor: "#ff0000",
displayDetails: true,
showTimestamp: true,
footer: botName,
};
@@ -46,6 +50,7 @@ export class SystemMessageManager {
enabled: true,
title: "🔍 Command not found",
accentColor: "#ff5500",
displayDetails: true,
showTimestamp: true,
footer: botName,
};
@@ -53,8 +58,10 @@ export class SystemMessageManager {
enabled: true,
title: "✅ Task completed successfully",
accentColor: "#00ff00",
displayDetails: true,
showTimestamp: true,
footer: botName,
deleteTimeout: Infinity,
};
this.deleteTimeout = Infinity;
}
@@ -77,7 +84,7 @@ export class SystemMessageManager {
embed.setColor(this[type].accentColor || "#000");
if (this[type].showTimestamp) embed.setTimestamp();
if (this[type].footer) embed.setFooter(this[type].footer || "");
if (data) {
if (data && this[type].displayDetails) {
switch (type) {
case "ERROR":
if (data.command) {
@@ -124,14 +131,29 @@ export class SystemMessageManager {
}
if (interaction && !(interaction instanceof CommandInteraction)) {
const message = await interaction.reply({ embeds: [embed] });
if (this.deleteTimeout != Infinity && message.deletable) {
if (message.deletable) {
if (Number.isFinite(this[type].deleteTimeout)) {
setTimeout(async () => {
await message.delete();
}, this.deleteTimeout || 0);
await message.delete().catch();
}, this[type].deleteTimeout);
} else if (this[type].deleteTimeout === undefined && Number.isFinite(this.deleteTimeout)) {
setTimeout(async () => {
await message.delete().catch();
}, this.deleteTimeout);
}
}
return message;
} else if (interaction && interaction instanceof CommandInteraction) {
interaction.replied || interaction.deferred ? await interaction.editReply({ embeds: [embed] }) : await interaction.reply({ embeds: [embed] });
if (Number.isFinite(this[type].deleteTimeout)) {
setTimeout(async () => {
await interaction.deleteReply().catch();
}, this[type].deleteTimeout);
} else if (this[type].deleteTimeout === undefined && Number.isFinite(this.deleteTimeout)) {
setTimeout(async () => {
await interaction.deleteReply().catch();
}, this.deleteTimeout);
}
} else {
return embed;
}