Solved packet encode/decode boilerplate code issue

Something as simple as forgetting the reset() when encoding would cause lots of problems which could go unnoticed. This should be fully backwards-compatible but needs more tests.
This commit is contained in:
Dylan K. Taylor
2017-07-07 13:59:09 +01:00
parent 1a5e3b2ad0
commit 2726f2a011
88 changed files with 195 additions and 262 deletions

View File

@ -55,9 +55,29 @@ abstract class DataPacket extends BinaryStream{
return false;
}
abstract public function encode();
public function decode(){
$this->offset = 1;
$this->decodePayload();
}
abstract public function decode();
/**
* Note for plugin developers: If you're adding your own packets, you should perform decoding in here.
*/
public function decodePayload(){
}
public function encode(){
$this->reset();
$this->encodePayload();
}
/**
* Note for plugin developers: If you're adding your own packets, you should perform encoding in here.
*/
public function encodePayload(){
}
/**
* Performs handling for this packet. Usually you'll want an appropriately named method in the NetworkSession for this.