Networking API
The CoreProtect Networking API allows clients to receive data using packets.
Networking Details | |
---|---|
Networking Version: | 1 |
Plugin Version: | v21.3+ |
Packets
The server will not respond unless the player has the correct permission, which is coreprotect.networking
.
Server to Client
Data Packet
Sends data from the database.
- Channel:
coreprotect:data
Type: Int |
1 | 2 | 3 | 4 |
---|---|---|---|---|
Time: long |
Time: long |
Time: long |
Time: long |
|
Phrase selector: UTF |
Phrase selector: UTF |
Result User: UTF |
Result User: UTF |
|
Result User: UTF |
Result User: UTF |
Message: UTF |
Target: UTF |
|
Target: UTF |
Amount: Int |
Sign: Boolean |
||
Amount: Int |
X: Int |
X: Int |
||
X: Int |
Y: Int |
Y: Int |
||
Y: Int |
Z: Int |
Z: Int |
||
Z: Int |
World name: UTF |
World name: UTF |
||
World name: UTF |
||||
Rolledback: Boolean |
||||
isContainer: Boolean |
||||
Added: Boolean |
Example (Fabric):
ByteArrayInputStream in = new ByteArrayInputStream(buf.getWrittenBytes());
DataInputStream dis = new DataInputStream(in);
int type = dis.readInt();
long time = dis.readLong();
String selector = dis.readUTF();
String resultUser = dis.readUTF();
String target = dis.readUTF();
int amount = dis.readInt();
int x = dis.readInt();
int y = dis.readInt();
int z = dis.readInt();
String worldName = dis.readUTF();
boolean rolledback = dis.readBoolean();
boolean isContainer = dis.readBoolean();
boolean added = dis.readBoolean();
Handshake Packet
Sends handshake if player is registered.
- Channel:
coreprotect:handshake
- Registered:
Boolean
Client to Server
Handshake Packet
Sends handshake to register
- Channel:
coreprotect:handshake
- Mod Version:
UTF
- Mod Id:
UTF
- CoreProtect Protocol:
Int
Example (Fabric):
PacketByteBuf packetByteBuf = new PacketByteBuf(Unpooled.buffer());
ByteArrayOutputStream msgBytes = new ByteArrayOutputStream();
DataOutputStream msgOut = new DataOutputStream(msgBytes);
msgOut.writeUTF(modVersion);
msgOut.writeUTF(modId);
msgOut.writeInt(coreprotectProtocol);
packetByteBuf.writeBytes(msgBytes.toByteArray());
Debugging
/co network-debug
Allows you to debug the networking API if you are registered and have correct permissions.
To utilize the command, network-debug: true
must be set in the CoreProtect config.yml
.
Example
/co network-debug <type>