Dylan K. Taylor
6492e7f4a2
1.20.60 support
2024-02-07 12:33:44 +00:00
Dylan K. Taylor
a1748a92ca
Avoid unnecessary TypeConverter::getInstance() calls
...
we already have it available within these contexts
2023-11-17 14:00:25 +00:00
Dylan K. Taylor
0f620fad94
ChunkCache: inline unnecessary function
2023-11-17 13:30:44 +00:00
Dylan K. Taylor
94d98fb5c4
Migrate all but two remaining legacy enums to native PHP 8.1 enums
2023-09-07 19:32:45 +01:00
Dylan K. Taylor
ae564e445d
Start migrating EnumTrait enums to PHP 8.1 native enums
2023-09-07 17:20:52 +01:00
Dylan K. Taylor
3c34841dfc
CS
2023-07-19 14:00:35 +01:00
Dylan K. Taylor
914dd90b3d
Use first-class closures in more places
2023-07-19 13:56:48 +01:00
Dylan K. Taylor
0240d35c05
AsyncTask and AsyncPool no longer tolerate uncaught errors in tasks
...
Since task execution depends on tasks executing sequentially on a particular worker in some cases (e.g. PopulationTask must be preceded by GeneratorRegisterTask), it doesn't make sense to continue task execution if an error occurs.
Moreover, a task crashing may render the whole server unstable, as it leaves the server in an undefined state. This is the same kind of problem we fixed with scheduled tasks in PM3.
In versions past, pthreads was unreliable enough that random tasks would crash without an obvious reason, forcing us to accommodate this. I still don't know the origin or frequency of said issues, but I think it's time to rip the band-aid off and solve these problems for real.
2023-06-22 13:29:36 +01:00
Dylan K. Taylor
0ed5e94a72
Merge branch 'minor-next' into major-next
2023-05-30 16:15:56 +01:00
ShockedPlot7560
db95bf8b9b
Caching creative inventory entries ( #5703 )
...
Due to the high cost of Item::serializeCompoundTag(), it's very costly to rebuild this every time we need it. This is sent during the pre-spawn step, where we need to minimize costs as much as possible.
2023-05-18 14:11:28 +01:00
Dylan K. Taylor
01f340985a
Centralize all conversion-related stuff under TypeConverter
...
instead of having singletons for everything, which are a nightmare to manage for multi version
2023-05-03 16:33:17 +01:00
Dylan K. Taylor
dace20ad1f
Merge branch 'item-stack-request' into item-stack-request-pm5
2023-03-14 22:34:47 +00:00
Dylan K. Taylor
a573a279fa
Merge branch 'minor-next' into item-stack-request
2023-03-14 22:25:49 +00:00
Dylan K. Taylor
c82b43a586
Merge branch 'next-minor' into next-major
2023-02-23 22:00:14 +00:00
Dylan K. Taylor
9acb4d64db
Added generated constants for available BedrockData files
...
this makes it easier to detect unused files, detect removed files, and also avoid typos in usages.
2023-02-23 21:45:12 +00:00
Dylan K. Taylor
2e9a3f9160
Working crafting :woohoo:
2023-01-04 22:29:29 +00:00
Dylan K. Taylor
c89df7eb1c
Merge remote-tracking branch 'origin/next-minor' into next-major
2022-12-25 18:22:13 +00:00
Dylan K. Taylor
0d169b4e80
Filesystem: added fileGetContents to reduce ErrorToExceptionHandler boilerplate code
2022-12-25 17:13:51 +00: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
f88ae93897
BC break: Replaced webmozart/path-util with symfony/filesystem, closes #5332
2022-10-13 16:43:36 +01:00
DavyCraft648
c24370b8ac
CraftingDataCache: Fix Cartography's recipe block name ( #5302 )
2022-09-23 14:59:44 +01:00
Dylan K. Taylor
b39eaaf91f
Merge branch 'next-minor' into next-major
2022-09-21 15:07:11 +01:00
Dylan K. Taylor
f80ffd8de0
Merge branch 'next-minor' into next-major
2022-09-15 13:59:21 +01:00
Dylan K. Taylor
3d03bb1301
Fix CS
2022-09-15 12:01:26 +01:00
Dylan K. Taylor
eb8fb63409
Added cartography and smithing tables
...
these have working inventories, and their crafting menus will 'just work' once the items for the associated recipes have been implemented (maps, netherite).
2022-07-14 18:01:47 +01:00
Dylan K. Taylor
9f0b32e748
Updated creative and crafting data to 1.19
2022-07-04 20:28:07 +01:00
Dylan K. Taylor
5e4e5147d9
Remove ItemFactory involvement from brewing
...
this involves a very nasty hack for potion container change, but for the time being it can't be helped.
2022-06-29 16:11:15 +01:00
Dylan K. Taylor
55cb68e5b5
Burn meta wildcards from Item, allow more dynamic recipe inputs
...
this was an obstacle for getting rid of legacy item IDs.
2022-06-27 13:33:26 +01:00
Dylan K. Taylor
1ff69136a3
Merge branch 'next-major' into modern-world-support
2022-06-07 20:01:40 +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
38d6284671
Use PHP-CS-Fixer to enforce file header presence
2022-06-04 17:34:49 +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
VixikHD
e0da99a973
feat: Implement Brewing ( #4413 )
...
The following API constants have been added:
- tile\BrewingStand::BREW_TIME_TICKS
The following public API methods have been added:
- utils\BrewingStandSlot->getSlotNumber() : int
- CraftingManager->getPotionTypeRecipes() : array<string, array<string, PotionTypeRecipe>>
- CraftingManager->getPotionContainerChangeRecipes() : array<int, array<string, PotionContainerChangeRecipe>>
- CraftingManager->registerPotionTypeRecipe(PotionTypeRecipe $recipe) : void
- CraftingManager->registerPotionContainerChangeRecipe(PotionContainerChangeRecipe $recipe) : void
The following classes have been added:
- BrewingRecipe
- PotionTypeRecipe
- PotionContainerChangeRecipe
- BrewItemEvent
- BrewingFuelUseEvent
- PotionFinishBrewingSound
2022-01-22 16:54:58 +00:00
Dylan K. Taylor
be1996752a
Replace disallowed operators in src/network/
2022-01-20 19:11:32 +00:00
Dylan K. Taylor
4aab0565c0
ChunkCache: fixed corner case in cache restart on AsyncTask error
...
the cache may have been destroyed since the task inception, leading to an exception being thrown.
2021-12-27 18:11:55 +00:00
Dylan K. Taylor
275f145418
BedrockData is now a Composer dependency
...
this should put a stop to people nagging me about incorrect blocks (we have a check to make sure composer dependencies are up to date).
2021-11-02 16:45:45 +00:00
Dylan K. Taylor
5db3915aad
Make MemoryManager aware of ChunkCache
2021-10-28 20:28:00 +01:00
Dylan K. Taylor
c77829f4ad
Migrate packet creation to use ::create() methods in all but one case
...
MovePlayerPacket doesn't yet have a ::create() due to a complication with fields that aren't always present.
2021-10-23 01:46:01 +01:00
Dylan K. Taylor
c773e43eda
Updated BedrockProtocol to pmmp/BedrockProtocol@97fa88e9ef
2021-10-23 01:16:45 +01:00
Dylan T
4111d92b98
Stop hardcoding chunk dimensions everywhere ( #4443 )
2021-09-10 16:13:25 +01:00
Dylan K. Taylor
b4e23a57d2
CraftingDataCache: Replace hardcoded recipe block names with constants from BedrockProtocol
2021-08-29 16:26:18 +01:00
Dylan T
27e0ecf7ee
Implemented Blast Furnace and Smoker ( #4362 )
2021-08-12 23:27:05 +01:00
Dylan T
32d7b1e6af
Start using webmozart/pathutil for joining paths ( #4287 )
2021-06-29 19:40:43 +01:00
Dylan K. Taylor
2d686e6dc0
Merge remote-tracking branch 'origin/stable'
2021-06-04 18:03:32 +01:00
Dylan K. Taylor
0251359179
ChunkCache: remove outdated TODO comment
...
we don't set the entire chunk during lighting updates anymore, so updating light doesn't trigger onChunkChanged().
2021-04-19 00:20:03 +01:00
Dylan K. Taylor
72de45f0e9
Drop pocketmine/uuid for ramsey/uuid
2021-03-16 23:03:00 +00:00
Dylan K. Taylor
bcc3e87730
Timings: rename core timers to remove 'timer' from the names
...
this makes them shorter and more consistent.
2020-12-23 17:52:25 +00:00
Dylan K. Taylor
24ac5f8be0
Fixed craftingDataCacheRebuildTimer never being stopped
2020-12-13 21:41:22 +00:00