mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-04-22 08:44:01 +00:00
Introduction This PR is a second attempt at improving movement processing to fix #1215 , #2730 and more. This is significantly less complex than the previous attempt #2646 -- it gets rid of the movement buffering system entirely and instead relies on a simple rate limit counter to restrict on-the-fly movement processing. Movement is rate limited to a max average of 2 per tick. It allows up to 5 seconds' backlog to accommodate network lag. The rate limit counter is increased by 2 per tick and decreased once for every movement processed. This prevents movement processing being abused for denial of service attacks. Changes API changes This PR, while obviously highly beneficial for most current users, poses some BC-breaking issues because of changes to the internal Player API. Player->processMovement() (protected) has been removed. This is a BC concern for custom player classes which overrode it and called it as a parent. In addition, child implementations won't be called every tick any more, which could break some custom movement processing systems. Player->newPosition (protected) has been removed. This internal field may have been accessed by custom movement implementations. Player->isTeleporting (protected) has been removed. BC concern is same as previous point. Player->getNextPosition() (public) has been @deprecated. Added the following protected Player class members: int $moveRateLimit ?Vector3 $forceMoveSync handleMovement() processMostRecentMovements() revertMovement() Behavioural changes Player movement is now subject to less rubberbanding and has more reliable behaviour.
A highly customisable, open source server software for Minecraft: Bedrock Edition written in PHP
Getting started
Discussion/Help
For developers
- Building and running from source
- Latest API documentation - Doxygen documentation generated from development
- DevTools - Development tools plugin for creating plugins
- ExamplePlugin - Example plugin demonstrating some basic API features
- Contributing Guidelines
Donate
- Bitcoin Cash (BCH):
qq3r46hn6ljnhnqnfwxt5pg3g447eq9jhvw5ddfear
- Bitcoin (BTC):
171u8K9e4FtU6j3e5sqNoxKUgEw9qWQdRV
- Stellar Lumens (XLM):
GAAC5WZ33HCTE3BFJFZJXONMEIBNHFLBXM2HJVAZHXXPYA3HP5XPPS7T
- Patreon
Licensing information
This project is licensed under LGPL-3.0. Please see the LICENSE file for details.
pmmp/PocketMine are not affiliated with Mojang. All brands and trademarks belong to their respective owners. PocketMine-MP is not a Mojang-approved software, nor is it associated with Mojang.
Description
Languages
PHP
99.9%