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;
|
if (member === undefined) return;
|
||||||
const role = await guild.roles.fetch(role_id);
|
const role = await guild.roles.fetch(role_id);
|
||||||
if (role === null) return console.error("Role", role_id, "not found in guild", guild_id);
|
if (role === null) return console.error("Role", role_id, "not found in guild", guild_id);
|
||||||
member.roles.add(role_id);
|
log(`Assigning to user '${member.displayName}' role '${role.name}'.`);
|
||||||
log(`Assigned 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) {
|
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_prefix = name.slice(0, DISCORD_MAX_NAME_LENGTH - default_suffix.length);
|
||||||
const generated_name = generated_name_prefix + default_suffix;
|
const generated_name = generated_name_prefix + default_suffix;
|
||||||
log(`Setting name of '${name}' to '${generated_name}'.`);
|
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;
|
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 {
|
try {
|
||||||
return await f();
|
return await operation();
|
||||||
} catch (_) {
|
} catch (_) {
|
||||||
|
await recovery();
|
||||||
return undefined;
|
return undefined;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue