Commit Graph

159 Commits

Author SHA1 Message Date
powercas_gamer 051d489a95
[ci skip] add issue templates (#15)
* [ci skip] add issue templates

* mention paper plugins might not work

* change name

* typo
2023-03-30 12:53:49 -07:00
Nassim Jahnke 5b74945159
Fix class name reference in readme 2023-03-30 08:20:54 +02:00
Riley Park f3e6529d49 Notify users that Timings cannot be enabled on Folia 2023-03-29 19:41:21 -07:00
Riley Park 00864ac5b1 Update Upstream (PaperMC/Paper@cbcdfd03e7) 2023-03-29 19:41:15 -07:00
Spottedleaf f34a20c36a Fix incorrect error handling in off-main chunk load task
Now that there is no on-main task, the completion logic
for the status task is completed with the results passed
by the off-main task. Thus, the chunk system saw a non-null
throwable and assumed a fatal crash. The old on-main task
did not pass the throwable through in this case, which allowed
the chunk to re-generate.

Fixes https://github.com/PaperMC/Folia/issues/7
2023-03-29 17:11:39 -07:00
Spottedleaf 749480c7ec Fix getCenterChunk not returning the center chunk
Before, it returned the center chunk section. Also, now instead
of approximating the center chunk from the allocated sections,
actually retrieve all chunks inside the region directly.
2023-03-29 16:58:33 -07:00
Spottedleaf b3e1b06c07 Fix compilation of TestPluginMeta
Needed to implement isFoliaSupported()
2023-03-29 14:33:48 -07:00
Spottedleaf 9998ecd60d Make ActivationRange#activateEntities use non-checked getEntities
We can do this because we thread-check the entities retrieved,
we want to do this because a large activation range may violate
thread-checks
2023-03-29 14:22:15 -07:00
Owen1212055 32f79c415e Support paper plugin meta marking plugins as Folia supported 2023-03-29 14:12:30 -07:00
Spottedleaf 7ce0308bdb Add maven artifact and repo information 2023-03-29 13:55:45 -07:00
Spottedleaf 4c79bb4878 Expand a bit on added api and thread contexts in README 2023-03-29 13:16:32 -07:00
Spottedleaf f42c61aba6 Folia Metrics page
https://bstats.org/plugin/server-implementation/Folia/18084
2023-03-29 12:53:55 -07:00
Jason Penilla b3d994fb9b
add version print tasks 2023-03-29 11:56:33 -07:00
Jason Penilla fca2eba2f8
fix build 2023-03-29 10:18:38 -07:00
Jason Penilla df6b444946
configure publishing 2023-03-29 09:19:05 -07:00
Spottedleaf e35a734744 Add basic FAQ in README 2023-03-29 08:55:25 -07:00
Spottedleaf 7de5c541b3 Nerf default tick thread allocation
Allocates too many threads by default
2023-03-29 08:12:27 -07:00
Josh Roy 88167d59d2
Add Server#isGlobalTickThread (#5) 2023-03-28 18:59:19 -07:00
Spottedleaf ae66537bdc Add project overview doc
Explains most important concepts, like data management,
tick count handling, and teleportations
2023-03-28 18:08:37 -07:00
Spottedleaf 108dc2358b Use chunk coords for thread check for CraftWorld#getHighestBlockYAt
Not block coords
2023-03-28 16:13:18 -07:00
Spottedleaf 1c5e9be7fd Force prevent moving into unloaded chunks
Not safe to allow this anymore
2023-03-28 15:59:41 -07:00
Spottedleaf d113346b6d Fix isTickThread(world, blockX, blockZ)
Need to convert the Z to chunk, not block...

Also throw for CraftPlayer#teleport and friends
2023-03-27 20:29:16 -07:00
Spottedleaf 1175350400 Fix failure to initialise CraftWorld
Directly access spawn category limits rather than go through
the method
2023-03-27 16:06:19 -07:00
Josh Roy 5fa0556869
Use longs for scheduler delays/periods (#4) 2023-03-25 21:48:28 -07:00
Spottedleaf 75e3cdbc61 Rebase fixups 2023-03-25 16:29:07 -07:00
Spottedleaf 6df8272abf Deprecate bukkit scheduler
Every method on that should basically throw, so the API should
reflect that
2023-03-25 16:27:55 -07:00
Spottedleaf 66c77fb573 Add more thread checks to API
Most of the World methods, and for updating captured TEs
2023-03-25 16:26:54 -07:00
Spottedleaf c435aaae96 Add world checks to retrieval of regionised world data
This is to mirror behavior of RegionizedData's world check.
2023-03-25 15:27:50 -07:00
Spottedleaf 7eea12b9e4 Kenny momentos
Random newline?
2023-03-25 11:55:44 -07:00
Nassim Jahnke 3c62932250
Fix player disconnect call in PlayerList removAll 2023-03-25 19:44:11 +01:00
Nassim Jahnke 5e7b4f0185
Fix tests by removing them 2023-03-25 19:06:35 +01:00
Nassim Jahnke 836dc75b65
Replace Vector with Position in isOwnedByCurrentRegion methods
Closes #3
2023-03-25 18:50:36 +01:00
Nassim Jahnke 8d15f3e23d
Add methods taking world, chunkX, chunkZ to RegionScheduler 2023-03-25 18:40:20 +01:00
Nassim Jahnke dfc157075a
Renames for consistency 2023-03-25 00:22:47 +01:00
Nassim Jahnke 64f7932ed0
Fix building on case sensitive fs 2023-03-24 16:06:48 +01:00
Spottedleaf 6a5fff3caa Make ClickCallbackProviderImpl thread-safe
Can no longer process tasks from the main thread like that anymore,
it just needs to be concurrent.
2023-03-23 07:55:26 -07:00
Spottedleaf d5b837c457 Make Damagecommand safe, and remove RideCommand 2023-03-23 07:36:44 -07:00
Spottedleaf 4c183bf960 Fix compile 2023-03-23 07:22:57 -07:00
Spottedleaf c7fbdd87d2 Update to 1.19.4
Patches applied, but not yet checked compile.
2023-03-23 06:55:09 -07:00
Spottedleaf e3a299c5ce Lowercase project names
Make JMP happy
2023-03-23 04:53:58 -07:00
Spottedleaf 50ad6c3131 New scheduler API
Now, entity/global/location schedulers implement a generic run,
runDelayed, and runAtFixedRate methods that provide a ScheduledTask
value that can be used to interact with the scheduled task.

Add also an async task scheduler that implements the same methods,
except the delays/periods are in time and not ticks, as the scheduler
is independent of the server tick process.

Additionally, throw on some unimplemented APIs now.
2023-03-23 02:51:04 -07:00
Spottedleaf 0da953539b Disable mid-tick task execution
Mid-tick task execution acquires the ticket lock at least,
which can possibly be a significant performance bottleneck
at a high tick thread + region count. This change should reduce
the impact from scaling the region threads, but is not a fix
to the underlying issue.
2023-03-20 02:48:16 -07:00
Spottedleaf 106a4affdc Suppress entire CB passenger events if the entity is not valid
The event is not being called, so the checks will not do
anything. We need to bypass the checks so that we do not trip
the thread check.
2023-03-19 17:41:24 -07:00
Spottedleaf 7e948a6179 Add global region scheduler
This will allow plugins to safely execute commands or perform
other global tick thread data modification.
2023-03-19 16:43:34 -07:00
Spottedleaf cbf8108d4e Make max concurrent logins patch use maxJoinsPerTick config
This patch performed perfectly to handle the test server,
so it can stay.
2023-03-19 14:58:52 -07:00
Spottedleaf 0911c7a58a Remove patches specific for stream
Specifically, the /msg and /me command removal and the operator
only chat. Additionally, remove the TPA commands.
2023-03-19 14:53:06 -07:00
Spottedleaf ee737050a0 Add thread checks for CraftEntity#getHandle
Also resolve some issues found by this change.

Currently, the player handle checks are disabled.
2023-03-19 14:48:37 -07:00
Spottedleaf a980944815 Regionise RedStoneWireBlock#shouldSignal
Global state used to update redstone, so it should be regionised.
2023-03-12 20:55:52 -07:00
Spottedleaf 6fe75ab068 Erase mob target in getTarget if it is not in the current region
This will prevent access to the target's position or data.
2023-03-12 15:36:05 -07:00
Spottedleaf 3aeb021748 Make PoiCompetitorScan region-safe
We implement it by ensuring that if the entity is not nearby
the job site, they automatically lose.
2023-03-12 15:25:06 -07:00