Skip to content

Commit

Permalink
Delete signature & Automatic detect the packet ID
Browse files Browse the repository at this point in the history
  • Loading branch information
heartalborada-del committed Jan 24, 2025
1 parent e315cb5 commit 4cdd60b
Show file tree
Hide file tree
Showing 3 changed files with 60 additions and 0 deletions.
10 changes: 10 additions & 0 deletions api/src/main/java/moe/caa/multilogin/api/MapperConfigAPI.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package moe.caa.multilogin.api;

import java.util.LinkedHashMap;
import java.util.Map;

public interface MapperConfigAPI {
Map<Integer,Integer> getPacketMapping();
void save();
void reload();
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package fun.ksnb.multilogin.velocity.impl;

import com.velocitypowered.api.event.EventManager;
import com.velocitypowered.api.proxy.Player;
import com.velocitypowered.proxy.protocol.ProtocolUtils;
import io.netty.buffer.ByteBuf;
import io.netty.channel.ChannelDuplexHandler;
import io.netty.channel.ChannelHandlerContext;
import org.jetbrains.annotations.NotNull;

public class ChatSessionHandler extends ChannelDuplexHandler {
private final Player player;
private final EventManager eventManager;
public ChatSessionHandler(Player player, EventManager eventManager) {
this.player = player;
this.eventManager = eventManager;
}

@Override
public void channelRead(
final @NotNull ChannelHandlerContext ctx,
final @NotNull Object packet
) throws Exception {
if (packet instanceof ByteBuf buffer) {
ByteBuf c = buffer.copy();
try {
int packetId = c.readByte();
ProtocolUtils.readUuid(c);
ProtocolUtils.readPlayerKey(player.getProtocolVersion(), c);
eventManager.fire(new NewChatSessionPacketIDEvent(packetId,player.getProtocolVersion()));
} catch (Exception ignore) { } finally {
c.resetReaderIndex();
}
}
super.channelRead(ctx, packet);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package fun.ksnb.multilogin.velocity.impl;

import com.velocitypowered.api.network.ProtocolVersion;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Getter;

@AllArgsConstructor(access = AccessLevel.PUBLIC)
@Getter
public class NewChatSessionPacketIDEvent {
private final int packetID;
private final ProtocolVersion version;
}

0 comments on commit 4cdd60b

Please sign in to comment.