@@ -48,7 +48,7 @@ public PingableNameListener(NotificationService notificationService) {
4848 public void onGuildMemberJoin (GuildMemberJoinEvent event ) {
4949 checkNickname (event .getMember ());
5050 }
51-
51+
5252 @ Override
5353 public void onGuildMemberUpdate (GuildMemberUpdateEvent event ) {
5454 checkNickname (event .getMember ());
@@ -65,12 +65,12 @@ private void checkNickname(Member member) {
6565 }
6666
6767 /**
68- * Changes the given {@link Member}s name to a randomly generated one.
68+ * Changes the given {@link Member}s name to properly formatted name if fails then use random generated one.
6969 * @param member The Member whose name should be changed.
7070 */
7171 private void changeName (Member member ) {
7272 String oldName = member .getEffectiveName ();
73- String newName = generateRandomName ( );
73+ String newName = generateNewName ( member . getUser (). getName () );
7474 member .modifyNickname (newName .substring (0 , Math .min (31 , newName .length ()))).queue ();
7575 member .getUser ().openPrivateChannel ()
7676 .flatMap (channel ->
@@ -99,6 +99,14 @@ private String generateRandomName() {
9999 return StringUtils .capitalize (adjective ) + StringUtils .capitalize (noun );
100100 }
101101
102+ private String generateNewName (String username ){
103+ String newName = StringUtils .capitalize (username .replaceAll ("(?u)(?:^[^A-Za-z]++|[^A-Za-z]++$)" ,"" ));
104+ if (!isPingable (newName )){
105+ newName = generateRandomName ();
106+ }
107+ return newName ;
108+ }
109+
102110 /**
103111 * Reads strings from the given URL to a {@link List}, removes words with a dash.
104112 * @param url The URL to read.
0 commit comments