Skip to content

Commit

Permalink
Do not use discriminator if it's 000 for migrated accounts
Browse files Browse the repository at this point in the history
  • Loading branch information
tduboys committed Jun 12, 2023
1 parent 72c56fa commit ef9515e
Show file tree
Hide file tree
Showing 5 changed files with 52 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,13 @@ else if (commandParts.length > 1) {
members.addAll(guild.getMembersByName(search, true));
members.addAll(guild.getMembersByNickname(search, true));

// looking for accounts from ID
if (search.matches("<@\\d+>")) {
search = search.substring(2, search.length()-1);
System.out.println("Search for id "+search);
members.add(guild.getMemberById(search));
}

System.out.println("Found : " + members);

if (members.size() == 0) {
Expand Down Expand Up @@ -85,4 +92,4 @@ public void accept(List<Member> members) {
public String getCommandHelp() {
return "Permet de remettre à jour ses droits ou ceux d'autres personnes en les nommant.";
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,16 @@ public boolean canReceiveUser() {
return this.recording;
}

private String getFullUser(User user) {
String username = user.getName();
// for compatibility with old accounts
String discriminator = user.getDiscriminator();
if (discriminator != "0000") {
username += "." + discriminator;
}
return username;
}

@Override
public void handleCombinedAudio(CombinedAudio combinedAudio) {
byte[] data = combinedAudio.getAudioData(1.0);
Expand All @@ -129,7 +139,7 @@ public void handleCombinedAudio(CombinedAudio combinedAudio) {
for (Member member : voicedChannel.getMembers()) {
User user = member.getUser();

String userFileName = getFilename(user.getName() + "." + user.getDiscriminator() + ".pcm");
String userFileName = getFilename(getFullUser(user) + ".pcm");
if (userFileName.equals(filename)) {
boolean isSpeaking = false;
for (User speakingUser : combinedAudio.getUsers()) {
Expand Down Expand Up @@ -169,7 +179,7 @@ public void handleUserAudio(UserAudio userAudio) {
}

private void addUserAudioData(User user, byte[] data) {
String userFileName = getFilename(user.getName() + "." + user.getDiscriminator() + ".pcm");
String userFileName = getFilename(getFullUser(user) + ".pcm");
try {
FileOutputStream userFis = userFileOutputStreams.get(userFileName);
if (userFis == null) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,16 @@ public void onMessageReceived(MessageReceivedEvent event) {
}
}

private String getFullUser(User user) {
String username = user.getName();
// for compatibility with old accounts
String discriminator = user.getDiscriminator();
if (discriminator != "0000") {
username += "#" + discriminator;
}
return username;
}

private void handleMessage(User author, Channel textChannel, Message sourceMessage) {
String message = sourceMessage.getContentRaw();

Expand All @@ -43,7 +53,7 @@ private void handleMessage(User author, Channel textChannel, Message sourceMessa
}

try {
String user = author.getName() + "#" + author.getDiscriminator();
String user = getFullUser(author);
user = URLEncoder.encode(user, java.nio.charset.StandardCharsets.UTF_8.toString());

String channel = URLEncoder.encode(textChannel.getName(), java.nio.charset.StandardCharsets.UTF_8.toString());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,13 @@ public void onUserUpdateOnlineStatus(UserUpdateOnlineStatusEvent event) {
}

private String getFullUser(User user) {
return user.getName() + "#" + user.getDiscriminator();
String username = user.getName();
// for compatibility with old accounts
String discriminator = user.getDiscriminator();
if (discriminator != "0000") {
username += "#" + discriminator;
}
return username;
}

private boolean isWarnedUser(User user) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ public void onUserUpdateOnlineStatus(UserUpdateOnlineStatusEvent event) {

if (member.getOnlineStatus() == OnlineStatus.ONLINE && event.getOldOnlineStatus() == OnlineStatus.OFFLINE) {
// if (!member.getEffectiveName().equals("farlistener")) return; // test only
System.out.println("Test permissions on " + event.getUser().getName() + "#" + event.getUser().getDiscriminator());
System.out.println("Test permissions on " + getFullUser(event.getUser()));
updateMember(member);
}
}
Expand All @@ -85,7 +85,7 @@ private List<String> getMemberGroups(Member member, boolean doWarn) {
List<String> groups = new ArrayList<>();

try {
String nickname = member.getUser().getName() + "#" + member.getUser().getDiscriminator();
String nickname = getFullUser(member.getUser());
nickname = URLEncoder.encode(nickname, java.nio.charset.StandardCharsets.UTF_8.toString());

String getMemberUrl = PersonaeHelper.getUrl("do_getMember") + "&nickname=" + nickname;
Expand Down Expand Up @@ -231,7 +231,18 @@ private boolean isWarnedUser(User user) {
}

private String getFullUser(User user) {
return user.getName() + "#" + user.getDiscriminator();
/**
* Get unique full user name
* for migrated accounts, it's only the name
* for old accounts, it's name with discriminator
*/
String username = user.getName();
// for compatibility with old accounts
String discriminator = user.getDiscriminator();
if (discriminator != "0000") {
username += "#" + discriminator;
}
return username;
}

private void warnUser(User user) {
Expand Down

0 comments on commit ef9515e

Please sign in to comment.