diff --git a/pom.xml b/pom.xml index b8a5d510..bb8775ac 100644 --- a/pom.xml +++ b/pom.xml @@ -100,12 +100,6 @@ http://repo.md-5.net/content/groups/public - - - md_5-public - http://repo.md-5.net/content/groups/public - - ${project.name} diff --git a/src/main/java/net/md_5/bungee/InitialHandler.java b/src/main/java/net/md_5/bungee/InitialHandler.java index 0ab0456f..6db5ebfa 100644 --- a/src/main/java/net/md_5/bungee/InitialHandler.java +++ b/src/main/java/net/md_5/bungee/InitialHandler.java @@ -9,7 +9,7 @@ import net.md_5.bungee.packet.PacketFCEncryptionResponse; import net.md_5.bungee.packet.PacketFDEncryptionRequest; import net.md_5.bungee.packet.PacketFFKick; import net.md_5.bungee.packet.PacketInputStream; -import net.md_5.bungee.plugin.HandshakeEvent; +import net.md_5.bungee.plugin.LoginEvent; import org.bouncycastle.crypto.io.CipherInputStream; import org.bouncycastle.crypto.io.CipherOutputStream; @@ -39,7 +39,7 @@ public class InitialHandler implements Runnable case 0x02: Packet2Handshake handshake = new Packet2Handshake(packet); // fire connect event - HandshakeEvent event = new HandshakeEvent(handshake.username, socket.getInetAddress()); + LoginEvent event = new LoginEvent(handshake.username, socket.getInetAddress()); BungeeCord.instance.pluginManager.onHandshake(event); if (event.isCancelled()) { @@ -56,6 +56,13 @@ public class InitialHandler implements Runnable throw new KickException("Not authenticated with minecraft.net"); } + // fire post auth event + BungeeCord.instance.pluginManager.onHandshake(event); + if (event.isCancelled()) + { + throw new KickException(event.getCancelReason()); + } + out.write(new PacketFCEncryptionResponse().getPacket()); in = new PacketInputStream(new CipherInputStream(socket.getInputStream(), EncryptionUtil.getCipher(false, shared))); out = new CipherOutputStream(socket.getOutputStream(), EncryptionUtil.getCipher(true, shared)); diff --git a/src/main/java/net/md_5/bungee/plugin/JavaPlugin.java b/src/main/java/net/md_5/bungee/plugin/JavaPlugin.java index 6c1f670a..16fcf368 100644 --- a/src/main/java/net/md_5/bungee/plugin/JavaPlugin.java +++ b/src/main/java/net/md_5/bungee/plugin/JavaPlugin.java @@ -32,7 +32,15 @@ public abstract class JavaPlugin * Called when a user connects with their name and address. To keep things * simple this name has not been checked with minecraft.net. */ - public void onHandshake(HandshakeEvent event) + public void onHandshake(LoginEvent event) + { + } + + /** + * Called after a user has been authed with minecraftt.net and is about to + * log into the proxy. + */ + public void onLogin(LoginEvent event) { } diff --git a/src/main/java/net/md_5/bungee/plugin/JavaPluginManager.java b/src/main/java/net/md_5/bungee/plugin/JavaPluginManager.java index e113b513..a8192405 100644 --- a/src/main/java/net/md_5/bungee/plugin/JavaPluginManager.java +++ b/src/main/java/net/md_5/bungee/plugin/JavaPluginManager.java @@ -81,11 +81,20 @@ public class JavaPluginManager extends JavaPlugin } @Override - public void onHandshake(HandshakeEvent event) + public void onHandshake(LoginEvent event) { for (JavaPlugin p : plugins) { p.onHandshake(event); } } + + @Override + public void onLogin(LoginEvent event) + { + for (JavaPlugin p : plugins) + { + p.onLogin(event); + } + } } diff --git a/src/main/java/net/md_5/bungee/plugin/HandshakeEvent.java b/src/main/java/net/md_5/bungee/plugin/LoginEvent.java similarity index 62% rename from src/main/java/net/md_5/bungee/plugin/HandshakeEvent.java rename to src/main/java/net/md_5/bungee/plugin/LoginEvent.java index 7a757d09..518cbfae 100644 --- a/src/main/java/net/md_5/bungee/plugin/HandshakeEvent.java +++ b/src/main/java/net/md_5/bungee/plugin/LoginEvent.java @@ -4,12 +4,10 @@ import java.net.InetAddress; import lombok.Data; /** - * Event called once a remote connection has begun the login procedure. This - * event is ideal for IP banning, however must be used with care in other places - * such as logging at the username has not yet been verified with Mojang. + * Event called to represent a player logging in. */ @Data -public class HandshakeEvent implements Cancellable +public class LoginEvent implements Cancellable { /**