Commit graph

2955 commits

Author SHA1 Message Date
Shane Freeder
c92072e21d nerf nether search radius config (#4781) 2021-01-11 01:44:06 +00:00
Shane Freeder
8a917b49f4 clone POI blockpos before dispatching 2021-01-10 18:36:38 +00:00
Aikar
1105e1ec76 Optimize Loaded Chunks Cache Lookups
Reduces number of instructions a chunk lookup does
when accessing the last chunk cache. This reduces amount of work and opcodes
and allows better inlining.

In lots of profiling comparisons, this optimization was able to reduce the
cost of repeated chunk lookups that hit the cache pretty significantly.
2021-01-09 18:09:09 -05:00
Shane Freeder
442fa32443 Ensure POI removal occurs on the correct thread 2021-01-09 13:32:26 +00:00
Shane Freeder
3a358f7e70 Remove stale POIs 2021-01-09 14:19:17 +01:00
Prof-Bloodstone
f11f1f32f5 Remove patch for not searching for portal creation when looking down (#5031)
Previous commit bb02d0383 pulled upstream change that implements the exact same fix.

CB change: 7029c0a8f3

Co-authored-by: Professor Bloodstone <git@bloodstone.dev>
2021-01-09 12:28:28 +01:00
Matthew Miller
728fb4ecd4 Add API to get exact interaction point in PlayerInteractEvent (#4995) 2021-01-08 15:26:51 +10:00
Mariell Hoversholm
f463a0b97c Empty commands shall not be dispatched
Fixes PaperMC/Paper#5018.
2021-01-06 23:41:42 +01:00
Jake Potrebic
1b82f95755 Configurable door breaking difficulty 2021-01-03 22:28:18 -08:00
lukas81298
161726557c don't search for portal creation when looking down 2021-01-05 15:14:35 +01:00
Shane Freeder
bc2999f578 Print name of busted server config files 2021-01-05 11:21:03 +00:00
Jake Potrebic
fb045c7249 Added PlayerLoomPatternSelectEvent 2020-11-25 16:37:34 -08:00
Ivan Pekov
6eeef75460 Reimplement GS4QueryEvent 2020-12-09 09:21:19 +02:00
Jake Potrebic
4048b356d0 Added PlayerLecternPageChangeEvent 2020-11-23 12:59:17 -08:00
TheViperShow
5e08466cc1 Add BlockFailedDispenseEvent
Co-authored-by: MiniDigger | Martin <admin@minidigger.dev>
2020-11-29 00:38:52 +01:00
Jake Potrebic
3ca5850362 Added world settings for mobs picking up loot 2020-11-28 18:46:44 -08:00
Jake Potrebic
d2e5086e43 Added ServerResourcesReloadedEvent 2020-12-02 20:05:09 -08:00
Jake Potrebic
d37d042ff1 colorful itemdump 2020-12-07 18:10:22 -08:00
Jake Potrebic
1c87fa89f9 Added WorldGameRuleChangeEvent 2020-12-20 16:42:33 -08:00
HexedHero
3e15f5aabc Guardian beam workaround 2020-12-31 22:45:30 +00:00
Mariell Hoversholm
542d7df36b Support spawning item stacks 2020-11-14 19:11:20 +01:00
Jake Potrebic
d0f7408554 added height config for bamboo 2020-11-11 17:48:12 -08:00
Josh Roy
023ec47e68 Add EntityLoadCrossbowEvent 2020-10-07 12:04:42 -04:00
stonar96
0367dabcb2 Add Anti-Xray bypass permission
This is a frequently requested feature. The permission is
'paper.antixray.bypass'.
2020-08-07 08:11:56 +02:00
Jake Potrebic
96fc8c1353 fix for nerfed slime mobs splitting 2020-07-17 13:34:50 -07:00
Jake Potrebic
32f9130749 Zombie API - breaking doors 2020-11-18 11:33:29 -08:00
TheMolkaPL
7035d57399 Fix interact event not being called in adventure 2020-06-21 17:25:24 +02:00
MisterVector
428affde24 Add PlayerFlowerPotManipulateEvent 2019-08-13 21:47:06 -07:00
Andrew Steinborn
bd0e8d65a8 Redact Velocity forwarding secret properly (#4980) 2021-01-01 23:59:30 -05:00
BrodyBeckwith
8902bc3512 Allow disabling mob spawner spawn egg transformation 2020-10-09 20:35:57 -04:00
lukas81298
0e12991f69 Cache burn durations 2020-12-27 23:00:27 +01:00
lukas81298
3f56fafda8 Optimized tick ready check 2020-12-29 14:14:43 +01:00
Matthew Miller
fffed3cf0a Add API to get the Material of Boats and Minecarts 2020-12-31 12:51:43 +10:00
Mariell Hoversholm
5a8ce7f006 Fix sign lazy initialisation
Fixes PaperMC/Paper#4975
2021-01-01 14:35:38 +01:00
Jake Potrebic
e11560e965 Updated Upstream (CraftBukkit/Spigot) (#4972)
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

CraftBukkit Changes:
560b65c4 #707, SPIGOT-5063, SPIGOT-5304, SPIGOT-5656, SPIGOT-3206, SPIGOT-5350, SPIGOT-5980, SPIGOT-4672: Persist the exact internal text representation where possible.

Spigot Changes:
ff439d1e Rebuild patches
2020-12-31 20:03:19 -08:00
PepperCode1
2e7b860b56 Fix harming potion dupe
EntityLiving#applyInstantEffect() immediately kills the player and drops their inventory.
Before this patch, instant effects would be applied before the potion ItemStack is removed and replaced with a glass bottle. This caused the potion ItemStack to be dropped before it was supposed to be removed from the inventory. It also caused the glass bottle to be put into a dead player's inventory.
This patch makes it so that instant effects are applied after the potion ItemStack is removed, and the glass bottle is only put into the player's inventory if the player is not dead. Otherwise, the glass bottle is dropped on the ground.
2020-07-23 14:29:02 -07:00
Aikar
8147d0ec71 Additional Block Material API's
Faster version for isSolid() that utilizes NMS's state for isSolid instead of the slower
process to do this in the Bukkit API

Material#isSolid uses a large switch statement which isn't as performant vs a simple boolean return

Adds API for buildable, replaceable, burnable too.
2020-12-30 19:43:45 -05:00
Aikar
eee1fedc1e Micro Optimize DataBits
There was 2 unnecessary lines of code in a core method used for DataBits
that repeatedly calculated a static value.

We now just precalculate that in the constructor and reuse the value instead.

This is a micro optimization, but this is some of the hottest code in the server so
it should provide some minor gains as well as improve inlining.

Additionally, to further help inlining, mark the DataBits methods as final.
2020-12-30 14:02:44 -05:00
Jason Penilla
b9744db06b Add and implement cancellable TargetHitEvent for when Target Blocks are hit by Projectiles 2020-11-26 00:30:08 -08:00
Jake Potrebic
93a75a9588 Add OBSTRUCTED result to BedEnterResult enum 2020-12-24 12:44:34 -08:00
Automated
0c40a013dd [CI-SKIP] [Auto] Rebuild Patches
A recent commit has been made that caused patches to be out of order, rebuilding
2020-12-28 07:11:59 -05:00
Jake Potrebic
43a4ab7b04 added PlayerTradeEvent 2020-07-02 16:14:36 -07:00
Shane Freeder
25980711f0 Do not crash from invalid ingredient lists in VillagerAcquireTradeEvent 2020-12-27 11:31:49 +00:00
Toshimichi0915
cfebf1baa7 Fix lead duplication 2020-12-25 01:31:13 -05:00
Matthew Miller
cfd2fcf443 Add API to get Tile Entities in a Chunk by Predicate 2020-12-18 21:24:21 +10:00
Jake Potrebic
5583c8c007 fix book page limit length (#4932) 2020-12-23 14:52:56 -08:00
Mark Vainomaa
ec665f60d2 Expose LivingEntity hurt direction 2020-12-22 22:32:15 +01:00
Shane Freeder
08f196719f Do not perform neighbour updates when using debug stick (Fixes #2134)
CB blindly drops any update flags when recording block modifications,
this causes the debug stick to blindly update neighbouring blocks on usage
in order to control this, we will special case this item, however, this
ideally should be fixed by recording the actual update flags used,
but will induce ABI breaks...

This patch also maintains the behavior of the BlockPlaceEvent, this
behavior will NOT be guaranteed in the future, however.
2020-12-22 22:45:10 +00:00
Aikar
319895bd9d Optimize Dynamic#get Missing Keys
get was calling toString() on every NBT object that was ever asked for an optional
key from the object to build a string for the error text.

When done on large NBT objects, this was using a ton of computation time building the
JSON representation of the NBT object.

Now we will just skip the value when 99.9999% of the time the text is never even printed.
2020-12-21 11:03:36 -05:00
Shane Freeder
49458cc927 Updated Upstream (Bukkit/CraftBukkit)
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:
6f9fe1d9 #562: Add API to set equipment silently
bcddb754 SPIGOT-6256: Add method to check if the entity is in water

CraftBukkit Changes:
878b4375 #772: Add API to set equipment silently
22d7fcc9 SPIGOT-6256: Add method to check if the entity is in water
2020-12-21 07:56:22 +00:00
Bastian Oppermann
fdaae06cdf Adjust bStats data sending delay (#4914)
Many servers tend to restart at a fixed time at xx:00 which causes an
uneven distribution of requests on the bStats backend. To circumvent
this problem, this commit introduces some randomness to the initial
and second delay.
2020-12-20 16:41:00 +01:00
Simon Gardling
3ce9dfed51 Fix typo in 0368-Asynchronous-chunk-IO-and-loading.patch 2020-12-17 19:24:11 -05:00
BillyGalbreath
c7c5f0241b Fix CraftSound backwards compatibility 2020-12-17 15:28:31 -06:00
MiniDigger | Martin
6c95759a00 Let some more packets be send immediately, closes #4140 (#4896)
Signed-off-by: MiniDigger | Martin <admin@minidigger.dev>
2020-12-16 23:16:03 +01:00
cakoyo
7a84defae4 Emancipate more features to PlayerHandshakeEvent
* The hostname and socket address was not null when the event fired, but the event does not provide the value, the change allows plugins to use the old value.
* Since `proxyLogicEnabled` will be checked after the event fired, to check the config value will allow plugins to modify it during the event handling.

Signed-off-by: MiniDigger | Martin <admin@minidigger.dev>
2020-12-16 21:43:09 +01:00
ysl3000
11a4045767 Player Chunk Load/Unload Events
Co-authored-by: Mariell <proximyst@proximyst.com>
2020-10-31 23:06:21 +01:00
BillyGalbreath
3e5a38ccf5 MC-4 Fix item position desync 2020-12-14 09:05:29 -06:00
Shane Freeder
c184de4050 Limit auto recipe packets 2020-12-12 23:53:40 +00:00
BillyGalbreath
6ce7d63918 Fix curing villager makes equipment disappear 2020-12-08 22:21:54 -06:00
Shane Freeder
c81621d172 Tick inactive goal selectors 2020-12-09 20:31:08 +00:00
MiniDigger | Martin
62c0f6553e fix 4878 by always calling events using bukkit singleton 2020-12-09 21:09:54 +01:00
BillyGalbreath
896033a959 Fix MC-181190 curing zombie villager discount exploit (#4871) 2020-12-08 21:56:22 -06:00
Jake Potrebic
8c473e7fcd deprecate IllegalPacketEvent (#4867) 2020-12-07 23:51:55 -08:00
William Blake Galbreath
d6057372b4 Add #getEligibleHumans to SkeletonHorseTrapEvent 2020-08-23 21:57:55 +02:00
Mariell Hoversholm
889192e8f8 Fix merging spawning values 2020-12-05 14:59:05 +01:00
Jake Potrebic
43d8c6fcd4 Turn off spigot verbose world by default 2020-12-02 20:20:59 -08:00
MiniDigger | Martin
7e7a3d372a Fix Delegation to vanilla chunk gen
This broke in 1.16.1, when upstream changed stuff around and introduced this delegate field.

Closes #4097
2020-11-24 18:58:34 +01:00
Jake Potrebic
1023360683 fixed bug in jvm checker (#4845) 2020-12-04 19:58:24 -08:00
Kyle Wood
08835cda45 Enable Multi-Release plugin jar support
Fixes #4841
2020-12-04 15:57:46 -08:00
Automated
256a700c8d [Auto] Updated Upstream (CraftBukkit)
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

CraftBukkit Changes:
5b747147e Increase outdated build delay
2020-12-03 03:37:01 -05:00
Kyle Wood
233273702f Add warning for servers not running on Java 11 2020-12-02 22:27:03 -08:00
Josh Roy
209f04eab2 Add PlayerShearBlockEvent 2020-08-27 15:39:24 -04:00
Jake Potrebic
e2da9f79e2 added missing default perms 2020-11-16 12:05:51 -08:00
Professor Bloodstone
c53e8d6220 Add summary to /paper chunkinfo command 2020-08-25 22:34:46 +02:00
William Blake Galbreath
427a4c9dd8 Climbing should not bypass cramming gamerule 2020-08-23 21:34:23 +02:00
MiniDigger | Martin
01fe745c90 Add legacy plugin count to metrics 2020-05-11 22:18:58 +02:00
Nassim Jahnke
7c3f274871 Add more lightning API 2020-07-26 14:46:14 +02:00
Nassim Jahnke
744cdf7512 Add PlayerItemCooldownEvent 2020-08-25 14:01:03 +02:00
Anrza
89bdd85933 Add LivingEntity#clearActiveItem 2020-07-15 12:11:31 +02:00
Esophose
7cb939e3a3 Fix Player spawnParticle x/y/z precision loss 2020-10-03 19:00:20 -06:00
Shane Freeder
2e2d31ae89 Fix keep-spawn-loaded stopping force-loaded chunks from loading
Also, cleanup the patch a little bit
2020-12-01 13:23:44 +00:00
Ineusia
14189f531d Add getDestroySpeed to Block API
Co-authored-by: MiniDigger | Martin <admin@minidigger.dev>
2020-07-18 19:29:40 -05:00
Josh Roy
603d4bb5a6 Fix cast check (#4813) 2020-11-27 13:07:41 -05:00
Mark
8996aa88cd Expose world spawn angle (#4803) 2020-11-27 19:27:52 +02:00
Shane Freeder
036bb4e24a Updated Upstream (Bukkit/CraftBukkit)
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
Actually rebuild patches this time...

Bukkit Changes:
19b7b7bd #561: Add clear weather World API
5929c808 #552: Add the ability to retrieve hit, step, fall, and other sounds from blocks.

CraftBukkit Changes:
e1ebdd92 #771: Add clear weather World API
424598d2 #752: Add the ability to retrieve hit, step, fall, and other sounds from blocks.
2020-11-25 23:49:06 +00:00
stonar96
2760588808 Preserve order and allow multiple equal blocks in hidden-blocks of Anti-Xray (#4072)
* Preserve order of hidden-blocks in Anti-Xray

This small change allows to specify and predict the order in which
Anti-Xray uses the hidden-blocks in engine-mode 2. The order is
preserved as specified in the hidden-blocks list. This can be useful,
for example, when adding air to the hidden-blocks to predict which fake
ores should be exposed to fake air.

* Allow to add equal blocks multiple times to hidden-blocks

This adds the ability to add equal blocks multiple times to the
hidden-blocks of Anti-Xray in engine-mode 2. Thus it is possible to give
certain blocks different priorities in Anti-Xray. For example if air and
diamond_ore are added twice, the obfuscated chunk will contain twice as
many air and diamond_ore blocks as other blocks in the list.
2020-11-24 17:59:04 +01:00
SuperCoder7979
72ea212bec Significantly improve performance of the end generation
This patch implements a noise cache for the end which significantly reduces the computation time of generation. This results in about a 3x improvement.

Original code by SuperCoder7979 and Gegy in Lithium, licensed under LGPL-3.0 (Source: https://github.com/jellysquid3/lithium-fabric)

Co-authored-by: Gegy <gegy1000@gmail.com>
Co-authored-by: Dylan Xaldin <Puremin0rez515@gmail.com>
Co-authored-by: pop4959 <pop4959@gmail.com>
2020-11-05 21:37:46 -06:00
Jason Penilla
9d76d7a887 Add Wandering Trader spawn rate config options 2020-09-23 10:28:11 -07:00
Jason Penilla
ca25d24197 Villager resetOffers API 2020-10-03 21:20:10 -07:00
Mariell Hoversholm
db1f178a92 Patch 2 references an invalid variable 2020-11-14 16:54:25 +01:00
Gabscap
5991698388 [CI-SKIP] Remove Waving banner fix (#4786)
Mojang fixed it in MC-63720
2020-11-19 16:15:16 +01:00
Jake Potrebic
ad0aae4e0f Updated Upstream (Bukkit/CraftBukkit) (#4779)
Upstream has released updates that appears 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:
f47abd88 SPIGOT-6242: Fix some file line endings
de96535b SPIGOT-6234: enum classes don't serialize properly when implementing ConfigurationSerializable

CraftBukkit Changes:
4475707d SPIGOT-6244: /spawnpoint ignores angle
8b3b096d SPIGOT-6242: Fix some file line endings
4b33c749 SPIGOT-6186: Canceling a CreatureSpawnEvent​ results in a "Unable to summon entity due to duplicate UUIDs" error
2b3ca726 SPIGOT-6236: Vehicle passenger portal cooldown does not change
2020-11-17 19:45:18 -08:00
Max Lee
217e1311f4 Backport feature search improvement from 1.17 (Fixes #2312) (#4771) 2020-11-14 23:50:11 +01:00
Mariell Hoversholm
5d66ba7613 Add API for quit reason
The following has been tested:
- Disconnect from menu -> DISCONNECTED
- EssentialsX kick -> KICKED
- Suspend server JVM -> DISCONNECTED
- Suspend client JVM -> TIMED_OUT
- Call #exceptionCaught -> ERRONEOUS_STATE

Suspension was done through `kill -STOP` and subsequently `kill -CONT`
after the player has (been) disconnected.

Closes #254.
2020-11-14 16:23:10 +01:00
Mariell Hoversholm
e23a6d6674 Updated Upstream (CraftBukkit)
Upstream has released updates that appears to apply and compile correctly.
This update has not been tested by PaperMC and as with ANY update, please do your own testing

CraftBukkit Changes:
23618b2c SPIGOT-6240: Use correct portal search radius
2020-11-13 20:07:38 +01:00
BillyGalbreath
2271d88dc1 Fix per-world settings not reloading (#4756) 2020-11-11 22:58:42 -06:00
Jason Penilla
add661a180 Fix NPE thrown when converting MerchantRecipe from Bukkit to NMS (#4755)
This bug was introduced in c451989b86 (Add ignore discounts API)
2020-11-11 19:35:44 -08:00
Mariell Hoversholm
c451989b86 Add ignore discounts API 2020-11-09 20:45:38 +01:00
Jake Potrebic
21e0ef27f1 Add custom ranges to beacons
Adds 3 methods to the Beacon block state to set a custom range for the beacon.
One to set the range, one to get the range, and one to reset the range
(aka go back to using the default range-by-beacon-tier system).
2020-06-28 01:20:49 -06:00
Alfie Smith
867d1d5de7 Item no age & no player pickup 2020-11-07 01:23:06 +00:00