Commit graph

8477 commits

Author SHA1 Message Date
Jake Potrebic
4f9f09bb9b Lifecycle Event System (#9629)
* registering stuff event system

* simply by removing a ton of unneeded generics

* separate RegistryEvent and RegistrarEvent

* add logic for removing hooks when a plugin is disabled

* cleanup more

* swap around the way things are registered

* block further hook registrations for JavaPlugin

* Slightly more extensible to support registry mod API

* rename some types

* more moving/renaming

* remove 'hook' name

* Rename to 'lifecycle'

* move more impls for the server

* add priorities

* added lock for bootstrap event registration

* slight refactor to allow 'register anywhere' event types

* Move event type list to server impl

* use builder pattern to create event handler configurations

* add some more javadocs

* fix some issues, slight refactors

* call predicate and method renames

* add owner aware events

* rebased and refactored owner aware events

* add single helper method for registering simple handler

* compile fixes

* check owner and fix generics on register helper

* javadoc fixes and a few type renames

* more javadoc fixes

* move service loader file to correct location

* rename to Monitorable and Prioritizable

* add invalidation system for events after running them

* block reloading plugins in certain situations

* update test plugin

* remove dummy events

* rebase
2024-02-09 12:12:01 -08:00
Nassim Jahnke
679f34297e Improve tag parser handling, move hunks out of chunk system patch 2024-02-05 12:31:51 +01:00
Nassim Jahnke
f2da18d62e More provider source fixup 2024-02-02 12:44:09 +01:00
Nassim Jahnke
6fba18bac1 Add missing catch 2024-02-01 11:41:29 +01:00
Nassim Jahnke
e07a036b9f Fix sleeping pos desync 2024-02-01 10:53:15 +01:00
Nassim Jahnke
1cdeef88c5 Small refactor of Paper plugin context preparation 2024-02-01 10:51:29 +01:00
Lulu13022002
f7e469eb2e [ci skip] Cleanup events (#10202) 2024-02-01 10:15:57 +01:00
Rowan
d676979ea0 [ci skip] Fix incorrect documentation for BlockDropItemEvent (#10175)
Co-authored-by: Bjarne Koll <git@lynxplay.dev>
2024-01-27 20:42:46 +01:00
Jake Potrebic
cc0082f248 Properly check if a loot table exists (#10190) 2024-01-27 11:21:18 -08:00
Warrior
adf45d523a Disable memory reserve allocating (#10180) 2024-01-27 20:06:03 +01:00
Luis
dd9c9c8f6c Make spawn egg colours visible (#10158)
Co-authored-by: Yannick Lamprecht <1420893+yannicklamprecht@users.noreply.github.com>
2024-01-27 18:32:05 +00:00
Chase Henderson
c4aa25cd95 Shulker duplicate event (#10135) 2024-01-27 13:13:12 -05:00
Jake Potrebic
a86380bc18 [ci skip] clarify javadocs for Block#getDrops (#10153) 2024-01-27 09:35:09 -08:00
Tamion
7ed69f968c [ci skip] Remove IRC link from the README (#10194) 2024-01-27 13:11:43 +01:00
Nassim Jahnke
b63a0c5a8f Fix javadoc errors, remove unused classes 2024-01-26 21:34:40 +01:00
Nassim Jahnke
ad30e27e98 Updated Upstream (Bukkit/CraftBukkit/Spigot)
Upstream has released updates that appear to apply and compile correctly.
This update has not been tested by PaperMC and as with ANY update, please do your own testing

Bukkit Changes:
1d522878 PR-966: Introduce getRespawnLocation as a replacement for getBedSpawnLocation
cc01b745 PR-965: Add DragonBattle#setPreviouslyKilled
28e3702f SPIGOT-6921, PR-957: Add methods to remove all enchantments on an ItemStack
8872404e PR-961: Add BlockData#copyTo
4054cc7b PR-956: Add method to get an offline player's location

CraftBukkit Changes:
292ec79e0 SPIGOT-7568: Call EntityChangeBlockEvent for DecoratedPot
b44bf5aa8 SPIGOT-7575: SuspiciousStewMeta creates invalid PotionEffect data
161784713 PR-1340: Centralize the conversion from and to Minecraft / Bukkit registry items even more and add a test case for them
b93c5a30d PR-1338: Introduce getRespawnLocation as a replacement for getBedSpawnLocation
fb973486c SPIGOT-7570: PrepareItemCraftEvent#isRepair() always returns false
c9c24535e PR-1337: Add DragonBattle#setPreviouslyKilled
c8b4da803 SPIGOT-6921, PR-1330: Add methods to remove all enchantments on an ItemStack
95bc1c4f5 PR-1333: Add BlockData#copyTo
36e2f9ce1 PR-1329: Add method to get an offline player's location

Spigot Changes:
c198da22 SPIGOT-7563: Update to latest release of bungeecord-chat
2024-01-26 20:17:06 +01:00
Nassim Jahnke
98775ea8e5 [ci skip] Fixup a few bad comments 2024-01-26 19:41:41 +01:00
Nassim Jahnke
d71804b7f8 Finish moving patches back and improving compilable state 2024-01-25 10:54:46 +01:00
Nassim Jahnke
52438f04a0 [ci skip] Move chunk system patch back 2024-01-24 22:13:08 +01:00
Shane Freeder
49feea0525 Convert average tick value in the GUI to the correct granularity 2024-01-24 16:27:32 +00:00
Nassim Jahnke
8dae5500dd [ci skip] Move chunk system patch a bit back 2024-01-24 15:57:53 +01:00
Nassim Jahnke
2a60c836aa [ci skip] Fixup last commit 2024-01-24 14:05:59 +01:00
Nassim Jahnke
fae4fc60c9 [ci skip] Move chunk system patch back a bit 2024-01-24 13:07:40 +01:00
Nassim Jahnke
bafdfefb83 [ci skip] Remove removed patches 2024-01-24 11:55:36 +01:00
Nassim Jahnke
24e3f94688 [ci skip] (Mostly) finish adding identifying patch comments 2024-01-24 11:45:17 +01:00
FireInstall
15288309a2 Expose LootTable of DecoratedPot (#10023) 2024-01-23 21:57:17 +01:00
Jake Potrebic
b9b956adb8 Add BlockStateMeta#clearBlockState (#10160) 2024-01-23 12:41:47 -08:00
1stGlitch
85453a2f60 Add world to Entity AddTo/RemoveFrom Events (#10183)
When a plugin listens to the EntityAddToWorld and EntityRemoveFromWorld events, I don't believe there is currently any method of directly obtaining which world the entity was actually added to/removed from. Using event.getEntity().getWorld() works in many cases, but not all. Specifically, when an entity is teleported from one world to another, the location of the entity is updated prior to the removal event being called. This means that when an entity goes through a nether/end portal or is teleported between worlds with a command, a plugin listening to the EntityRemoveFromWorldEvent has no way of determining which world the entity was actually removed from (without relying on other events).

To resolve this, I've added the world as a field in the events along with a getter to retrieve it. I also removed an unused import and made the documentation more clear on the event behaviour when chunks load/unload.
2024-01-23 15:17:14 -05:00
Nassim Jahnke
cd30cd6d41 Move diffs around to compile without later ones applied 2024-01-23 18:01:39 +01:00
Nassim Jahnke
091f54138b [ci skip] Move some disruptive patches back 2024-01-23 15:43:48 +01:00
Nassim Jahnke
88d3d87993 [ci skip] Add more patch identifying comments 2024-01-23 14:34:17 +01:00
Nassim Jahnke
e433c8696b [ci skip] Move some disruptive patches back 2024-01-23 12:06:27 +01:00
Nassim Jahnke
5dec86e71c [ci skip] Move some disruptive patches back 2024-01-22 21:04:08 +01:00
Nassim Jahnke
94e0370bed [ci skip] Add more patch identifying comments 2024-01-22 19:01:10 +01:00
Nassim Jahnke
2a2cdc2d1a [ci skip] Add more patch identifying comments 2024-01-22 18:04:55 +01:00
Nassim Jahnke
b088c37fc1 [ci skip] Add more patch identifying comments 2024-01-21 19:37:09 +01:00
Nassim Jahnke
bc99c40604 [ci skip] Add more patch identifying comments, cleanup 2024-01-21 17:39:05 +01:00
Nassim Jahnke
db4ed47134 [ci skip] Add more identifying patch comments 2024-01-21 13:56:22 +01:00
Nassim Jahnke
0571a6438e [ci skip] Add more identifying patch comments 2024-01-21 12:53:04 +01:00
Nassim Jahnke
f6609428b6 [ci skip] Add more identifying patch comments 2024-01-21 12:11:43 +01:00
Nassim Jahnke
dee90322eb [ci skip] Add more identifying patch comments 2024-01-20 23:13:41 +01:00
Shane Freeder
e34d100c9c Async world data IO saving (#10171)
Co-authored-by: Cryptite <cryptite@gmail.com>
2024-01-20 21:51:15 +00:00
Pantera (Mad_Daniel)
4112589be3 Add back Reduce allocation of Vec3D by entity tracker patch (#10179) 2024-01-21 02:26:51 +09:00
Nassim Jahnke
1b920c7241 [ci skip] Add more identifying patch comments 2024-01-20 12:50:16 +01:00
Lulu13022002
8b532bad3a Add visual blockdata api for primed tnt (#10146) 2024-01-20 00:01:12 +01:00
Nassim Jahnke
66431e1300 [ci skip] Add more identifying patch comments 2024-01-19 22:13:42 +01:00
Nassim Jahnke
3c246dc632 [ci skip] Add more identifying patch comments, merge related patches 2024-01-19 17:54:05 +01:00
Nassim Jahnke
64e5ff904c [ci skip] Add more identifying patch comments, merge related patches 2024-01-19 13:22:30 +01:00
Nassim Jahnke
b5b92e90d8 [ci skip] Add more identifying patch comments, merge related patches 2024-01-19 12:30:04 +01:00
Nassim Jahnke
864f4072c1 [ci skip] Add more identifying patch comments 2024-01-18 22:00:40 +01:00