Dylan K. Taylor
0f6dc9082a
lock phpstan at 0.12.29
...
0.12.30 starts reporting non-ignorable errors for overriding Thread::start() due to outdated stubs for pthreads that I can't replace
2020-06-22 20:57:12 +01:00
Dylan K. Taylor
2b6dcbc2e2
BaseLang: fixed passing onlyPrefix to str_replace()'s count reference parameter
2020-06-22 20:34:23 +01:00
Dylan K. Taylor
52fd1a8c1d
CommandSender: export getLanguage()
...
this currently serves as a proxy to the server main language, but it can be used by third party implementations to choose a non-Server language.
2020-06-22 20:05:23 +01:00
Dylan K. Taylor
097fc7e6cb
phpstan: clean out some more dead error patterns
2020-06-22 19:59:57 +01:00
Dylan K. Taylor
5c3d39f4e2
phpstan: clean out some level 8 error patterns that no longer apply
2020-06-22 19:56:00 +01:00
Dylan K. Taylor
137605ab8c
Position: make World constructor parameter required
2020-06-22 14:15:27 +01:00
Dylan K. Taylor
5e0d635562
Resource packs: modules field is required in manifest.json
2020-06-21 23:19:15 +01:00
Dylan K. Taylor
763c8ebfe3
Thread/Worker: drop nullability flag from start() (fixed in pthreads 3.2.0, which we require as a minimum)
2020-06-21 19:07:01 +01:00
Dylan K. Taylor
c572e9bb6a
phpstan: regenerate l7 baseline
2020-06-21 18:58:41 +01:00
Dylan K. Taylor
a920baa295
resource packs: use JsonMapper for manifest parsing
2020-06-21 18:47:27 +01:00
Dylan K. Taylor
89521f166d
Explosion: account for multi-block structures, fixes #2767
2020-06-21 17:28:38 +01:00
Dylan K. Taylor
1ef6e5e17b
TileFactory now only manages loading tiles from NBT, not direct creation
...
my objective is to make this use proper constructors like entities, but there's a couple of obstacles to get around first.
2020-06-21 00:47:02 +01:00
Dylan K. Taylor
1f90aa07aa
Merge branch 'stable'
...
# Conflicts:
# resources/vanilla
# src/command/defaults/TeleportCommand.php
# src/pocketmine/event/entity/EntityDespawnEvent.php
# src/pocketmine/event/entity/EntityInventoryChangeEvent.php
# src/pocketmine/event/entity/EntityLevelChangeEvent.php
# src/pocketmine/event/entity/EntitySpawnEvent.php
# tests/phpstan/configs/actual-problems.neon
2020-06-21 00:30:45 +01:00
Dylan K. Taylor
49d3a42120
phpstan: make EntityEvent generic, fix a bunch of 'actual-problems' ignored errors
2020-06-21 00:27:32 +01:00
Dylan K. Taylor
c523595e85
Rewrite TeleportCommand (sadly I can't make this commit any smaller)
...
this pile of shit was overdue a rewrite. The new version is much easier to understand.
2020-06-21 00:04:18 +01:00
Dylan K. Taylor
7c7e4f2093
WhitelistCommand: fixed silence on unknown subcommand
2020-06-20 23:05:39 +01:00
Dylan K. Taylor
88c1014f03
TimingsCommand: fixed silence when using a nonexisting subcommand
2020-06-20 23:04:08 +01:00
Dylan K. Taylor
a16de8747e
Explosion: stop using Vector3->setComponents()
...
this kills two birds with one stone: this inlined version of the logic should be faster than the vector-abusing version.
2020-06-20 22:19:37 +01:00
Dylan K. Taylor
bf5c06f285
World: get rid of temporalPosition too (entirely unused)
2020-06-20 21:45:35 +01:00
Dylan K. Taylor
fc7672c6ba
World: remove temporalVector (premature cold path optimisation again)
2020-06-20 21:44:05 +01:00
Dylan K. Taylor
80e150c803
Entity: get rid of temporalVector mutation
...
except for checkBlockCollision, these are all cold paths ... this gets us one step closer to immutable Vector3
2020-06-20 21:41:19 +01:00
Dylan K. Taylor
42637f97c6
Liquid: eliminate some unnecessary Vector3 field mutations
2020-06-20 21:32:24 +01:00
Dylan K. Taylor
d38c17835d
Properly switch to string entity IDs
2020-06-20 13:43:31 +01:00
Dylan K. Taylor
a988578ee0
protocol: move PotionType and PotionContainerChange recipes to types/recipe namespace
2020-06-20 11:43:47 +01:00
Dylan K. Taylor
0784bfa2fb
phpstan: drop another pattern that was fixed by recent changes
2020-06-20 11:30:14 +01:00
Dylan K. Taylor
032dc57090
phpstan recognizes the existence of parallel\bootstrap now
2020-06-20 11:29:45 +01:00
Dylan K. Taylor
6be56de3ed
clean some newly fixed errors from phpstan baselines
2020-06-20 11:24:39 +01:00
Dylan K. Taylor
d5db163208
protocol: added proper object wrappers for gamerules
2020-06-20 11:24:39 +01:00
Dylan K. Taylor
d2089afbc3
ItemBlock: get rid of -1 meta check (meta is never -1 in this code path now)
2020-06-20 09:52:02 +01:00
Dylan K. Taylor
62e7b0e2b1
(Splash)Potion: do not assume that META == potion ID
...
it probably will be, but meta might not be accessible anymore soon.
2020-06-20 09:31:06 +01:00
Dylan K. Taylor
d62d0762ff
item: remove some unnecessary CompoundTag usages
2020-06-19 22:59:19 +01:00
Dylan K. Taylor
4e8e10ca45
EntityFactory: remove obsolete indirection (class mappings are redundant here now)
2020-06-19 22:18:42 +01:00
Dylan K. Taylor
0a43fd816c
EntityFactory: drop unnecessary @param
2020-06-19 22:10:35 +01:00
Dylan K. Taylor
47baaf4c72
move NBT helper functions from EntityFactory to EntityDataHelper
2020-06-19 22:04:36 +01:00
Dylan K. Taylor
1a3445f4b5
EntityFactory: drop automatic provisioning of short class name as save ID
2020-06-19 22:03:22 +01:00
Dylan K. Taylor
012acdd4cb
move runtime entity ID counter from EntityFactory back to Entity
...
EntityFactory is specialized for the purpose of deserializing data from worlds, and runtime ID assignment isn't related.
2020-06-19 21:55:49 +01:00
Dylan K. Taylor
6d3750994b
EntityFactory: remove dead function
2020-06-19 21:54:23 +01:00
Dylan K. Taylor
954e8e6e6f
update pocketmine/math dependency
2020-06-19 11:33:10 +01:00
Dylan K. Taylor
fb4a99a0ef
Position: x,y,z parameters are now mandatory
2020-06-19 11:21:47 +01:00
Dylan K. Taylor
9f89f2887a
Location: x,y,z parameters are now mandatory
2020-06-19 11:19:05 +01:00
Dylan K. Taylor
4b0bf34adb
Location: add native typehints
2020-06-19 11:17:20 +01:00
Dylan K. Taylor
60a6b4b10d
Entity: use EntityFactory helper function to deserialize Motion
2020-06-19 10:51:27 +01:00
Dylan K. Taylor
4b528aa637
NBT is no longer needed to create an entity
...
it's still able to be provided, but shouldn't be needed in the majority of cases (constructor args and/or API methods should be sufficient).
2020-06-19 10:51:27 +01:00
Dylan K. Taylor
0a1bb0041b
Player: avoid using NBT for onGround hack
2020-06-19 10:51:27 +01:00
Dylan K. Taylor
1205432c34
Extract mandatory parameters into constructor parameters
...
the goal is obviously to ditch NBT entirely here, but there's more work to be done before that becomes possible.
2020-06-19 10:51:27 +01:00
Dylan K. Taylor
3f135da704
Simplify motion handling in ProjectileItem
2020-06-19 10:51:27 +01:00
Dylan K. Taylor
6a26c0bebf
EntityFactory now exclusively handles loading data from disk
...
this commit removes the ability to replace centrally registered entity classes in favour of using constructors directly.
In future commits I may introduce a dedicated factory interface which allows an _actual_ factory pattern (e.g. factory->createArrow(world, pos, shooter, isCritical) with proper static analysability) but for now it's peripheral to my intended objective.
The purpose of this change is to facilitate untangling of NBT from entity constructors so that they can be properly created without using NBT at all, and instead use nice APIs.
Spawn eggs now support arbitrary entity creation functions like EntityFactory does, allowing much more flexibility in what can be passed to an entity's constructor (e.g. a Plugin reference can be injected by use()ing it in a closure or via traditional DI.
2020-06-19 10:51:27 +01:00
Dylan K. Taylor
72a7fc68c1
First look at making entity creation closure-driven
...
this allows doing stuff like injecting plugin references to entity constructors for now. I want to make this more flexible still, but I've done about as much as I feel like doing today and don't want this disappearing into a stash to never be seen again.
2020-06-19 10:51:27 +01:00
Dylan K. Taylor
3bdd9ee860
phpstan: drop a bunch of error patterns that don't appear on 0.12.29+
2020-06-19 10:49:21 +01:00
Dylan K. Taylor
64e9647334
Merge branch 'stable'
...
# Conflicts:
# resources/vanilla
# src/network/mcpe/convert/LegacySkinAdapter.php
# tests/phpstan/configs/check-explicit-mixed-baseline.neon
# tests/phpstan/configs/phpstan-bugs.neon
2020-06-19 10:48:27 +01:00