Arcturus-Community/src/main/java/com/eu/habbo/messages/incoming/users/ChangeNameCheckUsernameEvent.java

60 lines
2.6 KiB
Java
Raw Normal View History

2018-07-06 15:30:00 +02:00
package com.eu.habbo.messages.incoming.users;
import com.eu.habbo.Emulator;
import com.eu.habbo.habbohotel.users.HabboManager;
import com.eu.habbo.messages.incoming.MessageHandler;
import com.eu.habbo.messages.outgoing.rooms.users.RoomUserNameChangedComposer;
import com.eu.habbo.messages.outgoing.users.ChangeNameCheckResultComposer;
import java.util.ArrayList;
import java.util.List;
2019-05-26 20:14:53 +02:00
public class ChangeNameCheckUsernameEvent extends MessageHandler {
2019-03-18 02:22:00 +01:00
public static final String VALID_CHARACTERS = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890_-=!?@:,.";
2018-07-06 15:30:00 +02:00
@Override
2019-05-26 20:14:53 +02:00
public void handle() throws Exception {
2018-07-06 15:30:00 +02:00
if (!this.client.getHabbo().getHabboStats().allowNameChange)
return;
String name = this.packet.readString();
2019-05-26 20:14:53 +02:00
if (name.equalsIgnoreCase(this.client.getHabbo().getHabboInfo().getUsername())) {
2018-07-06 15:30:00 +02:00
this.client.getHabbo().getHabboStats().allowNameChange = false;
this.client.sendResponse(new RoomUserNameChangedComposer(this.client.getHabbo()));
return;
}
int errorCode = ChangeNameCheckResultComposer.AVAILABLE;
2018-09-28 21:25:00 +02:00
List<String> suggestions = new ArrayList<>(4);
2019-05-26 20:14:53 +02:00
if (false) {
} else if (name.length() < 3) {
2018-07-06 15:30:00 +02:00
errorCode = ChangeNameCheckResultComposer.TOO_SHORT;
2019-05-26 20:14:53 +02:00
} else if (name.length() > 15) {
2018-07-06 15:30:00 +02:00
errorCode = ChangeNameCheckResultComposer.TOO_LONG;
2019-05-26 20:14:53 +02:00
} else if (HabboManager.getOfflineHabboInfo(name) != null || ConfirmChangeNameEvent.changingUsernames.contains(name.toLowerCase())) {
2018-07-06 15:30:00 +02:00
errorCode = ChangeNameCheckResultComposer.TAKEN_WITH_SUGGESTIONS;
suggestions.add(name + Emulator.getRandom().nextInt(9999));
suggestions.add(name + Emulator.getRandom().nextInt(9999));
suggestions.add(name + Emulator.getRandom().nextInt(9999));
suggestions.add(name + Emulator.getRandom().nextInt(9999));
2019-05-26 20:14:53 +02:00
} else if (!Emulator.getGameEnvironment().getWordFilter().filter(name, this.client.getHabbo()).equalsIgnoreCase(name)) {
2018-07-06 15:30:00 +02:00
errorCode = ChangeNameCheckResultComposer.NOT_VALID;
2019-05-26 20:14:53 +02:00
} else {
2018-07-06 15:30:00 +02:00
String checkName = name.toUpperCase();
2019-05-26 20:14:53 +02:00
for (char c : VALID_CHARACTERS.toCharArray()) {
2018-07-06 15:30:00 +02:00
checkName = checkName.replace(c + "", "");
}
2019-05-26 20:14:53 +02:00
if (!checkName.isEmpty()) {
2018-07-06 15:30:00 +02:00
errorCode = ChangeNameCheckResultComposer.NOT_VALID;
2019-05-26 20:14:53 +02:00
} else {
2018-07-06 15:30:00 +02:00
this.client.getHabbo().getHabboStats().changeNameChecked = name;
}
}
this.client.sendResponse(new ChangeNameCheckResultComposer(errorCode, name, suggestions));
}
}