From f250f8071f0567b2fa2a314c69fd14eb268da56e Mon Sep 17 00:00:00 2001 From: games647 Date: Mon, 5 Mar 2018 21:27:48 +0100 Subject: [PATCH] Optional migration --- .../fastlogin/bukkit/BukkitLoginSession.java | 6 ++++-- .../fastlogin/bukkit/commands/CrackedCommand.java | 2 +- .../listener/protocollib/SkinApplyListener.java | 6 +----- .../bungee/listener/ConnectListener.java | 2 +- .../bungee/tasks/AsyncToggleMessage.java | 2 +- .../games647/fastlogin/core/AuthStorage.java | 15 +++------------ .../games647/fastlogin/core/PlayerProfile.java | 9 +++++---- .../core/shared/ForceLoginManagement.java | 4 ++-- 8 files changed, 18 insertions(+), 28 deletions(-) diff --git a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/BukkitLoginSession.java b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/BukkitLoginSession.java index 8f3dcd66..f52dbb7a 100644 --- a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/BukkitLoginSession.java +++ b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/BukkitLoginSession.java @@ -4,6 +4,8 @@ import com.github.games647.fastlogin.core.PlayerProfile; import com.github.games647.fastlogin.core.mojang.SkinProperties; import com.github.games647.fastlogin.core.shared.LoginSession; +import java.util.Optional; + import org.apache.commons.lang.ArrayUtils; /** @@ -63,8 +65,8 @@ public class BukkitLoginSession extends LoginSession { } //todo: this should be optional for players without a skin at all - public synchronized SkinProperties getSkinProperty() { - return skinProperty; + public synchronized Optional getSkin() { + return Optional.ofNullable(skinProperty); } /** diff --git a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/commands/CrackedCommand.java b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/commands/CrackedCommand.java index bc8e08c1..30d8e890 100644 --- a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/commands/CrackedCommand.java +++ b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/commands/CrackedCommand.java @@ -36,7 +36,7 @@ public class CrackedCommand implements CommandExecutor { plugin.getCore().sendLocaleMessage("remove-premium", sender); profile.setPremium(false); - profile.setUuid(null); + profile.setId(null); Bukkit.getScheduler().runTaskAsynchronously(plugin, () -> { plugin.getCore().getStorage().save(profile); }); diff --git a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/protocollib/SkinApplyListener.java b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/protocollib/SkinApplyListener.java index 5b1de010..297e330e 100644 --- a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/protocollib/SkinApplyListener.java +++ b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/protocollib/SkinApplyListener.java @@ -44,11 +44,7 @@ public class SkinApplyListener implements Listener { //loginEvent.getAddress is just a InetAddress not InetSocketAddress, so not unique enough for (BukkitLoginSession session : plugin.getLoginSessions().values()) { if (session.getUsername().equals(player.getName())) { - SkinProperties skinProperty = session.getSkinProperty(); - if (skinProperty != null) { - applySkin(player, skinProperty.getValue(), skinProperty.getSignature()); - } - + session.getSkin().ifPresent(skin -> applySkin(player, skin.getValue(), skin.getSignature())); break; } } diff --git a/bungee/src/main/java/com/github/games647/fastlogin/bungee/listener/ConnectListener.java b/bungee/src/main/java/com/github/games647/fastlogin/bungee/listener/ConnectListener.java index e676356b..e791af88 100644 --- a/bungee/src/main/java/com/github/games647/fastlogin/bungee/listener/ConnectListener.java +++ b/bungee/src/main/java/com/github/games647/fastlogin/bungee/listener/ConnectListener.java @@ -68,7 +68,7 @@ public class ConnectListener implements Listener { session.setUuid(connection.getUniqueId()); PlayerProfile playerProfile = session.getProfile(); - playerProfile.setUuid(connection.getUniqueId()); + playerProfile.setId(connection.getUniqueId()); //bungeecord will do this automatically so override it on disabled option if (!plugin.getCore().getConfig().get("premiumUuid", true)) { diff --git a/bungee/src/main/java/com/github/games647/fastlogin/bungee/tasks/AsyncToggleMessage.java b/bungee/src/main/java/com/github/games647/fastlogin/bungee/tasks/AsyncToggleMessage.java index d7a6b37b..94d33386 100644 --- a/bungee/src/main/java/com/github/games647/fastlogin/bungee/tasks/AsyncToggleMessage.java +++ b/bungee/src/main/java/com/github/games647/fastlogin/bungee/tasks/AsyncToggleMessage.java @@ -44,7 +44,7 @@ public class AsyncToggleMessage implements Runnable { } playerProfile.setPremium(false); - playerProfile.setUuid(null); + playerProfile.setId(null); core.getStorage().save(playerProfile); sendMessage("remove-premium"); } diff --git a/core/src/main/java/com/github/games647/fastlogin/core/AuthStorage.java b/core/src/main/java/com/github/games647/fastlogin/core/AuthStorage.java index 191ec464..fa3c3dd2 100644 --- a/core/src/main/java/com/github/games647/fastlogin/core/AuthStorage.java +++ b/core/src/main/java/com/github/games647/fastlogin/core/AuthStorage.java @@ -142,16 +142,11 @@ public class AuthStorage { public void save(PlayerProfile playerProfile) { try (Connection con = dataSource.getConnection()) { - UUID uuid = playerProfile.getUuid(); + String uuid = playerProfile.getId().map(UUIDTypeAdapter::toMojangId).orElse(null); if (playerProfile.isSaved()) { try (PreparedStatement saveStmt = con.prepareStatement(UPDATE_PROFILE)) { - if (uuid == null) { - saveStmt.setString(1, null); - } else { - saveStmt.setString(1, UUIDTypeAdapter.toMojangId(uuid)); - } - + saveStmt.setString(1, uuid); saveStmt.setString(2, playerProfile.getPlayerName()); saveStmt.setBoolean(3, playerProfile.isPremium()); saveStmt.setString(4, playerProfile.getLastIp()); @@ -161,11 +156,7 @@ public class AuthStorage { } } else { try (PreparedStatement saveStmt = con.prepareStatement(INSERT_PROFILE, RETURN_GENERATED_KEYS)) { - if (uuid == null) { - saveStmt.setString(1, null); - } else { - saveStmt.setString(1, UUIDTypeAdapter.toMojangId(uuid)); - } + saveStmt.setString(1, uuid); saveStmt.setString(2, playerProfile.getPlayerName()); saveStmt.setBoolean(3, playerProfile.isPremium()); diff --git a/core/src/main/java/com/github/games647/fastlogin/core/PlayerProfile.java b/core/src/main/java/com/github/games647/fastlogin/core/PlayerProfile.java index 0f1fc0cf..e55c18b8 100644 --- a/core/src/main/java/com/github/games647/fastlogin/core/PlayerProfile.java +++ b/core/src/main/java/com/github/games647/fastlogin/core/PlayerProfile.java @@ -1,6 +1,7 @@ package com.github.games647.fastlogin.core; import java.time.Instant; +import java.util.Optional; import java.util.UUID; public class PlayerProfile { @@ -48,11 +49,11 @@ public class PlayerProfile { } //todo: this should be optional - public synchronized UUID getUuid() { - return uuid; + public synchronized Optional getId() { + return Optional.ofNullable(uuid); } - public synchronized void setUuid(UUID uuid) { + public synchronized void setId(UUID uuid) { this.uuid = uuid; } @@ -81,7 +82,7 @@ public class PlayerProfile { } @Override - public String toString() { + public synchronized String toString() { return this.getClass().getSimpleName() + '{' + "playerName='" + playerName + '\'' + ", rowId=" + rowId + diff --git a/core/src/main/java/com/github/games647/fastlogin/core/shared/ForceLoginManagement.java b/core/src/main/java/com/github/games647/fastlogin/core/shared/ForceLoginManagement.java index 597e7f24..8740de4d 100644 --- a/core/src/main/java/com/github/games647/fastlogin/core/shared/ForceLoginManagement.java +++ b/core/src/main/java/com/github/games647/fastlogin/core/shared/ForceLoginManagement.java @@ -49,7 +49,7 @@ public abstract class ForceLoginManagement