Arcturus-Community/src/main/java/com/eu/habbo/messages/incoming/users/ChangeNameCheckUsernameEvent.java
2019-03-18 01:22:00 +00:00

78 lines
2.7 KiB
Java

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;
public class ChangeNameCheckUsernameEvent extends MessageHandler
{
public static final String VALID_CHARACTERS = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890_-=!?@:,.";
@Override
public void handle() throws Exception
{
if (!this.client.getHabbo().getHabboStats().allowNameChange)
return;
String name = this.packet.readString();
if (name.equalsIgnoreCase(this.client.getHabbo().getHabboInfo().getUsername()))
{
this.client.getHabbo().getHabboStats().allowNameChange = false;
this.client.sendResponse(new RoomUserNameChangedComposer(this.client.getHabbo()));
return;
}
int errorCode = ChangeNameCheckResultComposer.AVAILABLE;
List<String> suggestions = new ArrayList<>(4);
if (false)
{
}
else if (name.length() < 3)
{
errorCode = ChangeNameCheckResultComposer.TOO_SHORT;
}
else if (name.length() > 15)
{
errorCode = ChangeNameCheckResultComposer.TOO_LONG;
}
else if (HabboManager.getOfflineHabboInfo(name) != null || ConfirmChangeNameEvent.changingUsernames.contains(name.toLowerCase()))
{
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));
}
else if (!Emulator.getGameEnvironment().getWordFilter().filter(name, this.client.getHabbo()).equalsIgnoreCase(name))
{
errorCode = ChangeNameCheckResultComposer.NOT_VALID;
}
else
{
String checkName = name.toUpperCase();
for (char c : VALID_CHARACTERS.toCharArray())
{
checkName = checkName.replace(c + "", "");
}
if (!checkName.isEmpty())
{
errorCode = ChangeNameCheckResultComposer.NOT_VALID;
}
else
{
this.client.getHabbo().getHabboStats().changeNameChecked = name;
}
}
this.client.sendResponse(new ChangeNameCheckResultComposer(errorCode, name, suggestions));
}
}