12766 Commits

Author SHA1 Message Date
Dylan K. Taylor
ea33a04d00
Player: ensure that PlayerItemHeldEvent is called when the contents of the held slot changes
in PM3, this was done by implicitly relying on the client to send a MobEquipmentPacket selecting the same hotbar slot when the slot contents changes.
In PM4, we avoid relying on this, and fire the event directly when the listener detects a held slot change.
This ensures that the behaviour remains consistent regardless of what the client starts doing in the future.

closes #4905
2022-03-22 16:53:02 +00:00
Dylan K. Taylor
4a94cb85a2
fix CS 2022-03-22 15:44:11 +00:00
Dylan K. Taylor
b7e6854189
RegistryTrait: enforce name validation rules on everything, not just enums
fixes #4916
2022-03-22 15:41:17 +00:00
Dylan K. Taylor
2b8a54f8ff
Entity: added a guard to prevent __construct() from running multiple times
this typically happens due to flawed logic in child classes in plugins which causes parent::__construct() to get called multiple times.
2022-03-22 15:33:31 +00:00
PJZ9n
f4f5c3128f
EnumTrait: fixed regex not accepting member names with 1 character
this also fixes EnumTrait accepting invalid non-numeric characters for the first character, such as @.
2022-03-19 16:47:36 +00:00
Dylan K. Taylor
fdd42fd15f
4.2.5 is next 2022-03-18 20:20:47 +00:00
Dylan K. Taylor
05a5e5eac1
Release 4.2.4 2022-03-18 20:20:32 +00:00
Dylan K. Taylor
c8e1cfcbee
TypeConverter: account for possible out-of-range meta in items 2022-03-18 19:34:51 +00:00
Dylan K. Taylor
05fdd94754
fix CS 2022-03-12 00:57:32 +00:00
Dylan K. Taylor
05792826bc
EntityFactory: use import aliases to improve readability slightly 2022-03-09 23:39:45 +00:00
Dylan K. Taylor
fbf7ad4295
4.2.4 is next 2022-03-09 22:52:42 +00:00
Dylan K. Taylor
6c1c0c867e
Release 4.2.3 2022-03-09 22:52:38 +00:00
Dylan K. Taylor
5c0eb92d81
Entity: harden setRotation(), setMotion(), addMotion() and teleport() against NaN/INF values 2022-03-09 22:36:44 +00:00
Dylan K. Taylor
1e88412a8f
Entity: harden constructor against dodgy locations containing NaN/INF components 2022-03-09 22:31:24 +00:00
Dylan K. Taylor
f97ce6afef
Harden APIs which accept Vector3/Position/Location in event namespace 2022-03-09 22:22:37 +00:00
Dylan K. Taylor
879476d8e0
ItemFrame: added missing bounds check for setItemDropChance() 2022-03-09 22:20:04 +00:00
Dylan K. Taylor
6d584cf008
EntityDataHelper: prevent INF/NaN being loaded from disk to come back and break things after the fact 2022-03-09 22:16:07 +00:00
Dylan K. Taylor
8efa299c65
phpstan 1.4.8 2022-03-09 18:30:54 +00:00
Dylan K. Taylor
5ef73ca9aa
Entity: Remove outdated comment 2022-03-09 18:02:57 +00:00
Dylan K. Taylor
856fd2a33b
fix PHPStan failures 2022-03-09 17:26:05 +00:00
Dylan K. Taylor
581bbfe255
DiskResourceProvider: add @var for type that PHPStan can't infer 2022-03-09 17:18:40 +00:00
Dylan K. Taylor
b4e1edaa64
CommandSender: provide more detailed types for getScreenLineHeight() and setScreenLineHeight() 2022-03-09 17:17:51 +00:00
Dylan K. Taylor
025f6407e2
Fire: fixed sticking to transparent top-sides of blocks
closes #4879
closes #2819
2022-03-09 16:59:26 +00:00
IvanCraft623
10c0d83fa5
ShulkerBox: Allow opening unless the lid is obstructed by a solid block (#4885)
fixes #4884
2022-03-09 16:37:23 +00:00
Dylan K. Taylor
5d970cf5bd
Fire: do not overwrite blocks during burning unless they were unchanged by onIncinerate()
onIncinerate() by custom blocks might produce custom results which aren't supposed to be burned away (e.g. wood could turn into charred wood, or something of that nature).
closes #4764
2022-03-03 19:19:59 +00:00
Leo Lee
6a39caa204
Fixed mycelium spreading onto coarse dirt (#4816) 2022-03-03 19:02:13 +00:00
ipad54
91f81d4c8e
Sweet Berry Bush now absorbs fall damage (#4876) 2022-03-03 19:00:44 +00:00
Dylan K. Taylor
dfd8c4e4b8
TaskScheduler: throw an exception if attempting to heartbeat a disabled scheduler 2022-03-03 18:49:17 +00:00
Dylan K. Taylor
c9c50e16ec
PluginManager: fixed mishandling of self-disabling plugins in enablePlugins()
this caused a leak of the plugin context, PluginEnableEvent to be called with a disabled plugin, and the plugin's scheduler to get ticked.
2022-03-03 18:48:52 +00:00
Dylan K. Taylor
3e90c3072a
4.2.3 is next 2022-03-02 23:00:33 +00:00
Dylan K. Taylor
12946fbe46
Release 4.2.2 2022-03-02 23:00:29 +00:00
Rush2929
d47a7f48bd
BrewingStand: avoid duplicate method call (#4874) 2022-03-02 17:32:56 +00:00
EndermanbugZJFC
f181c60209
Fixed typo (occured => occurred) (#4873)
[ci skip]
2022-03-02 16:28:02 +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
c816bbdb6e
Remove unused import that php-cs-fixer doesn't see 2022-02-22 16:46:23 +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
Dylan K. Taylor
75d4c47384
LevelDB: fixed incorrectly writing always newest protocol version in world saves
this made it impossible to tell the difference between PM worlds and bedrock worlds modified post-1.12.
2022-02-20 21:08:31 +00:00
Dylan K. Taylor
bd4c2b5245
MemoryManager: scrub string keys for dumping
fixes crashes such as https://crash.pmmp.io/view/5986490
this also ensures that the order of elements is maintained when decoded by another software.
2022-02-20 20:54:03 +00:00
Dylan K. Taylor
d60dba2de0
DumpMemoryCommand: fixed memory dump dir 2022-02-20 20:39:53 +00:00
Dylan K. Taylor
51a3043dfd
PlayerInventory: fixed isHotbarSlot() returning bogus result for 9 2022-02-20 20:29:51 +00:00
Dylan K. Taylor
7098bcec8c
4.2.2 is next 2022-02-19 20:20:58 +00:00
Dylan K. Taylor
6d65512531
Release 4.2.1 2022-02-19 20:20:58 +00:00
Dylan K. Taylor
b26b1cd32f
Fixed swimming hitbox glitch
fixes #4815
relates to Sandertv/gophertunnel#88
2022-02-19 20:14:17 +00:00
Muqsit Rayyan
55dfacea8d
Item: Improve performance of nbtSerialize() (#4831)
Replace hasNamedTag() with $nbt->count() > 0
This avoids a duplicate indirect call to Item::serializeCompoundTag() method call when serializing items with namedtags.
2022-02-16 00:32:12 +00:00
Dylan K. Taylor
7e903fde5b
Fixed multiple players being able to sleep in the same bed 2022-02-10 00:57:43 +00:00
Dylan K. Taylor
4f44a067b0
4.2.1 is next 2022-02-08 20:14:19 +00:00
Dylan K. Taylor
44818e6d14
Release 4.2.0 2022-02-08 20:14:19 +00:00
Dylan K. Taylor
325131dd30
Protocol changes for 1.18.10 2022-02-08 20:08:15 +00:00
Dylan K. Taylor
1eb59fb9b5
4.1.1 is next 2022-02-07 19:22:54 +00:00
Dylan K. Taylor
1c60aa9769
Release 4.1.0 2022-02-07 19:22:53 +00:00