1
0
forked from Clones/Controlify

✏️ Make invalid name check more intuitive.

This commit is contained in:
isXander
2023-08-03 00:10:21 +01:00
parent cd3b7c6b96
commit 45e1e1a139

View File

@ -32,7 +32,7 @@ public class SubmitUnknownControllerScreen extends Screen {
private final Screen lastScreen; private final Screen lastScreen;
private int invalidNameTicks; private boolean invalidName;
private Button submitButton; private Button submitButton;
private EditBox nameField; private EditBox nameField;
@ -111,6 +111,11 @@ public class SubmitUnknownControllerScreen extends Screen {
); );
this.nameField.setHint(Component.translatable("controlify.controller_submission.name_hint")); this.nameField.setHint(Component.translatable("controlify.controller_submission.name_hint"));
this.nameField.setValue(controller.name()); this.nameField.setValue(controller.name());
this.nameField.setFilter(s -> {
invalidName = !checkValidName(s);
submitButton.active = !invalidName;
return true;
});
} }
@Override @Override
@ -119,27 +124,12 @@ public class SubmitUnknownControllerScreen extends Screen {
super.render(graphics, mouseX, mouseY, delta); super.render(graphics, mouseX, mouseY, delta);
if (invalidNameTicks > 0) { if (invalidName) {
graphics.drawCenteredString(font, Component.translatable("controlify.controller_submission.invalid_name").withStyle(ChatFormatting.RED), this.width / 2, nameField.getRectangle().bottom() + 4, -1); graphics.drawCenteredString(font, Component.translatable("controlify.controller_submission.invalid_name").withStyle(ChatFormatting.RED), this.width / 2, nameField.getRectangle().bottom() + 4, -1);
} }
} }
@Override
public void tick() {
if (invalidNameTicks > 0) {
invalidNameTicks--;
submitButton.active = invalidNameTicks < 50;
}
}
protected void onSubmitButton(Button button) { protected void onSubmitButton(Button button) {
invalidNameTicks = 0;
if (!checkValidName()) {
invalidNameTicks = 100;
return;
}
if (submit()) { if (submit()) {
dontShowAgain(); dontShowAgain();
onClose(); onClose();
@ -188,9 +178,8 @@ public class SubmitUnknownControllerScreen extends Screen {
return gson.toJson(object); return gson.toJson(object);
} }
private boolean checkValidName() { private boolean checkValidName(String name) {
String name = nameField.getValue().trim(); return NAME_PATTERN.matcher(name.trim()).matches();
return NAME_PATTERN.matcher(name).matches();
} }
private void dontShowAgain() { private void dontShowAgain() {