RuneHive-Tarnish
Neural OSRS Enhancement Framework
Loading...
Searching...
No Matches
PacketRepository.java
1package com.osroyale.net.packet;
2
3import com.google.common.base.Preconditions;
4import com.osroyale.game.world.entity.mob.player.Player;
5import org.apache.logging.log4j.LogManager;
6import org.apache.logging.log4j.Logger;
7
8import javax.annotation.Nullable;
9
48
49public final class PacketRepository {
50
51 private static final Logger logger = LogManager.getLogger(PacketRepository.class);
52
56 private static final int MAX_CLIENT_PACKETS = 257;
57
61 private static final PacketListener[] packetListeners = new PacketListener[MAX_CLIENT_PACKETS];
62
66 private static final int[] packetTypes = new int[MAX_CLIENT_PACKETS];
67
68 public static void sendToListener(Player player, GamePacket packet) {
69 final PacketListener listener = packetListeners[packet.getOpcode()];
70 if (listener != null) {
71 if (packet.getOpcode() != 0) {
72 //logger.info("Packet recv Opcode: {} Player name: {} Size: {}", packet.getOpcode(), player.getUsername(), packet.getSize());
73 }
74 listener.handlePacket(player, packet);
75 }
76 }
77
84 public static void registerListener(int opcode, PacketListener listener) {
85 Preconditions.checkArgument(opcode >= 0 && opcode < packetListeners.length);
86 packetListeners[opcode] = listener;
87 }
88
95 @Nullable
96 public static PacketListener lookupListener(final int opcode) {
97 final PacketListener[] packetListeners = PacketRepository.packetListeners;
98 if (opcode < 0 || opcode >= packetListeners.length) {
99 return null;
100 }
101 return packetListeners[opcode];
102 }
103
110 public static PacketType lookupType(int opcode) {
111 if (opcode < 0 || opcode >= packetTypes.length) {
112 return PacketType.EMPTY;
113 }
114
115 final int size = packetTypes[opcode];
116
117 if (size == -2) {
118 return PacketType.VAR_SHORT;
119 } else if (size == -1) {
120 return PacketType.VAR_BYTE;
121 } else if (size > 0) {
122 return PacketType.FIXED;
123 } else {
124 return PacketType.EMPTY;
125 }
126 }
127
134 public static int lookupSize(int opcode) {
135 if (opcode < 0 || opcode >= packetTypes.length) {
136 return 0;
137 }
138 return packetTypes[opcode];
139 }
140
154 public static void registerType(int opcode, int type) {
155 Preconditions.checkArgument(opcode >= 0 && opcode < packetListeners.length);
156 packetTypes[opcode] = type;
157 }
158
159}
static PacketListener lookupListener(final int opcode)
static void registerListener(int opcode, PacketListener listener)
static void registerType(int opcode, int type)
static PacketType lookupType(int opcode)
void handlePacket(Player player, GamePacket packet)