aboutsummaryrefslogtreecommitdiff
path: root/src/network/serverpackethandler.cpp
AgeCommit message (Collapse)Author
2021-10-31Fix number of tool uses being off by 1..32767 (#11110)Wuzzy
2021-10-25Fix item duplication if player dies during interact callback (alternative) ↵sfan5
(#11662)
2021-10-12Fix player HP desync between client and serversavilli
2021-09-09Dynamic_Add_Media v2 (#11550)sfan5
2021-08-28Remove redundant on_dieplayer callssavilli
2021-08-27Joystick sensitivity for player movement (#11262)NeroBurner
This commit deprecates the forward, backward, left, and right binary inputs currently used for player movement in the PlayerControl struct. In their place, it adds the movement_speed and movement_direction values, which represents the player movement is a polar coordinate system. movement_speed is a scalar from 0.0 to 1.0. movement_direction is an angle from 0 to +-Pi: FWD 0 _ LFT / \ RGT -Pi/2 | | +Pi/2 \_/ +-Pi BCK Boolean movement bits will still be set for server telegrams and Lua script invocations to provide full backward compatibility. When generating these values from an analog input, a direction is considered active when it is 22.5 degrees away from either orthogonal axis. Co-authored-by: Markus Koch <markus@notsyncing.net> Co-authored-by: sfan5 <sfan5@live.de>
2021-03-30Block & report player self-interaction (#11137)Lars Müller
2021-03-19Check for duplicate login in TOSERVER_INIT handler (#11017)Elias Fleckenstein
i.e. checks for duplicate logins before sending all media data to the client.
2021-03-07Protect dropping from far node inventoriesSmallJoker
Also changes if/if to switch/case
2021-03-07Protect per-player detached inventory actionsSmallJoker
2021-02-15Server-side authority for attached players (#10952)SmallJoker
The server must have authority about attachments. This commit ignores any player movement packets as long they're attached.
2021-02-02Encode high codepoints as surrogates to safely transport wchar_t over networksfan5
fixes #7643
2021-02-02Drop wide/narrow conversion functionssfan5
The only valid usecase for these is interfacing with OS APIs that want a locale/OS-specific multibyte encoding. But they weren't used for that anywhere, instead UTF-8 is pretty much assumed when it comes to that. Since these are only a potential source of bugs and do not fulfil their purpose at all, drop them entirely.
2021-02-02Server GotBlocks(): Lock clients to avoid multithreading issuesSmallJoker
2021-01-31Cache client IP in RemoteClient so it can always be retrieved (#10887)sfan5
specifically: after the peer has already disappeared
2020-12-24Fix some minor code issues all over the placesfan5
2020-11-12serverpackethandler: Minor log message fixessfan5
closes #10434
2020-11-09Fix object interaction distance not being checked (#10547)rubenwardy
2020-09-07Inventory: Protect Craft and Drop actions (#10353)SmallJoker
Change dangerous pointer to unique_ptr for automated deletion.
2020-09-04Prevent interacting with items out of the hotbar (#10359)Lejo
2020-09-01[2] Code cleanup in serverpackethandler (#9349)HybridDog
* Code cleanup in serverpackethandler * do not define p_under unless a node is pointed * use switch-case and reduce indentation
2020-08-29Prevent players accessing inventories of other players (#10341)Lars Müller
2020-08-15Allow binding dig, place actions to keys; remove LMB/RMB hardcodingANAND
Co-authored-by: Sam Caulfield <sam@samcaulfield.com>
2020-06-13Exposing the zoom key to Lua API (#9903)Lars Müller
Co-authored-by: Raul Ferriz <raul.ferriz@gmail.com>
2020-05-23Add on_authplayer callback and 'last_login' to on_joinplayer (#9574)sorcerykid
Replace on_auth_fail callback with more versatile on_authplayer Better clarify account login process in Lua API documentation Change initial timestamp for newly registered accounts to -1
2020-05-16Log protocol ver on mismatched client connect toosfan5
2020-05-07Server class code cleanups (#9769)Loïc Blot
* Server::overrideDayNightRatio doesn't require to return bool There is no sense to sending null player, the caller should send a valid object * Server::init: make private & cleanup This function is always called before start() and loads some variables which can be loaded in constructor directly. Make it private and call it directly in start * Split Server inventory responsibility to a dedicated object This splits permit to found various historical issues: * duplicate lookups on player connection * sending inventory to non related player when a player connects * non friendly lookups on detached inventories ownership This reduce the detached inventory complexity and also increased the lookup performance in a quite interesting way for servers with thousands of inventories.
2020-05-05Server: Improve some log messages (#9820)sfan5
2020-04-25Add server side translations capability (#9733)EvidenceB Kidscode
* Add server side translations capability
2020-04-18serverpackethandler: Reduce pkt->getPeerId() invocations and more (#9689)HybridDog
2020-04-11Move PlayerSAO to dedicated filesLoic Blot
2020-03-05Fixes around ServerActiveObject on_punch handlingsfan5
2019-11-10Call on_secondary_use when object is right-clickedsfan5
2019-09-23Fix broken buildsfan5
The variable name changed but this didn't cause merge conflicts, so it wasn't caught before.
2019-09-22Punchwear (improved) (#8959)sfan5
2019-09-21Wieldhand: Specify which ItemStack to use (#8961)SmallJoker
Makes 'get_wield_item' to return the "main" ItemStack
2019-09-19Remove incorrect MutexAutoLocksfan5
The line declared a variable "m_con" instead of locking m_con. getClient() doesn't need this anyway, so remove it.
2019-09-14Send ActiveObjects once right after Init2ANAND
2019-09-14Formspecs: Introduce formspec_version to modsSmallJoker
2019-09-09Send cumulated inventory changes only each step (#8856)SmallJoker
Applies to player and detached inventories
2019-08-24Inventory: Send dirty lists where appropriate (#8742)SmallJoker
This change reduces the amount of sent data towards clients. Inventory lists that are already known to the player are skipped, saving quite some data over time. Raises protocol version to 38 to ensure correct backwards-compatible code.
2019-08-10Merge pull request #8776 from osjc/FixGetNodeJozef Behran
Finish getNode cleanup
2019-08-07Client::Interact: Use InteractAction enum instead of numeric constantsANAND
This replaces the magic numbers used as interaction modes both client-side and server-side, primarily for the sake of ease-of-readability.
2019-08-07Unify wield item handling (#8677)SmallJoker
This moves the wield item functions to Player and the tool utils for range calculation Also 'local_inventory' was removed due to redundancy in Client
2019-06-09Damage: Play no damage sound when immortal (#8350)SmallJoker
Add isImmortal server-side for proper enable_damage handling Rework log messages
2019-03-07Optimize interaction distance checker (#8193)Jozef Behran
The "what" parameter is being passed by value, most likely by accident as the type is "const std::string". Convert it to a reference by adding the missing "&".
2019-02-10Consistent HP and damage types (#8167)SmallJoker
Remove deprecated HUDs and chat message handling. Remove unused m_damage variable (compat break). HP: s32 for setter/calculations, u16 for getter.
2019-01-06Fix various bugs (Anticheat, Lua helpers) (#8013)SmallJoker
* Fix various bugs (Anticheat, Lua helpers) Anticheat: Use camera position instead of player position for shoot line calculations Lua helpers: Increase 'i' to not overwrite earlier added table values * Remove lag compensation * * 1.5 for larger selection boxes
2018-12-04Send only changed node metadata to clients instead of whole mapblock (#5268)SmallJoker
Includes newer style changes and fixes by est31 Improve the block position de-serialization Add type NodeMetadataMap
2018-11-28Add Lua methods 'set_rotation()' and 'get_rotation()' (#7395)CoderForTheBetter
* Adds Lua methods 'set_rotation()' and 'get_rotation'. Also changed some method names to be more clear. Instead of an f32 being sent over network for yaw, now a v3f is sent for rotation on xyz axes. Perserved Lua method set_yaw/setyaw so that old mods still work, other wise to set yaw they would need to switch to set_rotation(0, yaw, 0).