@@ -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