RuneHive-Game
Loading...
Searching...
No Matches
com.runehive.net.packet.PacketRepository Class Reference

The repository that stores packets sizes and listeners for how to execute the packets. More...

Collaboration diagram for com.runehive.net.packet.PacketRepository:

Static Public Member Functions

static PacketListener lookupListener (final int opcode)
 Looks up the listener for this packet.
static int lookupSize (int opcode)
 Looks up the reference size of a packet.
static PacketType lookupType (int opcode)
 The method that looks up the packets type.
static void registerListener (int opcode, PacketListener listener)
 Registers a listener to listen for client -> server packet events.
static void registerType (int opcode, int type)
 Registers a type for a packet.
static void sendToListener (Player player, GamePacket packet)

Static Private Attributes

static final Logger logger = LogManager.getLogger(PacketRepository.class)
static final int MAX_CLIENT_PACKETS = 257
 The number of client packets known.
static final PacketListener[] packetListeners = new PacketListener[MAX_CLIENT_PACKETS]
 The client -> server packet listeners.
static final int[] packetTypes = new int[MAX_CLIENT_PACKETS]
 The array that holds packet types.

Detailed Description

The repository that stores packets sizes and listeners for how to execute the packets.

Author
nshusa

Definition at line 15 of file PacketRepository.java.

Member Function Documentation

◆ lookupListener()

PacketListener com.runehive.net.packet.PacketRepository.lookupListener ( final int opcode)
static

Looks up the listener for this packet.

Parameters
opcodeThe opcode of the packet
Returns
The result.

Definition at line 62 of file PacketRepository.java.

62 {
63 final PacketListener[] packetListeners = PacketRepository.packetListeners;
64 if (opcode < 0 || opcode >= packetListeners.length) {
65 return null;
66 }
67 return packetListeners[opcode];
68 }

References packetListeners.

Referenced by com.runehive.net.codec.game.GamePacketDecoder.decodePayload().

Here is the caller graph for this function:

◆ lookupSize()

int com.runehive.net.packet.PacketRepository.lookupSize ( int opcode)
static

Looks up the reference size of a packet.

Parameters
opcodeThe packet to lookup
Returns
The reference size.

Definition at line 100 of file PacketRepository.java.

100 {
101 if (opcode < 0 || opcode >= packetTypes.length) {
102 return 0;
103 }
104 return packetTypes[opcode];
105 }

References packetTypes.

Referenced by com.runehive.net.codec.game.GamePacketDecoder.decodeOpcode().

Here is the caller graph for this function:

◆ lookupType()

PacketType com.runehive.net.packet.PacketRepository.lookupType ( int opcode)
static

The method that looks up the packets type.

Parameters
opcodeThe opcode to lookup
Returns
The packet type.

Definition at line 76 of file PacketRepository.java.

76 {
77 if (opcode < 0 || opcode >= packetTypes.length) {
78 return PacketType.EMPTY;
79 }
80
81 final int size = packetTypes[opcode];
82
83 if (size == -2) {
84 return PacketType.VAR_SHORT;
85 } else if (size == -1) {
86 return PacketType.VAR_BYTE;
87 } else if (size > 0) {
88 return PacketType.FIXED;
89 } else {
90 return PacketType.EMPTY;
91 }
92 }

References com.runehive.net.packet.PacketType.EMPTY, com.runehive.net.packet.PacketType.FIXED, packetTypes, com.runehive.net.packet.PacketType.VAR_BYTE, and com.runehive.net.packet.PacketType.VAR_SHORT.

Referenced by com.runehive.net.codec.game.GamePacketDecoder.decodeOpcode().

Here is the caller graph for this function:

◆ registerListener()

void com.runehive.net.packet.PacketRepository.registerListener ( int opcode,
PacketListener listener )
static

Registers a listener to listen for client -> server packet events.

Parameters
opcodeThe packet to intercept.
listenerThe listener that will execute this packet.

Definition at line 50 of file PacketRepository.java.

50 {
51 Preconditions.checkArgument(opcode >= 0 && opcode < packetListeners.length);
52 packetListeners[opcode] = listener;
53 }

References packetListeners.

Referenced by com.runehive.io.PacketListenerLoader.run().

Here is the caller graph for this function:

◆ registerType()

void com.runehive.net.packet.PacketRepository.registerType ( int opcode,
int type )
static

Registers a type for a packet.

The following types are...

-2 var_short -1 var_byte 0 empty

0 fixed

Parameters
opcodeThe packet to register this type for
typeThe type for this packet.

Definition at line 120 of file PacketRepository.java.

120 {
121 Preconditions.checkArgument(opcode >= 0 && opcode < packetListeners.length);
122 packetTypes[opcode] = type;
123 }

References packetListeners, and packetTypes.

Referenced by com.runehive.util.parser.impl.PacketSizeParser.parse().

Here is the caller graph for this function:

◆ sendToListener()

void com.runehive.net.packet.PacketRepository.sendToListener ( Player player,
GamePacket packet )
static

Definition at line 34 of file PacketRepository.java.

34 {
35 final PacketListener listener = packetListeners[packet.getOpcode()];
36 if (listener != null) {
37 if (packet.getOpcode() != 0) {
38 //logger.info("Packet recv Opcode: {} Player name: {} Size: {}", packet.getOpcode(), player.getUsername(), packet.getSize());
39 }
40 listener.handlePacket(player, packet);
41 }
42 }

References com.runehive.net.packet.PacketListener.handlePacket(), and packetListeners.

Referenced by com.runehive.net.session.GameSession.processClientPackets().

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ logger

final Logger com.runehive.net.packet.PacketRepository.logger = LogManager.getLogger(PacketRepository.class)
staticprivate

Definition at line 17 of file PacketRepository.java.

◆ MAX_CLIENT_PACKETS

final int com.runehive.net.packet.PacketRepository.MAX_CLIENT_PACKETS = 257
staticprivate

The number of client packets known.

Definition at line 22 of file PacketRepository.java.

◆ packetListeners

final PacketListener [] com.runehive.net.packet.PacketRepository.packetListeners = new PacketListener[MAX_CLIENT_PACKETS]
staticprivate

The client -> server packet listeners.

Definition at line 27 of file PacketRepository.java.

Referenced by lookupListener(), registerListener(), registerType(), and sendToListener().

◆ packetTypes

final int [] com.runehive.net.packet.PacketRepository.packetTypes = new int[MAX_CLIENT_PACKETS]
staticprivate

The array that holds packet types.

Definition at line 32 of file PacketRepository.java.

Referenced by lookupSize(), lookupType(), and registerType().


The documentation for this class was generated from the following file: