Skip to content

Commit 919fd5e

Browse files
authored
Merge pull request #559 from Neil-Tomar/feature/pingable-name-from-username
Unpigable name are now changed to properly formatted name (derived from username) if fails it fallback to randomly generated username.
2 parents b11ead7 + f5c4dab commit 919fd5e

1 file changed

Lines changed: 11 additions & 3 deletions

File tree

src/main/java/net/discordjug/javabot/listener/PingableNameListener.java

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)