963 Commits

Author SHA1 Message Date
Dylan K. Taylor
6daa0135d5 Cancel PlayerInteractEvent automatically on left-click block when spawn protection is triggered 2017-10-24 13:11:19 +01:00
Dylan K. Taylor
0df3b00de4 Fixed incompatible protocol message showing an empty pair of brackets when protocol is null
this happens if an exception occurs while or before trying to read the protocol version
2017-10-23 19:44:19 +01:00
Dylan K. Taylor
3765511317 rename WritableBook->swapPage() to swapPages() 2017-10-23 17:55:01 +01:00
Frago9876543210
e055ce9526 Use translation for flight kick message (#1489) 2017-10-23 13:18:57 +01:00
Dylan K. Taylor
18e4e5364f Fixed getBlock() performance degradation caused by 781de3efabcd526281fd1adc8ce881d408471563, added Level->getBlockAt() to avoid creating vectors everywhere 2017-10-20 13:22:49 +01:00
Dylan K. Taylor
a245615531 fixed non-living entities lingering for a second after being kill()ed
only living entities should have death animation time
2017-10-19 20:51:50 +01:00
Dylan K. Taylor
11cc20972f extended death animation time 2017-10-19 13:39:51 +01:00
Dylan K. Taylor
584810780a Moved projectile-related classes to their own namespace 2017-10-19 12:27:44 +01:00
Dylan K. Taylor
ece37d1e19 Added more methods to PlayerIllegalMoveEvent 2017-10-17 16:14:41 +01:00
Takuya Sawada
cccaade00c make Player#unloadChunk() method protected 2017-10-17 14:22:57 +01:00
Dylan K. Taylor
d8c90be5b8 Make on-ground checking less fussy 2017-10-13 13:19:20 +01:00
Dylan K. Taylor
7b5df10b6a Reset position properly when reverting movement 2017-10-12 20:33:26 +01:00
Dylan K. Taylor
be2d134994 Added API to allow flagging an entity not to be saved to disk when its chunk is saved (#1452) 2017-10-11 16:09:08 +01:00
Dylan K. Taylor
287f08cbd1 Changed confusing MovePlayerPacket field name to be consistent with other packets 2017-10-10 21:56:17 +01:00
Dylan K. Taylor
9598b8cee4 Use API methods instead of directly setting properties 2017-10-09 11:38:52 +01:00
Dylan K. Taylor
2601e35990 Cleaned up and added API for entity air supply, fixed oxygen being used in creative/spectator
this commit also includes respiration checks because it's cherry-picked
from api3/blocks, but respiration won't work until it's registered.
2017-10-09 11:28:40 +01:00
Dylan K. Taylor
bdfd9c95dd Minor cleanup to attack handler 2017-10-09 11:02:00 +01:00
Dylan K. Taylor
cd44551d64 Cleaned up checks for handling inventory transactions 2017-10-09 10:57:28 +01:00
Dylan K. Taylor
66a3354b31 Fixed not respawning adjacent tiles correctly when cancelling block break events 2017-10-09 10:30:48 +01:00
Dylan K. Taylor
ac7384a2b4 Re-organise some Player methods
- group spawn-related methods
- group achievement-related methods
- move isSleeping()
- group name-related methods
- move Player->sendAllInventories()
- move Player->jump()
2017-10-09 10:25:33 +01:00
Dylan K. Taylor
748beaaaa7 Changed a couple of very misleading default values
why on earth did I do this
2017-10-09 09:55:18 +01:00
Dylan K. Taylor
58788b4bc7 Removed some unnecessary stuff PhpStorm complained about 2017-10-09 09:46:21 +01:00
Dylan K. Taylor
ae76ac82c8 Removed unnecessary delegate packet handlers
let's keep all the TODOs in one place
2017-10-09 09:44:22 +01:00
Dylan K. Taylor
e4000f8f03 Reorganise some packet methods in Player 2017-10-09 09:35:31 +01:00
Dylan K. Taylor
ebcce43131 Don't hold player references for hiddenPlayers
they aren't needed, and this is just one more thing that could go wrong in Player->close() that could lead to leaks.
2017-10-09 09:20:44 +01:00
Dylan K. Taylor
1a88f59b23 Moved some stuff from join to login
this is how it should be
2017-10-08 19:38:03 +01:00
Dylan K. Taylor
fdfe70b9f2 Removed entity metadata setting from LoginPacket handler
why the f was this here
2017-10-08 19:10:49 +01:00
Dylan K. Taylor
3bda1473e7 Removed outdated documentation for Player->getClientId() 2017-10-08 18:47:13 +01:00
Dylan K. Taylor
29cd071108 Added some documentation on player UUIDs 2017-10-08 18:40:27 +01:00
Dylan K. Taylor
1810088acf Use Player->isCreative() 2017-10-08 18:17:12 +01:00
Dylan K. Taylor
51e4a62e7b Use setUsingItem() instead of directly setting data flags 2017-10-08 18:03:19 +01:00
Dylan K. Taylor
aa91183504 Added Durable class, fixed some tools not breaking correctly, removed some boilerplate code 2017-10-08 15:54:31 +01:00
Matt
5b9515b20f Peaceful difficulty allows PvP 2017-10-08 13:57:25 +02:00
Sandertv
81dee2f9fc Adding writable and written books. (#1397)
* Adding writable and written books.
* Added a PlayerEditBookEvent.
* Changed BookEditPacket field names.
2017-10-08 11:49:57 +01:00
Dylan K. Taylor
628ff9449e Fixed respawn fall damage when dying while falling from causes other than fall damage
tl;dr: fall distance didn't get reset
2017-10-05 16:47:50 -04:00
Dylan K. Taylor
fc9c264e77 Resend blocks around targeted blocks when interactions & block-break are cancelled, fixes #906
this solution is dumber but more effective (also solves the beds & doors placement problem)
2017-10-03 19:28:01 +01:00
Dylan K. Taylor
9bbebaa071 Force-close the inventory window when crafting fails to avoid desync issues
mojang, why does this have to be hard work
2017-10-03 11:04:21 +01:00
Dylan K. Taylor
76117e7fa0 Get XUID from LoginPacket after authentication, add Player->getXuid() 2017-10-02 18:51:51 +01:00
Dylan K. Taylor
b54f256fea Added a hack to cut down on excess skin geometry bloat
there are further ways this can be debloated, but non-pretty-printing it cuts the size down by ~70-80%.
2017-10-01 16:50:16 +01:00
Dylan K. Taylor
ab5bbaa7bd Remove redundant property from Player 2017-10-01 12:19:11 +01:00
Dylan K. Taylor
e6cecabf3f New skin API, add support for custom capes & custom geometry (#1416)
* Added support for changing skins ingame, custom capes & geometry
* Use PlayerSkinPacket for setting Human skin instead of PlayerList hack
2017-09-29 14:09:00 +01:00
Dylan K. Taylor
c273a46537 Ditch crafting transaction if we get normal inventory action with incomplete crafting transaction 2017-09-28 20:07:07 +01:00
Dylan K. Taylor
9bc8d8db79 Revert "Add buffering for non-immediate priority packets to reduce compression overhead"
This reverts commit 2162675b6400807cf650f6fc7ad236c52fa99c01.

This broke Human skins... it seems MCPE doesn't like you adding and
removing a player from the list in the same batch.
2017-09-28 14:29:17 +01:00
Dylan K. Taylor
d0bf0ff083 Imports cleanup 2017-09-28 10:51:05 +01:00
Dylan K. Taylor
2162675b64 Add buffering for non-immediate priority packets to reduce compression overhead 2017-09-27 14:06:42 +01:00
Dylan K. Taylor
8f63117dac Use try...finally in Player->sendDataPacket() so we don't forget to stop timings 2017-09-27 13:52:25 +01:00
Dylan K. Taylor
992c4ce6a0 Added API method Block->getVariant() 2017-09-26 19:35:04 +01:00
Dylan K. Taylor
13d50aff62 don't break bows, stupid 2017-09-26 12:20:40 +01:00
Dylan K. Taylor
5b191327bc Fixed players' arms staying stuck up after eating something 2017-09-26 12:14:10 +01:00
Dylan K. Taylor
38fad4b963 Implement difficulty per-world (#878)
* Moved Server::getDifficultyFromString() to Level
* Added ability to set difficulty in worlds section of pocketmine.yml for generation
2017-09-26 11:16:51 +01:00