Created
July 21, 2017 17:08
-
-
Save Yamakaja/2035d2d9a262001d2467ae83854b05af to your computer and use it in GitHub Desktop.
Player Online-Nicking
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
From 1a3ca0df35fab472a431b91a13630520ab148df7 Mon Sep 17 00:00:00 2001 | |
From: Yamakaja <[email protected]> | |
Date: Fri, 21 Jul 2017 19:07:01 +0200 | |
Subject: [PATCH] Online-Nick patch | |
--- | |
.../md_5/bungee/protocol/packet/LoginRequest.java | 7 ++-- | |
.../net/md_5/bungee/connection/InitialHandler.java | 48 +++++++++++++++++++--- | |
2 files changed, 46 insertions(+), 9 deletions(-) | |
diff --git a/protocol/src/main/java/net/md_5/bungee/protocol/packet/LoginRequest.java b/protocol/src/main/java/net/md_5/bungee/protocol/packet/LoginRequest.java | |
index 32ba098c..1ccbf8f5 100644 | |
--- a/protocol/src/main/java/net/md_5/bungee/protocol/packet/LoginRequest.java | |
+++ b/protocol/src/main/java/net/md_5/bungee/protocol/packet/LoginRequest.java | |
@@ -5,10 +5,7 @@ | |
package net.md_5.bungee.protocol.packet; | |
import io.netty.buffer.ByteBuf; | |
-import lombok.AllArgsConstructor; | |
-import lombok.Data; | |
-import lombok.EqualsAndHashCode; | |
-import lombok.NoArgsConstructor; | |
+import lombok.*; | |
import net.md_5.bungee.protocol.AbstractPacketHandler; | |
import net.md_5.bungee.protocol.DefinedPacket; | |
@@ -19,6 +16,8 @@ import net.md_5.bungee.protocol.DefinedPacket; | |
public class LoginRequest extends DefinedPacket | |
{ | |
+ @Getter | |
+ @Setter | |
private String data; | |
@Override | |
diff --git a/proxy/src/main/java/net/md_5/bungee/connection/InitialHandler.java b/proxy/src/main/java/net/md_5/bungee/connection/InitialHandler.java | |
index cb140d4a..89cb0785 100644 | |
--- a/proxy/src/main/java/net/md_5/bungee/connection/InitialHandler.java | |
+++ b/proxy/src/main/java/net/md_5/bungee/connection/InitialHandler.java | |
@@ -2,17 +2,19 @@ package net.md_5.bungee.connection; | |
import com.google.common.base.Charsets; | |
import com.google.common.base.Preconditions; | |
+import com.google.common.reflect.TypeToken; | |
import com.google.gson.Gson; | |
+ | |
+import java.io.*; | |
import java.math.BigInteger; | |
-import java.net.InetAddress; | |
import java.net.InetSocketAddress; | |
import java.net.URLEncoder; | |
import java.security.MessageDigest; | |
-import java.util.List; | |
-import java.util.UUID; | |
+import java.util.*; | |
import java.util.concurrent.TimeUnit; | |
import java.util.logging.Level; | |
import javax.crypto.SecretKey; | |
+ | |
import lombok.Getter; | |
import lombok.RequiredArgsConstructor; | |
import net.md_5.bungee.BungeeCord; | |
@@ -29,7 +31,6 @@ import net.md_5.bungee.api.chat.BaseComponent; | |
import net.md_5.bungee.api.chat.TextComponent; | |
import net.md_5.bungee.api.config.ListenerInfo; | |
import net.md_5.bungee.api.config.ServerInfo; | |
-import net.md_5.bungee.api.connection.Connection.Unsafe; | |
import net.md_5.bungee.api.connection.PendingConnection; | |
import net.md_5.bungee.api.connection.ProxiedPlayer; | |
import net.md_5.bungee.api.event.LoginEvent; | |
@@ -104,6 +105,21 @@ public class InitialHandler extends PacketHandler implements PendingConnection | |
@Getter | |
private String extraDataInHandshake = ""; | |
+ private static Map<String, LoginResult> loginOverwrites = new HashMap<>(); | |
+ | |
+ static { | |
+ File file = new File("overwrites.json"); | |
+ | |
+ if (file.exists()) { | |
+ try (InputStreamReader input = new InputStreamReader(new FileInputStream(file))) { | |
+ loginOverwrites = new Gson().fromJson(input, new TypeToken<Map<String, LoginResult>>(){}.getType()); | |
+ } catch (IOException e) { | |
+ e.printStackTrace(); | |
+ } | |
+ } | |
+ | |
+ } | |
+ | |
@Override | |
public boolean shouldHandle(PacketWrapper packet) throws Exception | |
{ | |
@@ -321,7 +337,7 @@ public class InitialHandler extends PacketHandler implements PendingConnection | |
} | |
@Override | |
- public void handle(LoginRequest loginRequest) throws Exception | |
+ public void handle(final LoginRequest loginRequest) throws Exception | |
{ | |
Preconditions.checkState( thisState == State.USERNAME, "Not expecting USERNAME" ); | |
this.loginRequest = loginRequest; | |
@@ -373,6 +389,15 @@ public class InitialHandler extends PacketHandler implements PendingConnection | |
unsafe().sendPacket( request = EncryptionUtil.encryptRequest() ); | |
} else | |
{ | |
+ if (loginOverwrites.containsKey(loginRequest.getData())) { | |
+ LoginResult res = loginOverwrites.get(loginRequest.getData()); | |
+ | |
+ InitialHandler.this.loginProfile = res; | |
+ | |
+ InitialHandler.this.name = res.getName(); | |
+ InitialHandler.this.uniqueId = Util.getUUID(res.getId()); | |
+ InitialHandler.this.loginRequest.setData(res.getName()); | |
+ } | |
finish(); | |
} | |
thisState = State.ENCRYPT; | |
@@ -434,6 +459,19 @@ public class InitialHandler extends PacketHandler implements PendingConnection | |
} | |
}; | |
+ if (loginOverwrites.containsKey(this.getName())) { | |
+ LoginResult result = loginOverwrites.get(this.getName()); | |
+ | |
+ this.loginProfile = result; | |
+ | |
+ this.name = result.getName(); | |
+ this.uniqueId = Util.getUUID(result.getId()); | |
+ this.loginRequest.setData(result.getName()); | |
+ | |
+ finish(); | |
+ return; | |
+ } | |
+ | |
HttpClient.get( authURL, ch.getHandle().eventLoop(), handler ); | |
} | |
-- | |
2.13.3 | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"Yamakaja": { | |
"id": "4566e69fc90748ee8d71d7ba5aa00d20", | |
"name": "Thinkofdeath", | |
"properties": [ | |
{ | |
"signature": "tqx5sgouPW+QYA5em+y0aNyEO2+KDZTcmIBOGkJtgjPhOgISUwfpfY20dXJCtxk0laeFn3pYWlmI4nI60BCyr5GRFW8MGHCsLG7Qe9rCgIR1zKy9djn7z9LN4pjhVO9nzvG0qKbjr7vCqSvd8JMRzKDu3gSK39aSPYClgbE7Jw0GL91MqJcYvQ5XrBZh/B1+AwIFsOdkyXlGJRApsJXiuHZlzrLNPhtnh4xEjJWBGk3cWctr/Ed74rlPIz5NSmWlWwJ8y1WrphiPfffvIe3sV4Fx9rguomallTIbTtIAOtjA/bPHMfRPdryDHLZjo0owE1cHVwm60VDUhRXXoh5cSkrPYft/aY/6a44zbIiz0wZEGzvAau8XUOf2gjVhZ3XFD0uwFIlGSdOg6upAxSZA/hYLzkcQp4mt2YRihwwdFf4Oa5Ci2YrxIgJUSHwpNtqu4HDPZRZ0FSJ+kBhWRXPZhD8rxC7rs6QfZQjvj31F3r4iPyH95UrDpokZdowUKnngz3F/O0ZuaN2RGJGvUnPgptEVq4zwgK2wAVI4DKsk0OpR3g4RtQ1Nk3xSVEuiwIcU2al/NWksAz7bRTu0Yhq8fWrLEtOKVjmz74DWxKHytJOXN9Sv8lQjTKJqIfrMvbY+C1BIJ8Zrl1hLpl9jkpt3MRVyKoRvDm6cTq2MNTrg+Yo=", | |
"name": "textures", | |
"value": "eyJ0aW1lc3RhbXAiOjE1MDAzOTA1NTQwNjAsInByb2ZpbGVJZCI6IjQ1NjZlNjlmYzkwNzQ4ZWU4ZDcxZDdiYTVhYTAwZDIwIiwicHJvZmlsZU5hbWUiOiJUaGlua29mZGVhdGgiLCJzaWduYXR1cmVSZXF1aXJlZCI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzEzZTgxYjllMTlhYjFlZjE3YTkwYzBhYTRlMTA4NWZjMTNjZDQ3Y2VkNWE3YTFhNDkyODAzYjM1NjFlNGExNWIifSwiQ0FQRSI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzIyYjljNWVhNzYzYzg2ZmM1Y2FlYTMzZDgyYjBmYTY1YTdjMjI4ZmQzMjFiYTU0NzY2ZWE5NWEzZDBiOTc5MyJ9fX0=" | |
} | |
] | |
}, | |
"YamakajaTwo": { | |
"id": "069a79f444e94726a5befca90e38aaf5", | |
"name": "Notch", | |
"properties": [ | |
{ | |
"signature": "j4S3i/67iCrR+LNaGSr++qTMmYaaPETiMPkY7ouB7NiQjTIlWafAB7i6SfI3Q5r80ts06sj9+E030IunMySWn9J7TYy6/MzLpzqkI4NuPf0iGFXwOwnxhBytbO39lhKqSDuktKs2ZeFQmevlRCSuuEgzHZBXLP/QuteAvSaiu+/cfOoQ4Tk/WZ1JjbVc4xgFfu3reNlEHY1oWShAYju8mx3krFGNhg7Rw2Yrr3jy7VuZbol+Zyl44Pg5g+JUyE07dT7VpCYBzkTzU/9xhCXbDfJGtkS1GdQrEvSG0t1b9ty8W+NpAbhXoCrkTgkeAjJlogN+11mNFGa0XaOOuZd3EhC0/zwJ6p09ejTkjIZpqMxU/CYM/Zby90WPuKeYFYXV2PBUP/2XZFbylVbjGu73GiI8677hU0ZI5lgZAoB8sWBYJhL+BI2/NRccVJQA3zPi2DuYjBTTipCu700m0ig0I3Xl10JlGTxw/nt38OJBKhbIvl8JrP/SRYxzy2WlhP8B/SSUaeCPVal4PGzVIA5c90e4me0RclbILWUMdmozAc2dH4fW1LSB1lBiiVRS5jrsPQY8tGoNE255NA3bRUk1DHqeK9Z02Foy1vLDs6G8fSi+AJdW3r59nEQ8wq/maDTzTP1XzII92G5fxyLw+cCkPaRQ/VHCl59knjvdCZvytrM=", | |
"name": "textures", | |
"value": "eyJ0aW1lc3RhbXAiOjE1MDA2NTM3Mzc1NTIsInByb2ZpbGVJZCI6IjA2OWE3OWY0NDRlOTQ3MjZhNWJlZmNhOTBlMzhhYWY1IiwicHJvZmlsZU5hbWUiOiJOb3RjaCIsInNpZ25hdHVyZVJlcXVpcmVkIjp0cnVlLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYTExNmU2OWE4NDVlMjI3ZjdjYTFmZGRlOGMzNTdjOGM4MjFlYmQ0YmE2MTkzODJlYTRhMWY4N2Q0YWU5NCJ9LCJDQVBFIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZWVjM2NhYmZhZWVkNWRhZmU2MWM2NTQ2Mjk3ZTg1M2E1NDdjMzllYzIzOGQ3YzQ0YmY0ZWI0YTQ5ZGMxZjJjMCJ9fX0=" | |
} | |
] | |
}, | |
"Nightloewe": { | |
"id": "0c05471fc5554f4a8c36d55e7e116afc", | |
"name": "AbgegrieftHD", | |
"properties": [ | |
{ | |
"signature": "TYpOKS3r1ygpUIKKTgToIzU299U64+s/raZSDSKiaycfj3ma6/xTdcclJxLONCfXLiBeA/1rBwffb58OTU0n5WYasdHydOufpaysmQvi4hKAJ15zUOWRfWMtyxSS26kpKJzpz6bSh5LgW/ihmb4zF1exUSw4KEF2VFCEZ9owd31e2ofZGOEbL/ieL1t5itr8babHar4CKfh5Q0iY56HGlHNXEzwMmCfHtXk4ZOxbb3UB/QBhvB3nx2aO9TqESfLruh5L3yeVmqZ4mo/P9+dIbi3UQPVb7RHmVGf5r4iKGcufFZkl0YPGfTOYcb7FjSojj+s513aOABqlfhE9oU7kvHlA3Sn4rvmZAovoKCjY3rZPvC12WHW7ZdqtRbISekGKI2bNwAznznDqKJueJyRJQkQEeEmfnbIsE/rqNvyMttNgtRyDUEdYhJSOl5lzrhsfhpxY616Cd6+wx4R0ofLc4s1mzxsT+xJzdZo9LqsWNRwHED2VowOD5eV+xNtdQAJQIpPgNcSeA3fp7UVgthrSYlij2mjNGyqzdEGkl1SRnufNoa6zoPnKfKW5zy82Z++/I3Kx/elO0qHGaL8nFSdjIU/bYSzFQic8iLIq2xR+pMz2k+81b+mK1cDo6k1AvBoIAYuqc2Gy/rzViolj2HVCRoJkbaqmspW1X0sg+WbPkKA=", | |
"name": "textures", | |
"value": "eyJ0aW1lc3RhbXAiOjE1MDA2NTQ4MTYwNzEsInByb2ZpbGVJZCI6IjBjMDU0NzFmYzU1NTRmNGE4YzM2ZDU1ZTdlMTE2YWZjIiwicHJvZmlsZU5hbWUiOiJBYmdlZ3JpZWZ0SEQiLCJzaWduYXR1cmVSZXF1aXJlZCI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlL2E1ZjA3ODlmZWE3ZDU2OWU5NWI3NzM2M2Q2NzhlYmJjZjJlNDg4OGExNGMxMjE4Njg3MTdlMmIzNDBlMjk1In19fQ==" | |
} | |
] | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment