1
0
mirror of https://github.com/GeyserMC/Floodgate.git synced 2026-01-06 15:42:03 +00:00

Add option to replace spaces in names, to allow for better handling in java plugins (#15)

This commit is contained in:
theminecoder
2020-04-10 17:09:53 +10:00
committed by GitHub
parent f13071f8a7
commit 38a67ee859
6 changed files with 13 additions and 6 deletions

View File

@@ -27,6 +27,8 @@ public class FloodgateConfig {
private DisconnectMessages messages;
@JsonProperty(value = "username-prefix")
private String usernamePrefix;
@JsonProperty(value = "replace-spaces")
private boolean replaceSpaces;
@JsonProperty
private boolean debug;

View File

@@ -37,10 +37,13 @@ public class FloodgatePlayer {
*/
private UUID javaUniqueId;
FloodgatePlayer(BedrockData data, String prefix) {
FloodgatePlayer(BedrockData data, String prefix, boolean replaceSpaces) {
version = data.getVersion();
username = data.getUsername();
javaUsername = prefix + data.getUsername().substring(0, Math.min(data.getUsername().length(), 16 - prefix.length()));
if (replaceSpaces) {
javaUsername = javaUsername.replaceAll(" ", "_");
}
xuid = data.getXuid();
deviceOS = DeviceOS.getById(data.getDeviceId());
languageCode = data.getLanguageCode();

View File

@@ -18,11 +18,13 @@ public class HandshakeHandler {
private PrivateKey privateKey;
private boolean bungee;
private String usernamePrefix;
private boolean replaceSpaces;
public HandshakeHandler(@NonNull PrivateKey privateKey, boolean bungee, String usernamePrefix) {
public HandshakeHandler(@NonNull PrivateKey privateKey, boolean bungee, String usernamePrefix, boolean replaceSpaces) {
this.privateKey = privateKey;
this.bungee = bungee;
this.usernamePrefix = usernamePrefix;
this.replaceSpaces = replaceSpaces;
}
public HandshakeResult handle(@NonNull String handshakeData) {
@@ -42,7 +44,7 @@ public class HandshakeHandler {
return ResultType.INVALID_DATA_LENGTH.getCachedResult();
}
FloodgatePlayer player = new FloodgatePlayer(bedrockData, usernamePrefix);
FloodgatePlayer player = new FloodgatePlayer(bedrockData, usernamePrefix, replaceSpaces);
AbstractFloodgateAPI.players.put(player.getJavaUniqueId(), player);
return new HandshakeResult(ResultType.SUCCESS, data, bedrockData, player);
} catch (NoSuchPaddingException | NoSuchAlgorithmException | InvalidKeyException | IllegalBlockSizeException | BadPaddingException e) {