Commit Graph

19448 Commits

Author SHA1 Message Date
Aikar
9eca5e3b19 Improve Chunk Prioritization and Internal Scheduler
In previous MC versions, we had a rather simple internal scheduler
for delayed tasks that would just keep pushing task back until desired
tick was reached.

The method it called to schedule the task changed behavior in 1.14, and now
this scheduler is not working nowhere near what it was supposed to be doing.

This was causing long delayed task to eat up CPU (In Oversleep for example)

Rewrite this to just use the CraftScheduler for scheduling delayed tasks.

Once this was fixed, it became quite clear the code that delayed ticket
additions for chunks based on distance was clearly not right, as it was
tested on the previous broken logic.

So the ticket delay process has been vastly revamped to be even smarter.
Chunks behind the player can load slower than the chunks in front of the player.
We also can delay ticket adding until one of its neighbors has loaded, as
this lets us get a smoother spiral out for the chunks (minus frustum intent).

Additionally on frustum previous commit inadvertently broke frustum trying to
fix an issue when the real fix lied elsewhere, so restore chunk priority so
it works again.
2020-06-09 03:17:25 -04:00
Aikar
d7e48a1126 Improve Login to use Urgent priority - improves login chunk load times 2020-06-08 21:44:52 -04:00
Mark Vainomaa
f14d6e62da Add an API for CanPlaceOn and CanDestroy NBT values 2018-09-12 18:53:35 +03:00
Tamion
5dc2ca5b62 Fix PickupStatus getting reset 2024-07-23 18:37:12 +02:00
powercas_gamer
e8e8c4f7c2 add Plugin#getDataPath 2024-07-15 02:07:49 +00:00
Tamion
7507d0f1ef Fix HelpCommand searching
Prevent index out of bounds exception when finding possible matches in
the help topics.
A general empty string is caught and directed to the defaultTopic by
getHelpTopic(). #findPossibleMatches hence should not concern itself
with possible empty strings anymore.
2024-07-13 18:00:37 +02:00
Jake Potrebic
cb339661cc Make a PDC view accessible directly from ItemStack 2024-06-12 10:29:30 -07:00
Jake Potrebic
9e5e007003 Proxy ItemStack to CraftItemStack 2024-05-14 11:57:51 -07:00
Bjarne Koll
fcc777a0a8 Introduce registry entry and builders
Co-authored-by: kokiriglade <git@kokirigla.de>
2024-06-13 22:35:05 +02:00
Jake Potrebic
146cd1a015 Registry Modification API 2022-03-02 13:36:21 -08:00
Jake Potrebic
ada45eba8a Deprecate InvAction#HOTBAR_MOVE_AND_READD 2024-05-25 09:51:07 -07:00
SoSeDiK
4491c7e2ac Add missing fishing event state 2024-05-01 07:44:50 +03:00
Jake Potrebic
f09feba0f4 General ItemMeta fixes 2024-05-28 19:59:01 -07:00
Jason Penilla
236fa2126f Allow Bukkit plugin to use Paper PluginLoader API 2024-05-21 13:18:00 -07:00
Jake Potrebic
962554a0de Fix equipment slot and group API
Adds the following:
- Add missing 'body' slot group
- Expose LivingEntity#canUseSlot

Co-authored-by: SoSeDiK <mrsosedik@gmail.com>
2024-05-22 10:00:19 -07:00
Jake Potrebic
953ba33fc1 Fix issues with recipe API
Improves the validation when creating recipes
and RecipeChoices to closer match what is
allowed by the Codecs and StreamCodecs internally.

Adds RecipeChoice#empty which is allowed in specific
recipes and ingredient slots.

Also fixes some issues regarding mutability of both ItemStack
and implementations of RecipeChoice.

Also adds some validation regarding Materials passed to RecipeChoice
being items.
2024-05-12 10:42:42 -07:00
Owen1212055
69edd6d91f Brigadier based command API
Co-authored-by: Jake Potrebic <jake.m.potrebic@gmail.com>
2022-08-01 22:50:29 -04:00
SoSeDiK
fd8df6aeed More Chest Block API 2024-05-01 08:22:13 +03:00
nostalfinals
daebdc24e7 Added API to get player ha proxy address 2024-04-08 23:24:38 +08:00
SoSeDiK
5e1dc7cf47 Expose #hasColor to leather armor 2024-05-01 10:58:50 +03:00
SoSeDiK
925c5a6760 Add GameMode#isInvulnerable 2024-05-01 06:56:21 +03:00
Jason Penilla
cbb0d28ebe Add hook to remap library jars 2024-04-28 13:51:08 -07:00
Jason Penilla
d9e51980e6 Allow modifying library loader jars bytecode 2024-04-28 11:11:26 -07:00
Jake Potrebic
b0a676ba62 Fix ItemFlags
Adds new flag in HIDE_STORED_ENCHANTS which was split
from HIDE_ADDITIONAL_INFO. Adds a migration to account for
this, adding the new flag if the itemstack is old and had the
old flag.
2024-04-27 13:28:17 -07:00
Jake Potrebic
6fedaecd54 Fix SpawnerEntry$Equipment API 2024-04-26 17:00:00 -07:00
Jake Potrebic
6f0bb7dc5f More Raid API 2022-03-04 09:46:40 -08:00
Janet Blackquill
92b812ddc0 Add CartographyItemEvent
Similar to SmithItemEvent, but for cartography tables.
2024-04-07 16:51:04 -04:00
Flo0
c6e1625d87 API for checking sent chunks 2024-04-08 16:22:07 +02:00
Owen1212055
53c5e5da09 Item Mutation Fixes 2024-03-20 20:42:31 -04:00
Owen1212055
4092b60fa0 Deprecate ItemStack#setType 2024-02-29 17:54:26 -05:00
Badbird5907
1c53b54fd9 Add BlockBreakProgressUpdateEvent 2024-03-04 22:18:33 -05:00
Jake Potrebic
96f6033450 Clone mutables to prevent unexpected issues
There are lots of locations in the API where mutable
types are not cloned, either on return or when passed
as a parameter and assigned to a field, which can cause
unexpected behaviors. Let this be a lesson to use
immutable types for simple things Location, Vector, and
others.
2024-03-16 11:10:48 -07:00
vicisacat
d19f69b3eb Expanded Hopper API 2024-03-15 17:35:18 +01:00
Jake Potrebic
e18f6c6b55 Fix DamageSource API 2024-03-16 11:21:14 -07:00
Owen1212055
1725de0232 Suspicious Effect Entry API
Exposes a new suspicious effect entry type that properly represents
storable effects in the context of suspicious effects as they only
define the potion effect type and duration.

This differentiates them from the existing PotionEffect API found in
bukkit and hence clarifies that storable values in the parts of the API
in which it replaces PotionEffect.

Co-authored-by: Yannick Lamprecht <yannicklamprecht@live.de>
2024-03-03 19:45:52 +01:00
Yannick Lamprecht
3073742fd7 improve BanList types 2024-02-10 20:49:47 +01:00
David Mayr
3ebc5bb92c add number format api
Signed-off-by: David Mayr <davidliebtkekse@gmail.com>
2023-12-16 10:40:29 +01:00
vicisacat
8363e77ad2 Add FluidState API 2023-11-17 20:21:47 +01:00
Warrior
b9e525c8ec Add getChunkSnapshot includeLightData parameter 2024-02-10 10:05:59 +01:00
Yannick Lamprecht
de70580ea9 ItemStack Tooltip API 2024-01-22 13:27:18 +01:00
Jake Potrebic
eb68d0e1b5 Add Lifecycle Event system
This event system is separate from Bukkit's event system and is
meant for managing resources across reloads and from points in the
PluginBootstrap.
2023-07-18 14:47:02 -07:00
Luis
cf77104dbc Add api for spawn egg texture colors 2024-01-11 19:58:17 +01:00
Chase Henderson
bfe60b97f9 Add ShulkerDuplicateEvent 2024-01-05 03:50:10 -05:00
FireInstall
94c7a67620 Expose LootTable of DecoratedPot 2024-01-20 16:20:07 +01:00
Jake Potrebic
17df649613 Add BlockStateMeta#clearBlockState 2024-01-11 12:41:54 -08:00
Nassim Jahnke
607a4b2bdf Return null for empty String in NamespacedKey.fromString 2024-01-06 14:18:58 +01:00
Cryptite
bafc86226b Add PlayerShieldDisableEvent
Called whenever a players shield is disabled. This is mainly caused by
attacking players or monsters that carry axes.

The event, while similar to the PlayerItemCooldownEvent, offers other
behaviour and can hence not be implemented as a childtype of said event.
Specifically, cancelling the event prevents the game events from being
sent to the player.

Plugins listening to just the PlayerItemCooldownEvent may not want said
sideeffects, meaning the disable event cannot share a handlerlist with
the cooldown event.
2023-05-01 16:22:43 -05:00
Tamion
0a1e7d6d0f Add HiddenPotionEffect API 2023-11-05 09:50:48 +01:00
Jake Potrebic
27a62b6b53 Add drops to shear events 2021-05-18 12:31:54 -07:00
Jake Potrebic
a933298032 Add missing InventoryType
Upstream did not add a DECORATED_POT inventory type
2023-12-27 16:46:13 -08:00