summaryrefslogtreecommitdiffstats
path: root/src/Protocol/Protocol_1_8.h (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Introduce recipe book functionality (#4493)Tobias Wilken2020-07-141-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Introduce recipe book functionality The recipe book helps especially new players. Missing it gives the impression that cuberite is not as advanced as it is. The handling of the recipe book uses the following functions: - Unlock Recipes (https://wiki.vg/index.php?title=Protocol&oldid=14204#Unlock_Recipes) to make recipes available and show the notification for new recipes. Initialization is done on player login for known ones, the update is done when new items are discovered. - Craft Recipe Request (https://wiki.vg/index.php?title=Protocol&oldid=14204#Craft_Recipe_Request) when the user selects a recipe from the recipe book to fill the slots. Known recipes are initialized on player login via `Unlock Recipes` with `Action` 0. As soon as a new recipe is discovered this is added via `Unlock Recipes` with `Action` 1. To be able to know and recognize new recipes the player class is extended with `KnownItems` and `KnownRecipes`. As soon as a player touches an item this is compared to the list of `KnownItems`, if the item is unknown the recipes are checked for this item and the other ingredients are checked with the list of `KnownItems`. If a full match is discovered the recipe is unlocked with the client and stored in the `KnownRecipes`. To unlock recipes the recipe ID is sent to the client. A mapping file (for protocol 1.12.2) translated the minecraft recipe names to ids. The crafting.txt is extended with and minecraft recipe names is possible. Limitations: Only a single recipe is added to the crafting area. Multiple clicks or shift click does not increase the number of builds. Co-authored-by: peterbell10 <peterbell10@live.co.uk> * Address first issues mentioned by @peterbell10 - Some linting - Extract loading of recipe specific protocol mapping into a function - Build `RecipeNameMap` only once - Use `std::optional` - Extract `LoadRecipe` from `Window` * Start to implement new suggestions * Update with suggestions from @peterbell10 * Some minor cleanup * Update protocol packet IDs * Remove unused include * Include header in cmake * Change a vector to integer counter * Change dromedaryCase method names to PascalCase * Address suggestions from @madmaxoft * Read Protocol subdirectories to load recipe books To load all recipebooks iterate over the `Protocol` subdirectories to find mapping files. Co-authored-by: peterbell10 <peterbell10@live.co.uk>
* Improve entity position updates (#4701)Tiger Wang2020-05-041-8/+11
| | | | | | | | | * Make puking pickups fly nicer * Improve entity position updates * Move determination of whether a delta is too big for a packet into the protocol handlers + Less jittery movement + Generalise CollectEntity to take any entity
* Unify entity spawn packet sendingTiger Wang2020-05-011-8/+11
|
* Unify 1.8 and 1.9Tiger Wang2020-04-221-43/+41
| | | | - Deleted ridiculous amount of duplicated code
* Delet SpawnObject paramsTiger Wang2020-04-201-1/+1
| | | | | | * Fix #4679 awkward...
* Using Super.Mattes D2020-04-161-2/+2
|
* Initial resource pack support (#4622)Mat2020-04-071-0/+2
|
* Add protocol mob ID remapping (#4538)Mat2020-03-291-0/+4
|
* Protocol: Use logical outgoing packet types.Mattes D2019-09-101-5/+1
|
* Force all headers other than "Globals.h" to be included with relative paths (#4269)peterbell102018-08-291-15/+2
| | | | | | | Closes #4236 CMake now creates a header file in the build directory under the path "include/Globals.h" which just includes "src/Globals.h" with an absolute path. Then instead of adding "src/" to the include directories, it adds "include/". #include "Globals.h" still works by including the build generated file and any other src-relative path will not work.
* Store and pass entity effect duration as an int not a short. (#4293)Alexander Harkness2018-08-261-4/+1
| | | Fixes #4292.
* recover hotbar selected slot after reconnect (#4249)changyong guo2018-07-231-0/+1
| | | | | | | 1. implement protocol message SendHeldItemChange 2. add save / load inventory equipped item slot in JSON 3. send held item slot message after player connect to server Fixes #4189
* Added assert to cProtocolRecognizer::GetPacketId. (#4001)Lane Kolbly2017-09-041-3/+7
|
* GetPacketID for protocol packet IDs (#3977)Lane Kolbly2017-09-021-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | * Added GetPacketId method to protocol, implemented for all protocols. * Moved GetPacketID methods into a single file, alpha-sorted. * Fixed 1.12.1 HandlePacket switch statement. * Added SendLogin to the GetPacketId framework. * Added SpawnObject to GetPacketId framework. * Added missing sendEntityEquipment packet ID update for 1.12.1 * Added LeashEntity packet ID change to 1.12.1 * Alphabetized packet enum, added SpawnGlobalEntity to GetPacketId framework * Fixed clang errors * Indented cases, expanded comment for GetPacketId * Changed dyslexic comment.
* Update mbedtls to 2.5.1 (#3964)peterbell102017-08-301-2/+2
| | | | | | | | | | | | | | | | | | | | | | * Renaming changes: * macro prefix "POLARSSL" -> "MBEDTLS" * functions now prefixed with "mbedtls_" * rename PolarSSL++ -> mbedTLS++ * rename polarssl submodule * Use mbedtls' AES-CFB8 implementation. * Add cSslConfig to wrap mbedtls_ssl_config * Update cTCPLink and cBlockingSslClientSocket to use cSslConfig * Use cSslConfig in cHTTPServer * Use cSslConfig for cMojangAPI::SecureRequest * CI Fixes * Set -fomit-frame-pointer on the right target
* Fully implemented leashes (#3798)Pablo Beltrán2017-08-211-0/+2
|
* Removed unused forward declarations (#3888)Lukas Pioch2017-08-031-10/+0
|
* Initial support for the 1.11 protocol.Mattes D2016-12-161-0/+267