mirror of
https://github.com/PaperMC/Paper.git
synced 2025-01-02 09:21:57 +01:00
Add more fields to AsyncPreLoginEvent
Co-authored-by: Connor Linfoot <connorlinfoot@me.com> Co-authored-by: MCMDEV <john-m.1@gmx.de>
This commit is contained in:
parent
ac0c06a72f
commit
5fb78725e4
1 changed files with 17 additions and 9 deletions
|
@ -117,7 +117,7 @@
|
||||||
+ try {
|
+ try {
|
||||||
+ GameProfile gameprofile = ServerLoginPacketListenerImpl.this.createOfflineProfile(ServerLoginPacketListenerImpl.this.requestedUsername); // Spigot
|
+ GameProfile gameprofile = ServerLoginPacketListenerImpl.this.createOfflineProfile(ServerLoginPacketListenerImpl.this.requestedUsername); // Spigot
|
||||||
+
|
+
|
||||||
+ ServerLoginPacketListenerImpl.this.callPlayerPreLoginEvents(gameprofile);
|
+ gameprofile = ServerLoginPacketListenerImpl.this.callPlayerPreLoginEvents(gameprofile); // Paper - Add more fields to AsyncPlayerPreLoginEvent
|
||||||
+ ServerLoginPacketListenerImpl.LOGGER.info("UUID of player {} is {}", gameprofile.getName(), gameprofile.getId());
|
+ ServerLoginPacketListenerImpl.LOGGER.info("UUID of player {} is {}", gameprofile.getName(), gameprofile.getId());
|
||||||
+ ServerLoginPacketListenerImpl.this.startClientVerification(gameprofile);
|
+ ServerLoginPacketListenerImpl.this.startClientVerification(gameprofile);
|
||||||
+ } catch (Exception ex) {
|
+ } catch (Exception ex) {
|
||||||
|
@ -192,7 +192,7 @@
|
||||||
+ if (!ServerLoginPacketListenerImpl.this.connection.isConnected()) {
|
+ if (!ServerLoginPacketListenerImpl.this.connection.isConnected()) {
|
||||||
+ return;
|
+ return;
|
||||||
+ }
|
+ }
|
||||||
+ ServerLoginPacketListenerImpl.this.callPlayerPreLoginEvents(gameprofile);
|
+ gameprofile = ServerLoginPacketListenerImpl.this.callPlayerPreLoginEvents(gameprofile); // Paper - Add more fields to AsyncPlayerPreLoginEvent
|
||||||
+ // CraftBukkit end
|
+ // CraftBukkit end
|
||||||
ServerLoginPacketListenerImpl.LOGGER.info("UUID of player {} is {}", gameprofile.getName(), gameprofile.getId());
|
ServerLoginPacketListenerImpl.LOGGER.info("UUID of player {} is {}", gameprofile.getName(), gameprofile.getId());
|
||||||
ServerLoginPacketListenerImpl.this.startClientVerification(gameprofile);
|
ServerLoginPacketListenerImpl.this.startClientVerification(gameprofile);
|
||||||
|
@ -222,7 +222,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -232,11 +328,46 @@
|
@@ -232,11 +328,54 @@
|
||||||
|
|
||||||
return ServerLoginPacketListenerImpl.this.server.getPreventProxyConnections() && socketaddress instanceof InetSocketAddress ? ((InetSocketAddress) socketaddress).getAddress() : null;
|
return ServerLoginPacketListenerImpl.this.server.getPreventProxyConnections() && socketaddress instanceof InetSocketAddress ? ((InetSocketAddress) socketaddress).getAddress() : null;
|
||||||
}
|
}
|
||||||
|
@ -234,14 +234,23 @@
|
||||||
- thread.setUncaughtExceptionHandler(new DefaultUncaughtExceptionHandler(ServerLoginPacketListenerImpl.LOGGER));
|
- thread.setUncaughtExceptionHandler(new DefaultUncaughtExceptionHandler(ServerLoginPacketListenerImpl.LOGGER));
|
||||||
- thread.start();
|
- thread.start();
|
||||||
+ // CraftBukkit start
|
+ // CraftBukkit start
|
||||||
+ private void callPlayerPreLoginEvents(GameProfile gameprofile) throws Exception {
|
+ private GameProfile callPlayerPreLoginEvents(GameProfile gameprofile) throws Exception { // Paper - Add more fields to AsyncPlayerPreLoginEvent
|
||||||
+ String playerName = gameprofile.getName();
|
+ String playerName = gameprofile.getName();
|
||||||
+ java.net.InetAddress address = ((java.net.InetSocketAddress) this.connection.getRemoteAddress()).getAddress();
|
+ java.net.InetAddress address = ((java.net.InetSocketAddress) this.connection.getRemoteAddress()).getAddress();
|
||||||
+ java.util.UUID uniqueId = gameprofile.getId();
|
+ java.util.UUID uniqueId = gameprofile.getId();
|
||||||
+ final org.bukkit.craftbukkit.CraftServer server = ServerLoginPacketListenerImpl.this.server.server;
|
+ final org.bukkit.craftbukkit.CraftServer server = ServerLoginPacketListenerImpl.this.server.server;
|
||||||
+
|
+
|
||||||
+ AsyncPlayerPreLoginEvent asyncEvent = new AsyncPlayerPreLoginEvent(playerName, address, uniqueId, this.transferred);
|
+ // Paper start - Add more fields to AsyncPlayerPreLoginEvent
|
||||||
|
+ final InetAddress rawAddress = ((InetSocketAddress) this.connection.channel.remoteAddress()).getAddress();
|
||||||
|
+ com.destroystokyo.paper.profile.PlayerProfile profile = org.bukkit.Bukkit.createProfile(uniqueId, playerName);
|
||||||
|
+ AsyncPlayerPreLoginEvent asyncEvent = new AsyncPlayerPreLoginEvent(playerName, address, rawAddress, uniqueId, this.transferred, profile, this.connection.hostname);
|
||||||
+ server.getPluginManager().callEvent(asyncEvent);
|
+ server.getPluginManager().callEvent(asyncEvent);
|
||||||
|
+ profile = asyncEvent.getPlayerProfile();
|
||||||
|
+ profile.complete();
|
||||||
|
+ gameprofile = com.destroystokyo.paper.profile.CraftPlayerProfile.asAuthlibCopy(profile);
|
||||||
|
+ playerName = gameprofile.getName();
|
||||||
|
+ uniqueId = gameprofile.getId();
|
||||||
|
+ // Paper end - Add more fields to AsyncPlayerPreLoginEvent
|
||||||
+
|
+
|
||||||
+ if (PlayerPreLoginEvent.getHandlerList().getRegisteredListeners().length != 0) {
|
+ if (PlayerPreLoginEvent.getHandlerList().getRegisteredListeners().length != 0) {
|
||||||
+ final PlayerPreLoginEvent event = new PlayerPreLoginEvent(playerName, address, uniqueId);
|
+ final PlayerPreLoginEvent event = new PlayerPreLoginEvent(playerName, address, uniqueId);
|
||||||
|
@ -259,20 +268,19 @@
|
||||||
+ ServerLoginPacketListenerImpl.this.server.processQueue.add(waitable);
|
+ ServerLoginPacketListenerImpl.this.server.processQueue.add(waitable);
|
||||||
+ if (waitable.get() != PlayerPreLoginEvent.Result.ALLOWED) {
|
+ if (waitable.get() != PlayerPreLoginEvent.Result.ALLOWED) {
|
||||||
+ this.disconnect(io.papermc.paper.adventure.PaperAdventure.asVanilla(event.kickMessage())); // Paper - Adventure
|
+ this.disconnect(io.papermc.paper.adventure.PaperAdventure.asVanilla(event.kickMessage())); // Paper - Adventure
|
||||||
+ return;
|
|
||||||
+ }
|
+ }
|
||||||
+ } else {
|
+ } else {
|
||||||
+ if (asyncEvent.getLoginResult() != AsyncPlayerPreLoginEvent.Result.ALLOWED) {
|
+ if (asyncEvent.getLoginResult() != AsyncPlayerPreLoginEvent.Result.ALLOWED) {
|
||||||
+ this.disconnect(io.papermc.paper.adventure.PaperAdventure.asVanilla(asyncEvent.kickMessage())); // Paper - Adventure
|
+ this.disconnect(io.papermc.paper.adventure.PaperAdventure.asVanilla(asyncEvent.kickMessage())); // Paper - Adventure
|
||||||
+ return;
|
|
||||||
+ }
|
+ }
|
||||||
+ }
|
+ }
|
||||||
|
+ return gameprofile; // Paper - Add more fields to AsyncPlayerPreLoginEvent
|
||||||
}
|
}
|
||||||
+ // CraftBukkit end
|
+ // CraftBukkit end
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handleCustomQueryPacket(ServerboundCustomQueryAnswerPacket packet) {
|
public void handleCustomQueryPacket(ServerboundCustomQueryAnswerPacket packet) {
|
||||||
@@ -245,10 +376,11 @@
|
@@ -245,10 +384,11 @@
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handleLoginAcknowledgement(ServerboundLoginAcknowledgedPacket packet) {
|
public void handleLoginAcknowledgement(ServerboundLoginAcknowledgedPacket packet) {
|
||||||
|
@ -285,7 +293,7 @@
|
||||||
|
|
||||||
this.connection.setupInboundProtocol(ConfigurationProtocols.SERVERBOUND, serverconfigurationpacketlistenerimpl);
|
this.connection.setupInboundProtocol(ConfigurationProtocols.SERVERBOUND, serverconfigurationpacketlistenerimpl);
|
||||||
serverconfigurationpacketlistenerimpl.startConfiguration();
|
serverconfigurationpacketlistenerimpl.startConfiguration();
|
||||||
@@ -264,12 +396,44 @@
|
@@ -264,12 +404,44 @@
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handleCookieResponse(ServerboundCookieResponsePacket packet) {
|
public void handleCookieResponse(ServerboundCookieResponsePacket packet) {
|
||||||
|
|
Loading…
Reference in a new issue