14162 Commits

Author SHA1 Message Date
Dylan K. Taylor
fe982c697b
Durable: reset durability when overstacked items are broken
this is not really defined behaviour, but it makes more sense than the current behaviour, which makes the tool unbreakable unintentionally.

fixes #5378
2022-11-02 15:42:44 +00:00
Dylan K. Taylor
1572b31b8d
FormattedCommandAlias: do not fill empty strings for missing placeholder arguments
this is pretty much always going to cause unexpected behaviour, as most execute() implementations don't expect empty strings, and it can also pad the args with dummy entries, breaking argument count requirements (e.g. aliasing say  and using the alias with no arguments will confuse the target command).

Instead:
- Drop arguments that cannot be resolved (leave them unspecified)
- If they are at the end of the argument sequence, this is OK - it will behave the same as if some optional arguments weren't specified.
- If they are in the middle of the argument sequence, this will generate an error - this is preferable to having the target invoked with an empty string, which might cause unexpected behaviour.

fixes #5379
2022-11-02 15:02:29 +00:00
Dylan K. Taylor
fba4895a17
Merge branch 'next-minor' into next-major 2022-10-31 19:11:39 +00:00
Dylan K. Taylor
b6f6671a81
Merge branch 'stable' into next-minor 2022-10-31 15:34:24 +00:00
Dylan K. Taylor
6da467b142
Updated composer dependencies 2022-10-31 15:27:56 +00:00
jasonw_4331
44af519cd6
SpawnResponsePacketHandler: silence PlayerAuthInputPacket debug spam (#5368) 2022-10-30 19:24:26 +00:00
Eren A. Akyol
fb31e6085e
StatusCommand: fix condition order for TPS colour (#5366) 2022-10-26 23:26:55 +01:00
Dylan K. Taylor
e4548da173
4.10.1 is next 2022-10-26 01:19:08 +01:00
Dylan K. Taylor
0d5287bf0b
Release 4.10.0 2022-10-26 01:19:02 +01:00
Dylan K. Taylor
a9361b3f8b
Changes for 1.19.40 2022-10-25 23:11:41 +01:00
Dylan K. Taylor
9a0ead6deb
Validate paths in --data and --plugins
closes #2861
2022-10-21 14:28:22 +01:00
Dylan K. Taylor
d74824c8d5
Correctly use Command->getLabel() instead of Command->getName()
getName() essentially serves as an ID for the command for CommandExecutors. It has no other sane use case.

Since it's not unique (multiple commands with the same name may be registered, and the fallback alias will be used on conflict), it cannot be used for array indexing. It's also not correct to use it for any display purpose, since the command may not be able to be invoked by its 'name' if there was a conflict.

There is an open debate about what to do with getName() and the wider CommandExecutor ecosystem, but that's a topic for another discussion.

closes #5344
2022-10-18 19:34:12 +01:00
IvanCraft623
d1d5020c53
FallableTrait: add default implementation of tickFalling() to reduce Fallable pollution (#5350)
this is only used by concrete powder currently, so it doesn't make much sense to reimplement it in every implementor of Fallable.
2022-10-18 16:56:21 +01:00
Dylan K. Taylor
9f6c6b2b71
Merge branch 'next-minor' into next-major 2022-10-16 16:58:50 +01:00
Dylan K. Taylor
bd01a919e5
Move command timings to Timings::
this avoids duplicate timings entries when command labels are changed and changed back, or if multiple command maps are in use.
In addition, it also solves some PHPStan issues :)
2022-10-16 16:57:10 +01:00
Dylan K. Taylor
0039af984d
Merge branch 'next-minor' into item-stack-request 2022-10-16 16:56:26 +01:00
Dylan K. Taylor
7864294336
Merge branch 'stable' into next-minor 2022-10-16 16:53:14 +01:00
Dylan K. Taylor
2a910c1cc2
World: more minor documentation improvements 2022-10-16 16:50:42 +01:00
Dylan K. Taylor
cd04a3db2e
World: ensure that addParticle/addSound don't send stuff to players who are not in range, even when an array of targets is given
closes #5347
2022-10-16 16:45:52 +01:00
Dylan K. Taylor
572def9245
World: Improve quality of type information 2022-10-16 16:21:59 +01:00
IvanCraft623
14d17a9546
Remove Erroneous documentation (#5346) 2022-10-16 15:21:35 +01:00
Dylan K. Taylor
b74c092d9b
Server: removed reference to nonexistent API method 2022-10-15 15:06:43 +01:00
Dylan K. Taylor
53cae8911d
Merge branch 'next-minor' into next-major 2022-10-14 21:53:25 +01:00
Dylan K. Taylor
7bcc663b60
Migrate core code to using symfony/filesystem
webmozart/path-util is retained for plugin compatibility, but is dropped in 5.0
2022-10-14 21:51:29 +01:00
Dylan K. Taylor
b3bda788d9
Server: Deprecated getPlayerByPrefix()
this is only used for commands anyway, but we can't get rid of it yet.
2022-10-14 21:45:09 +01:00
Dylan K. Taylor
2cc8a56e68
Server: fixed borked serverCommand timings 2022-10-14 20:02:44 +01:00
Dylan K. Taylor
b70f7afbd6
Fix CS according to latest version of php-cs-fixer 2022-10-13 21:07:07 +01:00
Dylan K. Taylor
92783a6db9
Merge branch 'next-minor' into next-major 2022-10-13 21:06:39 +01:00
Dylan K. Taylor
57deb60355
Merge branch 'stable' into next-minor 2022-10-13 21:03:50 +01:00
Dylan K. Taylor
b84c110819
Fix CS according to newest php-cs-fixer 2022-10-13 21:00:57 +01:00
Dylan K. Taylor
e1b0e00c6f
DataPacketSendEvent: add array type validation
this API is used directly by plugins, so anything goes.
2022-10-13 17:10:33 +01:00
Dylan K. Taylor
774df0fa4c
DataPacketSendEvent: added setPackets()
this is an implicit BC break, since plugins may assume that the packets in this array aren't going to change.
However, in practice, it's not likely to cause any real issues.
2022-10-13 17:06:09 +01:00
Dylan K. Taylor
f88ae93897
BC break: Replaced webmozart/path-util with symfony/filesystem, closes #5332 2022-10-13 16:43:36 +01:00
IvanCraft623
421379fc77
SplashPotion: Use World::getCollidingEntities() instead of World::getNearbyEntities() (#5326)
fixes spectator players receiving effects from splash potions
2022-10-11 22:57:35 +01:00
Dylan K. Taylor
293cea7714
4.9.2 is next 2022-10-11 22:47:58 +01:00
Dylan K. Taylor
15645759e9
Release 4.9.1 2022-10-11 22:47:54 +01:00
Dylan K. Taylor
8dc0d506f4
Merge branch 'next-minor' into next-major 2022-10-11 22:29:21 +01:00
Dylan K. Taylor
8c651ce4b4
t Merge remote-tracking branch 'origin/next-minor' into next-major 2022-10-11 22:06:18 +01:00
Dylan K. Taylor
db7cee6f22
Player: check if the item meaningfully changed before discarding it in creative
fixes #5220
2022-10-11 22:06:03 +01:00
Dylan K. Taylor
6ae7cb288e
Merge remote-tracking branch 'origin/stable' into next-minor 2022-10-11 21:59:40 +01:00
Dylan K. Taylor
c1fbac412e
event: ensure that modifications to items expected to be readonly have no effect
this isn't a very glorious fix, but it's the best I have for now.
2022-10-07 11:33:14 +01:00
Dylan K. Taylor
3feaa18f6c
DelegateInventory: use WeakReference and __destruct to clean up inventory listener
this is more sane, since it allows the delegate to be reused without unexpected behaviour.
2022-09-30 15:12:37 +01:00
Dylan K. Taylor
1c6a2b66f7
Merge remote-tracking branch 'origin/next-minor' into next-major 2022-09-29 22:38:26 +01:00
Dylan T
41970feb57
Entity: Fire EntitySpawnEvent/ItemSpawnEvent on the first entity tick, instead of in the constructor (#5314)
This allows plugins to modify the entity via setters in EntitySpawnEvent without their changes getting overwritten by setter calls directly after the 'new YourEntity' statement.

As well as benefiting plugins, this also clears a path for a BC-breaking change in PM5 (to have the programmer use addEntity() to spawn entities, instead of the constructor doing it, which will improve on a number of data handling aspects).

fixes #4973

This targets next-minor because it has some side effects on plugins that depended on the old behaviour, such as VanillaHopper, so it's not suitable for a patch release.
2022-09-29 22:30:12 +01:00
Dylan K. Taylor
0edf2ea6a4
ConcretePowder: fix CS 2022-09-29 21:50:15 +01:00
Dylan K. Taylor
cd4bb91676
Living: alter eye height so the player doesn't drown on the surface of water when swimming
fixes #4989
2022-09-29 00:15:07 +01:00
Dylan K. Taylor
2be527060f
Sign: Fixed desync of colour and glowing state when using dye on signs
fixes #4932
2022-09-28 23:34:08 +01:00
Dylan K. Taylor
6f68c6d8a0
Melon: extend Solid instead of Transparent, fixes #5050 2022-09-28 23:07:53 +01:00
Dylan K. Taylor
ac16378410
Silence pre-spawn PlayerAuthInputPacket debug spam 2022-09-28 21:58:23 +01:00
Dylan K. Taylor
1f9dfa77bf
PreSpawnPacketHandler: emit a separate debug message for sending creative data 2022-09-28 21:58:23 +01:00