add greeting
add locales
This commit is contained in:
33
adapters/discord/src/entities/roles/roles.service.ts
Normal file
33
adapters/discord/src/entities/roles/roles.service.ts
Normal file
@@ -0,0 +1,33 @@
|
||||
import type { RolesServiceInterface } from "@avocadi/bot-core/entities/roles/roles.service";
|
||||
import { createLogger } from "@avocadi/bot-core/lib/logger";
|
||||
import type { GuildMember } from "discord.js";
|
||||
|
||||
export class RolesService implements RolesServiceInterface<GuildMember> {
|
||||
private logger = createLogger("RolesService");
|
||||
|
||||
async assignRole(user: GuildMember, role: string) {
|
||||
const roleToAssign = user.guild.roles.cache.find((r) => r.name === role);
|
||||
if (!roleToAssign) {
|
||||
this.logger.error(`Role ${role} not found in guild ${user.guild.name}.`);
|
||||
return;
|
||||
}
|
||||
await user.roles.add(roleToAssign);
|
||||
}
|
||||
|
||||
async removeRole(user: GuildMember, role: string) {
|
||||
const roleToRemove = user.guild.roles.cache.find((r) => r.name === role);
|
||||
if (!roleToRemove) {
|
||||
this.logger.error(`Role ${role} not found in guild ${user.guild.name}.`);
|
||||
return;
|
||||
}
|
||||
await user.roles.remove(roleToRemove);
|
||||
}
|
||||
|
||||
async getRoles(user: GuildMember) {
|
||||
return user.roles.cache.map((role) => role.name);
|
||||
}
|
||||
|
||||
async hasRole(user: GuildMember, role: string) {
|
||||
return user.roles.cache.some((r) => r.name === role);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user