489 Commits

Author SHA1 Message Date
Dylan T.
866d473553
Merge branch 'minor-next' into feat/async-events 2024-11-29 13:49:20 +00:00
Dylan K. Taylor
12ae8dc03b
Merge branch 'stable' into minor-next 2024-11-25 14:32:30 +00:00
Dylan K. Taylor
a9787f0d99
Fix PHPStan error 2024-11-25 14:32:17 +00:00
Dylan K. Taylor
5325ecee37
Deal with a whole lot of PHPStan suppressed key casting errors
closes #6534
2024-11-25 14:30:58 +00:00
ShockedPlot7560
8338ebaffd
Add generic types for TaskHandler (#6030) 2024-11-24 14:14:34 +00:00
Dylan K. Taylor
4451770ca3
Merge branch 'minor-next' into feat/async-events 2024-11-20 15:43:17 +00:00
Dylan T.
33a7b46329
Use reflection to locate BlockTypeIds and ItemTypeIds for VanillaBlocks/VanillaItems (#6498)
Use reflection to locate BlockTypeIds and ItemTypeIds for VanillaBlocks/VanillaItems

Since BlockTypeIds and ItemTypeIds are derived from VanillaBlocks and VanillaItems respectively anyway (they only exist to allow identifying blocks/items without having to create instances of them), this hack is probably OK, and reduces the chances of mistakes.
Previously it was explored to have these IDs generated by auto-incrementing in VanillaBlocks/Items and have the constants generated that way, but this proved to be too problematic because of unstable diffs no matter how we chose to sort the elements. See #6313 for previous research on the subject.

This is obviously not a desirable hack to keep long-term. In the future it will probably make sense to redesign VanillaBlocks like so:

enum VanillaBlocks { ... }
VanillaBlocks::STONE (the type ID)
VanillaBlocks::STONE->new() (to create a block)

However, more research is needed on this, as I'd prefer not to make block creation any more verbose.
2024-11-14 17:32:22 +00:00
Dylan K. Taylor
ac1cf73f8e
Reduce code duplication 2024-11-13 21:09:52 +00:00
Dylan K. Taylor
fa796535ff
ah hello my old friend, impossible-generics.neon
propagating generics all the way through the likes of HandlerList etc is more trouble than it's worth.
2024-11-13 19:09:52 +00:00
Dylan K. Taylor
48d2430064
Update PHPStan baseline 2024-11-13 14:58:09 +00:00
Dylan K. Taylor
86fb041a65
Merge branch 'minor-next' of github.com:pmmp/PocketMine-MP into feat/async-events 2024-11-13 14:46:32 +00:00
Dylan K. Taylor
72fc138631
Regenerate PHPStan baselines 2024-11-03 14:43:34 +00:00
Dylan K. Taylor
c63d0ef1b6
Fix dodgy ignored PHPStan error 2024-11-03 14:43:34 +00:00
IvanCraft623
4e6b34f573
Implement new 1.21 copper blocks (#6366)
Added the following new blocks:
- All types of Copper Bulb
- All types of Copper Door
- All types of Copper Trapdoor
- All types of Chiseled Copper
- All types of Copper Grate
2024-09-24 21:25:10 -05:00
ipad54
2ffc38c835
Implement campfire & soul campfire (#4696) 2024-07-07 15:01:34 -05:00
ShockedPlot7560
b276133003 Merge remote-tracking branch 'origin/minor-next' into feat/async-events 2024-07-02 13:44:36 +00:00
Jason Wynn
90409b50d1
Allow offering different resource packs to different players (#6249)
closes #6248
2024-03-01 14:53:59 +00:00
ShockedPlot7560
6bb84bc46c
Add Promise::all (#6152) 2024-02-06 12:42:24 +00:00
ShockedPlot7560
d6b7a9ed45
merge remote tracking upstream 2024-01-21 11:28:24 +01:00
ShockedPlot7560
64bbff6286
Merge remote-tracking branch 'upstream/minor-next' into feat/async-events 2024-01-21 11:25:37 +01:00
Dylan K. Taylor
58ce746ae1
Remove dead PHPStan ignored error 2023-12-20 14:44:24 +00:00
Dylan K. Taylor
74cb0be868
Noise: give PHPStan some help understanding SplFixedArray 2023-12-20 14:43:36 +00:00
Dylan K. Taylor
06b2e61d3c
Merge remote-tracking branch 'origin/stable' into minor-next 2023-12-14 14:02:15 +00:00
Dylan K. Taylor
2f1d6115a0
Merge branch 'legacy/pm4' into stable 2023-12-06 14:55:18 +00:00
Dylan K. Taylor
2a136c7804
Update composer dependencies 2023-12-06 14:37:27 +00:00
Dylan K. Taylor
67ad2bad17
World: fixed edge case that could lead to crash during block update sending 2023-11-17 13:24:06 +00:00
Dylan K. Taylor
d09af2e30d
World: don't assume that random Vector3 are int vectors
we can safely assume this for blocks (though the type info doesn't reflect it) but this is not safe to assume for random APIs that might be used by plugins.
2023-11-06 17:15:17 +00:00
ShockedPlot7560
ca95b2f28d
fix PHPStan 2023-10-27 22:08:49 +02:00
ShockedPlot7560
dc85bba995
merge remote tracking 2023-10-27 21:28:09 +02:00
ShockedPlot7560
2b2fa9ddf1
phpstan: populate baseline 2023-10-22 15:45:05 +02:00
Dylan K. Taylor
8e17aed4f4
Fix build 2023-10-20 17:43:04 +01:00
Dylan K. Taylor
dbb5a32a96
Liquid: eliminate unnecessary Position allocations and getSide() calls 2023-10-19 17:09:13 +01:00
Dylan K. Taylor
ada37899aa
Liquid: improve code legibility and fix a bunch of PHPStan errors 2023-10-19 17:02:22 +01:00
Dylan K. Taylor
f1440324a7
Update PHPStan baselines 2023-10-19 16:56:15 +01:00
Dylan K. Taylor
114f444ec3
Update PHPStan baseline 2023-10-19 13:28:40 +01:00
ShockedPlot7560
a84fc2b901
introduce AsyncEvent and ::callAsync()
An asynchronous event is one that allows the addition of promises to be resolved before being completed.
This implementation integrates priority levels, allowing you to wait for all promises added to one level before moving on to the next.
This is made possible by separating the event call logic into several functions, which can then be integrated into AsyncEventTrait::callAsync()
2023-10-14 23:13:35 +02:00
Dylan K. Taylor
04b815a87a
Merge branch 'stable' into minor-next 2023-09-21 13:27:11 +01:00
Dylan K. Taylor
d138a15a32
Merge branch 'legacy/pm4' into stable 2023-09-21 13:27:04 +01:00
Dylan K. Taylor
912fd3f5c6
PHPStan 1.10.35, plus workarounds 2023-09-21 13:22:14 +01:00
Dylan K. Taylor
3906600d44
Fix CS 2023-09-20 19:44:53 +01:00
Dylan K. Taylor
3f7abf29a8
Added PHPStan rule to flag usages of legacy enum accessors provided by LegacyEnumShimTrait
closes #6061
2023-09-20 19:42:21 +01:00
Dylan K. Taylor
8572311bf4
Remove dead PHPStan stub
closes #6003
2023-08-21 14:57:26 +01:00
Dylan K. Taylor
c1638ffaab
Ban foreach by-reference at the PHPStan level 2023-08-08 17:08:13 +01:00
Dylan T
82a5ea9ed3
Allow thread errors and their traces to be properly recorded in crashdumps (#5910)
until now, any thread crash would show as a generic crash since we aren't able to get the trace from the crashed thread directly. This uses some dirty tricks to export a partially serialized stack trace to the main thread, where it can be written into a crashdump.
This enables us to see proper crash information for async tasks in the crash archive (finally!!!) as well as being able to capture RakLib errors properly.
2023-07-26 16:26:03 +01:00
Dylan K. Taylor
537721fe7d
Replace Closure::fromCallable() usages with first-class callables
PHP 8.1 <3
2023-07-19 13:34:42 +01:00
Dylan K. Taylor
4af981d726
PHPStan 1.10.16
closes #5802
2023-06-05 17:07:19 +01:00
Dylan K. Taylor
06b0fa4d67
Fix PHPStan 2023-05-26 15:47:35 +01:00
Dylan K. Taylor
bdb0ed0701
Consistently use 'mob head' terminology in the API
previously, we were sometimes using 'mob head' and other times 'skull', sometimes even within the same file.
2023-05-26 15:08:00 +01:00
Dylan K. Taylor
9509d7e04d
Scrub PHPStan baselines 2023-05-20 01:51:21 +01:00
Dylan K. Taylor
e0630fbb25
pmmpthread support 2023-05-20 01:29:26 +01:00