Commit graph

2620 commits

Author SHA1 Message Date
Jake Potrebic
6649a171dc
Fix BlockStateMeta equals (#10795) 2024-05-26 22:49:00 +02:00
Lulu13022002
ac4ee06c01
Fix integer overflow for lag compensating eating check (#10797) 2024-05-26 22:35:58 +02:00
Jake Potrebic
9774a52d11
fix and cleanup loot table patches (#10100)
* fix and cleanup loot table patches

* fixes
2024-05-26 12:51:15 -07:00
Lulu13022002
ca50b87947
Clear firework item properly (#10793) 2024-05-26 19:57:38 +02:00
Jake Potrebic
a7ae966530
readd itemstack data sanitization (#10454)
* readd itemstack data sanitization

* use autocloseable
2024-05-26 10:56:33 -07:00
Jake Potrebic
4e10fadfdc
reset meta block state on BlockStateMeta#setBlockState 2024-05-25 22:36:55 -07:00
Jake Potrebic
41bee55b53
Fix NPE for color-related metas
Fixes #10789
2024-05-25 19:55:51 -07:00
Janet Blackquill
f0bd0cca8f
Expose anvil cost in the API (#10682) 2024-05-26 01:47:14 +02:00
Jake Potrebic
26e90b9ffb
Fix CraftMetaBlockState for data components (#10731)
This will go on forever...
2024-05-25 16:37:35 -07:00
Lulu13022002
535dca56c2
Fix a few issues with ItemMeta (#10740) 2024-05-26 00:58:56 +02:00
TonytheMacaroni
377733d44c
Use getter/setter on Mob for equipment drop chances (#10780) 2024-05-24 19:52:54 +02:00
Shane Freeder
3004717b0e
Do not re-wrap vanilla goals (#10751)
There is no need to rewrap vanilla goals when they're being reregistered,
this breaks some expectations around behavior outside of general
wasting of resources.

Resolves: #10743
2024-05-24 16:22:41 +02:00
Jason Penilla
5e7b65a9a9
Allow using PluginLoader classpath API from Bukkit plugins (#10758)
Allows using the PluginLoader API without any of the other changes imposed by switching to a paper-plugin.yml.

Used by setting paper-plugin-loader in plugin.yml to the class name of your PluginLoader.

Also allows skipping the libraries field by setting paper-skip-libraries to true (by default both libraries and jars provided by the PluginLoader are added to the classpath).
2024-05-23 13:13:02 -07:00
Jake Potrebic
2a90732677
Remove incorrect logic for Fireball#setVelocity (#10764) 2024-05-23 12:48:11 -07:00
Jake Potrebic
6de7a1f052
Improve default item attributes API (#10765) 2024-05-23 11:44:07 -07:00
Jake Potrebic
3de408ee3e
Fix equipment slot and group API (#10767) 2024-05-23 10:39:44 -07:00
Jake Potrebic
a9201d4a7d
[ci skip] Move logic in our patches to ItemType/BlockType (#10772) 2024-05-23 10:32:02 -07:00
Jake Potrebic
b14958485d
Always show command exception stack traces in logs (#10766) 2024-05-22 10:24:09 -07:00
Jake Potrebic
d3ffa62b7f
fix default item attributes 2024-05-22 07:16:50 -07:00
Spottedleaf
980cff9f29 Fix compile 2024-05-21 08:41:36 -07:00
Spottedleaf
66cb880754 Remove ThreadedWorldUpgrader patch
The patch does not implement Vanilla forceUpgrade behavior.
Specifically, poi/entity conversion and regionfile recreation.

The Vanilla force upgrader is also no longer broken by CB, so the
bug fixes from this patch are not relevant anymore.
2024-05-21 08:21:28 -07:00
Jake Potrebic
7d2e5c33ea
Add an 'empty' RecipeChoice for certain ingredient slots (#10710) 2024-05-20 07:20:47 -07:00
Jake Potrebic
591521e697
Check for more correct profile validation (#10730) 2024-05-19 17:45:43 -07:00
Jake Potrebic
b3b340617e
fix CompassMeta not being correct (#10737) 2024-05-19 17:15:44 -07:00
Shane Freeder
0ad09de75b
Make PaperSimplePluginClassLoader show class which is not found 2024-05-18 21:17:54 +01:00
Jake Potrebic
5a9afbee65
Fixes issues in the suppress dismount cancellation patch (#10735) 2024-05-17 14:37:16 -07:00
Jake Potrebic
d8d59e0cde
Fix NPE sending resource pack without prompt
Fixes KyoriPowered/adventure#1075
2024-05-17 14:22:45 -07:00
Riley Park
f17519338b
Expose server build information (#10729)
* Expose server build information

* squash patches

* final tweaks

---------

Co-authored-by: Jake Potrebic <jake.m.potrebic@gmail.com>
Co-authored-by: masmc05 <masmc05@gmail.com>
2024-05-15 17:06:59 -07:00
Jason Penilla
3fc93581bb
Show stacktrace when modifyItemStack fails 2024-05-13 22:58:50 -07:00
Jason Penilla
2faa3b2f44 Correctly copy alias requirements in command upgrader
Fixes NPE when converting namespaced commands.

Since the brigadier command api, more aliased commands
(namespaced variants) are registered in the vanilla dispatcher,
which made this issue more apparent.
2024-05-13 15:55:15 -07:00
Spottedleaf
bebcc9cc93 Make exception during command conversion non-fatal
Instead of allowing chunks to fail to convert completely,
simply log the exception and the offending command. Command
conversion failure should never result in chunk data deletion,
as commands are not critical chunk data.
2024-05-13 14:40:02 -07:00
Jake Potrebic
0688f212f5
Better way to keep paper datapack enabled 2024-05-12 21:48:07 -07:00
Bjarne Koll
f041f48458
Prevent infinite recursion on cyclic brig redirect (#10705)
Prevent infinite recursion when declaring a cyclic relation between
command nodes via child nodes redirecting to an nth parent by marking a
command node as unwrapped before unwrapping its children.
2024-05-12 17:41:21 +02:00
Owen
7e48f66c05
Properly pass requirement on namespaced redirects (#10701) 2024-05-11 23:46:42 -07:00
Jason Penilla
711f82e01e
Fix signed book page serialization (#10696) 2024-05-12 00:13:18 +02:00
Jake Potrebic
ac554ad46d
Updated Upstream (Bukkit/CraftBukkit) (#10691)
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:
fa99e752 PR-1007: Add ItemMeta#getAsComponentString()
94a91782 Fix copy-pasted BlockType.Typed documentation
9b34ac8c Largely restore deprecated PotionData API
51a6449b PR-1008: Deprecate ITEMS_TOOLS, removed in 1.20.5
702d15fe Fix Javadoc reference
42f6cdf4 PR-919: Add internal ItemType and BlockType, delegate Material methods to them
237bb37b SPIGOT-1166, SPIGOT-7647: Expose Damager BlockState in EntityDamageByBlockEvent
035ea146 SPIGOT-6993: Allow #setVelocity to change the speed of a fireball and add a note to #setDirection about it
8c7880fb PR-1004: Improve field rename handling and centralize conversion between bukkit and string more
87c90e93 SPIGOT-7650: Add DamageSource for EntityDeathEvent and PlayerDeathEvent

CraftBukkit Changes:
4af0f22e8 SPIGOT-7664: Item meta should prevail over block states
c2ccc46ec SPIGOT-7666: Fix access to llama and horse special slot
124ac66d7 SPIGOT-7665: Fix ThrownPotion#getEffects() implementation only bringing custom effects
66f1f439a Restore null page behaviour of signed books even though not strictly allowed by API
6118e5398 Fix regression listening to minecraft:brand custom payloads
c1a26b366 Fix unnecessary and potential not thread-safe chat visibility check
12360a7ec Remove unused imports
147b098b4 PR-1397: Add ItemMeta#getAsComponentString()
428aefe0e Largely restore deprecated PotionData API
afe5b5ee9 PR-1275: Add internal ItemType and BlockType, delegate Material methods to them
8afeafa7d SPIGOT-1166, SPIGOT-7647: Expose Damager BlockState in EntityDamageByBlockEvent
4e7d749d4 SPIGOT-6993: Allow #setVelocity to change the speed of a fireball and add a note to #setDirection about it
441880757 Support both entity_data and bucket_entity_data on axolotl/fish buckets
0e22fdd1e Fix custom direct BlockState being not correctly set in DamageSource
f2182ed47 SPIGOT-7659: TropicalFishBucketMeta should use BUCKET_ENTITY_DATA
2a6207fe1 PR-1393: Improve field rename handling and centralize conversion between bukkit and string more
c024a5039 SPIGOT-7650: Add DamageSource for EntityDeathEvent and PlayerDeathEvent
741b84480 PR-1390: Improve internal handling of damage sources
0364df4e1 SPIGOT-7657: Error when loading angry entities
2024-05-11 23:48:37 +02:00
Owen
b98d20a8ac
Brigadier Command Support (#8235)
Adds the ability for plugins to register their own brigadier commands 

---------

Co-authored-by: Jake Potrebic <jake.m.potrebic@gmail.com>
Co-authored-by: Jason Penilla <11360596+jpenilla@users.noreply.github.com>
Co-authored-by: Bjarne Koll <lynxplay101@gmail.com>
2024-05-11 16:30:30 -04:00
Jake Potrebic
6c02dbcfa1
handle recent ItemMeta changes in serialization logic 2024-05-11 09:14:23 -07:00
Jake Potrebic
a61d58d467
adjust ItemMeta to distinguish null and empty modifiers
Fixes #10686 (again)
2024-05-11 07:16:23 -07:00
Jake Potrebic
cdb6ba8ef1
Fix keepalive time interval (#10690) 2024-05-10 17:23:58 -07:00
Jake Potrebic
39532a1f8c
Fix stacks losing empty attr modifiers
Fixes #10686
2024-05-10 12:05:07 -07:00
Jason Penilla
4fd58a1b8f
Add conversion for summon command 2024-05-10 12:57:07 +02:00
Nassim Jahnke
7f1a154d15
Add validation to player profile and properties (#10680) 2024-05-10 12:52:03 +02:00
Spottedleaf
8748ae16ac Use MCDataConverter instead of raw convert call for cmd converter
MCDataConverter uses the breakpoint system, which for future
updates may be neccesary (probably not).

Also, add the 1.20.6 version field.
2024-05-10 00:34:37 -07:00
Joseph Burton
2df1dace32 Fix DataConverter ConverterParticleToNBT.parseProperties
- The old code was using `StringReader.peek()` in a place where it meant to be `StringReader.skip()`.
- The vanilla code allows a trailing comma, but only if there is no whitespace between it and the closing bracket, which is a bit weird. I think that's a bug and it shouldn't allow trailing commas, but if you disagree then only the first issue needs to be fixed.
2024-05-10 00:32:31 -07:00
Spottedleaf
b56e92f3d4 Fix chunk data version check not running in chunk system
The old read() method should just redirect to the new
chunk system method, however due to an error in moving
the chunk system patch around the data version check was
left in the old (UNUSED) read() method.
2024-05-09 23:47:13 -07:00
Spottedleaf
cc29d2b7d5 Invalidate PathTypeCache when pathfinding updates are disabled
The configuration should not allow the cache to break. Additionally,
invalidating the cache is cheap and as such there is no gain to avoid
invalidating it.
2024-05-09 23:07:32 -07:00
Spottedleaf
1b67e02385 Fix entity tracker desync when new players are added to the tracker
The delta position packet instructs the client to update
the entity position by a position difference. However, this position
difference is relative to the last position in the entity tracker
state, not the last position which has been sent to the player. As
a result, if the last position the player has recorded is different
than the one stored in the entity tracker (which occurs when a new
player is added to an existing entity tracker state) then the sent
position difference will cause a position desync for the client.

We can resolve this problem by either tracking the last position
sent per-player, or by simply resetting the last sent position
in the entity tracker state every time a new player is added.
Resetting the last sent position every time a new player is
added to the tracker is just easier to do, so that is what
this patch does.
2024-05-09 17:08:59 -07:00
Nassim Jahnke
f2512b1238
Print data component type on encoding error 2024-05-09 15:12:12 +02:00
Shane Freeder
5729b294ee
Update Adventure to 4.17.0 Release 2024-05-08 15:48:45 +01:00
Bjarne Koll
eee55d019f
Correctly compare holders in BeaconMenu (#10673) 2024-05-07 18:18:57 -07:00
Lulu13022002
89ad61fd00
Fix hopper pull event being skipped after the first call (#10667) 2024-05-07 14:28:45 +02:00
Jason Penilla
9e51f94941
Fix ping event always receiving protocol version 0 (#10671) 2024-05-07 14:24:45 +02:00
Jake Potrebic
ac3a5471c8
Fix BlockStateMeta (#10647)
* Fixes CraftMetaBlockState block entity data components

* rebase and merge into general item meta fix

* Add javadoc notice

* Update message

---------

Co-authored-by: Bjarne Koll <lynxplay101@gmail.com>
2024-05-05 12:56:46 -07:00
SoSeDiK
2a6a5fef59
Add a way to check whether the chest is blocked (#10635)
* More Chest Block API

* rebased and slight logic fixes
2024-05-05 10:57:28 -07:00
Bridge
21d91ce634
Prevent profile lookups when unnecessary (#10651) 2024-05-05 19:07:30 +02:00
Tamion
716dfd8698
Fix EntityLoadCrossbowEvent (#10645)
* fix

* hehe
2024-05-05 09:54:04 -07:00
NonSwag
54c5ecb4e4
Add missing SpigotConfig logCommands check (#10659) 2024-05-05 18:41:02 +02:00
Nostal Yuu
0e43d3c103
Added API to get player's proxy address (#10400) 2024-05-05 18:39:32 +02:00
Jake Potrebic
9d8d38d137
Updated Upstream (CraftBukkit) (#10646)
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:
66fd94322 SPIGOT-7652: Remove remap for SPELL_MOB_AMBIENT which no longer exists
ecfa4f973 SPIGOT-7654: ItemStack#isSimilar does not work with empty BlockStateMeta
4460ecc49 SPIGOT-7655: ItemMeta#addItemFlags(ItemFlag.HIDE_ATTRIBUTES) not working when no attribute modifiers set
5d84f48a4 SPIGOT-7653: Update ApiVersion.CURRENT with latest version and include tests
2024-05-05 18:08:55 +02:00
Lulu13022002
b13c7dbe36
Add missing experimental field and annotations (#10653) 2024-05-05 09:00:54 -07:00
Bjarne Koll
7ae2c671c6
Keep components using single items in creative (#10664)
The craftbukkit implementation stores the old and new data patch of an
item during ItemStack#useOn(UseOnContext) to properly cancel events via
comparison and change detection of the component patch.

However, it uses #getComponentsPatch to fetch the new stack component
patch, which always yields an empty patch set if an itemstack is
considered empty by the game.
As the restoration of an itemstack's count to its previous state is
handled after the entire ItemStack#useOn method, items used in creative
mode temporarily have a count of zero, which causes craftbukkit to
consider their new component patch as EMPTY even tho said item may have
data.
The new patch is applied and, after useOn completes, the count is reset
if the player is in creative mode, leading to lost data.

This commit fixes said inconsistency by directly accessing the
components of the item via components#asPatch, storing the proper
component patch even for an item that temporarily has a count of zero.
2024-05-05 11:40:36 +02:00
Jake Potrebic
7401313e16
fix shear drops for wolf and bogged
Fixes #10661
2024-05-04 22:48:10 -07:00
Nassim Jahnke
6fcca46674
Add missing step in V3818 2024-05-04 22:50:20 +02:00
Jake Potrebic
5632210f10
add RegistryAccess for managing registries (#10154)
* add RegistryAccess for managing registries

* add missing types to key data generator

* fix some stuff

* Add RegistryKeys for all other non-server-backed registries

* fix tests

* remove Experimental annotations
2024-05-04 11:22:35 -07:00
Joseph Burton
156675c773
Fix lodestone compass target conversion 2024-05-04 12:58:06 +02:00
Joseph Burton
0db72ac19e
Fix can_place_on conversion and size check for item containers 2024-05-02 20:23:15 +02:00
Shane Freeder
59fe7ccc3b
default save-empty-scoreboard-teams to vanilla
The primary environmental factor which caused this feature to be implemented
is no longer much of a factor within the community
2024-05-02 09:53:43 +01:00
SoSeDiK
544ce20e01
Expose #hasColor to leather armor (#10638) 2024-05-01 19:14:42 +02:00
Nassim Jahnke
310b47bb96
Update Java version references, add note on var usages 2024-05-01 18:44:39 +02:00
Andrew Teeter
b8c454c2ba
Add damage check for mending (#10631) 2024-05-01 12:01:48 +02:00
SoSeDiK
4cfd9e25fa
Expose canReach to mob pathfinding API (#10636) 2024-05-01 12:00:11 +02:00
Jake Potrebic
fa6013d83b
Fixes beds not exploding in the nether
Also correctly marks the captured BlockState as "unplaced"
Fixes #10629
2024-04-30 16:42:43 -07:00
Nassim Jahnke
937a67a651
Add initial size cap to component map 2024-04-30 11:14:35 +02:00
Jason Penilla
3fdd0948b7
Fix sealed package check in BytecodeModifyingURLClassLoader (#10627) 2024-04-30 01:21:16 -07:00
Jake Potrebic
25e44bc63b
fix dumpitem command nbt format
use the snbt visitor instead of plain string
2024-04-29 18:49:19 -07:00
Jake Potrebic
812ccb96a4
fix spawnChunkRadius gamerule resetting
Fixes #10622
2024-04-29 15:22:29 -07:00
Noah van der Aa
44ee092878
1.20.6 (#10623) 2024-04-30 00:16:07 +02:00
Bjarne Koll
8f7ac62905
Validate manifest provided mapping namespace (#10612)
With plugins adopting paperweights mapping namespaces in their manifest
file in and after paper 1.20.5, incorrectly spelled namespaces
previously were simply implied as the spigot namespace.

This commit properly ensures plugin authors are using a known mapping
namespace in their manifest, avoiding down the line confusion on
incorrect remapping behaviour.

The commit also fixes two incorrect log parameters.
2024-04-28 20:43:50 -07:00
Jake Potrebic
f9397e108e
Fix incorrect Commodore mapping of sweeping enchant 2024-04-28 17:25:21 -07:00
Jake Potrebic
69a971a35c
Reset component prototype on itemtype change 2024-04-28 17:13:30 -07:00
Jason Penilla
05308fc299
Remap plugin libraries with namespace set to spigot (#10610)
* Remap plugin libraries with namespace set to spigot

* Remap plugin libraries with namespace set to spigot
2024-04-28 14:55:10 -07:00
Jason Penilla
7f2d5315fd
Rewrite reflection in library loader jars (#10608)
* Rewrite reflection in library loader jars

* Address todos
2024-04-28 13:14:10 -07:00
Jake Potrebic
61c9c07e95
Fix CraftMetaBlockState adding extra tags 2024-04-28 12:34:16 -07:00
Shane Freeder
52ff3b7382
Add itemName components (Resolves #10467) (#10471)
* Add itemName components (Resolves ##10467)

* improve javadocs and formatting

* rebased

---------

Co-authored-by: Jake Potrebic <jake.m.potrebic@gmail.com>
2024-04-28 10:08:59 -07:00
Jake Potrebic
0f4d328fc1
final missing validation for data components 2024-04-28 09:46:33 -07:00
Nassim Jahnke
aed7dcab98
Fix overly strong name validation in player heads
Closes #10477
2024-04-28 18:25:32 +02:00
Jake Potrebic
4491ac05d1
respect hard list size limits in ItemMeta 2024-04-28 09:06:14 -07:00
Nassim Jahnke
9d6e7e3df0
Don't hard fail on plugin remap error
Closes #10474
2024-04-28 17:25:44 +02:00
Jake Potrebic
c4a1cd137a
Fix issue with empty lists in adventure predicates
Fixes #10473
2024-04-28 08:22:16 -07:00
Shane Freeder
37b3891032
Fix another missing book meta tag 2024-04-28 13:48:20 +01:00
Shane Freeder
6e31f385e3
Fix book meta lacking resolved tag from older versions (Fixes #10470) 2024-04-28 13:22:54 +01:00
Nassim Jahnke
1a03cc9b60
Fix test compilation 2024-04-28 14:20:52 +02:00
Jake Potrebic
306b203c2d
more fixes for ItemMeta relating to components 2024-04-27 22:27:51 -07:00
Jake Potrebic
e16263c39f
Fix firework meta NPE
Fixes #10466
2024-04-27 20:57:42 -07:00
caramel
a3c4dc95e3
Fix the incorrect codec usage in the Style convert (#10465) 2024-04-27 20:32:11 -07:00
Jason Penilla
f187fd696a
Only scan org.bukkit.craftbukkit.inventory in MetaHandledTagsTest
fixes tests OOMing
2024-04-27 18:25:15 -07:00
Jake Potrebic
d93c6f91f7
remove calls to DoNotUse methods 2024-04-27 18:18:20 -07:00
Jake Potrebic
3e90a19183
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:
304e83eb PR-1002: Improve documentation and implementation of getMaxStackSize
e8215ea2 SPIGOT-7638: Library loader does not seem to resolve every dependency
79c595c0 SPIGOT-7637: Bad logic in checking nullability of AttributeModifier slots

CraftBukkit Changes:
91b1fc3f1 SPIGOT-7644: Fix ItemMeta#getAsString
4e77a81e1 SPIGOT-7615: PlayerLeashEntityEvent cancelled eats lead
996f660f3 Do not remove leash knot if leasing to an existing leash knot gets cancelled
f70367d42 SPIGOT-7643: Fix inverted leash event cancelled usage and remove leash knot if no entity gets leashed
7ddb48294 SPIGOT-7640: Abnormal jumping height of wind charge
080c8711e SPIGOT-7639: Incoming plugin channels not working
ad549847e Open a direct connection instead of pinging mojang server to check if it is reachable
38e2926c5 SPIGOT-7365: DamageCause blocked by shield should trigger invulnerableTime
2024-04-27 18:00:01 -07:00
Jake Potrebic
d964c15e15
fix last test issue 2024-04-27 17:45:37 -07:00