64 Commits

Author SHA1 Message Date
Dylan K. Taylor
2a0a2134d1
Server: Implemented an signal/sleep interrupt mechanism for ticking (#2171)
This allows other threads to notify the main thread to wake it up while it's sleeping between ticks, allowing reduction of processing latency.

Currently only RakLib and the CommandReader threads utilize this, but it's planned to extend it to more things in the near future.

CommandReader is now event-driven instead of poll-based - the server will not poll the CommandReader thread for messages each tick anymore.

RakLib utilizes this mechanism to get packets processed without delays to lower latency.

This now adds an extra dependency - `pocketmine/snooze` library contains the meat of the code used for this. See the Snooze repository for details.
2018-05-09 14:18:13 +01:00
Dylan K. Taylor
2c6205e3f3 Added new events for network interface handling, close #1232 (#1250)
Added 
- NetworkInterfaceRegisterEvent (cancellable)
- NetworkInterfaceUnregisterEvent
- NetworkInterfaceCrashEvent
2017-09-06 11:22:10 +01:00
Dylan K. Taylor
ae3a8a5493 Added capability to unblock addresses without a restart 2017-08-14 14:12:06 +01:00
Dylan K. Taylor
dbb92096e4 More typehints, documentation fixes and static analysis cleanup 2017-07-15 12:12:06 +01:00
Dylan K. Taylor
30df0c2418 Refactor a bunch of network-related things for easier auto-generation of protocol stuff 2017-07-12 16:32:39 +01:00
Dylan K. Taylor
ec079b68a6 Fixed missing packet registrations 2017-06-25 17:36:12 +01:00
Dylan K. Taylor
ecfcf49984 Added basic encode/decode for gamerules data and added GameRulesChangedPacket
needed it for tests

Squashed:

oops

PhpStorm you asshole
2017-06-25 15:43:08 +01:00
Dylan K. Taylor
51b0673b4b Bite the bullet and enable strict types on everything 2017-06-07 12:53:16 +01:00
Dylan K. Taylor
4cd97a7c7a Fixed UpdateAttributesPacket not being registered for reading 2017-06-05 14:14:50 +01:00
Dylan K. Taylor
69f64dd802 BossEventPacket
lots of stuff doesn't work (not implemented in MCPE, bug, or are we doing something wrong???)
2017-05-13 17:33:56 +01:00
Dylan K. Taylor
e47c7ea55f A bunch of really dirty hacks to get 1.1.0.0 working
Mojang: once again, what the hell have you done.
2017-04-01 19:18:15 +01:00
Dylan K. Taylor
bb79684480 Merge branch 'api3/network' into api3/network_mcpe-1.0.5 2017-03-25 21:31:48 +00:00
Dylan K. Taylor
6ba4a8fe5c Moved batch packet handling into BatchPacket->handle(), fixed data packet receive timings to include MCPE packet decode time 2017-03-20 10:26:53 +00:00
Dylan K. Taylor
36cda5de61 Merge branch 'api3/network' into api3/network_mcpe-1.0.5 2017-03-19 21:54:14 +00:00
Dylan K. Taylor
9c350dbe47 Fixed DataPacketReceiveEvent, fixed packet receive timings, gave Player->handleDataPacket() a new use 2017-03-19 21:50:09 +00:00
Dylan K. Taylor
6f1b12b021 Added new 1.0.5 packets 2017-03-11 19:58:32 +00:00
Dylan K. Taylor
08cd944e5d Merge branch 'master' into api3/network 2017-03-09 18:12:37 +00:00
Dylan K. Taylor
7b5e5832cb Added UpdateTradePacket 2017-03-09 17:55:25 +00:00
Dylan K. Taylor
adb7df212c Let the parent caller catch this so we get encapsulated packet hexdumps 2017-03-08 20:29:22 +00:00
Dylan K. Taylor
9e92a350e3 ClientboundMapItemDataPacket 2017-03-08 20:29:15 +00:00
Dylan K. Taylor
9b47aed0ab Added MapInfoRequestPacket 2017-03-08 20:29:13 +00:00
Dylan K. Taylor
55598ba703 Moaaaar resource packets 2017-03-08 20:29:13 +00:00
Dylan K. Taylor
e008a3cd5e Added handling for unknown packets 2017-03-08 20:29:03 +00:00
Dylan K. Taylor
d0faf3df91 Added S2C and C2S handshake packet classes and stub handlers
TODO: implement encryption

Add boilerplate reset() for C2S packet encode

This crap really needs fixing
2017-03-08 20:28:52 +00:00
Dylan K. Taylor
56990eb28b MCPE protocol gets its own namespace 2017-03-08 20:28:39 +00:00
Dylan K. Taylor
477cb77002 Exploded Player->handleDataPacket() into 70+ methods 2017-03-08 20:28:20 +00:00
Dylan K. Taylor
8bf3b6bbea Added ShowCreditsPacket 2017-03-02 11:04:51 +00:00
Dylan K. Taylor
eb13cec5d0 Added new packets 2017-03-02 11:04:51 +00:00
Dylan K. Taylor
38937fc4cc Added TransferPacket
TYSM MOJANG
2017-02-01 12:59:01 +00:00
Dylan K. Taylor
ad0553fbf8 Bump to API 3.0.0-ALPHA2 - READ DESCRIPTION!
Refactored level\format\generic\GenericChunk -> level\format\Chunk.
Re-added support for async chunk sending
Refactored most Level IO into new namespaces for more organisation
Removed LevelDB loader completely (will be re-added at a later date)
2017-01-06 17:13:45 +00:00
Dylan K. Taylor
598e7aac8f More PhpStorm inspections, import cleanup 2017-01-04 14:55:11 +00:00
Dylan K. Taylor
cc9736314e Protocol update for 1.0.0.1
Added PlayerFallPacket
2016-12-08 12:34:31 +00:00
Dylan K. Taylor
fb74d93e00 Protocol changes for 1.0.0.0 2016-12-02 13:20:52 +00:00
Dylan K. Taylor
b198f287db Add AvailableCommands and CommandStep packet shells 2016-10-27 10:55:03 +01:00
Dylan K. Taylor
b1df4728d3 BatchPacket payload checks, fix crashes when older versions try to join 2016-10-27 10:55:03 +01:00
Dylan K. Taylor
7cd7a7fbf6 Spawn working on new build. TODO: Resource packs. 2016-10-27 10:55:02 +01:00
Dylan K. Taylor
39ffc28f2a Auto-generated data for 0.15.90.8 (not functionalyet) 2016-10-27 10:55:01 +01:00
Dylan K. Taylor
86ed0f1397 Updated existing packets and added new ones 2016-10-27 10:55:01 +01:00
Dylan K. Taylor
dd0c5efb56 Initial spawn on 0.16 2016-10-27 10:55:00 +01:00
SOFe
58ff381557 PhpStorm automated formatting (#11)
* PhpStorm reformatting

* Tuned PhpStorm reformatting

* Improved ItemIds and BlockIds formatting

* Tuned more PhpStorm reformatting

* Improved string concatenation
2016-10-03 19:05:48 +08:00
SOF3
6fc435da0e
Imports rearrangement 2016-10-03 00:43:46 +08:00
Dylan K. Taylor
5f26c21b9f Remove unused RemovePlayerPacket 2016-10-01 21:39:05 +01:00
Dylan K. Taylor
5485b63e6e Added ChangeDimensionPacket 2016-09-30 19:19:58 +01:00
Intyre
ef8227a074
Bump version to 0.15.0.0 and protocol changes 2016-06-15 23:59:35 +02:00
Intyre
e11b76318c
fixing chunk sending 2016-02-27 16:35:38 +01:00
Intyre
bc3dca4736
Support for 0.14.0.1 2016-01-26 22:01:35 +01:00
Intyre
a2734f6dc0
Merged master into php7 to support 0.13.1 2016-01-22 17:36:45 +01:00
Intyre
c803dd8e69
skins fixed and added SetPlayerGameTypePacket 2015-11-26 00:47:58 +01:00
Intyre
2ea81710ad
Bump protocol and fixed packets for 0.13.0 2015-11-23 21:01:02 +01:00
Shoghi Cervantes
0bcf639a98 Changed how exceptions work and are logged, throw proper exceptions on tasks 2015-09-18 12:03:24 +02:00