Skip to content

Commit

Permalink
#fix: #133
Browse files Browse the repository at this point in the history
  • Loading branch information
half-nothing committed Jan 22, 2024
1 parent dba4e6c commit 6b3a183
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 15 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
import com.velocitypowered.api.network.ProtocolVersion;
import com.velocitypowered.proxy.protocol.MinecraftPacket;
import com.velocitypowered.proxy.protocol.StateRegistry;
import com.velocitypowered.proxy.protocol.packet.EncryptionResponse;
import com.velocitypowered.proxy.protocol.packet.ServerLogin;
import com.velocitypowered.proxy.protocol.packet.EncryptionResponsePacket;
import com.velocitypowered.proxy.protocol.packet.ServerLoginPacket;
import moe.caa.multilogin.api.injector.Injector;
import moe.caa.multilogin.api.main.MultiCoreAPI;
import moe.caa.multilogin.api.util.reflect.NoSuchEnumException;
Expand Down Expand Up @@ -34,8 +34,8 @@ public void inject(MultiCoreAPI multiCoreAPI) throws NoSuchFieldException, Class
// auth
{
StateRegistry.PacketRegistry serverbound = getServerboundPacketRegistry(StateRegistry.LOGIN);
redirectInput(serverbound, EncryptionResponse.class, () -> new MultiEncryptionResponse(multiCoreAPI));
redirectInput(serverbound, ServerLogin.class, () -> new MultiServerLogin(multiCoreAPI));
redirectInput(serverbound, EncryptionResponsePacket.class, () -> new MultiEncryptionResponse(multiCoreAPI));
redirectInput(serverbound, ServerLoginPacket.class, () -> new MultiServerLogin(multiCoreAPI));
}

// chat
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@
import com.velocitypowered.proxy.connection.client.LoginInboundConnection;
import com.velocitypowered.proxy.crypto.EncryptionUtils;
import com.velocitypowered.proxy.protocol.StateRegistry;
import com.velocitypowered.proxy.protocol.packet.EncryptionResponse;
import com.velocitypowered.proxy.protocol.packet.ServerLogin;
import com.velocitypowered.proxy.protocol.packet.EncryptionResponsePacket;
import com.velocitypowered.proxy.protocol.packet.ServerLoginPacket;
import lombok.Getter;
import moe.caa.multilogin.api.auth.AuthResult;
import moe.caa.multilogin.api.auth.GameProfile;
Expand Down Expand Up @@ -64,7 +64,7 @@ public class MultiInitialLoginSessionHandler {
private final MinecraftConnection mcConnection;
private final LoginInboundConnection inbound;
// 运行时改动的实例
private ServerLogin login;
private ServerLoginPacket login;
private byte[] verify;
// 自己的对象,表示是否通过加密
private boolean encrypted = false;
Expand Down Expand Up @@ -107,7 +107,7 @@ public static void init() throws ClassNotFoundException, NoSuchMethodException,
setCurrentStateField = lookup.unreflectSetter(currentState);

getLoginField = lookup.unreflectGetter(ReflectUtil.handleAccessible(
initialLoginSessionHandlerAccessor.findFirstFieldByType(true, ServerLogin.class)
initialLoginSessionHandlerAccessor.findFirstFieldByType(true, ServerLoginPacket.class)
));

getVerifyField = lookup.unreflectGetter(ReflectUtil.handleAccessible(
Expand Down Expand Up @@ -138,18 +138,18 @@ public static void init() throws ClassNotFoundException, NoSuchMethodException,
}

private void initValues() throws Throwable {
this.login = (ServerLogin) getLoginField.invoke(initialLoginSessionHandler);
this.login = (ServerLoginPacket) getLoginField.invoke(initialLoginSessionHandler);
this.verify = (byte[]) getVerifyField.invoke(initialLoginSessionHandler);
}

public void handle(EncryptionResponse packet) throws Throwable {
public void handle(EncryptionResponsePacket packet) throws Throwable {
initValues();

// 模拟常规流程
assertStateMethod.invoke(initialLoginSessionHandler, loginStateEnum$ENCRYPTION_REQUEST_SENT);
setCurrentStateField.invoke(initialLoginSessionHandler, loginStateEnum$ENCRYPTION_RESPONSE_RECEIVED);

ServerLogin login = this.login;
ServerLoginPacket login = this.login;
if (login == null) {
throw new IllegalStateException("No ServerLogin packet received yet.");
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import com.velocitypowered.proxy.connection.MinecraftSessionHandler;
import com.velocitypowered.proxy.connection.client.InitialLoginSessionHandler;
import com.velocitypowered.proxy.protocol.packet.EncryptionResponse;
import com.velocitypowered.proxy.protocol.packet.EncryptionResponsePacket;
import lombok.AllArgsConstructor;
import moe.caa.multilogin.api.logger.LoggerProvider;
import moe.caa.multilogin.api.main.MultiCoreAPI;
Expand All @@ -13,7 +13,7 @@
* EncryptionResponse 数据包处理
*/
@AllArgsConstructor
public class MultiEncryptionResponse extends EncryptionResponse {
public class MultiEncryptionResponse extends EncryptionResponsePacket {
private final MultiCoreAPI multiCoreAPI;

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import com.velocitypowered.api.proxy.crypto.IdentifiedKey;
import com.velocitypowered.proxy.connection.MinecraftSessionHandler;
import com.velocitypowered.proxy.protocol.packet.ServerLogin;
import com.velocitypowered.proxy.protocol.packet.ServerLoginPacket;
import lombok.AllArgsConstructor;
import moe.caa.multilogin.api.main.MultiCoreAPI;
import moe.caa.multilogin.velocity.injector.proxy.IdentifiedKeyInvocationHandler;
Expand All @@ -13,7 +13,7 @@
* 擦除登录验证签名的包
*/
@AllArgsConstructor
public class MultiServerLogin extends ServerLogin {
public class MultiServerLogin extends ServerLoginPacket {
private final MultiCoreAPI multiCoreAPI;

@Override
Expand Down

0 comments on commit 6b3a183

Please sign in to comment.