Dylan K. Taylor
860fa719b2
ItemTranslator: Accept dynamic BlockStateDictionary instead of using singleton
...
this will be needed for handling protocol updates in the future
2022-06-06 21:50:43 +01:00
Dylan K. Taylor
c89f7f8e5e
TypeConverter: duct tape for crafting recipe block inputs
2022-06-06 21:47:04 +01:00
Dylan K. Taylor
13bb1c26fb
ItemTranslator now operates directly using Item, rather than using item ID/meta + ItemFactory
...
in almost all cases where ItemTranslator is used, an Item already exists, so it doesn't make any sense to make ItemTranslator go and create another item instance just to pass to ItemSerializer.
2022-06-06 20:51:26 +01:00
Dylan K. Taylor
08fbf92d8d
Filter out recipes containing unknown items
2022-06-06 18:25:14 +01:00
Dylan K. Taylor
dab7686656
Merge branch 'next-major' into modern-world-support
2022-06-04 18:43:11 +01:00
Dylan K. Taylor
083a35f970
Modernize property type declarations
2022-06-04 18:16:32 +01:00
Dylan K. Taylor
ef15dc883a
Merge branch 'next-major' into modern-world-support
2022-06-01 15:34:26 +01:00
Dylan K. Taylor
3fcf6372e0
Merge branch 'stable' into next-minor
2022-06-01 15:32:37 +01:00
Dylan K. Taylor
bf199d3a74
duct tape for recipes
2022-05-27 20:40:32 +01:00
Dylan K. Taylor
2b27b8a230
fixed fucky wucky
2022-05-24 21:52:10 +01:00
Dylan K. Taylor
383be5426e
Rewrite network item serialization to use ItemSerializer
2022-05-24 21:44:57 +01:00
Dylan K. Taylor
227f28a6d2
Use VanillaItems::AIR() instead of ItemFactory
2022-05-24 15:47:27 +01:00
Dylan K. Taylor
03c505aaa7
Merge branch 'next-major' into modern-world-support
2022-05-22 16:21:48 +01:00
Dylan K. Taylor
179cac45f5
Merge branch 'stable' into next-minor
2022-05-22 16:21:05 +01:00
Dylan K. Taylor
fcb2ccab99
NetworkSession: Sync all attributes on respawn
2022-05-21 16:22:35 +01:00
Dylan K. Taylor
f67104c81e
Merge branch 'next-major' into modern-world-support
2022-05-20 17:50:38 +01:00
Dylan K. Taylor
86efa0aae6
Merge remote-tracking branch 'origin/stable' into next-minor
2022-05-20 17:49:04 +01:00
Dylan K. Taylor
554f96bc24
InventoryManager: Defer opening new windows to the client until the window close handshake has been completed
...
fixes #5021 and probably a bunch of other inventory related glitches
When the server initiates a window close, it does so by sending a ContainerClose to the client, which causes the
client to behave as if it initiated the close itself. It responds by sending a ContainerClose back to the server,
which the server is then expected to respond to.
Sending the client a new window before sending this final response creates buggy behaviour on the client, which
is problematic when switching windows. Therefore, we defer sending any new windows until after the client
responds to our window close instruction, so that we can complete the window handshake correctly.
This is a pile of complicated garbage that only exists because Mojang overengineered the process of opening and
closing inventory windows.
2022-05-20 16:54:15 +01:00
Dylan K. Taylor
68491be847
Merge branch 'next-major' into modern-world-support
2022-05-20 11:21:35 +01:00
Dylan K. Taylor
df3a69dcb7
Modernize private property declarations in Threaded classes
...
I previously avoided this due to being unsure of the effects; however, it's clear that we already use typed properties on Threaded things in other places anyway, and the only known issues are with uninit properties, and arrays.
2022-05-17 22:42:18 +01:00
Dylan K. Taylor
d4b7f66e15
Promote some constructors
2022-05-17 22:34:58 +01:00
Dylan K. Taylor
c0b15de504
Modernize private static property declarations
2022-05-17 21:55:16 +01:00
Dylan K. Taylor
6eac2ea7a5
Modernize private property declarations in src/network
2022-05-17 21:22:33 +01:00
ipad54
1e59679ec2
Implemented Stonecutter ( #4732 )
2022-05-17 16:01:03 +01:00
Dylan K. Taylor
1a598bdfd8
RuntimeBlockMapping: make constructor more useful
...
this allows providing more customisable data sources.
2022-05-12 21:20:28 +01:00
Dylan K. Taylor
937bb4c6ce
Merge branch 'stable' into next-minor
2022-04-28 21:00:23 +01:00
Dylan K. Taylor
37f0ccdb7e
fix CS
2022-04-20 14:58:57 +01:00
Dylan K. Taylor
e383f6d8f8
Merge branch 'next-major' into modern-world-support
2022-04-20 14:29:22 +01:00
Dylan K. Taylor
6dbfdd970f
Merge branch 'stable' into next-minor
2022-04-20 14:23:51 +01:00
Dylan K. Taylor
6b4687a36b
RuntimeBlockMapping: unseal constructor to facilitate easier testing of new versions
2022-04-20 14:00:20 +01:00
Dylan K. Taylor
c085bf0db4
Changes for 1.18.30
2022-04-20 13:59:50 +01:00
Dylan K. Taylor
be863015bf
Merge branch 'next-major' into modern-world-support
2022-04-19 15:32:44 +01:00
Dylan K. Taylor
ded7e24f67
Merge branch 'stable' into next-minor
2022-04-19 15:27:55 +01:00
Dylan K. Taylor
4c9d2a989e
cs again
2022-04-17 19:32:30 +01:00
Dylan K. Taylor
022db5cbe3
NetworkSession: compare usernames case-insensitively
...
the current data management system uses case-insensitive names, so we can't allow different players with the same name in different cases to join, or we will have duplication exploits.
This typically only applies to offline servers, since Xbox Live doesn't permit reuse of a username, same case or otherwise.
closes #4965
2022-04-17 19:28:10 +01:00
Dylan K. Taylor
63b2e7cc4f
fix CS
2022-04-15 19:25:39 +01:00
Dylan K. Taylor
eafbc3a468
Expand height range to include -64 to 320
2022-04-15 19:10:24 +01:00
Dylan K. Taylor
c1c3475e5a
RuntimeBlockMapping: reuse the state ID for unknown blocks
...
this doesn't really provide any meaningful benefit, unless there are a very large number of unrecognized states
2022-04-15 19:06:56 +01:00
Dylan K. Taylor
e388cb1643
Merge branch 'stable' into next-minor
2022-04-10 21:23:04 +01:00
Rush2929
741182c55f
InGamePacketHandler: skip processing movement if the player's position
...
was changed during processing other properties (#4913 )
fixes #4952
2022-04-10 21:02:45 +01:00
Dylan K. Taylor
ea677154cb
InGamePacketHandler: rely exclusively on prediction mismatch checking to re-sync slots during bad transactions
...
fixes #4894
closes #4926
relying on the core code to guess which slots should be synced is unreliable at best.
2022-04-04 21:58:19 +01:00
Dylan K. Taylor
ed95679953
Merge branch 'next-minor' into modern-world-support
2022-03-23 13:42:46 +00:00
Dylan K. Taylor
a9f2766a8b
Merge branch 'stable' into next-minor
2022-03-23 13:39:41 +00:00
Dylan K. Taylor
4e777572c9
fix CS
2022-03-23 13:28:21 +00:00
Dylan K. Taylor
90a8595a40
Check for mismatched inventory slot predictions in transactions
...
this should limit the problems caused by mismatched gameplay features that result in ghost items, such as #4896 .
2022-03-22 17:42:19 +00:00
Dylan K. Taylor
ab93135b84
Merge branch 'stable' into next-minor
2022-03-22 15:49:58 +00:00
Dylan K. Taylor
c8e1cfcbee
TypeConverter: account for possible out-of-range meta in items
2022-03-18 19:34:51 +00:00
IvanCraft623
90a369f0b6
Humans can now do emotes ( #4610 )
...
added the following API methods:
- Human::emote()
2022-03-03 18:19:30 +00:00
Dylan K. Taylor
3232a83965
InventoryManager: beware possible crash due to invalid items
2022-02-22 16:50:36 +00:00
Dylan K. Taylor
4f25ab10e9
InventoryManager: Do not sync slots the client correctly predicted during using items
...
closes #4825
2022-02-22 16:46:23 +00:00