Commit Graph

19430 Commits

Author SHA1 Message Date
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
masmc05
1cd7fd4eec Item serialization as json 2024-08-11 03:01:52 +03:00
Jake Potrebic
90bc5f1e0b Add FeatureFlag API 2024-05-29 19:50:21 -07:00
Newwind
e29ea45639 Check dead flag in isAlive()
If a plugin sets the health of a living entity above 0 after it has already died, the entity will be "revived".
It will behave the exact same as before, except with the internal "dead" flag set, resulting in 2 behavior changes,
A: it's completely invulnerable to all damage
B: it's unable to pickup items

isValid() for these bugged entities will return true, isDead() will return false, despite the dead flag.
This patch checks that the mob isn't dead before saying its alive.

Also, even if the plugin is responsibly checking !isDead() before modifying health, on very rare circumstances
I am currently unable to replicate, these "revived" entities can still appear
2024-08-26 14:01:37 +02:00
Nathan
7b8f630280 Fire BlockExpEvent on grindstone use 2024-08-31 18:09:55 -06:00
Tamion
2742ad6a9a Fix InventoryOpenEvent cancellation 2024-08-19 18:05:26 +02:00