994 Commits

Author SHA1 Message Date
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
Dylan K. Taylor
e64076ec81 Disconnect 1.1 clients properly (HACK!) 2017-09-26 10:01:32 +01:00
Dylan K. Taylor
6e5759b1d1 Made incompatible client disconnect messages more informative 2017-09-25 14:30:11 +01:00
Dylan K. Taylor
03d3e595d6 Implement JWT signature verification and Xbox Live checks, close #315
This can be enabled or disabled using the "online-mode" directive in
server.properties.

NOTE: For safety reasons it is enabled by default, since many naive server owners currently believe that authentication is not needed because "the client is forced to sign-in".
Newsflash for readers: the forced authentication is easily bypassed using a LAN proxy.

Un-authenticated LAN connections will still work fine if the online mode is disabled.

Added the following API methods:
- Server->getOnlineMode() : bool
- Server->requiresAuthentication() : bool
- Player->isAuthenticated() : bool

JWT verification is rather expensive, so it is done in an AsyncTask. Make sure you don't hog your worker threads.
2017-09-25 12:30:58 +01:00
Dylan K. Taylor
3c02a6a8ed Fixed eating sounds 2017-09-24 21:18:08 +01:00
Dylan K. Taylor
240cc3043a Rewritten crafting, fixed #45 2017-09-24 14:14:24 +01:00
Dylan K. Taylor
178dd1b981 Fixed block picking, added PlayerBlockPickEvent 2017-09-23 14:42:28 +01:00
Dylan K. Taylor
826ec90856 Revert "Workaround for some plugins crashing clients during PlayerLoginEvent"
This reverts commit 087a994393be23f694c6d0585bcd3797a15bf50b.
2017-09-23 13:23:19 +01:00
Dylan K. Taylor
0523f26613 Send forced movement when getting bad movements after teleport, fixes AlwaysSpawn-type plugins
it's mostly harmless to send it here anyway
2017-09-23 12:49:46 +01:00
Dylan K. Taylor
d0a96f35da ./ hack is back (/help is client-side >_<) 2017-09-21 17:51:39 +01:00
Dylan K. Taylor
dbed80386a Removed redundant interface 2017-09-21 12:22:47 +01:00
Dylan K. Taylor
61cfdac6a1 Fixed a mistake in entity attack handler 2017-09-21 10:18:52 +01:00
Dylan K. Taylor
fd7fb10223 Return null on unmatched inventory action and log details 2017-09-20 18:38:14 +01:00
Dylan K. Taylor
55720d9f0a Added InventoryAction->onPreExecute(), fixed PlayerDropItemEvent deleting items 2017-09-20 12:19:42 +01:00
Dylan K. Taylor
f0755d1659 Fixed handling of recipes that require a crafting table 2017-09-20 09:43:49 +01:00
Dylan K. Taylor
8cae20e818 Removed hotbar slot linking (works like PC now) 2017-09-19 18:36:57 +01:00
Dylan K. Taylor
361b262d3a Merge branch 'master' into mcpe-1.2 2017-09-18 10:29:38 +01:00
Dylan K. Taylor
a99eee9def Removed redundant assignment 2017-09-17 20:01:11 +01:00
Dylan K. Taylor
0f37bc35ba Always evacuate the crafting grid on close, no matter whether it's big or not
otherwise items will get deleted and people will cry
2017-09-16 21:58:10 +01:00
Dylan K. Taylor
8dc3d019f6 Return handled on fake window close 2017-09-16 21:55:25 +01:00