make errors recoverable
This commit is contained in:
parent
09e05c5c53
commit
d6b3b6830a
2 changed files with 9 additions and 5 deletions
|
@ -61,8 +61,11 @@ export class EpitlsBot {
|
|||
if (member === undefined) return;
|
||||
const role = await guild.roles.fetch(role_id);
|
||||
if (role === null) return console.error("Role", role_id, "not found in guild", guild_id);
|
||||
member.roles.add(role_id);
|
||||
log(`Assigned to user '${member.displayName}' role '${role.name}'.`);
|
||||
log(`Assigning to user '${member.displayName}' role '${role.name}'.`);
|
||||
await try_(
|
||||
() => member.roles.add(role_id),
|
||||
() => log(`FAILED Assignation to user '${member.displayName}' role '${role.name}'.`),
|
||||
);
|
||||
}
|
||||
|
||||
public async update_user_name(user_id: string, must_contain: string, default_suffix: string) {
|
||||
|
@ -75,7 +78,7 @@ export class EpitlsBot {
|
|||
const generated_name_prefix = name.slice(0, DISCORD_MAX_NAME_LENGTH - default_suffix.length);
|
||||
const generated_name = generated_name_prefix + default_suffix;
|
||||
log(`Setting name of '${name}' to '${generated_name}'.`);
|
||||
await try_(async () => await user.setNickname(generated_name));
|
||||
await try_(() => user.setNickname(generated_name), () => log(`FAILED Setting name of '${name}'.`));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -123,10 +123,11 @@ export function* reverse<T>(items: Iterable<T>) {
|
|||
for (const item of collected.reverse()) yield item;
|
||||
}
|
||||
|
||||
export async function try_<T>(f: () => Promise<T> | T) {
|
||||
export async function try_<T>(operation: () => Promise<T> | T, recovery: () => Promise<void> | void = () => {}) {
|
||||
try {
|
||||
return await f();
|
||||
return await operation();
|
||||
} catch (_) {
|
||||
await recovery();
|
||||
return undefined;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue