Skip to content

Commit 5e2d034

Browse files
committed
Add anti-scream-caps to username manager
1 parent 66f0630 commit 5e2d034

1 file changed

Lines changed: 33 additions & 14 deletions

File tree

src/components/username-manager.ts

Lines changed: 33 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,37 @@ export default class UsernameManager extends BotComponent {
7373
}
7474
}
7575

76+
async check_unicode(member: Discord.GuildMember) {
77+
if (!is_valid_name(member.displayName.trim())) {
78+
// Invalid nickname, valid username: Just remove nickname
79+
const candidate_1 = anyAscii(member.displayName).trim().substring(0, 32);
80+
const candidate_2 = anyAscii(member.user.username).trim().substring(0, 32);
81+
const new_name = candidate_1 || candidate_2 || "Monke";
82+
M.log(
83+
"Username management: Changing display name",
84+
member.id,
85+
[member.user.tag, member.displayName],
86+
"to:",
87+
new_name,
88+
);
89+
await member.setNickname(new_name);
90+
}
91+
}
92+
93+
async check_caps(member: Discord.GuildMember) {
94+
const shouting = /[A-Z]{4,}/;
95+
if (shouting.test(member.displayName)) {
96+
M.log(
97+
"Username management: Changing display name",
98+
member.id,
99+
[member.user.tag, member.displayName],
100+
"to:",
101+
member.displayName.toLowerCase(),
102+
);
103+
await member.setNickname(member.displayName.toLowerCase());
104+
}
105+
}
106+
76107
has_herald(member: Discord.GuildMember) {
77108
return member.roles.cache.filter(role => role.id == this.wheatley.roles.herald.id).size > 0;
78109
}
@@ -103,20 +134,8 @@ export default class UsernameManager extends BotComponent {
103134
// member.user.tag, // user display name, possibly with #disc
104135
// member.user.discriminator,
105136
//);
106-
if (!is_valid_name(member.displayName.trim())) {
107-
// Invalid nickname, valid username: Just remove nickname
108-
const candidate_1 = anyAscii(member.displayName).trim().substring(0, 32);
109-
const candidate_2 = anyAscii(member.user.username).trim().substring(0, 32);
110-
const new_name = candidate_1 || candidate_2 || "Monke";
111-
M.log(
112-
"Username management: Changing display name",
113-
member.id,
114-
[member.user.tag, member.displayName],
115-
"to:",
116-
new_name,
117-
);
118-
await member.setNickname(new_name);
119-
}
137+
await this.check_unicode(member);
138+
await this.check_caps(member);
120139
await this.check_herald(member);
121140
}
122141

0 commit comments

Comments
 (0)