diff --git a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hooks/FakePlayer.java b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hooks/FakePlayer.java index 50c4753f..5d818014 100644 --- a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hooks/FakePlayer.java +++ b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hooks/FakePlayer.java @@ -1424,4 +1424,34 @@ public class FakePlayer implements Player { public boolean isCollidable() { throw new UnsupportedOperationException("Not supported yet."); } + + @Override + public void stopSound(Sound sound) { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public void stopSound(String sound) { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public boolean isSilent() { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public void setSilent(boolean flag) { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public boolean hasGravity() { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public void setGravity(boolean gravity) { + throw new UnsupportedOperationException("Not supported yet."); + } } diff --git a/bungee/src/main/java/com/github/games647/fastlogin/bungee/listener/PluginMessageListener.java b/bungee/src/main/java/com/github/games647/fastlogin/bungee/listener/PluginMessageListener.java index 04b95f1e..c32a4ecf 100644 --- a/bungee/src/main/java/com/github/games647/fastlogin/bungee/listener/PluginMessageListener.java +++ b/bungee/src/main/java/com/github/games647/fastlogin/bungee/listener/PluginMessageListener.java @@ -45,31 +45,31 @@ public class PluginMessageListener implements Listener { ByteArrayDataInput dataInput = ByteStreams.newDataInput(data); String subchannel = dataInput.readUTF(); - ProxiedPlayer fromPlayer = (ProxiedPlayer) pluginMessageEvent.getReceiver(); + ProxiedPlayer forPlayer = (ProxiedPlayer) pluginMessageEvent.getReceiver(); if ("ON".equals(subchannel)) { String playerName = dataInput.readUTF(); - if (playerName.equals(fromPlayer.getName()) && plugin.getConfig().getBoolean("premium-warning") - && !plugin.getPendingConfirms().contains(fromPlayer.getUniqueId())) { - fromPlayer.sendMessage(TextComponent.fromLegacyText(plugin.getCore().getMessage("premium-warning"))); - plugin.getPendingConfirms().add(fromPlayer.getUniqueId()); + if (playerName.equals(forPlayer.getName()) && plugin.getConfig().getBoolean("premium-warning") + && !plugin.getPendingConfirms().contains(forPlayer.getUniqueId())) { + forPlayer.sendMessage(TextComponent.fromLegacyText(plugin.getCore().getMessage("premium-warning"))); + plugin.getPendingConfirms().add(forPlayer.getUniqueId()); return; } - plugin.getPendingConfirms().remove(fromPlayer.getUniqueId()); - AsyncToggleMessage task = new AsyncToggleMessage(plugin, fromPlayer, playerName, true); + plugin.getPendingConfirms().remove(forPlayer.getUniqueId()); + AsyncToggleMessage task = new AsyncToggleMessage(plugin, forPlayer, playerName, true); ProxyServer.getInstance().getScheduler().runAsync(plugin, task); } else if ("OFF".equals(subchannel)) { String playerName = dataInput.readUTF(); - AsyncToggleMessage task = new AsyncToggleMessage(plugin, fromPlayer, playerName, false); + AsyncToggleMessage task = new AsyncToggleMessage(plugin, forPlayer, playerName, false); ProxyServer.getInstance().getScheduler().runAsync(plugin, task); } else if ("SUCCESS".equals(subchannel)) { - if (fromPlayer.getPendingConnection().isOnlineMode()) { + if (forPlayer.getPendingConnection().isOnlineMode()) { //bukkit module successfully received and force logged in the user //update only on success to prevent corrupt data - PlayerProfile playerProfile = plugin.getCore().getStorage().loadProfile(fromPlayer.getName()); - BungeeLoginSession loginSession = plugin.getSession().get(fromPlayer.getPendingConnection()); + PlayerProfile playerProfile = plugin.getCore().getStorage().loadProfile(forPlayer.getName()); + BungeeLoginSession loginSession = plugin.getSession().get(forPlayer.getPendingConnection()); loginSession.setRegistered(true); if (!loginSession.isAlreadySaved()) { diff --git a/bungee/src/main/java/com/github/games647/fastlogin/bungee/tasks/ForceLoginTask.java b/bungee/src/main/java/com/github/games647/fastlogin/bungee/tasks/ForceLoginTask.java index 4521df91..41c57c40 100644 --- a/bungee/src/main/java/com/github/games647/fastlogin/bungee/tasks/ForceLoginTask.java +++ b/bungee/src/main/java/com/github/games647/fastlogin/bungee/tasks/ForceLoginTask.java @@ -31,12 +31,14 @@ public class ForceLoginTask implements Runnable { try { PendingConnection pendingConnection = player.getPendingConnection(); BungeeLoginSession session = plugin.getSession().get(pendingConnection); - PlayerProfile playerProfile = session.getProfile(); - if (!player.isConnected()) { + if (session == null || !player.isConnected()) { + plugin.getLogger().log(Level.FINE, "Invalid session player {0} proparly left the server", player); return; } + PlayerProfile playerProfile = session.getProfile(); + //force login only on success if (pendingConnection.isOnlineMode()) { boolean autoRegister = session.needsRegistration(); diff --git a/core/src/main/java/com/github/games647/fastlogin/core/MojangApiConnector.java b/core/src/main/java/com/github/games647/fastlogin/core/MojangApiConnector.java index 0f66f835..ad749647 100644 --- a/core/src/main/java/com/github/games647/fastlogin/core/MojangApiConnector.java +++ b/core/src/main/java/com/github/games647/fastlogin/core/MojangApiConnector.java @@ -112,6 +112,7 @@ public abstract class MojangApiConnector { try { HttpURLConnection httpConnection = (HttpURLConnection) new URL(MCAPI_UUID_URL + playerName).openConnection(); httpConnection.addRequestProperty("Content-Type", "application/json"); + httpConnection.setRequestProperty("User-Agent", USER_AGENT); if (httpConnection.getResponseCode() == HttpURLConnection.HTTP_NOT_FOUND) { //cracked