12336 Commits

Author SHA1 Message Date
Dylan K. Taylor
ecf6de3430
WorldManager: Pre-generate a radius of 8 chunks
3 is absurdly small. 8 is a more realistic estimation of what the average player's render distance will be (it's also the default server.properties limit).
3 doesn't even fill the default spawn-radius setting, meaning that delays during player connection would occur anyway due to generation.
2021-04-13 22:15:47 +01:00
Dylan K. Taylor
0f3147f49b
WorldManager: Log progress of spawn terrain generation 2021-04-13 21:28:17 +01:00
Dylan K. Taylor
c90ca37ea3
Fix CS 2021-04-13 21:10:18 +01:00
Dylan K. Taylor
ab176264b4
... 2021-04-13 21:06:37 +01:00
Dylan K. Taylor
9c1b274499
WorldManager::createWorld() now accepts WorldCreationOptions instead of mixed[] 2021-04-13 21:03:25 +01:00
Dylan K. Taylor
6ce15854af
Clean up generator preset handling 2021-04-13 20:19:53 +01:00
TheShermanTanker
547503e8f4
Normal: Fixed bug that never lets mountainous terrain generate (#4170) 2021-04-13 17:56:57 +01:00
Dylan K. Taylor
666670bc6f
PermissionAttachment may now reference zero or more permissibles
this makes PermissionAttachment more and more like Permission, except that it doesn't have a name.
Right now, the only value of this API change is that it allows breaking references to dead Permissibles, but in the future it should be possible to reuse a single PermissionAttachment on multiple Permissibles.
2021-04-12 15:57:24 +01:00
Dylan K. Taylor
e720c001a9
ConsoleCommandSender: ensure that PermissibleBase doesn't leak
if recalculatePermissions() was called, the PermissionManager will reference it, preventing it from being GC'd.
2021-04-11 17:21:29 +01:00
Dylan K. Taylor
66622defae
PacketSerializer: fix merge error 2021-04-11 16:49:57 +01:00
Dylan K. Taylor
74d103a56f
Merge remote-tracking branch 'origin/stable' 2021-04-11 16:36:39 +01:00
Dylan K. Taylor
6c351357ab
NetworkBinaryStream: bail if finding unexpected trailing data on item extradata
this may help to discover additional bugs and/or missing data on items that we don't know about yet.
2021-04-11 16:02:41 +01:00
Dylan K. Taylor
0312b62c8a
DataPacket no longer keeps its own serializer
since a while ago, we're anyway just discarding the internal buffer anyway when the packet is repeatedly encoded, so this doesn't serve any advantage anymore.
We do need a system to be able to reuse encoded packet buffers, but right now we're not reusing them anyway.
2021-04-09 15:37:58 +01:00
Dylan K. Taylor
19f536d68a
... 2021-04-07 21:54:21 +01:00
Dylan K. Taylor
1e6d97a157
Merge branch 'stable' 2021-04-07 21:25:39 +01:00
Dylan K. Taylor
7578bca006
Merge tag '3.18.2' 2021-04-07 19:41:57 +01:00
Dylan K. Taylor
3433406cff
3.19.1 is next 2021-04-07 19:03:36 +01:00
Dylan K. Taylor
b307cd0aa1
Release 3.19.0 2021-04-07 19:03:36 +01:00
Dylan K. Taylor
c9b83d7276
Protocol changes for 1.16.220 2021-04-07 18:59:01 +01:00
Dylan K. Taylor
e22b6ff566
Revert "Revert "Backport InventoryTransactionPacket impl from PM4""
This reverts commit c7cdaeae8569c766df7db9f889c67f4e65a38d15.
2021-04-07 18:42:07 +01:00
Dylan K. Taylor
af88f49a21
3.18.3 is next 2021-04-07 18:32:14 +01:00
Dylan K. Taylor
599d5253db
Release 3.18.2 2021-04-07 18:32:10 +01:00
Dylan K. Taylor
54cb5ee0fa
ItemTranslator: ensure that the correct meta value is returned after translation
-1 is a PM-specific thing. Right now there is a hack in the NetworkBinaryStream which prevents this from becoming a problem, but that might not be the case in future.
2021-04-07 13:10:29 +01:00
Ali
a45a4a91ae
Call InventoryCloseEvent in Player::removeWindow() (#4142)
closes #4130
2021-04-04 01:07:58 +01:00
Dylan K. Taylor
1898d4b42c
Fixed corner case with player spawning in ungenerated terrain
we can't get the safe spawn location of a set of coordinates if the coordinates are in an ungenerated chunk. This can happen if doing /setworldspawn <somewhere ungenerated> and then having a new player join the server.
2021-04-03 22:20:19 +01:00
Dylan K. Taylor
125837324f
Player: don't dump cursor contents on mouseover interaction
this can fire while the player has the inventory window open, because it also gets sent when the player swaps their held itemstack for something new.

We already had a special-case for mouseover with entity ID 0, but since
this isn't just a zero problem, a more general fix suits better
(particularly since we might need to handle the 0 case anyway).

closes #4140
closes #4141
2021-04-02 21:35:38 +01:00
Ali
609dff1aae
Player: Revert invalid attempts to toggle flight, instead of kicking (#4139)
If allowFlight was toggled by the server (e.g. due to gamemode change), a race could occur due to network latency where the client could try to enable flight, and then get kicked for cheating.

Since this can happen in legitimate, non-cheating cases, we can't make any assumptions about whether a player is cheating, so instead we just revert it, like we do with every other bad input.
2021-04-01 17:57:26 +01:00
Dylan K. Taylor
cd71fec53d
fucking phpstorm 2020.3 and its broken autocomplete 2021-03-31 21:41:50 +01:00
Dylan K. Taylor
5e8078f3dd
PacketSerializer: Improved performance of item serialize/deserialize 2021-03-31 21:39:55 +01:00
Dylan K. Taylor
b7a6c9dc17
Renamed BadPacketException -> PacketHandlingException
this better describes the intent, instead of just vaguely describing a packet as 'bad'.
2021-03-30 01:15:28 +01:00
Dylan K. Taylor
b03212053c
3.18.2 is next 2021-03-28 21:24:07 +01:00
Dylan K. Taylor
fd4ac885bb
Release 3.18.1 2021-03-28 21:24:03 +01:00
Dylan K. Taylor
25998720ce
Fixed server crash on invalid gamemode in SetPlayerGameTypePacket
this really ought to be detected at the decode layer, but right now that's a bit difficult ...
2021-03-28 21:11:07 +01:00
Dylan K. Taylor
b032d49722
Merge branch 'stable' 2021-03-28 19:41:23 +01:00
Dylan K. Taylor
34c2b62ffe
Remove unused import 2021-03-28 19:12:18 +01:00
Dylan K. Taylor
e42a691da9
Strip trailing whitespace 2021-03-28 19:02:51 +01:00
Ali
3b3fb5e662
fix ItemFrames (#4101)
removing items from item frames was broken due to behavioural changes in 1.16.210.
2021-03-28 18:53:46 +01:00
Dylan K. Taylor
7139eccfbe
Merge branch 'stable' 2021-03-28 18:11:53 +01:00
Dylan K. Taylor
4abf4aecad
MainLogger: fixed potential deadlock during syncFlushBuffer()
the notify() to flush the buffer might arrive in between the writeLogStream() and synchronized() calls in the thread body, resulting in a deadlock if the logger thread managed to call wait() before the main thread did.
2021-03-28 18:10:23 +01:00
Dylan K. Taylor
d5549b72de
... 2021-03-27 00:08:23 +00:00
Dylan K. Taylor
9137666952
Fixed build 2021-03-26 22:57:21 +00:00
Dylan K. Taylor
06f20234f7
Scrub unused imports 2021-03-26 22:56:09 +00:00
Dylan K. Taylor
adbc58f326
TickingChunkLoader: use native return types 2021-03-26 22:55:48 +00:00
Dylan K. Taylor
cdeedbad8b
Player: extract some entity spawning logic into a separate function 2021-03-26 22:51:56 +00:00
Dylan K. Taylor
de49a361c0
NetworkSession: Remove parameters from startUsingChunk() callback
these can easily be use()d into the closure (which also has slightly better performance, because no type checks - not that anyone will notice).
2021-03-26 22:45:36 +00:00
Dylan K. Taylor
49cf009017
Remove unused variable 2021-03-26 22:43:21 +00:00
Dylan K. Taylor
a223d1cbf3
NetworkSession: allow Player to handle its own business in chunk sending
these checks should appear consistently in all of these async callbacks.
2021-03-26 22:00:42 +00:00
Dylan T
f047ecfd2d
Fixed player spawning in ungenerated terrain (#4087)
fixes #4044
fixes #2724

this is significantly more complex than I hoped for, but it's a start... and it works.
2021-03-26 21:36:27 +00:00
Dylan K. Taylor
64886707b2
SubChunkExplorer: avoid repeated shift-right instructions 2021-03-25 23:36:10 +00:00
Dylan K. Taylor
5e9ce92b55
Explosion: don't depend on air having stateID 0 2021-03-25 23:17:33 +00:00