Files
Purpur/patches/unapplied-server/0228-Configurable-valid-characters-for-usernames.patch
2024-04-27 19:29:54 -07:00

35 lines
1.9 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: BillyGalbreath <blake.galbreath@gmail.com>
Date: Sat, 1 Jan 2022 18:38:58 -0600
Subject: [PATCH] Configurable valid characters for usernames
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
index e8000f236d3ec0476ec782f08e159eea6c99476a..4297622fecf2cde16cdcb206ecc3e912b06c0a66 100644
--- a/src/main/java/net/minecraft/world/entity/player/Player.java
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java
@@ -2429,6 +2429,7 @@ public abstract class Player extends LivingEntity {
}
public static boolean isValidUsername(String name) {
+ if (true) return org.purpurmc.purpur.PurpurConfig.usernameValidCharactersPattern.matcher(name).matches(); // Purpur
// Paper start - username validation overriding
if (name == null || name.isEmpty() || name.length() > 16) {
return false;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index fe5a35568fdcd24c5020f003f85f3b4d3b4ac631..e24cd4274bfe7d8694a91f74a2f4674befb13bd6 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -452,4 +452,11 @@ public class PurpurConfig {
private static void networkSettings() {
useUPnP = getBoolean("settings.network.upnp-port-forwarding", useUPnP);
}
+
+ public static java.util.regex.Pattern usernameValidCharactersPattern;
+ private static void usernameValidationSettings() {
+ String defaultPattern = "^[a-zA-Z0-9_.]*$";
+ String setPattern = getString("settings.username-valid-characters", defaultPattern);
+ usernameValidCharactersPattern = java.util.regex.Pattern.compile(setPattern == null || setPattern.isBlank() ? defaultPattern : setPattern);
+ }
}