mirror of
https://github.com/xHyroM/bun-discord-bot.git
synced 2024-11-24 23:31:05 +01:00
feat: nickcname moderation
This commit is contained in:
parent
47a186fd7d
commit
fa4a844dcb
3 changed files with 32 additions and 0 deletions
|
@ -1,3 +1,4 @@
|
||||||
import "./ready.ts";
|
import "./ready.ts";
|
||||||
import "./interaction_create.ts";
|
import "./interaction_create.ts";
|
||||||
import "./message_create.ts";
|
import "./message_create.ts";
|
||||||
|
import "./nickname_moderation.ts";
|
||||||
|
|
25
src/listeners/nickname_moderation.ts
Normal file
25
src/listeners/nickname_moderation.ts
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
import { Events, GuildMember } from "discord.js";
|
||||||
|
import { defineListener } from "../loaders/listeners.ts";
|
||||||
|
import { silently } from "../util.ts";
|
||||||
|
|
||||||
|
defineListener({
|
||||||
|
event: Events.GuildMemberAdd,
|
||||||
|
run: (member: GuildMember) => moderateNick(member)
|
||||||
|
});
|
||||||
|
|
||||||
|
defineListener({
|
||||||
|
event: Events.GuildMemberUpdate,
|
||||||
|
run: (_: GuildMember, newMember: GuildMember) => moderateNick(newMember)
|
||||||
|
});
|
||||||
|
|
||||||
|
async function moderateNick(member: GuildMember) {
|
||||||
|
const name = member.displayName;
|
||||||
|
const normalizedName = name.normalize("NFKC").replace(/^[!$#@%^`&*()]+/, "");
|
||||||
|
|
||||||
|
if (name !== normalizedName) {
|
||||||
|
silently(member.edit({
|
||||||
|
nick: normalizedName,
|
||||||
|
reason: "lame username"
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,3 +1,9 @@
|
||||||
export function safeSlice<T>(array: T[], length: number) {
|
export function safeSlice<T>(array: T[], length: number) {
|
||||||
return array.length > length ? array.slice(0, length) : array;
|
return array.length > length ? array.slice(0, length) : array;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export async function silently<T>(value: Promise<T>) {
|
||||||
|
try {
|
||||||
|
await value;
|
||||||
|
} catch {}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue