Commit Graph

19035 Commits

Author SHA1 Message Date
Nassim Jahnke a5f3b29310 More lightning API 2020-07-26 14:44:16 +02:00
Nassim Jahnke 60d243ecc4 Add PlayerItemCooldownEvent 2020-08-25 13:45:15 +02:00
Anrza 5fa4ae1e90 Add LivingEntity#clearActiveItem 2020-07-15 12:07:58 +02:00
Ineusia 72ab93ca8a Add Destroy Speed API
Co-authored-by: Jake Potrebic <jake.m.potrebic@gmail.com>
2020-10-26 11:37:48 -05:00
Mariell Hoversholm 7ee931eaf2 Add API for quit reason 2020-11-14 16:19:58 +01:00
Jake Potrebic 40ac3e15db Beacon API - custom effect ranges 2020-06-24 12:38:15 -06:00
Alfie Smith dac5c6c48a Item no age & no player pickup 2020-11-07 01:20:27 +00:00
Mariell Hoversholm 9c8829553b Add ignore discounts API 2020-11-09 20:33:38 +01:00
oxygencraft 4226c7f7a4 Add getOfflinePlayerIfCached(String) 2020-10-25 18:35:58 +11:00
Trigary a3a9180c51 Player elytra boost API 2020-04-14 12:06:14 +02:00
William Blake Galbreath 60a89bc804 Villager#resetOffers 2019-10-07 00:15:28 -05:00
William Blake Galbreath 63c427de11 Entity#isTicking 2020-10-03 21:39:07 -05:00
MeFisto94 64f9dff6ef Expose the Entity Counter to allow plugins to use valid and non-conflicting Entity Ids 2020-08-28 01:41:31 +02:00
JRoy 110071a0e6 Add additional open container api to HumanEntity 2020-08-26 02:11:58 -04:00
ysl3000 124e1f8619 Create HoverEvent from ItemStack Entity 2020-07-06 22:17:37 +02:00
Jake Potrebic f610d0b477 Add methods to get translation keys
Co-authored-by: MeFisto94 <MeFisto94@users.noreply.github.com>
2020-08-11 19:17:46 +02:00
BillyGalbreath a3e3ba54a0 Add more Evoker API 2020-08-23 15:22:44 +02:00
William Blake Galbreath 52ec2a9db1 Add playPickupItemAnimation to LivingEntity 2020-08-23 19:36:08 +02:00
BillyGalbreath cbfa49ddb6 Add moon phase API 2020-08-23 16:32:03 +02:00
DigitalRegent 5df47beccf Brand support 2020-04-06 20:30:09 +02:00
Eearslya Sleiarion 3670ee6672 Add BellRingEvent
Add a new event, BellRingEvent, to trigger whenever a player rings a
village bell. Passes along the bell block and the player who rang it.
2019-06-24 21:27:39 -07:00
William Blake Galbreath 48046af5ef Add PrepareResultEvent / PrepareGrindstoneEvent
Adds a new event for all crafting stations that generate a result slot item

Anvil, Grindstone and Smithing now extend this event

Grindstone is a backwards compat from a previous PrepareGrindstoneEvent
2020-07-03 11:58:56 -05:00
William Blake Galbreath 6c89cc29e4 Add entity liquid API 2020-07-02 18:11:33 -05:00
Jake Potrebic e034549a33 added 2 new TargetReasons for 1.16 mob behavior 2020-07-03 15:05:54 -07:00
MiniDigger | Martin 53d5aca783 Support components in ItemMeta 2020-06-06 18:13:16 +02:00
LordKorea 20c3b04159 Add and implement PlayerRecipeBookClickEvent 2020-05-11 22:38:10 -04:00
Phoenix616 78acda62f2 Inventory getHolder method without block snapshot 2020-06-10 23:55:16 +01:00
JRoy 5b74f31a52 Potential bed API
Adds a new method to fetch the location of a player's bed without generating any sync loads.

getPotentialBedLocation - Gets the last known location of a player's bed. This does not preform any check if the bed is still valid and does not load any chunks.
2020-05-10 23:06:41 -04:00
Aikar 0d8c3dc008 Block Enderpearl Travel Exploit
Players are able to use alt accounts and enderpearls to travel
long distances utilizing the pearls in unloaded chunks and loading
the chunk later when convenient.

This disables that by not saving the thrower when the chunk is unloaded.

This is mainly useful for survival servers that do not allow freeform teleporting.

Note: Currently removed as enderpearls are ticked as long as their owner is online in 1.21.2.
Might be worth to re-add once an option to disable the above vanilla mechanic is added, to
fully prevent enderpearl travel exploits.

== AT ==
public net.minecraft.world.entity.projectile.Projectile ownerUUID
2018-04-30 17:15:26 -04:00
Jason Penilla cf7a1191a9 Allow using old ender pearl behavior
When enabled, ender pearls will not load chunks and will save to the world instead of the player.

== AT ==
public net.minecraft.world.entity.projectile.Projectile cachedOwner
2024-10-27 12:36:53 -07:00
Jason Penilla 21f51ebd74 Avoid issues with certain tasks not processing during sleep
Execute processQueue tasks during sleep: needed for console tab completions, pre join event, etc.

Upstream has set precedent that the bukkit scheduler will still tick during sleep, which avoids some problems
with plugins not accounting for the new sleep feature, but can still lead to others. Because of this we have disabled
sleep by default, which avoids the problem and makes it more obvious to check if this is the cause of issues when
enabled. We also unload chunks during sleep to prevent memory leaks caused by plugin chunk loads.
2024-10-27 14:18:28 -07:00
Riley Park 855db272b1 Bundle spark 2024-07-16 14:55:23 -07:00
Spottedleaf 29e03d0439 Add startup flag to disable gamerule limits
-DPaper.DisableGameRuleLimits=true will disable gamerule limits

== AT ==
public net.minecraft.server.level.ChunkLevel ENTITY_TICKING_LEVEL
2024-10-25 14:20:40 -07:00
Jason Penilla 1218a52ac9 Fix CraftWorld#isChunkGenerated
The upstream implementation is returning true for non-full chunks.
2024-06-18 12:43:06 -07:00
Flo0 35f6f25e78 API for checking sent chunks 2024-04-08 16:43:16 +02:00
Shane Freeder 8f7365707a Always send Banner patterns to the client
The mojang client will not remove patterns from a Banner when none
are sent inside of an update packet, given that this is not an expected
flow for them, this is not all too surprising. So, we shall resort to always
sending the patterns over the network for update packets.
2024-10-20 18:23:59 +01:00
Nassim Jahnke 3d14e7af19 Separate dimensiondata executor 2024-11-28 10:35:58 +01:00
Spottedleaf 7ec2cf09a3 Add proper async player disconnections
Blocking can cause performance problems
2024-10-16 06:41:32 -07:00
Doc e95dccb515 Add AnvilView#bypassEnchantmentLevelRestriction
Anvils, by default, limit applied enchantment levels to their respective
maximum level. The added API enables plugins to disable this behaviour,
allowing enchantments that are overleveled to be applied via the anvil.
2024-10-06 16:46:36 -03:00
Lulu13022002 f207099765 Add Offline PDC API 2022-07-09 17:28:42 +02:00
Axionize 66e26ebe48 Void damage configuration API 2024-09-29 14:20:42 -07:00
Mariell Hoversholm 411498e394 Add PlayerInsertLecternBookEvent 2024-09-29 16:21:26 +02:00
Jake Potrebic 5b0133e675 Call bucket events for cauldrons 2022-01-16 10:13:33 -08:00
Tamion 8b8acbb898 Add recipeBrewTime
== AT ==
public net.minecraft.world.inventory.BrewingStandMenu brewingStandData
2024-09-15 19:17:12 +02:00
Jake Potrebic cea3e6b65b Improve entity effect API 2024-09-27 17:13:16 -07:00
masmc05 da18fc4d93 Add enchantWithLevels with enchantment registry set 2024-09-25 16:26:04 +03:00
Nassim Jahnke c056e2319d Fix PlayerCommandPreprocessEvent on signed commands 2024-09-21 22:01:52 +02:00
Newwind f5e9df0862 Disable pretty printing for advancement saving
Reduces json size by about 25%
Not sure why advancements even had pretty printing enabled.
My best guess was by accident on mojang's part, especially since stats json files don't have pretty printing.
2024-09-20 14:17:37 +02:00
Bjarne Koll c8efaa46cb Remove wall-time / unused skip tick protection
Spigot still maintains some partial implementation of "tick skipping", a
practice in which the MinecraftServer.currentTick field is updated not
by an increment of one per actual tick, but instead set to
System.currentTimeMillis() / 50. This behaviour means that the tracked
tick may "skip" a tick value in case a previous tick took more than the
expected 50ms.

To compensate for this in important paths, spigot/craftbukkit
implements "wall-time". Instead of incrementing/decrementing ticks on
block entities/entities by one for each call to their tick() method,
they instead increment/decrement important values, like
an ItemEntity's age or pickupDelay, by the difference of
`currentTick - lastTick`, where `lastTick` is the value of
`currentTick` during the last tick() call.

These "fixes" however do not play nicely with minecraft's simulation
distance as entities/block entities implementing the above behaviour
would "catch up" their values when moving from a non-ticking chunk to a
ticking one as their `lastTick` value remains stuck on the last tick in
a ticking chunk and hence lead to a large "catch up" once ticked again.

Paper completely removes the "tick skipping" behaviour (See patch
"Further-improve-server-tick-loop"), making the above precautions
completely unnecessary, which also rids paper of the previous described
incompatibility with non-ticking chunks.
2024-09-16 23:07:29 +02:00
strnq 883f50eb19 Validate slot in PlayerInventory#setSlot
The CraftPlayerInventory implementation sends a container_set_slot
packet to the client which will error if an invalid slot is passed to
the setSlot method, making a validation necessary over simply silently
ignoring invalid slot values.
2024-09-14 12:53:13 +03:00