ab97e06 fix compile issues and more formatting/style fixes - Machine-Maker
#paper
1 messages ยท Page 11 of 1
[PaperMC/Paper] Issue opened: #10850 NoSuchMethodError: org.bukkit.entity.Fireball.getAcceleration()
Expected behavior
The method from Spigot 1.20.6 exists according to the docs: https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/entity/Fireball.html and is compatible with Paper 1.20.6
Observed/Actual behavior
Server error:
java.lang.NoSuchMethodError: 'org.bukkit.util.Vector org.bukkit.entity.Fireball.getAcceleration()'
Steps/models to reproduce
Run a server on the latest version of Paper: paper-1.20.6-130.jar
Plugin and Datapack List
Reproducible on a bare installation of paper-1.20.6-130.jar
Paper version
paper-1.20.6-130.jar
Other
No response
We haven't updated from upstream yet. However, Paper already exposed the fireballs acceleration (under the name Power), so you can just use that until we update from upstream.
Expected behavior
entity.damage() applies no knockback, .damage() with damagesource always applies knockback, even if you leave out location or set locaiton to entities location, there should be a way to have no knockback from it
Observed/Actual behavior
N/A
Steps/models to reproduce
livingEntity.damage(0.1);
.damage() with no damage source params, vs .damage() with damage source
livingEntity.damage(0.1, DamageSource.builder(DamageType.MOB_PROJECTILE)
.withCausingEntity(shooter)
.withDirectEntity(projectile)
.build());
Plugin and Datapack List
N/A
Paper version
Paper 1.20.4
Other
No response
The knockback is based in the rules of NMS.
In the case of the damage method with not DamageSource is handled by the generic DamageSource that not include knockback, the method with the DamageSource is "parsed" to the NMS DamageSource if you pass a entity making de damage (withDirect..) then this make a knockback, in NMS the logic for knockback (ignoring a thing about the last damage/invulnerability) is if the damage is not included in the tag for no_knockback and exists a entity making the damage.
that is what i check unless i missing something.
An add method here would be nice
Idk if I like this in terms of (expected) API behavior, even if it's technically correct
datacomponent package or similar, component is too generic/amiguous
0d7b975 delegate ItemStack - Machine-Maker
[PaperMC/Paper] New branch created: feature/ItemStack-proxy
This essentially removes API-only itemstacks without changing ItemStack to an interface, that will come later.
Just adds a field in api-ItemStack that should always be a CraftItemStack which the api-ItemStack will wrap around. CraftItemStack has to override any methods on api-ItemStack that use this craftDelegate to avoid recursion loops.
Stack trace
paste your stack trace or a paste.gg link here!
https://paste.gg/p/anonymous/f5812767a5164748bb4d58397006bc78
https://paste.gg/p/anonymous/3109279d76b6486f9fc1102d646476b1
Plugin and Datapack List
DeathMessages, eBackup
Actions to reproduce (if known)
Unknown, this seems to happen at random in completely different parts of the map but it is consistently triggered by net.minecraft.world.entity.npc.EntityVillagerTrader
Paper version
This server is running Paper version git-Paper-17 (MC: 1.20) (Implementing API version 1.20-R0.1-SNAPSHOT) (Git: c287e92)
You are running the latest version
Other
This has happened 3 times now; once last night before a regularly scheduled backup, once after i restarted the server so people could get on and just now while running /plugins and /version.
1.20 is super duper outdated and unsupported. Please update to a supported version in 1.20.4 or 1.20.6.
we're running 1.20 as this is before villager trades were nerfed and the general consensus is that everyone wanted 1.20. we will not be updating and would like a solution to this problem as its a recurring issue preventing people from playing.
You mean the optional trade rebalance? That was added in 1.20.2 and is not part of the game by default. In any case, you're on your own on such an old version
1.20 isn't old, what about the major servers that still run 1.12.2? do you just, not support those servers? i'm not taking no as an answer.
Indeed, we are also not offering support to 1.12.2 servers!
This is a project ran by volunteers in their free time, maintaining more than one (maybe two versions) at the same time is not possible :+1:
There's no reason not to update because the thing you're trying to avoid isn't actually a thing
in that case i'll go use server software wrote by people who will actually provide support, those from spigot said papermc was unstable on 1.20 anyways. if your software isn't stable and you choose not to support it, i will not be a user of this software and will take my business elsewhere.
Why not use https://jd.papermc.io/paper/1.20.6/org/bukkit/inventory/ItemType.html#createItemStack(int) and make CraftItemType always make CraftItemStack?
yep, that is better. I still haven't fully accepted that ItemType and BlockType actually exist. its amazing.
the generic says its unused
yeah, I think keeping it at 0 is fine. In all the implementations of the "data" methods on ItemStack I return early if the stack is empty in any way.
4f13be9 Do not perform chunk existance check for I/O sc... - Spottedleaf
5e999eb re-order adapters to match vanilla - Machine-Maker
It's possible that ItemStack#equals and ItemStack#hashCode should also directly delegate to a craftitemstack. I think that's probably most correct.
BlockEntity needs its Level set
Expected behavior
When Item drop is cancelled the item stack affected should not be changed in any way
Observed/Actual behavior
When item is dropped from inside inventory this is cancelled, the item is readded into selected slot instead of original itemstack/slot
Steps/models to reproduce
prepare plugin cancelling all PlayerDropItemEvents
- get a stack of any item (
/give @p minecraft:dirt 64) and have it in first slot - select any other slot
3a) open inventory and drop one of the items using q and hovering the item stack
3b) right-click the item and drop it outside of the inventory
3c) left-click the item and drop it outside of inventory
Plugin and Datapack List
only the test plugin cancelling the drop events
Paper version
This server is running Paper version 1.20.6-137-master@bd5867a (2024-06-04T21:04:28Z) (Implementing API version 1.20.6-R0.1-SNAPSHOT)
You are running the latest version
Other
No response
The problem is in drop method in Player class:
if (event.isCancelled()) {
org.bukkit.inventory.ItemStack cur = player.getInventory().getItemInHand();
if (flag1 && (cur == null || cur.getAmount() == 0)) {
// The complete stack was dropped
player.getInventory().setItemInHand(drop.getItemStack());
} else if (flag1 && cur.isSimilar(drop.getItemStack()) && cur.getAmount() < cur.getMaxStackSize() && drop.getItemStack().getAmount() == 1) {
// Only one item is dropped
cur.setAmount(cur.getAmount() + 1);
player.getInventory().setItemInHand(cur);
} else {
// Fallback
player.getInventory().addItem(drop.getItemStack());
}
return null;
}
Item is reset in selected slot...
The general issue here is that these events trigger too deep in the call stack to be able to properly revert what happened where the call occurred, we'd need to figure out how to safely pass the cancellation back up the stack so that the operation can actually be reverted
#7727 already addresses the issues in 3.b and 3.c. It doesn't address 3.a, though.
The knockback is based in the rules of NMS. In the case of the damage method with not DamageSource is handled by the generic DamageSource that not include knockback, the method with the DamageSource is "parsed" to the NMS DamageSource if you pass a entity making de damage (withDirect..) then this make a knockback, in NMS the logic for knockback (ignoring a thing about the last damage/invulnerability) is if the damage is not included in the tag for no_knockback and exists a entity making the damage.  then this make a knockback, in NMS the logic for knockback (ignoring a thing about the last damage/invulnerability) is if the damage is not included in the tag for no_knockback and exists a entity making the damage.  (Implementing API version 1.20.6-R0.1-SNAPSHOT)
Other
https://hub.spigotmc.org/stash/projects/SPIGOT/repos/craftbukkit/browse/nms-patches/net/minecraft/server/network/PlayerConnection.patch#722
https://hub.spigotmc.org/stash/projects/SPIGOT/repos/craftbukkit/browse/nms-patches/net/minecraft/server/network/PlayerConnection.patch#1126
I think https://github.com/PaperMC/Paper/pull/10125 already fix this issue
Judging by MM's comment, it's probably not best for us to touch this since this may have implications in the whole technical world. This may also be behavior that is still used, so not sure if it's our place to patch something like this.
Additionally, I am not sure the code you are using will work on most setups due to it using awt classes.
Thank you for your contribution, regardless. :)
Hmm, I agree something like this is certainly useful. But the current event name is defo a bit misleading as we definitely want to make sure there is a distinction as people might blindly listen to this event.
I agree that it might be useful to have an "unknown" one and then a normal one.
About this issue, there is still deviation from Vanilla
In Vanilla, even if the second attack of a stun does no knockback - which I reported as MC-268147, damage is still dealt, since the shield breaking action count as a Damage Tick and allow greater damage to be applied. Video
But on Paper, no damage cannot be dealt after the shield break, which is not the normal Damage Tick behaviour. Video
So whats the consensus now?
This doesn't handle empty itemstack (ItemStack#empty) which are still full api stack without server side equivalent and will throw a NPE for most methods.
This doesn't handle empty itemstack (ItemStack#empty) which are still full api stack without server side equivalent and will throw a NPE for most methods.
I think I should just be able to change empty to return ItemStack.create(Material.AIR). It'd have a stack size of 1 however, should I instead add a bridge method to create a truly empty stack? just by returning a copy of nms-ItemStack.EMPTY?
I have changed the name of the event to differentiate it more from the normal event.
I am still not sold on the concept to only call this event when there isn't an actual sign to edit, because of the points I already mentioned above.
Another issue is that asNMSCopy doesn't accept null itemstack anymore so doing /clear for example throw a NPE too via the PrepareItemCraftEvent.
About this issue, there is still deviation from Vanilla
In Vanilla, even if the second attack of a stun does no knockback - which I reported as MC-268147, damage is still dealt, since the shield breaking action count as a Damage Tick and allow greater damage to be applied. Video
But on Paper, no damage cannot be dealt after the shield break, which is not the normal Damage Tick behaviour. Video
But this bug doesn't really have much to do with that. And this bug should be reported to spigot jira.
Expected behavior
Chunk to update from 1.20.4 to 1.20.6 without issue
Observed/Actual behavior
The chunk was reset to default world generation, another chunk lost all its entities.
Steps/models to reproduce
These are comparisons between the world in 1.20.4 and 1.20.6. I simply had the world in a 1.20.4 server the...
It would be helpful if you could upload some parts of the world that failed to upgrade, so we can see what data causes this. Just a single region file would be enough.
r.0.-1.mca.zip
The zip contains the region file where we had one chunk completely reset and one lose all entity data. This is the world with the chunks still their, however in this particular world it has been loaded in 1.20.6 singleplayer. Below is a copy of the same region file but it has not been loaded in 1.20.6
r.0.-1.mca.zip
Hey @lavaking46, are you able to compress the world (that hasn't ran on Paper) and upload it? With the supplied region files above I haven't been able to reproduce the broken chunk running only Paper (no plugins or datapacks).
https://send.vis.ee/download/28151360c8e34fe4/#SmlVROSVZr0xwsXbyFA3BA The world file is to big for github so I sent it through this. if the link stops working please let me know
Description
This is a very simple event. This event is triggered whenever a player lands on a block. The event is mostly useful for when you want to do a specific action whenever a player lands on a specific block/location.
Event Details
Event Name: PlayerLandEvent
Trigger: When a player lands on the ground
Purpose: To allow players to do specific actions when a player lands on a specific block
Key Components
Player: The player that landed.
From: The location the player landed from.
To: The location the player landed to.
Main Supporting Block: The main block supporting the player, the block that the player landed on.
After removing the addition handler from the test plugin (only listening to preFreeze), an NPE is thrown because getHook returns null.
[LifecycleEventRunner] Could not run 'RegistryKeyImpl[key=minecraft:game_event] / pre-freeze' lifecycle event handler from Paper-Test-Plugin v1.0.0-SNAPSHOT
java.lang.NullPointerException: Cannot invoke "io.papermc.paper.plugin.lifecycle.event.types.AbstractLifecycleEventType.forEachHandler(java.util.function.Consumer, java.util.function.Predicate)" because "lifecycleEventType" is null
at io.papermc.paper.plugin.lifecycle.event.LifecycleEventRunner.callEvent(LifecycleEventRunner.java:63) ~[main/:?]
at io.papermc.paper.plugin.lifecycle.event.LifecycleEventRunner.callEvent(LifecycleEventRunner.java:58) ~[main/:?]
at io.papermc.paper.registry.PaperRegistryListenerManager.registerWithListeners(PaperRegistryListenerManager.java:127) ~[main/:?]
at io.papermc.paper.registry.PaperRegistryListenerManager.registerWithListeners(PaperRegistryL...
bump
Is there a chance to merge before 1.21 arrives
What is up with setting the player's ground value here? As this is technically changing behavior?
Stack trace
[18:27:32 ERROR]: Could not pass event StandardPaperServerListPingEventImpl to Paper-Test-Plugin v1.0.0-SNAPSHOT
java.lang.IllegalArgumentException: The name of the profile contains invalid characters: Anonymous Player
at com.google.common.base.Preconditions.checkArgument(Preconditions.java:218) ~[guava-32.1.2-jre.jar:?]
at com.destroystokyo.paper.profile.CraftPlayerProfile.createAuthLibProfile(CraftPlayerProfile.java:274) ~[main/:?]
at com.destroystokyo.paper.profile.CraftPlayerProfile.<init>(CraftPlayerProfile.java:41) ~[main/:?]
at com.destroystokyo.paper.profile.CraftPlayerProfile.asBukkitCopy(CraftPlayerProfile.java:286) ~[main/:?]
at com.destroystokyo.paper.network.StandardPaperServerListPingEventImpl.getPlayerSample(StandardPaperServerListPingEventImpl.java:41) ~[main/:?]
at test-plugin-1.0.0-SNAPSHOT.jar/io.papermc.testplugin.TestPlugin.onServerListPing(TestPlugin.java:21) ~[test-plugin-1.0.0-SNAPSHOT.jar:?]
at com.destroystokyo.paper.eve...
use fully qualified imports when using a class not very often.
if someone could comment on whether or not the config layout is ok that would be great, then i can quickly writeup a docs pr so that's also ready.
new config layout (as proposed by machine):
despawn-ranges:
monster:
hard:
horizontal: 30
vertical: 5
soft: 20 # just putting a numerical value would mean it applies to both (as it does now)
The reason I set the ground value here is because that method runs checkSupportingBlock() which updates Entity#mainSupportingBlockPos. The reason I'm not just taking advantage of this.player.setOnGroundWithKnownMovement() which happens just a few lines below is because I previously made this event cancellable, But after further testing, it had pretty buggy behaviour... I'm going to quickly just move this below the this.player.setOnGroundWithKnownMovement() in the next commit.
Change my mind, but isn't this just the player toggle flight event with extra conditions
Wouldn't exposing the main supporting block method from NMS be smarter?
if someone could comment on whether or not the config layout is ok that would be great, then i can quickly writeup a docs pr so that's also ready.
new config layout (as proposed by machine):
despawn-ranges: monster: hard: horizontal: 30 vertical: 5 soft: 20 # just putting a numerical value would mean it applies to both (as it does now)
I think this config format layout is great
Clear and straightforward
Expected behavior
Custom drops added via PlayerDeathEvent#getDrops should spread on the ground as far as the dropped inventory.
Observed/Actual behavior
Custom drops are dropped in player location without spreading it.
Steps/models to reproduce
- Make a plugin with this code: https://pastebin.com/sTgqQLQ8
- Run the server
- Die (execute
/killcommand) - See that diamond that I added to custom drops is not spreading.
Plugin and Datapack List
[16:22:20 INFO]: Server Plugins (1):
[16:22:20 INFO]: Bukkit Plugins:
[16:22:20 INFO]: - ExampleDropOnDeath
[16:22:45 INFO]: There are 3 data pack(s) enabled: [vanilla (built-in)], [file/bukkit (world)], [paper (built-in)]
[16:22:45 INFO]: There are no more data packs available
Paper version
[16:22:56 INFO]: Checking version, please wait...
[16:22:56 INFO]: This server is running Paper version 1.20.6-137-master@bd5867a (2024-06-04T21:04:28Z) (Implementing API version 1.20.6-R0.1-SN...
the velocity for drops has already been applied to the items in that list, mutating it would just be adding new entities into the list (with unexpected behavior)
Look what i mean: https://www.youtube.com/watch?v=SHTbn83wJHc . You can clearly see on this video that custom drop (diamond) is not spreading that far as other items that were in my inventory.
Yes, I know what you mean. Adding entities to that list will not go back and run them through the spreading logic, adding entities to that list can also result in unexpected behavior with other plugins do to the implementation (i.e. plugins can't just "remove" items from the list as they usually could)
But there is some kind of mutation handling. When I remove item from that list it will just not drop. All items that are dropped (custom drops and normal drops like inventory) happens here: https://github.com/PaperMC/Paper/blob/bd5867a96f792f0eb32c1d249bb4bbc1d8338d14/patches/server/0932-Restore-vanilla-entity-drops-behavior.patch#L235-L242
There must be something going on with this runConsumer then.
Oh yeah, i see. When I add custom drop to PlayerDeathEvent#getDrops then the Entity.DefaultDrop's value dropConsumer is null. https://github.com/PaperMC/Paper/blob/bd5867a96f792f0eb32c1d249bb4bbc1d8338d14/patches/server/0932-Restore-vanilla-entity-drops-behavior.patch#L188
And when dropConsumer is null then in this logic it will drop item in the player's location as a fallback. So the spreading is not applied because the dropConsumer applied that spreading and it is for some reason null when adding custom drop. https://github.com/PaperMC/Paper/blob/bd5867a96f792f0eb32c1d249bb4bbc1d8338d14/patches/server/0932-Restore-vanilla-entity-drops-behavior.patch#L69-L73
Expected behavior
@EventHandler
public void onEchestOpen(InventoryOpenEvent event) {
if (event.getInventory().getType() != InventoryType.ENDER_CHEST) {
return;
}
Bukkit.broadcastMessage("ec: " + event.getInventory().getHolder());
holder should return the enderchest blockstate
Observed/Actual behavior
Opening an enderchest:
ec: null
Has no holder
Steps/models to reproduce
Open enderchest, use listener
Plugin and Datapack List
N/A
Paper version
This server is running Paper version git-Paper-"f4c7d37" (MC: 1.20.4) (Implementing API version 1.20.4-R0.1-SNAPSHOT) (Git: f4c7d37)
Probably isn't fixed in 1.20.6 judging by the commits
Other
No response
Expected behavior
When you cancel inventoryopenevent for an enderchest, the viewers of the enderchest should not keep growing
Observed/Actual behavior
Viewer count keeps growing
Steps/models to reproduce
Cancel inventory open event, check .getviewers.size()
Plugin and Datapack List
N/A
Paper version
This server is running Paper version git-Paper-"f4c7d37" (MC: 1.20.4) (Implementing API version 1.20.4-R0.1-SNAPSHOT) (Git: f4c7d37)
Probably 1.20.6 also
Other
No response
Can confirm, had similar issue to this beforeโ had no idea it was a possible bukkit issue tho.
4a01ac8 add custom event handler configuration - Machine-Maker
2b3c5ea remove useless stuff - Machine-Maker
56245ae fix javadocs - Machine-Maker
holder should return the enderchest blockstate
I would argue that the holder of the ender chest is the player, not the block. It is saved in player data and attached to the player, the block is just the "button" to open it - though you can also open it via the API.
02f0c4d move hunks to right patch - Machine-Maker
Is your feature request related to a problem?
Everyone hates Minecraft chat reports, and many players have mods that disable them. Unfortunately this won't let them talk on servers with the default enforce-secure-profile setting.
Describe the solution you'd like.
Set enforce-secure-profile to false by default.
Describe alternatives you've considered.
No alternative possible.
Other
No response
Discussion Category: Ideas
It's not in our best interest to deviate from vanilla defaults. Server admins can configure if they so please, but this is not something we are interested in.
Discussion Category: Ideas
Expected behavior
I believe PrepareResultEvent only needs to be fired once per ItemCombinerMenu#slotsChanged method call.
This method calls this.createResult() which is implemented by SmithingMenu#createResult, which fires a PrepareResultEvent event, before being fired a second time immediately after within slotsChanged. It is of my assumption that the event call within SmithingMenu is not actually needed, or I'm misunderstanding why it is there.
Observed/Actual behavior
There are twice as many PrepareResultEvent events being emitted than what seems to be necessary resulting in a total of 6 calls when slotsChanged is only called 3 times.
Steps/models to reproduce
N/A
Plugin and Datapack List
N/A
Paper version
This server is running Paper version 1.20.6-137-master@bd5867a (2024-06-04T21:04:28Z) (Implementing API version 1.20.6-R0.1-SNAPSHOT)
Other
This is in regards to the "Add PrepareResultEvent" patch, seems to have been present for quite...
Did some testing, and encountered this error when tab-completing with an empty console:
[org.jline] Error while parsing line
java.lang.IndexOutOfBoundsException: Index -1 out of bounds for length 1
at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:100) ~[?:?]
at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:106) ~[?:?]
at java.base/jdk.internal.util.Preconditions.checkIndex(Preconditions.java:302) ~[?:?]
at java.base/java.util.Objects.checkIndex(Objects.java:385) ~[?:?]
at java.base/java.util.ArrayList.get(ArrayList.java:427) ~[?:?]
at io.papermc.paper.console.BrigadierConsoleParser.parse(BrigadierConsoleParser.java:68) ~[paper-1.20.6.jar:1.20.6-DEV-472d555]
at org.jline.reader.impl.LineReaderImpl.doComplete(LineReaderImpl.java:4371) ~[jline-reader-3.20.0.jar:?]
at org.jline.reader.impl.LineReaderImpl.doComplete(LineReaderImpl.java:4347) ~[jli...
906df69 Prevent internal NPE on ItemStack#damage (#10836) - lynxplay
[PaperMC/Paper] branch deleted: bugfix/itemstack-damage-api
Expected behavior
IDK what this error means honestly
Observed/Actual behavior
Steps/models to reproduce
IDK
Plugin and Datapack List
[22:44:51 INFO]: Server Plugins (68):
....
[22:44:51 INFO]: Bukkit Plugins:
....
[22:44:51 INFO]: - AdvancedEnchantments, AdvancedRegionMarket, ajLeaderboards, BattlePass, BetterFarming, ChestProtect, Chunky, ChunkyBorder, CMI, CMILib
....
[22:44:51 INFO]: CoffeeProtect, CoinsEngine, CoreProtect, CustomDrops, DiscordSRV, eco, EcoJobs, EcoSkills, ExcellentCrates, ExecutableItems
....
[22:44:51 INFO]: FarmLimiter, FastAsyncWorldEdit, FasterFurnaces, GUIPlus, HeadDatabase, Images, ItemsAdder, Lands, LandsDiscordBot, libreforge
....
[22:44:51 INFO]: LiteBans, LoneLibs, LuckPerms, MineBlocks, Multiverse-Core, NBTAPI, nightcore, PinataParty, Pl-Hide-Pro, PlaceholderAPI
....
[22:44:51 INFO]: PlayerWarps, ProdigyNightclub, ProtocolLib, qsaddon-discordsrv, qscompat-advancedregionmarket, qsco...
CMI tried to create a player head with a player profile that contains invalid characters (a space to be specific). Profile names can only contain characters that are valid for Minecraft usernames. A space is not valid.
Not a Paper issue, report that to the CMI developers.
I'll implement my suggestion too and run benchmarks over night :+1:
Still present in vanilla 1.21-rc1.. Hopefully Mojang patches it before 1.21 releases.
@NonSwag Whilst first looking how to do this in my own plugin, I saw that the best to check when a player lands, is to use a PlayerMoveEvent. The onGround boolean is, from what I understand, pretty unreliable. Thus, you will have to use a bit of NMS there to make it work. Furthermore, you will probably also need the mainSupportingBlock, which is added nms, and if you want the from and to location... Well, you get the point. This event is basically here to avoid this overhead. Now I'm going to be honest, I don't know if your method works, but if it does, all this nms will still be needed. It's definitely not that big of a problem, but the main idea is to avoid this. So make your own informed decision off of this.
isOnGround is exactly as reliable as your new event, because it uses the same code. And adding api to get the mainSupportingBlock for the player should be easy and unproblematic.
Expected behavior
Not kicking you when u try to chat in the chat while in vanish sometimes
Observed/Actual behavior
Kicking people while in vanish sometimes when trying to chat in the chat
Steps/models to reproduce
install essentials x on ur server
go in vanish
try type in chat
it may only happen on modded clients not sure
Plugin and Datapack List
Paper version
Other
this issue is very annoying it keeps happening to me and my friends on my server minecraft version is 1.20.6 never happened when we were running 1.20.4
I cannot replicate this with latest EssentialsX and simply chatting while in vanish. Both the vanished account and the non vanished one remain on the server.
Can you provide any other replication steps? Maybe a smaller set of plugins on your end?
We cannot really do anything on paper when large plugins are involved and we don't have replication steps.
I think this is only happening with people with modded clients as onw of my friends tested it on vanilla and it didnt kick them
Then that would be up to the modded clients to resolve, not paper.
I'll be closing this then, if you find an issue with the vanilla client and/or have more info, feel free to post them here and we can reopen this.
there is already an pr open which exposes that iirc
mainSupportingBlock iirc was dropped because of how funky movement is as, at the time PlayerMoveEvent e.g. is called, the supporting block is temporarily AIR until the server recomputes it right after.
yeah. if someone finds a solution for it in #9298 then that wonโt be a problem anymore
Expected behavior
The BlockDestoryEvent fires when a block is broken and causes another block to break due to it (like breaking the block a redstone torch is sitting on). However, it doesn't fire for a lot of redstoen components like repeaters, redstone, comparators etc. It DOES fire for redstone torches though
Observed/Actual behavior
It should fire for all redstone components and blocks that break due to it
Steps/models to reproduce
Place a block, place redstone on top, break the block and the redstone will drop but won't fire the BlockDestroyEvent
Plugin and Datapack List
[13:05:17 INFO]: - AdvancedAchievements, AdvancedArmorStands, AdvancedEnchantments, BlockLocker, Brewery, BuycraftX, ChestShop, ChestShop-LegacyIds, Chunky, Citizens
[13:05:17 INFO]: ClearLag, *Commander, CoreProtect, DeluxeMenus, DespawnSpy, DetrimUtils, EnchantGui, Essentials, EssentialsAntiBuild, EssentialsGeoIP
[13:05:17 INFO]: EssentialsProtect, EssentialsSpawn, ExploitFixer, Far...
Able to reproduce on Paper version 1.20.6-138-master@906df69 (2024-06-10T06:32:15Z) (Implementing API version 1.20.6-R0.1-SNAPSHOT)
All rail blocks also fail to fire the destroy event.
If you think this doesn't need to be added, you can close this post. Although
I think onGround is not set right when 'PlayerMoveEvent` gets called, thus some nms there is still needed. Anyway, feel free to close this now.
Expected behavior
Don't lose the sprint when attack someone
Observed/Actual behavior
Video that show the issue :
- https://youtu.be/nRIIGdGb5nE
- https://youtu.be/DTZHj8AqCAY
Note: the user on the video has the toggle sprint option activated
Steps/models to reproduce
Set disable-sprint-interruption-on-attack to true, restart then attack someone
Plugin and Datapack List
- no datapack
- one plugin: my own that manage permissions, messages etc but doesn't change pvp
Paper version
This server is running Paper version 1.20.6-138-master@906df69 (2024-06-10T06:32:15Z) (Implementing API version 1.20.6-R0.1-SNAPSHOT)
You are running the latest version
Previous version: 1.20.6-115-9d6f2cc (MC: 1.20.6)
Other
No response
The actual sprinting interruption is client-side and a part of horizontal attack slowdown, that setting only affects the attribute I believe.
The actual sprinting interruption is client-side and a part of horizontal attack slowdown, that setting only affects the attribute I believe.
So it cannot be fixed ?
Expected behavior
I can join the server and can run console commands
Observed/Actual behavior
Console commands are not working and i can not join the server even if i use localhost
Steps/models to reproduce
Install all the plugins on the server
Run the server
Plugin and Datapack List
simplepushevents
AkariBan
FakePlayerMaker-Recoded
InvisibleItemFrames
Polymer
TreeRecovery
LightChat
ImageFrame
BoomBag
ExpandedCooking
EmojiChat
Baconize
Schneckenhaus
ExcellentEnchants
nightcore
update
FrustCheck
TreeCuter
TeaksTweaks
TabTPS
Kryptonite
AnarchyExploitFixes
Updater
LavaDamage
InstantRestock
ToolStats
Orebfuscator
CustomizablePlayerModels
OldCombatMechanics
RedeemCodes
CPS-Limiter
AntiCrashX
MyJoinLeaveMessage
EmailLinker
Multiverse-Inventories
DayCounter
HoloMobHealth
EpicGuard
Chunky
WorldEditSUI
Plan
EndPortalTimer
WorldEdit
ServerCtrl
BlueMap
LuckPerms
AFKPlus
GMusic
RandomSpawnPlus5
GSit
FastLeafDecay
ChestSo...
I cannot really replicate this on a vanilla client. This is what I reproduce:
Config option set to false:
Sprint: Hold + Press W twice + Attack: Stop sprinting
Sprint: Hold + Press sprint key + Attack: Stop sprinting
Sprint: Hold + Hold sprint key + Attack: Stop sprinting but start sprinting quickly after
Sprint: Toggle + Press W twice + Attack: Stop sprinting
Sprint: Toggle + Press sprint key once + Attack: Stop sprinting but start sprinting quickly after
Config option set to true:
Sprint: Hold + Press W twice + Attack: Keep sprinting
Sprint Hold + Press sprint key + Attack: Keep sprinting
I don't see how that is not what you'd expect this configuration option to do?
Expected behavior
Shield stunning behavior in 1.20.4 Paper
You can hit the player again after the shield breaks instantly
Observed/Actual behavior
Shield stunning behavior in 1.20.6 Paper
Seems to be a delay between breaking the shield and when you are able to hit the player again
Steps/models to reproduce
Get someone to hold up their shield and spam click them
Observe the difference between a Paper Server running 1.20.4 versus 1.20.6
Plugin and Datapack List
Included in the above videos
Paper version
Included in the above videos
Other
Resource/Tutorial for Stunning and its many uses: https://www.youtube.com/watch?v=HRZDGVCrDh4
Although some may have issues with it. It has become a crucial part of Minecraft 1.9+ PvP for the past several years, allowing for more fast-paced and tactical gameplay, people spend...
Expected behavior
I shouldn't receive an error to add the Color data to an ENTITY_EFFECT particle
Observed/Actual behavior
It throws this error
[21:55:43 WARN]: [ICClass] Task #30790 for ICClass v1.0 generated an exception java.lang.IllegalArgumentException: missing required data class org.bukkit.Color
Steps/models to reproduce
I spawn the particle with
p.world.spawnParticle(Particle.ENTITY_EFFECT) (shortened code but you get the point)
It gives me the error above.
However, if I then use the particle builder to add a color, I get the new error
[21:56:49 WARN]: [ICClass] Task #30817 for ICClass v1.0 generated an exception java.lang.IllegalStateException: Color may only be set on particle DUST.
Plugin and Datapack List
[22:01:04 INFO]: Server Plugins (79):
[22:01:04 INFO]: Bukkit Plugins:
[22:01:04 INFO]: - AdvancedAchievements, AdvancedArmorStands, AdvancedEnchantments, Brewery, BuycraftX, ChestShop, ChestShop-LegacyIds, Chunky, ...
Accepted, particle builder needs to be expanded to accept colours for ENTITY_EFFECT
Hello @Cyberillc,
This isn't an issue with Paper itself, which is what github is for. If you cannot connect to your server without any plugins I would typically recommend joining the Discord to seek support, but I see you're using SkinRestorer - we do not offer support for offline mode/cracked servers.
This reads wierdly, like if the player stands on the ice and under the ice is a slab.
+ * - When standing on a slab on top of an ice block, this will return the position of the ice block.
isOnGround is sent with the movement packet so in theory it could be added to the movement event
It is unreliable but still a part of the protocol so having it added would be a benefit
For example anti cheats could make use of it instead of using nms
Also Player#isOnGround is not required to be called which is not even up to date within the event
Maybe an annotation to warn about it's unreliability and not deprecating it would be appropriate
Same with the isOnGround method
Expected behavior
Calling ItemStack#removeEnchantments should remove all current enchantments, making it possible to re-enchant the item with the enchanting table or commands.
Observed/Actual behavior
After ItemStack#removeEnchantments is called on an item it can't be re-enchanted again. Putting it in the enchanting table doesn't show options and the /enchant command says the item has been enchanted but there are no enchantments present.
What I can see is that a diamond chestplate has 8 components by default and calling this method reduces that to 7.
Steps/models to reproduce
I created an empty plugin with the following onEnable (and registered the ench command in the plugin.yml)
@Override
public void onEnable() {
PluginCommand ench = getCommand("ench");
if(ench != null) {
ench.setExecutor((sender, command, label, arg) -> {
if(sender instanceof Player player) {
player.getInven...
The removeEnchantments method needs to set the map on CraftMetaItem to null instead of just clearing. Should be a 1 line fix
Expected behavior
An arrow projectile modified with the following code:
Arrow arrow;
arrow.setPickupStatus(AbstractArrow.PickupStatus.DISALLOWED);
should never allow pickup.
Observed/Actual behavior
An arrow, modified with the above code, after it 'bounces back' from an entity, is suddenly allowed to be picked up.
'Bouncing back' occurs when the entity is on damage cooldown (The video demonstrates this by damaging the entity with an arrow prior to firing other arrows that will bounce back).
Steps/models to reproduce
Code used (this video is for context, not the actual issue):
arrow.setPickupStatus(AbstractArrow.PickupStatus.CREATIVE_ONLY);
https://github.com/PaperMC/Paper/assets/69715898/2b446294-5c43-4e41-b781-1bacfb5bdd45
Code used:
arrow.setPickupStatus(AbstractArrow.PickupStatus.DISALLOWED);
https://github.com/PaperMC/Paper/assets/69715898/bb4de958-9230-4ce9-b64d-c62426f94a82
Plugin and Datapack List
Plugi...
Thanks for looking at this, lmk if any more info is needed, I can quickly test out the setup.
3693757 Updated Upstream (Bukkit/CraftBukkit/Spigot) - Machine-Maker
[PaperMC/Paper] New branch created: update-upstream
Rebased, clarified javadocs.
79e2cb6 Update upstream (Bukkit/CraftBukkit/Spigot) (#1... - lynxplay
[PaperMC/Paper] branch deleted: update-upstream
Will revisit once 1.21 builds are ready.
- [ ] `disableTeleportationSuffocationCheck` no longer needed, no collision check in PlayerList#respawn
With no plugin, attack speed to 1024, vanilla client while keeping sprint key pressed and it seems buggy: https://www.youtube.com/watch?v=D66yqXQHsuE and for me it's a bug. It's that which can only be fixed client side?
My version:

Yea, after digging through a bunch of client code, the issue was that I unfortunately tested this on a normal entity, not a player.
For some reason, the client implementation considers a RemotePlayer to always be "hurt" by an attack, when it does not do so for normal LivingEntitys.
Why that is the case, I have 0 idea. The option works for everything but players thanks to this somewhat shitty mechanic and there is nothing paper can do about it sadly.
I am unsure if this is even reportable to mojang, we should however 100% mention this in the docs.
The sprint attacking stuff is basically https://bugs.mojang.com/browse/MC-69459
Mhm, yea I'll sadly have to close this as there isn't anything paper can do here.
Lets hope mojang fixes that or a mod exists to patch this.
A long standing bug in spigot and its derivatives was the fact that players taking damage while blocking with a shield would not receive invulnerability, while they do in vanilla.
This enabled the pvp technique of disabling a shield and immediately attacking again to knock a player into the air.
While upstream fixed this and properly aligned itself with vanilla damage logic (in this specific case) changing such long standing behaviour has some downsides.
To allow players used to this specific bug to still use it, this patch introduces a configuration option to re-introduce said bug. As there is no easy way to only re-add this bug, the option is found in the unsupported section as it may introduce other damage related disparity from vanilla.
https://github.com/PaperMC/Paper/pull/10877 created a PR for this, the option will have to live in unsupported, given it introduces a bug we are technically trying to solve.
It would be great if you guys can test this, given I myself am not the pvp god to hit a double click by mystically smacking my finger on a (razor omg) mouse :sweat_smile:
[PaperMC/Paper] New branch created: feature/registry-builders
Expected behavior
Paper had some fixes to the recipe iterator API, as it was broken on Spigot
Observed/Actual behavior
The recipe iterator fixes (https://github.com/PaperMC/Paper/blob/ver/1.20.4/patches/server/0663-Fix-removing-recipes-from-RecipeIterator.patch) seem to be missing on 1.20.5/6+ as far as I can see
Steps/models to reproduce
Iterator<Recipe> iterator = Bukkit.recipeIterator();
while (iterator.hasNext()) {
if (iterator.next() instanceof Keyed keyed && keyed.key().asString().equals("minecraft:wooden_sword")) {
iterator.remove();
}
}
getLogger().info("Recipe: " + Bukkit.getRecipe(NamespacedKey.minecraft("wooden_sword")));
Works on 1.20.4, fails on 1.20.6
Plugin and Datapack List
> plugins
[22:51:52 INFO]: Server Plugins (1):
[22:51:52 INFO]: Bukkit Plugins:
[22:51:52 INFO]: - PaperTestPlugin
> datapack list
[22:52:12 INFO]: There are 3 data pack(s) enabled: [vanilla (built-in)], [file/bukkit ...
Expected behavior
As it did on 1.20.4 and below, upstream also doesn't have the issue
Observed/Actual behavior
<img width="226" alt="Screenshot 2024-06-13 at 5 00 10โฏPM" src="https://github.com/PaperMC/Paper/assets/25514360/fc8d707e-10e0-4f23-a4a9-2926a04c3878">
From what I've seen, ItemFrames are rendered a little bit offset from they should on client side, but if client targets the hitbox of where it should be, it displays the ItemFrame display name right
Steps/models to reproduce
Using the structure api, paste an .nbt structure that holds ItemFrames
Plugin and Datapack List
[17:06:58 INFO]: Bukkit Plugins:
[17:06:58 INFO]: - Basics, BlobBuild, BlobDesign, BlobEconomy, BlobLib, BlobPets, BlobRP, BlobTycoon, DecentHolograms, ItemEdit, LuckPerms, PlaceholderAPI, TAB, Vault, VoidGen, VoxelSniper
Paper version
[17:07:36 INFO]: This server is running Paper version 1.20.6-139-master@79e2cb6 (2024-06-13T14:55:37Z) (Implementing API version 1.20.6-R0.1-...
#10877 created a PR for this, the option will have to live in unsupported, given it introduces a bug we are technically trying to solve.
It would be great if you guys can test this, given I myself am not the pvp god to hit a double click by mystically smacking my finger on a (razor omg) mouse ๐
It seems to work. Of course, this option allows Slime to destroy the shield at great speed again๐ญ
60bd612 Fixup and deprecate player profiles in ping event - kennytv
[PaperMC/Paper] New branch created: ping-event
Adds a new getListedPlayers method for a class that only holds name and uuid, everything else is discarded by vanilla. This uses UncheckedPlayerProfile to allow previous behavior, though ideally that's going to be removed later with getPlayerSample.
I also deprecated the iterator method because why is that there????????????????????????????????????????????????
Again, feel free to close this if you think it's not worth adding
Will be fixed by https://github.com/PaperMC/Paper/pull/10880
Discussion Category: Ideas
9e7f6c3 Fixup and deprecate player profiles in ping eve... - kennytv
[PaperMC/Paper] branch deleted: ping-event
@kennytv I assume this is fixed by #10880 and github just didnt close because non default branch? if not pls reopen
or was this left open intentionally until its ported to 1.21?
Fixed issue 10873
Set the enchantment map to null rather just clearing it
Master is frozen right now, we will get to this issue once the 1.21 update is done.
We can backport it too :+1:
Fixed issue 10873
Set the enchantment map to null rather just clearing it
Your link has expired. Is it possible to use a persistent cloud storage solution such as Dropbox or Google Drive?
e3c7b19 Registry Modification API - Machine-Maker
[PaperMC/Paper] New branch created: dev/registry-modification
[PaperMC/Paper] branch deleted: feature/registry-modification
Merged into preliminary 1.21 registry dev branch
76e4b36 RegistrySet API (#10699) - Machine-Maker
[PaperMC/Paper] branch deleted: feature/RegistrySet
5914f60 Update AbstractArrow item method implementation... - Machine-Maker
Correctly cleared enchantment map for ItemMeta#removeEnchantments
needs a paper comment, // Paper - Correctly clear enchantments
Should be on the same line, after the ;
af7f0c4 Fix ItemMeta#removeEnchantments (#10886) - GhastCraftHD
5c3d013 work on integrating registry API - Machine-Maker
Adds back https://github.com/PaperMC/Paper/blob/ver/1.20.4/patches/server/0663-Fix-removing-recipes-from-RecipeIterator.patch, which was dropped with 1.20.5/6.
RecipeIterator changed since then so hopefully I updated the patch correctly, one thing I'm not sure about is whether using the adventure Keyed and/or PaperAdventure#asVanilla is preferred over the Spigot methods it's currently using.
Closes #10878
Stack trace
[23:30:24] [Server thread/ERROR]: Failed to handle packet net.minecraft.network.protocol.game.PacketPlayInWindowClick@2b8c0e29, suppressing error
net.minecraft.ReportedException: Container click
at net.minecraft.world.inventory.AbstractContainerMenu.clicked(AbstractContainerMenu.java:398) ~[?:?]
at net.minecraft.server.network.ServerGamePacketListenerImpl.handleContainerClick(ServerGamePacketListenerImpl.java:3395) ~[?:?]
at net.minecraft.network.protocol.game.ServerboundContainerClickPacket.handle(ServerboundContainerClickPacket.java:58) ~[?:?]
at net.minecraft.network.protocol.game.ServerboundContainerClickPacket.handle(ServerboundContainerClickPacket.java:23) ~[?:?]
at net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$0(PacketUtils.java:51) ~[?:?]
at net.minecraft.server.TickTask.run(TickTask.java:18) ~[purpur-1.19.4.jar:git-Purpur-"7a392eb"]
at net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop...
This was patched somewhere in 1.20.x paper, we do not supported outdated versions, or forks
Just to let you know. Please work on 1.21 instead of doing fixes for old versions 1.20.6.
fe7043e Configurable damage tick when blocking with shi... - lynxplay
7df4725 Configurable damage tick when blocking with shi... - lynxplay
Addresses the 3 compilation issues in DummyServer and addresses the getTag mocking issue.
3555a77 Properly forward DispenseEvent #getItem to saddle - lynxplay
e339ec2 Deprecate BlockData#getDestroySpeed for removal - lynxplay
b090c65 Remove unnecessary changes from chunk status fix - Spottedleaf
5e7cd07 add some generated typed/tag keys - Machine-Maker
Please release 1.21 instead of doing these patches on old versions.
dc684c6 Remove bad server.scheduleOnMain disconnect cal... - kennytv
I think those 3 changes nothing, I think here the difference is just the comment as if something is different
The builds failing I guess is coming from upstream branch, right? I did not find anything that would be related to my changes...
the failure is from a leaf patch breaking a test
Either a default ot stating what a "usual" value is would be good here
f4e1d60 even more fixes - Machine-Maker
d9111cc Registry Modification API (#10893) - Machine-Maker
[PaperMC/Paper] branch deleted: dev/registry-modification
545e028 More checks on valid data - lynxplay
de8220c Update ChunkMap#distanceManager mapping patch - jpenilla
8dfb85c Enchantment and GameEvent Registry builders (#1... - Machine-Maker
[PaperMC/Paper] branch deleted: feature/registry-builders
fb762cf remove remaining reference to 'pgive' - Machine-Maker
a7f6633 make EntityPortalReadyEvent#setTargetWorld work... - Machine-Maker
Stack trace
[22:33:08] [pool-68-thread-1/ERROR]: Error upgrading world
net.minecraft.ReportedException: Updated chunk
at net.minecraft.world.level.chunk.storage.ChunkStorage.upgradeChunkTag(ChunkStorage.java:141) ~[paper-1.20.6.jar:1.20.6-145-fe7043e]
at net.minecraft.util.worldupdate.WorldUpgrader$ChunkUpgrader.tryProcessOnePosition(WorldUpgrader.java:203) ~[paper-1.20.6.jar:1.20.6-145-fe7043e]
at net.minecraft.util.worldupdate.WorldUpgrader$ChunkUpgrader.tryProcessOnePosition(WorldUpgrader.java:191) ~[paper-1.20.6.jar:1.20.6-145-fe7043e]
at net.minecraft.util.worldupdate.WorldUpgrader$AbstractUpgrader.processOnePosition(WorldUpgrader.java:470) ~[paper-1.20.6.jar:1.20.6-145-fe7043e]
at net.minecraft.util.worldupdate.WorldUpgrader$AbstractUpgrader.upgrade(WorldUpgrader.java:340) ~[paper-1.20.6.jar:1.20.6-145-fe7043e]
at net.minecraft.util.worldupdate.WorldUpgrader.work(WorldUpgrader.java:118) ~[paper-1.20.6.jar:1.20.6-145-fe7043e]
at java.base/java.lang.Thre...
Checks particle datatype instead of particle type.
Closes #10872
The reason this is happening is that the event is called in Level#destroyBlock. However, when redstone wire/repeaters/rails are broken, Level#removeBlock is called instead (so event is not fired.)
Would it be better to change the removeBlock calls to destroyBlock or to add the event calls to these locations?
AsyncPlayerSendCommandsEvent is fired twice, once async, then sync. The javadocs suggest using the logic if (event.isAsynchronous() || !event.hasFiredAsync()) { // do stuff } to only react to the async event.
However, this check will currently pass during both times the event fires. As seen using this simple plugin:
public final class BukkitTestPlugin extends JavaPlugin implements Listener {
@Override
public void onEnable() {
Bukkit.getServer().getPluginManager().registerEvents(this, this);
}
@EventHandler
public void onCommandsSentToPlayer(AsyncPlayerSendCommandsEvent<?> event) {
getLogger().info("AsyncPlayerSendCommandsEvent{" +
"isAsynchronous=" + event.isAsynchronous() +
", hasFiredAsync=" + event.hasFiredAsync() + "}"
);
}
}
When a player logs ...
I think at least having an event to listen for these would be helpful. In my opinion, putting it as a blockdestroyevent makes most sense
92e0b1c small tweak to CraftItemStack#hashCode - Machine-Maker
69930e8 rename convertToCraftStack to getCraftStack - Machine-Maker
[PaperMC/Paper] branch deleted: feature/ItemStack-proxy
e41d44f Fix hasFiredAsync parameter when `AsyncPlayer... - willkroboth
b3e072a Fix hasFiredAsync parameter when `AsyncPlayer... - willkroboth
7fbb827 Finish API patches - Machine-Maker
8a37f93 62 - Machine-Maker
2055809 117 - Machine-Maker
0b75522 194 - Machine-Maker
ec05cb8 279 - Machine-Maker
0bc9aee 385 - Machine-Maker
27e29cc 487/1053 - Machine-Maker
083bd9e 531/1053 - Machine-Maker
ed2ea45 538 - lynxplay
ba163e1 585/1053 - Machine-Maker
8731266 650/1053 - Machine-Maker
52b49fb 788/1053 - Machine-Maker
[PaperMC/Paper] branch deleted: dev/1.21
The javadoc for EnchantmentRegistryEntry.Builder accidentally refers to GameEventRegistryEntry, which is a different buildable registry entry.
b9f7098 [ci skip] Fix javadoc mistake in EnchantmentReg... - rymiel
Expected behavior
jukebox.setRecord(null); should function normally
Observed/Actual behavior
jukebox.setRecord(null); triggers the following error:
[16:41:01 WARN]: java.lang.NullPointerException: Cannot invoke "net.minecraft.world.level.Level.registryAccess()" because "this.level" is null
[16:41:01 WARN]: at net.minecraft.world.level.block.entity.JukeboxBlockEntity.setSongItemWithoutPlaying(JukeboxBlockEntity.java:203)
[16:41:01 WARN]: at org.bukkit.craftbukkit.block.CraftJukebox.setRecord(CraftJukebox.java:86)
Steps/models to reproduce
Use Paper 1.21, and run the following code on a Jukebox:
jukebox.setRecord(null);
Plugin and Datapack List
CoreProtect
Paper version
This server is running Paper version 1.21-1-master@21c9a7c (2024-06-17T19:43:38Z) (Implementing API version 1.21-R0.1-SNAPSHOT)
You are running the latest version
Previous version: git-Paper-35 (MC: 1.20.6)
Other
No response
1288c84 adventure predicate type - Owen1212055
Stack trace
https://paste.gg/p/anonymous/cefc6a21b93646e5a1c684c1fd92012b
Plugin and Datapack List
LuckPerms, spark, SystemChat, testplugin
Actions to reproduce (if known)
call a method that requires the chunk to be loaded in ChunkUnloadEvent. I used getTileEntities.
public final class TestPlugin extends JavaPlugin implements Listener {
@Override
public void onEnable() {
Bukkit.getPluginManager().registerEvents(this, this);
}
@Override
public void onDisable() {
}
@EventHandler
public void onChunkUnload(ChunkUnloadEvent e) {
for (org.bukkit.block.BlockState state : e.getChunk().getTileEntities()) {
//weeeeeee
}
}
}
### Paper version
[09:34:03 INFO]: Checking version, please wait...
[09:34:03 INFO]: This server is running Paper version 1.21-1-master@21c9a7c (2024-06-17T19:43:38Z) (Implementing API version 1.21-R0.1-SNAPSHOT)
You are running the lates...
To me, it doesn't make sense to allow calling color(Color,float) for non DustOptions types. The float size doesn't apply to stuff like ENTITY_EFFECT.
To me, it doesn't make sense to allow calling color(Color,float) for non DustOptions types. The float size doesn't apply to stuff like ENTITY_EFFECT.
Currently, all colour methods lead to this as shown below, hence I didn't want to make changes to make big changes to the existing API as seen below.
public ParticleBuilder color(@Nullable Color color) {
return color(color, 1);
}
@NotNull
public ParticleBuilder color(int r, int g, int b) {
return color(Color.fromRGB(r, g, b));
}
@NotNull
public ParticleBuilder color(final int rgb) {
return color(Color.fromRGB(rgb));
}
I'll go ahead and add that size doesn't apply to ENTITY_EFFECT unless you prefer for me to change up the first colour method to make that execute it for the datatype of COLOR.
Brackets got lost during the update, leading to an incorrect precondition call.
Expected behavior
Before the recent ItemStack changes, you could new ItemStack(AIR, 0) to create an empty ItemStack (an ItemStack#empty, basically).
Observed/Actual behavior
amount is limited to above 0 now, even though places like ItemStack#empty/ItemType#createItemStack still allow that, which breaks old code from before ItemStack#empty using an amount of 0 to create empty stacks & is a bit of a weird inconsistency in general.
Steps/models to reproduce
new ItemStack(Material.AIR, 0)
Plugin and Datapack List
> plugins
[11:23:01 INFO]: Server Plugins (1):
[11:23:01 INFO]: Bukkit Plugins:
[11:23:01 INFO]: - PaperTestPlugin
> datapack list
[11:23:16 INFO]: There are 3 data pack(s) enabled: [vanilla (built-in)], [file/bukkit (world)], [paper (built-in)]
[11:23:16 INFO]: There are no more data packs available
Paper version
> version
[11:23:29 INFO]: Checking version, please wait...
[11:23:29 INFO]...
Is there any ETA for when this will be fixed, would be much appreciated ๐
Expected behavior
in the paper-world-defaults.yml config:
chunks:
delay-chunk-unloads-by: 0s
There should be no delay when a player leaves a chunk, before unloaded.
Observed/Actual behavior
The chunks appear to take about 5 seconds (give or take) to unload.
Steps/models to reproduce
Im just including a video as I dont really have code to test.
I just have my scoreboard which shows the amount of current oaded chunks in a world.
https://imgur.com/a/59it2KA
Plugin and Datapack List
pl
[09:31:16 INFO]: Server Plugins (11):
[09:31:16 INFO]: Bukkit Plugins:
[09:31:16 INFO]: - BeeConomy, PermissionsEx, RandomTeleport, SkBee, SkBriggy, skNoise, Skript, skript-reflect, spark, StressTestBots
[09:31:16 INFO]: Vault
Paper version
[09:31:26 INFO]: This server is running Paper version 1.21-4-master@090775e (2024-06-18T13:42:35Z) (Implementing API version 1.21-R0.1-SNAPSHOT)
You are running the latest version
Previous version: 1.21-2-...
Expected behavior
To return the correct value
Observed/Actual behavior
Player#getViewDistance() is returning a value of 1 less than it should be
Steps/models to reproduce
player.setViewDistance(5)
then:
player.getViewDistance() will return 4
Plugin and Datapack List
[09:43:34 INFO]: Server Plugins (11):
[09:43:34 INFO]: Bukkit Plugins:
[09:43:34 INFO]: - BeeConomy, PermissionsEx, RandomTeleport, SkBee, SkBriggy, skNoise, Skript, skript-reflect, spark, StressTestBots
[09:43:34 INFO]: Vault
Paper version
[09:43:40 INFO]: This server is running Paper version 1.21-4-master@090775e (2024-06-18T13:42:35Z) (Implementing API version 1.21-R0.1-SNAPSHOT)
Other
No response
This is likely causing some serious issues on our server/s as well.
This setting does nothing since 2023, see https://github.com/PaperMC/Paper/pull/9519
duly noted thanks.
I guess I could update/change the issue to the fact in 1.20.6 the chunks unloaded immediately, and in 1.21 they take about 5 seconds.
Would that be more appropriate?
Is your feature request related to a problem?
I need to react differently if entity with Damageable#damage was damaged successfully or not. Currently, there's no way to figure it out, as damaging can be cancelled with EntityDamageEvent#setCancelled(true) with no feedback.
Describe the solution you'd like.
Make Damageable#damage methods return boolean, with false on a cancelled event.
Describe alternatives you've considered.
Calling EntityDamageEvent myself (which is unsupported, as events constructors are considered internal) and checking if it was cancelled.
I was thinking about checking entity's health before and after, but the final damage might result in 0, which if different from cancellation.
Other
Damageable#heal might need a similar feature, since EntityRegainHealthEvent is cancellable too.
Discussion Category: Ideas
can't change the return type without breaking ABI
Discussion Category: Ideas
Then I think it's worth creating a new set of methods like callDamage (or, reflecting underneath methods, damageEntity) with the said or similar implementation. Then the original damage methods can be deprecated indefinitely, and their implementation to be changed to just calling the new methods.
There are plenty of plugins that do add custom weapons and stuff, and to properly consider for PvE/PvP protecting plugins like WorldGuard or CombatLogX, there's always a need for some tricky workarounds.
Otherwise, well, I think it should at least be noted in the javadocs that damaging can be cancelled.
Discussion Category: Ideas
Expected behavior
respawn player should not have any potion effects
Observed/Actual behavior
when player died with slowness effect, he will get infinite slowness potion effect.
And drinking milk doesn't remove slow effects from the player.
Steps/models to reproduce
player.addPotionEffect(new PotionEffect(PotionEffectType.SLOWNESS, 80, 5, true));
then /kill player
Plugin and Datapack List
testplugin
Paper version
Paper-1.21-4
Other
No response
Replicable as in "when dying, the player does not receive the attribtue update the regain their movement speed
Stack trace
[12:00:12] [Server thread/ERROR]: Encountered an unexpected exception
net.minecraft.ReportedException: Exception ticking world
at net.minecraft.server.MinecraftServer.tickChildren(MinecraftServer.java:1744) ~[paper-1.21.jar:1.21-1285-b4b8208]
at net.minecraft.server.dedicated.DedicatedServer.tickChildren(DedicatedServer.java:471) ~[paper-1.21.jar:1.21-1285-b4b8208]
at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:1538) ~[paper-1.21.jar:1.21-1285-b4b8208]
at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1246) ~[paper-1.21.jar:1.21-1285-b4b8208]
at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:329) ~[paper-1.21.jar:1.21-1285-b4b8208]
at java.base/java.lang.Thread.run(Thread.java:1583) ~[?:?]
Caused by: java.lang.IllegalStateException
at ca.spottedleaf.moonrise.patches.chunk_system.scheduling.ChunkHolderManager.processUnloads(ChunkHolderManager.java:1100) ~[paper-1.21.jar:1.21-1...
Stack trace
[21:20:46] [Paper Plugin Remapper Thread - 1/INFO]: [ReobfServer] Remapping server...
[21:20:57] [Paper Plugin Remapper Thread - 1/INFO]: [ReobfServer] Done remapping server in 11812ms.
[21:20:58] [ServerMain/INFO]: Environment: Environment[sessionHost=https://sessionserver.mojang.com, servicesHost=https://api.minecraftservices.com, name=PROD]
[21:20:58] [Yggdrasil Key Fetcher/ERROR]: Failed to request yggdrasil public key
com.mojang.authlib.exceptions.MinecraftClientException: Failed to read from https://api.minecraftservices.com/publickeys due to api.minecraftservices.com
at com.mojang.authlib.minecraft.client.MinecraftClient.readInputStream(MinecraftClient.java:108) ~[authlib-6.0.54.jar:?]
at com.mojang.authlib.minecraft.client.MinecraftClient.get(MinecraftClient.java:57) ~[authlib-6.0.54.jar:?]
at com.mojang.authlib.yggdrasil.YggdrasilServicesKeyInfo.fetch(YggdrasilServicesKeyInfo.java:114) ~[authlib-6.0.54.jar:?]
at com.mojang.authlib.yggdrasil...
You will need to manually update the configuration file to account for the different blocks or regenerate the config, there is no logic for automatically dealing with that and given the lack of a Minecraft data version, will likely never happen
Expected behavior
isChunkGenerated returning false for non-full chunks
Observed/Actual behavior
isChunkGenerated returning true for non-full chunks
this leads to problems like these:
Steps/models to reproduce
- use paper 1.21 build #4
- generate chunks with chunky
- see all chunks not being generated
Plugin and Datapack List
plugins
[19:35:13 INFO]: Server Plugins (5):
[19:35:13 INFO]: Bukkit Plugins:
[19:35:13 INFO]: - Chunky, Essentials, floodgate, Geyser-Spigot, squaremap
(no datapacks)
Paper version
version
[19:35:35 INFO]: Checking version, please wait...
[19:35:36 INFO]: This server is running Paper version 1.21-4-master@090775e (2024-06-18T13:42:35Z) (Implementing API version 1.21-R0.1-SNAPSHOT)
You are running the latest version
Previous version: 1.21-3-4514f41 (MC: 1.21)
Other
discussion over at https://disc...
Expected behavior
Minecarts with players or chests move for more than 5 blocks
Observed/Actual behavior
Minecarts with players or chests freeze after gaining set momentum until pushed by a player.
Steps/models to reproduce
- Create a Paper 1.21-6 server
- Add and enable the data pack
- Ignore the error message about an invalid recipe
- Try using a minecart with a player or chest
Plugin and Datapack List
Modified Darceno's minecarts to work for 1.21
(Original datapack)
Paper version
This server is running Paper version 1.21-6-master@126f6d7 (2024-06-18T20:03:56Z) (Implementing API version 1.21-R0.1-SNAPSHOT)
You are running the latest version
Other
No response
Remove some leftover of upstream experimental annotations for 1.21 and fix a mistake (https://github.com/PaperMC/Paper/commit/3c04f9f668c3a42cb294c5e55a846793894312e5#diff-ec1b86d81be217223570e72970de6712fdad0f41a03b97b1c34f9b33bf5c75bdL191)
Bump, hoping this PR could get some attention
I recommend attaching the file it created: /home/minecraft/Server/Challenge-6/crash-reports/crash-2024-06-18_12.00.12-server.txt
To add to what electronicboy said, just backup your config files, regenerate them (they'll now be in config/ in your root server directory). Then just adjust them using your backup as a reference. You can use the wiki as a very helpful reference too.
Stack trace
Because this exception happened on my Paper fork, I've decided to code a plugin to see if moonrise$getFullChunkIfLoaded actually crashes every time you try to load an unloaded chunk, that's why there are two sets of exceptions: One of the "artificial" exception caused by my plugin running on Paper 1.21 build 7, and another one from my public server that is running my own Paper fork.
Me trying to purposely trigger the exception with my own plugin:
val world = Bukkit.getWorld("world")
val level = (world as CraftWorld).handle
val fc = level.`moonrise$getFullChunkIfLoaded`(20, 20)
context.sendMessage("$fc")
[21:34:50 WARN]: java.lang.NullPointerException: Cannot invoke "ca.spottedleaf.moonrise.patches.chunk_system.scheduling.NewChunkHolder.isFullChunkReady()" because "newChunkHolder" is null
[21:34:50 WARN]: at net.minecraft.server.level.ServerLevel.moonrise$getFullChunkIfLoad...
Can confirm the same issue, but just like @fantahund I'm not really sure what causes this crash
[01:47:52] [Server thread/ERROR]: Encountered an unexpected exception
java.lang.RuntimeException: java.util.concurrent.ExecutionException: net.minecraft.ReportedException: Exception ticking world
at net.minecraft.server.MinecraftServer.tickChildren(MinecraftServer.java:1792) ~[sparklypaper-1.21.jar:1.21-DEV-1b63d66]
at net.minecraft.server.dedicated.DedicatedServer.tickChildren(DedicatedServer.java:488) ~[sparklypaper-1.21.jar:1.21-DEV-1b63d66]
at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:1543) ~[sparklypaper-1.21.jar:1.21-DEV-1b63d66]
at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1251) ~[sparklypaper-1.21.jar:1.21-DEV-1b63d66]
at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:334) ~[sparklypaper-1.21.jar:1.21-DEV-1b63d66]
at java.base/java.lang.Threa...
Stack trace
https://paste.gg/p/JasonHorkles/aa3b43704c5944b2846df3b1cb5a63f9
Plugin and Datapack List
[20:36:59 INFO]: Paper Plugins:
[20:36:59 INFO]: - SignedVelocity
[20:36:59 INFO]: Bukkit Plugins:
[20:36:59 INFO]: - Chunky, CommandDoesNotExist, CoreProtect, DoubleShulkerShells, FileCleaner, floodgate, GSit, HidemFrames, LuckPerms, NoEndermanGrief
[20:36:59 INFO]: PlaceholderAPI, ProtocolLib, SilverstoneGlobal, spark, TAB-Bridge, UnlimitedAnvil, Vault, VeinMiner, ViaBackwards, ViaVersion
Actions to reproduce (if known)
- Install Chunky
- Run Chunky pregeneration
Paper version
This server is running Paper version 1.21-7-master@d23825a (2024-06-19T01:36:53Z) (Implementing API version 1.21-R0.1-SNAPSHOT)
You are running the latest version
Previous version: 1.21-4-090775e (MC: 1.21)
Other
Player generation seems fine, just not generation done via Chunky
Pop says it could also be an issue with Chunky, so feel free to close this if that is actually the case
3b1c85b Execute chunk tasks while waiting for chunk loa... - jpenilla
4ea696f Add ticket for chunk load in isChunkGenerated - jpenilla
Is your feature request related to a problem?
Currently the constructor for ClientboundSystemChatPacket takes in a Component or a BaseComponent and performs expensive calculations.
At the end of the day, the system chat message is sent as a String.
Describe the solution you'd like.
I am proposing one extra constructor with plain String to allow developers sending json messages without performance hits.
I am writing my own component parser and currently it has to be converted into JSON String, then CraftChatMessage.fromJSON, then back to String, wasting performance.
Describe alternatives you've considered.
.
Other
No response
Discussion Category: Ideas
IDK what version you are looking at, but 1.21 uses a StreamCodec to write the Component into the FriendlyByteBuf.
Paper specifically also has logic in these codecs, so I don't see how we'd expose a string here without rewriting how the packet is serialized, which is a rather large diff for 0 gain on our side.
Not to mention that this is obviously internals.
Discussion Category: Ideas
Allows plugins to add/remove players from who will hear the dragon death sound.
While this has a niche use case, it will be helpful in those cases.
Servers that have their own customized enderdragon can use the event to change it to where all damage dealers will hear the noise.
This can also be used in the case where a server wants to allow players to ignore the dragon death sound.
The string tag only works for simple text, i.e. no formatting, etc, otherwise, it's an NBT compound tag, which needs to be encoded anyway, using the same codec system.
There is 0 gain for supporting NBT here, and we generally do not change the internals to support plugins unless there is a good, strong-standing reason to do so. Messing with packet classes for plugins is generally a no-go for long-term maintenance reasons.
Discussion Category: Ideas
Makes sense.
So you recommend passing CraftChatMessage.fromJSON(String) into the constructor and using it that way? Or what's the best way to send json component messages when I have a string with formatting events at my disposal?
Thanks.
Discussion Category: Ideas
Makes sense.
So you recommend passing CraftChatMessage.fromJSON(String) into the constructor and using it that way? Or what's the best way to send json component messages when I have a string with formatting events at my disposal?
Thanks.
https://docs.papermc.io/paper/dev/component-api/introduction
Discussion Category: Ideas
Not what I asked for. I am having a JSON String instead from my own parser.
Discussion Category: Ideas
the best option is generally going to be to not have your own intermediatary layer producing a json string but to deal with the actual underlying components so you can skip the intermediary conversions, but, if you want to go around on a trip, that is going to be your best option, yes.
Discussion Category: Ideas
Expected behavior
The vanilla teleportation behavior should either:
- Send the player to a different dimension, and to the right location, as if the player teleported from the location that triggered this event.
- Not trigger at all, as the player nolonger is at the original location
Observed/Actual behavior
In some cases the player teleports monodimensionally (Race condition?), also generating a destination portal, if necessary.
Steps/models to reproduce
Monodimensionall travel can be reproduced with this minimal(ish) reproducible script:
@EventHandler
void onPlayerMove(PlayerMoveEvent event) {
Location to = event.getTo();
Location from = event.getFrom();
if (from.getBlockX() == to.getBlockX() &&
from.getBlockY() == to.getBlockY() &&
from.getBlockZ() == to.getBlockZ()) {
return;
}
Material toType = to.getBlock().getType();
if (!Tag.PORTALS.isTagged(to...
Yeah, you can parse this json string using GsonComponentSerializer to an adventure component, paper in all its methods supports not converting this component to nms component without a reason. So in the system chat packet adventure component is directly passed into the codec and send in binary, without (most probably) converting to nms
Discussion Category: Ideas
Either expose the collection directly and remove the other modifying accessors or return a copy of that Set and drop the setPlayerList(Set<....). Having both will just unnecessarily bloat the event with methods.
Expected behavior
World height increased from 384 to 448.
Observed/Actual behavior
logical world height increase is ignored and is stuck at 384.
Steps/models to reproduce
place a datapack with the file placed within datapack_name\data\minecraft\dimension_type\overworld.json with the properties height and logical_height changed in increments of 64:
{
"ambient_light": 0.25,
"bed_works": true,
"coordinate_scale": 1.0,
"effects": "minecraft:overworld",
"has_ceiling": false,
"has_raids": true,
"has_skylight": true,
"height": 512,
"infiniburn": "#minecraft:infiniburn_overworld",
"logical_height": 512,
"min_y": -64,
"monster_spawn_block_light_limit": 0,
"monster_spawn_light_level": {
"type": "minecraft:uniform",
"max_inclusive": 7,
"min_inclusive": 0
},
"natural": true,
"piglin_safe": false,
"respawn_anchor_works": false,
"ultrawarm": false
}
optionally, can change this for overworl...
I am unable to reproduce this with the overworld.json provided. I can build up to 448 just fine.
Make sure the datapack is in the correct place. It needs to be placed in the datapacks folder of your main world. This will be "world" by default, or whatever you configured in server.properties as level-name. Datapacks in other worlds will not be loaded.
Expected behavior
When using bundles I would expect getCursor to return the item in the cursor. To be more specific, I would expect getCursor to return:
- The item being inserted/removed from the bundle when right clicking the bundle while it is in an inventory
- The bundle when inserting/removing items while holding the bundle in your cursor
Observed/Actual behavior
When inserting and removing items from a bundle in the inventory, getCursor returns the bundle.
When inserting and removing items from a bundle in the cursor, getCursor returns the item in the slot after the item is moved. For example, when inserting a single a single white wool block into an empty bundle, air will be returned. If you then tried to insert a stack of 64 white wool into the same bundle, a single white wool block would be returned (This the wool block left over after the bundle is filled).
Steps/models to reproduce
- Create a plugin with an InventoryClickEvent similar to this...
To expand on how a vanilla change caused this... When a projectile is deflected, it's owner is changed to the entity that it deflected off of. And for arrows, when the arrow's owner is changed to a player and the pickup status was disallowed, it's reset to allowed. I probably need some clarification on how this is a vanilla feature or not before we move to change it in some way. I created a mojira report which hopefully provides some insight.
The itemmeta was considered as empty even with valid data in the component (so previously the conversion would always clear the component).
Also fixed the javadoc and annotation of ItemMeta#getJukeboxPlayable. And for some reason spigot considered the jukebox song as always translatable which might be not the case for data pack ones.
38428c0 Cleanup MCUtils patch for chunk system - Spottedleaf
i just started up with build 11 and it appears to just... work, now. i reformatted everything so i must have had something misplaced or something. thanks
f4ddd4a Fix ChunkHolder#getFullChunkNow returning non-n... - Spottedleaf
e0d9d60 Add debug for chunk system unload crash - Spottedleaf
Make it easier for plugin to diagnose issue down the line and prevent being in an unstable state in the server.
Player save and dump item will fail for player holding this bad item.
Expected behavior
It should let player to join server
Observed/Actual behavior
It prevents player from joining server, showing the infinite "Logging to the server" on the client screen
Steps/models to reproduce
Load server and try to join it and you see the error in the console
Plugin and Datapack List
FastAsyncWorldEdit, WorldEdit, WorldGuard, my custom plugin (updated to 1.21 and not shown on stacktrace)
Paper version
1.21 build(s) 4, 9, 14
Other
Console stack trace: https://pastebin.com/LGeHgwjQ
In all likely hood, it's a problem with your custom plugin. Without knowing anything about what it does, I'm guessing to are adding stuff to registries incorrectly.
Expected behavior
fireballs should be moving
Observed/Actual behavior
fireballs just float at their spawn location
Steps/models to reproduce
agro dragon and look up
Plugin and Datapack List
ViaVersion-5.0.1-SNAPSHOT build #858
ViaRewind-4.0.0 build #52
ViaBackwards-5.0.1-SNAPSHOT build #433
Paper version
Paper version 1.21-14-master@e0d9d60 (2024-06-19T18:02:15Z) (Implementing API version 1.21-R0.1-SNAPSHOT)
Other
No response
Hello! As for now, my custom plugin doesn't add any registries. Moreover, if you see the stack trace, there's no mention of any plugin besides paper core. But I'll try to start it without plugins tomorrow (I can't do it right now) and will let you know later
Expected behavior
These items cannot be used, lava cannot be placed, the boat does not appear
Observed/Actual behavior
.
Steps/models to reproduce
Trying to use one of these items
Plugin and Datapack List
[00:33:01 INFO]: Bukkit Plugins: (9):
[00:33:01 INFO]: - Chunky, Geyser-Spigot, HardAPI, Multiverse-Core, spark, Vault, ViaBackwards, ViaVersion, WorldEdit
(none of this conflicts)
Paper version
1.21-15-master@2df432f (2024-06-19T19:19:30Z)
Other
No response
Cannot replicate, pls try to replicate this without plugins.
oh sorry... The plugin is really to blame, thanks for the feedback
using paperMC experimental (1.21) spotted.moonrise.patches seems to causing issues for my friend and I our world reverted back to when I roughly logged into the server judging by the time difference (when it crashed it went back to before I placed a chest with my inventory, cut down some trees and made a 2 tunnel wide mineshaft with a friend down to y=6, when it undid that I lost my chest with my inventory)
the crash happened when i triggered a skulk sensor and my friend at the time was taking taking damage, although that might just be random.
my player data was fine aka i had all the diamonds I mined and redstone and such from that mining session in the cave
using paperMC experimental (1.21) spotted.moonrise.patches seems to causing issues for my friend and I our world reverted back to when I roughly logged into the server judging by the time difference (when it crashed it went back to before I placed a chest with my inventory, cut down some trees and made a 2 tunnel wide mineshaft with a friend down to y=6, when it undid that I lost my chest with my inventory)
the crash happened when i triggered a skulk sensor and my friend at the time was taking taking damage, although that might just be random.
my player data was fine aka i had all the diamonds I mined and redstone and such from that mining session in the cave
Update Paper, there were multiple chunk fixes in newer builds
0951afe Bump reflection-rewriter to 0.0.2 - Machine-Maker
[PaperMC/Paper] New branch created: chore/reflection-rewriter
Stack trace
Plugin and Datapack List
plugins
[22:19:48 INFO]: Server Plugins (1):
[22:19:48 INFO]: Bukkit Plugins:
[22:19:48 INFO]: - WorldEdit
datapack list
[22:19:50 INFO]: There are 3 data pack(s) enabled: [vanilla (built-in)], [file/bukkit (world)], [paper (built-in)]
[22:19:50 INFO]: There are no more data packs available
Actions to reproduce (if known)
/kill @e[type=!player] seems to work but creates the stacktrace
/kill @e[type=player] will work without issue
player can be replaced with any valid entity
Paper version
version
[22:19:53 INFO]: This server is running Paper version 1.21-15-master@2df432f (2024-06-19T19:19:30Z) (Implementing API version 1.21-R0.1-SNAPSHOT)
You are running the latest version
Previous version: 1.21-7-d23825a (MC: 1.21)
Other
when executing one of the "/kill @e[type=! " commands in game, you get the "An unexpected error occurred trying to execute that command" error and can see the ...
Yeah, this is because in at least one spot, mojang is calling getEntity(UUID) with a null UUID which doesn't cause an exception in vanilla because vanilla's map is not a fastutil one and just returns null on get(null), but its now a fastutil map which throws if you do get(null). I think the only spot is in EndDragonFight where this happens.
Expected behavior
When the server is started, you can type characters in the cmd console to execute commands.
Observed/Actual behavior
When you try to enter text in the cmd console, sometimes it doesn't work correctly, and you need to press several times or hold the key for the characters to appear.
Steps/models to reproduce
- Open cmd.exe.
- Start server with command: java -jar paper-1.21-*.jar -nogui, wait for the server to load completely.
- Try to type something in the cmd console.
- The character sometimes can't be typed.
Plugin and Datapack List
/datapack list:
There are 3 data pack(s) enabled: [vanilla (built-in)], [file/bukkit (world)], [paper (built-in)]
There are no more data packs available
/plugins:
Server Plugins (0):
Paper version
[16:20:55 INFO]: Checking version, please wait...
[16:20:56 INFO]: This server is running Paper version 1.21-15-master@2df432f (2024-06-19T19:19:30Z) (Implementing API version 1.21-R0.1-SNAPSHOT)
You ...
[PaperMC/Paper] New comment on issue: #10929 Paper 1.21 cmd.exe console sometimes can't type things.
Duplicate of https://github.com/PaperMC/Paper/issues/10405, downgrade to java 21 or use windows terminal instead of conhost.
Well, seems like you are right that it's my plugin issue. However I don't really understand where's this issue happens as I haven't added anything new to the plugin when migrating from 1.20.4 to 1.21.
Feel free to ask in our discord :+1:
Closing as a non paper issue then.
Thank you. I wrote our parser before Adventure came to life. We use javascript conditions and permissions to send different component parts per-receiver and per-sender. I will look into if Adventure can support the edge cases we have in ChatControl.
Discussion Category: Ideas
- Adds
LivingEntity#canUseEquipmentSlot(EquipmentSlot)to check whether an entity can use that slot. - Adds missing
@throwsannotations to PlayerInventory.
Follow-up/related to https://github.com/PaperMC/Paper/pull/10822.
cf60574 Fix jukebox playable component not being applie... - Lulu13022002
666bc4d Experimental annotation changes (#10914) - Lulu13022002
bab07e0 Validate speed for tool component rule (#10923) - Lulu13022002
Update outdated entity tags. And deprecate tag that already have a real vanilla tag bind to a registry.
getWeaponItem() is nullable and CraftItemStack#asBukkitCopy doesn't allow null input even before the itemstack delegate commit.
Closes https://github.com/PaperMC/Paper/issues/10925
This also fix the same issue for CraftLivingEntity#launchProjectile.
The trident launch speed when a player launch it by hand is set to 2.5 however the api always set it to 3 which change the outcome.
wouldn't adding a shutdown hook be a more appropriate solution than playing hide and seek with existing exit points?
shutdown hooks run in order of registration, so, we could register one, but, then we'd need to remove it, otherwise upstream shutdown thread won't be able to log the shutdown process
Is this intended then? Because the javadocs still says 1.0 but it actually return 3 for a full charge.
Expected behavior
TraderLlama entities should spawn correctly and be leashed to the specified WanderingTrader when using setLeashHolder.
Observed/Actual behavior
When setLeashHolder is called on a TraderLlama, the entity fails to spawn. Without calling setLeashHolder, the TraderLlama spawns correctly but without a leash. The issue does not occur with regular Llama entities, which spawn and leash correctly to the WanderingTrader.
Steps/models to reproduce
- Create a command or method to spawn a WanderingTrader and two TraderLlama entities.
- Use the setLeashHolder method to leash the TraderLlama entities to the WanderingTrader.
- Observe that the TraderLlama entities fail to spawn when setLeashHolder is used.
- Comment out the setLeashHolder call and observe that the TraderLlama entities spawn without the leash.
- Change the entity to Llama and observe that setLeashHolder works correctly.
I am willing to provide code sample if needed
Plugin and Datap...
Can replicate, you should probably set the despawn delay of the wandering trader first with WanderingTrader#setDespawnDelay. So i would say it's a WAI.
Yeah, you're right. Checked the Trading Llama docs once again, turns out
has its DespawnDelay set to 47999 ticks
Thank you for quick reply
The thing has been returning the speed for years, not the force. It's not exactly intended, but "that's been the implementation for so long now" unless upstream removed a division at some point.
Expected behavior
Sprinting to be controlled by config option
Observed/Actual behavior
Sprinting always being set to false
Steps/models to reproduce
Plugin and Datapack List
None
Paper version
Latest
Other
No response
Expected behavior
Fire not being cleared if the target.hurt(damagesource, f3) returns false
Observed/Actual behavior
Fire is cleared if target.hurt(damagesource, f3) returns false
Steps/models to reproduce
flag4 was a different variable in 1.20.6, and that clearFire method call shouldn't even exist now.
Plugin and Datapack List
None
Paper version
Latest 1.21
Other
No response
Expected behavior
The VehicleEntityCollisionEvent should only be triggered if the event parameter is a VehicleEntityCollisionEvent.
Observed/Actual behavior
The VehicleEntityCollisionEvent gets triggered with a VehicleBlockCollisionEvent as event parameter.
Steps/models to reproduce
@EventHandler
public void onVehicleCollision(VehicleEntityCollisionEvent event) {
plugin.getLogger().info("Vehicle collision event triggered with " + event.getClass().getName());
}
Plugin and Datapack List
/plugins
Server Plugins (1):
Bukkit Plugins:
- CollisionExample
/datapack list
There are 3 data pack(s) enabled: [vanilla (built-in)], [file/bukkit (world)], [paper (built-in)]
There are no more data packs available
Paper version
This server is running Paper version 1.20.6-147-ver/1.20.6@e41d44f (2024-06-17T19:24:35Z) (Implementing API version 1.20.6-R0.1-SNAPSHOT)
You are running the latest version
Prev...
Expected behavior
When I stop the server, all chunks should be saved
Observed/Actual behavior
Some seemingly random chunks are not being saved correctly
Steps/models to reproduce
edit multiple different chunks, save or stop server, reboot, some chunks should be left unchanged whilst others will be changed
Plugin and Datapack List
DiscordSRV, Floodgate, Geyser-Spigot, SkinsRestorer
Vanilla (built-in), file/bukkit (world), paper (built-in)
Paper version
Paper version 1.21-1-master@21c9a7c (also warns me for being 19 versions behind)
Other
Pretty sure there was the same issue for the latest release of paper (not alpha)
You're using unstable builds, you should be updated frequently. This should have already been resolved in the past few builds.
Expected behavior
Components obtained through pages() should be styled the same for WRITABLE_BOOK and WRITTEN_BOOK.
Observed/Actual behavior
WRITABLE_BOOK:
[01:57:49 INFO]: [TestPlugin] isSigning: false, hasStyling: true
[01:57:49 INFO]: [TestPlugin] <gold>test
WRITTEN_BOOK:
[01:57:59 INFO]: [TestPlugin] isSigning: true, hasStyling: false
[01:57:59 INFO]: [TestPlugin] ยง6test
Steps/models to reproduce
public final class Plugin extends JavaPlugin implements Listener {
private final Logger logger = getLogger();
private final MiniMessage miniMessage = MiniMessage.miniMessage();
@Override
public void onEnable() {
Bukkit.getPluginManager().registerEvents(this, this);
}
@EventHandler
public void onPlayerEditBook(PlayerEditBookEvent e...
What happens if you create a valid component, I.e. not using the legacy
stuff, as that is just text and is not considered actual formatting by the
modern system
On Fri, 21 Jun 2024 at 02:32, Gaweล Kazimierczuk @.***>
wrote:
Expected behavior
Components
https://jd.advntr.dev/api/4.17.0/net/kyori/adventure/text/Component.html
obtained through pages()
https://jd.advntr.dev/api/4.17.0/net/kyori/adventure/inventory/Book.html#pages()
should be styled the same for WRITABLE_BOOK and WRITTEN_BOOK.
Observed/Actual behaviorWRITABLE_BOOK:
[01:57:49 INFO]: [TestPlugin] isSigning: false, hasStyling: true
[01:57:49 INFO]: [TestPlugin] <gold>testWRITTEN_BOOK:
[01:57:59 INFO]: [TestPlugin] isSigning: true, hasStyling: false
[01:57:59 INFO]: [TestPlugin] ยง6testSteps/models to reproduce
public final class Plugin extends JavaPlugin implements Listener {
private final Logger logger = getLogger();
private...
@electronicboy I just tried that and writable_book does not support it!
Looks like it's not a bug in Paper or Adventure, but rather a "feature" in Minecraft: MC-272175
Out of curiosity, I tried creating a writable book using components:
ItemStack is = new ItemStack(Material.WRITABLE_BOOK);
BookMeta meta = (BookMeta) is.getItemMeta();
meta.addPages(
Component.empty().color(NamedTextColor.GOLD).content("test")
);
is.setItemMeta(meta);
Note: BookMeta is used instead of WritableBookMeta, as the latter doesn't support components.
To my surprise, the book is displaying correctly in game and looks like it was converted to legacy styling:
So it looks like there is some conversion in place, but only one-way.
Expected behavior
Tbh i didn't expected anything it just happened since my update from the 1.20.4 -> 1.21
Observed/Actual behavior
I am creating custom item/weapon system and i update my old one to the 1.21 standards, methods etc and now when i open the creative inventory all the attribute modifiers. It just happened out of nowhere i didn't code anything within the creative inventory.
Steps/models to reproduce
My code to set the attribute modifiers:
@Override
default HashMap<Class<?>,InitUpdateMethod> getInitUpdateMethods() {
HashMap<Class<?>,InitUpdateMethod> initUpdateMethods = ClickHitDamageItem.super.getInitUpdateMethods();
initUpdateMethods.put(HitWeaponItem.class, itemStack -> {
itemStack.editMeta(meta -> {
meta.addAttributeModifier(
Attribute.GENERIC_ATTACK_DAMAGE,
new AttributeModifier(
new NamespacedKey(CatalyaRPG.get...
OKAY NEVERMIND
i found it it also removes the whole Item Meta but not lore and display name
Expected behavior
There should be the unknown command message in console
Observed/Actual behavior
There is no output
Steps/models to reproduce
- Run an unknown command via console
- See output
Plugin and Datapack List
[23:15:43 INFO]: Server Plugins (1):
[23:15:43 INFO]: Bukkit Plugins:
[23:15:43 INFO]: - Chunky
Paper version
[23:15:54 INFO]: Checking version, please wait...
[23:15:54 INFO]: This server is running Paper version 1.21-20-master@8b1d26d (2024-06-21T00:30:00Z) (Implementing API version 1.21-R0.1-SNAPSHOT)
You are running the latest version
Previous version: 1.21-9-4ea696f (MC: 1.21)
Other
Doesn't happen on Spigot or 1.20.4 (haven't tested .6)
Also happens with commands like whitelist list etc
Expected behavior
Effects obtained from e.g. enchanted golden apples should not immediately disappear
Observed/Actual behavior
Effects disappear within a second
Steps/models to reproduce
Build #21 (or previous builds) of Paper.
Eat an enchanted golden apple.
https://github.com/PaperMC/Paper/assets/61745317/9176e8ff-73d7-4230-afa0-8b34f7ce275a
Plugin and Datapack List
Plugins:
- HuskHomes
- DeluxeMenus
- GriefPrevention
- LuckPerms
- Multiverse-Core
- NoCheatPlus
- PlaceholderAPI
- PlayerStats
- Vault
- WorldEdit
Datapacks:
- vanilla
- file/bukkit
- paper
Paper version
This server is running Paper version 1.21-21-master@0a1b133 (2024-06-21T09:19:07Z) (Implementing API version 1.21-R0.1-SNAPSHOT)
You are running the latest version
Previous version: 1.21-15-2df432f (MC: 1.21)
Other
Nothing appears in logs. Running under Arch Linux, systemd service
Stack trace
https://paste.gg/p/anonymous/4243d7a7fa784d25969ee44d70d300b4
Plugin and Datapack List
[16:59:12 INFO]: Server Plugins (30):
[16:59:12 INFO]: Paper Plugins:
[16:59:12 INFO]: - bedrock, calendar, FancyHolograms, FancyNpcs, minephone, navigate, popcorn_test, sport, storehouse, vehicles
[16:59:12 INFO]: visuals
[16:59:12 INFO]: Bukkit Plugins:
[16:59:12 INFO]: - CommandBlockWhitelist, ConsoleSpamFix, CraftingStore, DisplayEntityEditor, dynmap, Elevator, Essentials, FastAsyncWorldEdit, GSit, HeadDatabase
[16:59:12 INFO]: LuckPerms, Multiverse-Core, packetevents, PlaceholderAPI, spark, TAB, Vault, WorldEditSUI, WorldGuard
[16:59:19 INFO]: There are 4 data pack(s) enabled: [vanilla (built-in)], [file/bukkit (world)], [paper (built-in)], [file/vindex (world)]
[16:59:19 INFO]: There are no more data packs available
Actions to reproduce (if known)
I was flying around the world with EssentialsX /speed 10 turned on
###...
One constructor was missing the default base damage definition. The base damage was set to 2 instead of 8 points for this situation.
This is only used by the trial spawner via the ominous item spawner and can be reproduce easily with a custom loottable containing a single trident.
d64be7e Fix NPE of AbstractArrow#getWeapon (#10933) - Lulu13022002
081146c Validate using_converts_to for food component (... - Lulu13022002
0409a68 deprecate and update some entity tags (#10932) - Lulu13022002
An example or two would be good, like specifically calling out the body slot regarding players
5286f5c Various minor fixes for DataComponent-API (#10938) - Boy0000
Related to https://github.com/PaperMC/Paper/pull/8524
Using the same example as provided in the above pr with brush on armadillo will trigger a SO exception.
Can you replicate with no plugins?
Is your feature request related to a problem?
I would like to propose the reintroduction of the obfuscated version of Paper. Despite the remapping feature, we are unable to use it because not all reflection calls are supported. Users should be able to choose whether they want to use the obfuscated or unobfuscated version at runtime.
We have been very successful with the obfuscated version so far and currently do not see any added value in using the Mojang-mapped version. Remapping the plugins consumes unnecessary resources, and we do not wish to operate our plugins in the Mojang mappings.
Describe the solution you'd like.
I understand that the Mojang-mapped version is offered and see its benefits for some users. However, it would be very helpful if at least the old obfuscated version could still be provided through the download API until the existing issues are resolved.
Describe alternatives you've considered.
Other
No response
Discussion Category: Ideas
not all reflection calls are supported
What reflection calls are not supported? If some are missing, they can be added.
Users should be able to choose whether they want to use the obfuscated or unobfuscated version at runtime.
This kind of choice should have 0 impact on users, it really has nothing to do with the operation of the server.
Remapping the plugins consumes unnecessary resources
What kind of resources? Plugins are remapped once and then cached.
Discussion Category: Ideas
We will not support reobfuscated Paper runtimes on 1.20.5 or newer.
Discussion Category: Ideas
What reflection calls are not supported? If some are missing, they can be added.
We have added dependencies via thejava -cp ..in the classpath. The reflection calls of this are not remapped.
This kind of choice should have 0 impact on users, it really has nothing to do with the operation of the server.
The term user refers to the operator.
What kind of resources? Plugins are remapped once and then cached.
Even if the plugins are cached, additional resources are still required for remapping the reflection at runtime. This may not make much difference on a single Minecraft server, but with 100 servers the effort should not be underestimated. In addition, we currently have to ensure that the caches are preserved. So far, our servers have been thoroughly cleaned of artifacts after a restart. It is therefore generally advantageous to create as few manageable artifacts as possible.
Discussion Category: Ideas
You can still produce a reobf jar to my understanding, but the reality here is that we are moving away from spigot, in which, we will no longer have any obfuscation mappings to go off. For a period of time we might release jars containing a copy of spigots mappings after spigot releases, but it will not be a long term thing.
if there is any missing holes in the tooling, it would be best that issues are created so that we can resolve them, because we have no interest in moving backwards in our progress to separate from spigot.
Discussion Category: Ideas
I was already aware that we had encountered some issues with the transition and therefore wanted to suggest reconsidering it. I'm also aware that the Re-Obf Jar can still be generated. It just adds extra effort to build the project manually. Hence, the suggestion was to adjust the Download API to continue providing the Re-Obf Jar. The Plugin Remapping is already a quite specific operation, from which I haven't yet seen any added value.
Discussion Category: Ideas
I understand that there might be a desire to differentiate oneself from Spigot. However, from my perspective, this change doesn't separate oneself so much from Spigot as it does from Minecraft itself. This change moves away from how Mojang releases and operates Minecraft.
Discussion Category: Ideas
Thanks for the suggestion, we have considered it and have decided not to accept it: https://github.com/PaperMC/Paper/discussions/10950#discussioncomment-9843317
It wouldn't make sense for us to provide downloads for something that we don't support.
Discussion Category: Ideas
Paper wants to release versions before spigot releases them, on that time they just can't provide reobfuscated versions since spigot doesn't use Minecraft obfuscated names everywhere, but own semi deobfuscated names, and they just can't guess what remappings they'll invent. That's why they move to mojang mappings, they are released with the version itself and are more reliable, so they'll be able to use them in future
Discussion Category: Ideas
Current change allows devs to move completely to mojang mappings so in future they could support this, but at the same time won't need to worry if some random guy will want to still use reobfuscated paper
Discussion Category: Ideas
This discussion is over, but to provide you with some context: As of 1.21, MinecraftForge, NeoForge, Sponge, and Paper all use Mojang mappings at runtime. Spigot is an outlier in this regard.
Discussion Category: Ideas
This has nothing to do with differentiating with spigot. Those mapping files in order to produce a spigot mapped jars are backed by spigots data files which are not released with a proper open source license . We also do not have access to them in a useful manner in the long run, and so relying on them would only intentionally harm us as a software project.
Discussion Category: Ideas
When flattening any command or registering an alias to a node with no direct children (such as a redirect), the code now takes into account any potential redirect/fork/forward on the target node. This fixes the issue where, when registering a command that was simply a redirect, only the namespaced literal would work, and not any aliases of the command.
This fixes #10827
When flattening any command or registering an alias to a node with no direct children (such as a redirect), the code now takes into account any potential redirect/fork/forward on the target node. This fixes the issue where, when registering a command that was simply a redirect, only the namespaced literal would work, and not any aliases of the command.
This fixes #10827, and is now correctly based on a non-master branch :)
Thanks for the PR! Looks good to me, not sure why that wasnโt originally doneโฆ that bit of code was missing some logic previously :P
Expected behavior
If you make changes using the plugin bootstrap feature and cause a exception this messages are printed in logs
Observed/Actual behavior
When you cause a exception in bootstrap that messages are not show and confuse users because the most of this throws cause the server to stop
Steps/models to reproduce
You can use this plugin https://github.com/Doc94/PaperTestRegistryReflectionEnchantment where register a Enchantment but not use all the mandatory fields in builder causing Registry throws a exception
Plugin and Datapack List
PaperTestRegistryReflectionEnchantment
Paper version
[22:31:18 INFO]: Checking version, please wait...
[22:31:18 INFO]: This server is running Paper version 1.21-25-master@19105a9 (2024-06-21T19:03:48Z) (Implementing API version 1.21-R0.1-SNAPSHOT)
You are running the latest version
Previous version: 1.21-19-2118196 (MC: 1.21)
Other
This was talked in discord and a fix comes from https://github.com/PaperMC/P...
DataComponentBuilder, or even better as a subinterface somewhere, otherwise this will hurt discoverability of... component builders
Moving these out as siblings might be nicer
Expected behavior
The Method getName() of an offline player should return their name not the uuid
Observed/Actual behavior
The Method getName() returns the uuid as string
Steps/models to reproduce
Create a plugin that calls Bukkit.getOfflinePlayer(uuid).getName()
Plugin and Datapack List
Only the Plugin that calls Bukkit.getOfflinePlayer(uuid).getName()
Paper version
[13:25:23 INFO]: Checking version, please wait...
[13:25:23 INFO]: This server is running Paper version 1.21-25-master@19105a9 (2024-06-21T19:03:48Z) (Implementing API version 1.21-R0.1-SNAPSHOT)
You are running the latest version
Other
No response
Might have been solved here https://hub.spigotmc.org/jira/browse/SPIGOT-7785 will test this morning though
Expected behavior
Since clearing the drop list results in no item drops, mutating the list should also change the items dropped by the event.
Observed/Actual behavior
Changing the contents of the list has no effect (the list is probably a copy?) the same items are dropped that would drop otherwise.
Steps/models to reproduce
register the following event handler
public void onPlayerShearBlock(PlayerShearBlockEvent e) {
e.getDrops().clear();
e.getDrops().add(new ItemStack(Material.DIAMOND));
}
This should make it so for example carving a pumpkin drops a diamond but it still only drops the pumpkin seeds.
If I change the code to just:
public void onPlayerShearBlock(PlayerShearBlockEvent e) {
e.getDrops().clear();
}
then no item is dropped, as expected.
Plugin and Datapack List
Empty/only test plugin
Paper version
[14:39:26 INFO]: Checking version, please wait...
[14:39:26 INFO]: This server is running ...
Close #10955
Based https://github.com/PaperMC/Paper/issues/10955#issuecomment-2184027867 the only issue is missing the override of item in the pumpkin
77c763b Fix PlayerShearBlockEvent drops ignored for Pum... - Doc94
Stack trace
[paste your stack trace or a paste.gg link here!](https://paste.gg/p/anonymous/62ae56763f4d45ad89e13b5bb9120724/revisions)
Plugin and Datapack List
[22:02:37 INFO]: - MarriageMaster, Minepacks
[22:02:37 INFO]: Bukkit Plugins:
[22:02:37 INFO]: - AntiCrasher, AutoShutdown, BanFromClaim, BetterRTP, BottledExp, Cat_Nurfpemtume, CatArmor_Stand_Tools, catautofly, CatAutoRemoveClaim, catAutoRestart
[22:02:37 INFO]: CatChatGUI, CatClaimBuy, Catclaimfly, CatCore-v2.0, catHopperliimt, CatMobMoney, catNick, CatnoobEnchantAddonPlugin, catnoobKit, CatOreReplace
[22:02:37 INFO]: CatRaidLimitPlugin, CatShiftFcommand, CatSpyDropper, ChatHelper, ChestCommands, ChestSort, Claimtp, ClearLag, CMILib, CoCoBeenAgreeRulesPlugin
[22:02:37 INFO]: CommandTimer, CoreProtect, DecentHolograms, DeluxeMenus, DiscordSRV, Elevators, EpicRename, Essentials, EssentialsMysqlStorage, EssentialsSpawn
[22:02:37 INFO]: ExcellentEnchants, ez-broadcast, FastAsyncWorldEdit, Frie...
1.20.1 is no longer supported. Please try to reproduce this on 1.20.6 or 1.21.
Unsupported version of paper, and generally looks like something caused the POI load to be lost. We generally cannot really comment on what plugins screwing with internals are doing, unless there is a min repro case here which can isolate the issue down in a useful (and even remotely supported behavior), there is generally nothing that we can action here
I am unable to replicate this. Effects are being correctly applied when eating an golden apple (or using other items that give effects).
Closing this, as it is very likely a plugin issue. Make sure all of them are up-to-date for 1.21. Feel free to use the Paper Discord for further help.
If anyone is able to replicate this without any plugins feel free to reply so the issue can be reopened.
I am able to reproduce this. For context, the datapack seems to teleport the minecart once a certain speed is reached:
execute as @s[scores={VanillaPlusCartsXSpeed=50..}] at @s if block ~1 ~ ~ #minecraft:rails[shape=east_west] run tp @s ~1 ~ ~
execute as @s[scores={VanillaPlusCartsXSpeed=..-50}] at @s if block ~-1 ~ ~ #minecraft:rails[shape=east_west] run tp @s ~-1 ~ ~
execute as @s[scores={VanillaPlusCartsZSpeed=50..}] at @s if block ~ ~ ~1 #minecraft:rails[shape=north_south] run tp @s ~ ~ ~1
execute as @s[scores={VanillaPlusCartsZSpeed=..-50}] at @s if block ~ ~ ~-1 #minecraft:rails[shape=north_south] run tp @s ~ ~ ~-1
This seems to cause the minecart to get stuck, not only loosing velocity but you are also unable to move it forward by pressing W until exiting and re-entering the minecart.
In vanilla the minecart continues moving just fine.
The datapack also forceloads chunks with minecarts travelling through them which seems like a really bad idea. Datapacks t...
I cannot reproduce this with the schematic provided on 1.20.6 or 1.21. The iron golems go through the water just fine and fall to their burning deaths. However, the farm gets clogged up quite easily, causing a bit of an iron golem traffic jam before the drop.
So either this problem has been fixed in newer versions, or it was caused by one of your plugins.
The collision optimisation patch that could cause this is still missing from 1.21. However, the farm also works fine on 1.20.6, which has all the relevant patches applied.
As I cannot reproduce this on 1.21 or 1.20.6, and 1.20.4 is unlikely to get any more fixes as it is outdated, I will close this issue.
If you can reproduce this on 1.21 and without any plugins, feel free to reply and it can be reopened.
Deprecate PATROL_CAPTAIN effect cause and add POTION_DRINK for ominous potion.
Added example linking to body slot, and body slot has javadoc explaining that only certain entities can have it
Expand a bit the api to support leashable boat.
I've updated SectorTool to 1.3 to fix an issue where SectorFiles are far larger than they should be when converting RegionFiles using the raw flag or when the RegionFiles were stored with the uncompressed format. This affects the auto conversion previously in this branch as well, as it converted using the raw flag.
If the original RegionFiles were stored in a compressed format, the large size can be fixed by converting from SectorFile to RegionFile and then back again. If the RegionFiles were in an uncompressed format, then you need to convert to RegionFile, then use the recreateRegionFiles startup option with forceUpgrade and then convert back to SectorFile.
SectorTool 1.3 also includes a minor disk space improvement by not storing type headers on disk if they're unused (this mostly will cause the type headers for poi and entity to be unallocated until data is written for them), which has been copied over to this branch.
Note that the branches are still on 1.20.6 as of wri...
In minecraft 1.21 writable books do not support styling at all. while written books contain components, writable books just contain plain strings and afaik the legacy formatings (if existing) are removed when the client tries to update a book on the server.
https://minecraft.wiki/w/Data_component_format#writable_book_content
Expected behavior
When a custom recipe is added to the server, you should be able to craft the result of the recipe
Observed/Actual behavior
Crafting the recipe does not yield a result
Steps/models to reproduce
Add a custom recipe via a plugin:
public class CustomRecipeTester
extends JavaPlugin
{
public String pluginName;
public void onDisable() {}
public void onEnable() {
ItemStack is = new ItemStack(Material.LEATHER_HELMET, 1);
ItemMeta im = is.getItemMeta();
im.setDisplayName("A Thing");
im.setCustomModelData(Integer.valueOf(1));
im.setLore(List.of("The essential thing!"));
is.setItemMeta(im);
NamespacedKey key = new NamespacedKey("customrecipetester", "athing");
ShapedRecipe r = new ShapedRecipe(key, is);
r.shape(new String[] { " ", "SWS", " " });
r.set...
Don't include the full space rows. In your shaped recipes, you shouldn't have complete rows or complete columns of spaces, those can just be deleted.
Expected behavior
[23:33:34 ERROR]: The server has not responded for 0 seconds! Creating thread dump
[23:33:34 ERROR]: ------------------------------
[23:33:34 ERROR]: Server thread dump (Look for plugins here before reporting to Paper!):
[23:33:36 ERROR]: ------------------------------
[23:33:36 ERROR]: Current Thread: Server thread
[23:33:39 ERROR]: PID: 50 | Suspended: false | Native: false | State: RUNNABLE
[23:33:39 ERROR]: Stack:
[23:33:39 ERROR]: java.base@21.0.3/java.lang.invoke.MethodHandleNatives.resolve(Native Method)
[23:33:39 ERROR]: java.base@21.0.3/java.lang.invoke.MemberName$Factory.resolve(MemberName.java:962)
[23:33:39 ERROR]: java.base@21.0.3/java.lang.invoke.MemberName$Factory.resolveOrFail(MemberName.java:991)
[23:33:39 ERROR]: java.base@21.0.3/java.lang.invoke.InvokerBytecodeGenerator.resolveInvokerMember(InvokerBytecodeGenerator.java:256)
[23:33:39 ERROR]: java.ba...
Expected behavior
Pressing F+Q should not create any ghost items.
Observed/Actual behavior
Press F+Q keys simultaneously to create ghost items.
Steps/models to reproduce
I tested it on 1.20.4, 1.20.6, and 1.21 Paper. (All reproducible)
Hold an item with 2 or more item stacks and press F and Q at the same time.
https://youtu.be/wYFs7a5A4d0
Plugin and Datapack List
[15:36:11 INFO]: Server Plugins (0):
Paper version
[15:36:20 INFO]: This server is running Paper version 1.21-27-master@76c2f16 (2024-06-22T18:19:36Z) (Implementing API version 1.21-R0.1-SNAPSHOT)
You are running the latest version
Other
No response
This has not been the case in previous versions of Paper server - including 1.20.6 (Paper version 1.20.6-147-ver/1.20.6@e41d44f (2024-06-17T19:24:35Z) (Implementing API version 1.20.6-R0.1-SNAPSHOT))
just to be sure, you confirmed that this is caused by paper and doesnt happen on vanilla?
just to be sure, you confirmed that this is caused by paper and doesnt happen on vanilla?
This bug occurs on both vanilla and paper.
DO NOT REPORT THIS TO PAPER - THIS IS NOT A BUG OR A CRASH
Your server is overloaded, please use the discord for support
Expected behavior
Cats should always be visible when teleporting to the player.
Observed/Actual behavior
I noticed that sometimes, especially when teleporting across longer distances, cats are going invisible.
Steps/models to reproduce
Unfortunately, this issue seems to be very inconsistent, but it seems to happen more often the greater the distance. Simply tame a cat, make it follow you and fly longer distances with an elytra or in creative. Sometimes, the cat will teleport to you and is visible and in some occations you will hear the steps and meows of the cat, but you don't actually see it. I made sure it wasn't in caves or anything, it's really invisible.
Plugin and Datapack List
Plugins: Harbor (https://github.com/nkomarn/harbor)
Datapacks: None
Paper version
[16:26:03 INFO]: This server is running Paper version 1.21-27-master@76c2f16 (2024-06-22T18:19:36Z) (Implementing API version 1.21-R0.1-SNAPSHOT)
You are 1 version(s) behind
Download...
My custom recipes from version 1.20.4 do not work in 1.21 either
19eefe9 Fix SoundEffects only to players diff (#10966) - scarfacered
95aa440 Add missing effect cause and deprecate PATROL_C... - Lulu13022002
TridentItem.SHOOT_POWER
97afc9a Fix StackOverflowError for new dispenser intera... - Lulu13022002
Unusually, one of my recipes works and the other doesn't. One is a pickaxe and one is an axe, the axe doesn't work but the pickaxe does.
It might be that the pickaxe recipe can be flipped horizontally?
Don't include the full space rows. In your shaped recipes, you shouldn't have complete rows or complete columns of spaces, those can just be deleted.
Do this
5ae4758 Fix speed for launched trident using api (#10936) - Lulu13022002
fixed in 19105a9019d7e67fac176dd9b9709cd25c213d31
Can you provide some clarification on what is happening? Your original post doesn't seem to say. Also, try doing this without viaversion.
fixed in 19105a9019d7e67fac176dd9b9709cd25c213d31
897ece4 Call EntityPortalEnterEvent on endgateways and ... - Machine-Maker
1d3fc0e Bump reflection-rewriter to 0.0.2 (#10927) - Machine-Maker
[PaperMC/Paper] branch deleted: chore/reflection-rewriter
Needs some testing on my end, but does look good otherwise. Will get to on monday :+1:
Is your feature request related to a problem?
If you need to downgrade your server for some reason (I know, I know... this is unsupported) you can enable the Paper.ignoreWorldDataVersion system property to let Paper ignore the world data version, allowing an older Paper version to load a world with a newer data version than the server.
However, CraftMagicNumbers still checks the item data version to see if it is newer than the data version of the server, causing issues when downgrading the server. This causes errors when you attempt to deserializeBytes an item stack that was serializeAsBytes'd on a recent version.
Describe the solution you'd like.
To be consistent, the data version checks in CraftMagicNumbers should also respect the Paper.ignoreWorldDataVersion property, or maybe a new property should be added (Paper.ignoreItemDataVersion?).
Describe alternatives you've considered.
Not downgrading the server.
Other
No response
Discussion Category: Ideas
Stack trace
https://pastes.dev/7LSSfOmBQV
Plugin and Datapack List
2024-06-24 00:03 +01:00: [00:03:05 INFO]: Paper Plugins:
2024-06-24 00:03 +01:00: [00:03:05 INFO]: - bedrock, calendar, FancyHolograms, FancyNpcs, minephone, navigate, popcorn_test, sport, storehouse, vehicles
2024-06-24 00:03 +01:00: [00:03:05 INFO]: visuals
2024-06-24 00:03 +01:00: [00:03:05 INFO]: Bukkit Plugins:
2024-06-24 00:03 +01:00: [00:03:05 INFO]: - CommandBlockWhitelist, ConsoleSpamFix, CraftingStore, DisplayEntityEditor, dynmap, Elevator, Essentials, FastAsyncWorldEdit,
GSit, HeadDatabase
2024-06-24 00:03 +01:00: [00:03:05 INFO]: LuckPerms, Multiverse-Core, packetevents, PlaceholderAPI, spark, TAB, Vault, WorldEditSUI, WorldGuard
Actions to reproduce (if known)
Run a 1.21 build higher than #34 and try to run plugins such as TAB or FAWE(this does not happen on #33)
Paper version
Build #35 - sorry I don't have a /version output, I downgraded to #33
...
Can you provide some clarification on what is happening? Your original post doesn't seem to say. Also, try doing this without viaversion.
Alright when i give myself one of the custom items i create with the code above and i open the inventory inside the creative mode the whole meta data gets cleared and that is happenig to all the items within my inventory that i created with my system. Vanilla items like a sword for example doesn't seem to be affected by that.
But what stays is the DisplayName and the ItemLore
dd31654 bump reflection-rewriter to 0.0.3 (#10969) - Machine-Maker
I think I'm experiencing a similar issue with shapeless recipes. The recipe can be added to the server and given to the player without any errors. Clicking on it in the recipe book correctly fills the items in the crafting grid, but does not produce a result. Also, for some reason the recipe book is not listing my recipe as "Craftable" and is only visible when setting it to "Showing All" even though it's still able to fill the items
Stack trace
java.lang.NullPointerException: Cannot invoke "Object.hashCode()" because "key" is null
at java.base/java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:936) ~[?:?]
at ca.spottedleaf.moonrise.patches.chunk_system.level.entity.EntityLookup.get(EntityLookup.java:91) ~[main/:?]
at ca.spottedleaf.moonrise.patches.chunk_system.level.entity.EntityLookup.get(EntityLookup.java:37) ~[main/:?]
at net.minecraft.server.level.ServerLevel.getEntity(ServerLevel.java:1826) ~[main/:?]
at org.bukkit.craftbukkit.boss.CraftDragonBattle.getEnderDragon(CraftDragonBattle.java:32) ~[main/:?]
at test-plugin-1.0.0-SNAPSHOT.jar/io.papermc.testplugin.TestPlugin.onBreak(TestPlugin.java:32) ~[test-plugin-1.0.0-SNAPSHOT.jar:?]
at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor1.execute(Unknown Source) ~[?:?]
at org.bukkit.plugin.EventExecutor$2.execute(EventExecutor.java:77) ~[paper-api-1.21-R0.1-SNAPSHOT.jar:?]
at co.aikar.timings....
Okay, I have fixed all my shaped recipes that had either all spaced columns or rows and they are now working - albeit some recipes can be crafted in not the most aesthetically pleasing arrangements - though it probably mirrors vanilla more closely in that respect.
However, custom shapeless recipes where the result is altered in the PrepareItemCraftEvent are not working - the recipe result CraftingInventory#getResult is returning null
In contrast, shaped recipes where the result is altered in the PrepareItemCraftEvent are fine.
Was fixed in dd49fba8c534d48c3693a751075ecb5836a9d458
Expected behavior
Crafting recipes work as they did before with custom items (custom name, custom persistent data, custom model etc.)
Observed/Actual behavior
Recipes are somewhat broken and are not recognized inside crafting grid or even don't show properly in recipe book.
Steps/models to reproduce
Create custom ItemStack (with special name, custom model data, some persistent tags etc.) and add it as exact ingriedient into some new recipe (ShjapelessRecipe in my case)
Plugin and Datapack List
[09:38:04 INFO]: Server Plugins (14):
[09:38:04 INFO]: Bukkit Plugins:
[09:38:04 INFO]: - ICraft2.0-Special, *JoinFullServer, Multiverse-Core, Multiverse-Inventories, Multiverse-Portals, NoChatReports, *PermissionsEx, PexTabCompleter, ProtocolLib, *SimplePrefix-Reloaded
[09:38:04 INFO]: TreasureChestX, *VoidWorld, WorldEdit, WorldGuard
[09:38:21 INFO]: There are 3 data pack(s) enabled: [vanilla (built-in)], [file/bukkit (world)], [paper (built-in)]
[09:38:21 INF...
Is your feature request related to a problem?
Some of my plugins crafting logic depends on PrepareItemCraftEvent and affecting the result. Because crafter does not invoke that event and has no special events they break my crafting plugins
Describe the solution you'd like.
Either include crafter in PrepareItemCraftEvent or create new event for crafter that inherits on the same base as PrepareItemCraftEvent. (My main concern is to not have double implementation for crafters)
Describe alternatives you've considered.
Probably interacting with crafter invokes inventory events, I haven't looked into this yet, but I could probably listen to some eventory click event check the crafter inventory and fabricate PrepareItemCraftEvent (crafter inventory i bare bone but I excpect that inside there is at least 10 elements array when 10th element is the result)
But this won't work perfectly as there are many inventory based entry points (player, hoppers, usage of crafter) that mig...
Discussion Category: Ideas
Yeah, I can replicate this. To reproduce it, you have to have >=2 ingredients as the shortcut if there's only a single ingredient bypasses this issue. The stacked contents system for exact choice ingredients needs to be slightly reworked.
Fixes https://github.com/PaperMC/Paper/issues/10971
I still want to see if there's a better fix for this, perhaps separating out it into two contents maps. I also need to test if there's an issue with a stack being regsitered twice, once as it's "simple" id based on the type, and another for it's exact ID.
Yeah, this sounds like a good idea for me. We can't just directly reuse PrepareItemCraftEvent because that event requires having an InventoryView which only exists with a "player" actually viewing the inventory. But we could have a supertype of that event that is also then fired for crafters that has everything else.
Discussion Category: Ideas
I have fixed my recipes by changing a custom item in the recipe. I removed the Enchant and the "HideEnchantments" Item Flag and now the recipe is working.
Is your feature request related to a problem?
1.20.6 already throws an exception when using BODY for entities that don't have it (https://github.com/PaperMC/Paper/commit/672c07728f6f247df34e866a77a47b457c7d1ed9), but LivingEntity#canUseEquipmentSlot was only added in 1.21 (which is still experimental).
Describe the solution you'd like.
Would be nice if LivingEntity#canUseEquipmentSlot could be backported to 1.20.6, seeing as it throws for invalid slots but doesn't really have a way to check.
Describe alternatives you've considered.
Could try/catch, but that isn't as nice as a proper method & you can't really know where the IllegalArgumentException is from without checking the message or something.
Other
I know features aren't usually backported like this so I understand if you prefer not to, but imo this specific case makes sense seeing as it's still supported & already has checks to throw for invalid slots and all.
Discussion Category: Ideas
Expected behavior
Some structures return an incorrect position of the bounding box.
The following structures usually return the bounding box too high:
Cold Ocean Ruins, WarmOcean Ruins, Beached Shipwreck, Shipwreck, Buried Treasure
The following structures usually return bounding boxes that are too low:
Jungle Pyramid, Igloo
All other structures seem to be correct.
The problem only seems to occur in newly created chunks. After a server restart, the bounding box is displayed correctly.
Observed/Actual behavior
Newly loaded chunk:

After a server restart:

Steps/models to reproduce
- Install the StructureBoundingBoxTestPlugin.
- Go to the structure described in the problem above. And see at which position the bounding box with diamond blocks is displayed.
- Restart the server and go to the sa...
The requested changes have been made.
Expected behavior
sand duplicator it's working
Observed/Actual behavior
sand duplicator don't working.
But it works as expected on a vanilla multiplayer server.
Steps/models to reproduce
build a sand duplicator or download this world:
https%3A%2F%2Fwww.mediafire.com%2Ffile%2Fzqkh8oq7jujdou0%2FMax%2BEfficiency%2BSand%2BDuper.zip%2Ffile&v=lCYR2FN20lk
Plugin and Datapack List
BoundlessForging-1.0-SNAPSHOT
CleanPing
ColorfulChat-2.1
LagFixer
LuckPerms-Bukkit-5.4.116
PlayerDoll-1.29
tabtps-spigot-1.3.24
Paper version
1.21 build #37
Other
In a few minutes, a server jar will be linked at the top of this PR, I'd appreciate if you could download it and try it out with your plugin to see if your crafting issues here are fixed.
Stack trace
https://paste.gg/p/anonymous/55a25eca07ee43e788a91e0d4e253dfa
Plugin and Datapack List
AdvancedBan, AntiCombatLog, AntiSeedCracker, BanAnnouncer, BanItem, BetterTeams, Chunky, EasyWhitelist, FAWE, ImageOnMap, InstantRestock, LoginSecruity, LuckPerms, MortisSpawnPoint, PlaceholderAPI, ProctoLib, SkBee, SkinsRestorer, skRayFall, Skript, spark, Spicord, TAB, Veinminer, ViaVersion, Vulcan
EZgap
Actions to reproduce (if known)
No response
Paper version
1.20.4 Pufferfish - ver51 (i cant start server to get the ver)
Other
No response
We do not provide support for software that isn't ours, but, you apparently have a bad config file
Expected behavior
Cancelling EntityDamageEvent should prevent wolf armor from taking damage since there's no incoming damage to defend against.
Observed/Actual behavior
Even though EntityDamageEvent is cancelled the wolf armor takes damage and eventually breaks.
Steps/models to reproduce
Create an empty plugin an register the following event
@EventHandler
public void onEntityDamage(EntityDamageEvent e) {
if(e.getEntityType() == EntityType.WOLF) {
e.setCancelled(true);
}
}
After summoning a wolf tame it and put armor on it. When the wolf gets hit by the player the armor takes damage.
Plugin and Datapack List
Empty/test plugin
Paper version
[22:56:28 INFO]: Checking version, please wait...
[22:56:30 INFO]: This server is running Paper version 1.21-37-master@dd49fba (2024-06-24T02:08:49Z) (Implementing API version 1.21-R0.1-SNAPSHOT)
You are running the latest version
Previous version: 1.2...
@Machine-Maker I can confirm the crafting works as it did on PR linked build
Just discovered this bug on 1.20 too so it's not 1.21 specific.
Primary discussion goes back to here;
#paper-dev message
ItemMeta's history of upgrading data is more of a "we manually pick out the data and so we can save it back in any format desired", this is a tragic solution but has mostly survived with manual bodges to the data here and there, the issue comes in is, what happens to the data we don't know how to handle?
The data is not stored in a manner that it's picked apart and can be reassembled, the only real solution here would be to see if we can run this data through DFU/DC in some manner, https://github.com/PaperMC/Paper/pull/10609 is going to be the best final solution here, but;
-
if viable, run existing unhandled data through DFU
-
Merging the agreed-upon solution as discussed in the linked PR is generally going to be the best solution here in the long run, as it preserves the entire data set exactly as it does elsewhere so that we can upgrade it. I...
The fix supplied here solved the issue for me: https://github.com/PaperMC/Paper/issues/10971
There also needs to be a CraftItemEvent for crafters too, which like PrepareItemCraftEvent it cannot be repurposed for crafters as-is because it requires a InventoryView
Discussion Category: Ideas
Expected behavior
I want to add hover content when player send message in chat. So, I change the message value from AsyncChatEvent event.
Observed/Actual behavior
The message is well edited, but there is no hover or click event. If I send the message myself, the hover is well sent
Steps/models to reproduce
@EventHandler
public void onChat(AsyncChatEvent e) {
e.message(Component.text("something").hoverEvent(HoverEvent.showText(Component.text("This is a test"))));
e.getPlayer().sendMessage(Component.text("something myself").hoverEvent(HoverEvent.showText(Component.text("This is a test myself"))));
}
Plugin and Datapack List
My plugin test
Paper version
This server is running Paper version git-Paper-497 (MC: 1.20.4) (Implementing API version 1.20.4-R0.1-SNAPSHOT) (Git: d8d54d9 on ver/1.20.4)
You are running the latest version
Previous version: git-Paper-496 (MC: 1.20.4)
Other
No response
Expected behavior
The last slot in a donkey or mule is counted as a PlayerInventory with slot 9. It should actually be a SaddledInventory with slot 16.
The same problem exists with llamas, depending on the strength of the llama, the slot ID of the last slot naturally differs.
Observed/Actual behavior
Nothing... The slot id and inventorytyp is simply returned incorrectly by the API
Steps/models to reproduce
check the last slot of a donkey/mule or llama inventory and display the SlotID and the Inventory Type.
Plugin and Datapack List
/
Paper version
Checking version, please wait...
This server is running Paper version 1.21-37-master@dd49fba (2024-06-24T02:08:49Z) (Implementing API version 1.21-R0.1-SNAPSHOT)
You are running the latest version
Other
No response
I cannot replicate this whatsoever, neither on latest 1.20.4 nor on 1.21.
Are you using the vanilla client?
Yes, vanilla without mods. You mean, the line with the formatting is well showing the hover content ?
yea, this is how it looks on my end.
Ok, nevermind, it's only when we change the formatting as this for example:
@EventHandler(priority = EventPriority.LOWEST)
public void onChatLow(AsyncPlayerChatEvent e) {
e.setFormat("%1$s: %2$s");
}
// then the paper event
@EventHandler
public void onChat(AsyncChatEvent e) {
e.message(e.message().hoverEvent(HoverEvent.showText(Component.text("This is a test"))));
}
Because you're using the legacy formatting stuff, which causes us to have to have to populate that renderer format which only supports legacy text in order to retain behavior. You can't miss modern and legacy and expect modern features to work, use the ChatRenderer API
The problem is, in my specific case, it's changed by others plugins. So, I don't know when it will be fine or not. Also, event by using this:
for(Audience a : e.viewers().isEmpty() ? Bukkit.getOnlinePlayers() : e.viewers())
a.sendMessage(e.renderer().render(p, p.displayName(), message, a));
e.setCancelled(true);
Or this:
e.message(e.renderer().render(p, p.displayName(), message, p));
The issue is still the same (so even by using chat renderer)
That's not how you use the renderer, you're supposed to implement your own renderer and set it via the setter
Once again, the issue here is that the ChatRenderer is a legacy chat render, which does not understand modern text formatting, there is no good solution here which doesn't involve you replacing the chat renderer with something able to actually use components, the only caveat here is that you will induce some behavioral changes as legacy and modern text work differently
Ok, and so, I could fix it by making my own chat renderer that would convert from legacy to modern ?
Do you think it's possible to make a PR to fix it for everyone ? Or change the legacy one (with PR)?
Yes
No, because legacy works different to components, i.e. bleedthrough, you'd just break chat formatting plugin behavior
Replicable, the nms internal is scuffed af regarding slots / indicies.
I check internally and looks like the event is called in actuallyHurts (in the final) what is only called if the wolf not has armor (or the damage ignore the wolf armor) currently in upstream is more easy fix that because the event now is created before the actuallyHurts is called and pass to the event later to actuallyHurst, but Paper has EntityDamageItemEvent what is called for damage in items like the Wolf Armor then you can use that for cancel the damage in Wolf Armor
Expected behavior
Plugin should work normally
Observed/Actual behavior
Received this exception while loading my remapped jar. I've attached it below
RocketJoin-bukkit-2.4.2.zip
Steps/models to reproduce
Just load my plugin
Plugin and Datapack List
RocketJoin
Paper version
[15:38:53 INFO]: This server is running Paper version 1.21-37-master@dd49fba (2024-06-24T02:08:49Z) (Implementing API version 1.21-R0.1-SNAPSHOT)
You are running the latest version
Previous version: 1.21-28-812701d (MC: 1.21)
Other
No response
I've pushed my code here
Shouldn't EntityDamageItemEvent not even get called for this and just not damage the item? Or maybe not damage the item and call the event in a cancelled state.
your build setup is producing jars which have duplicate entries, the classes listed in that error are inside of the jar more than once
Feel free to head to our discord if you have more questions.
Shouldn't EntityDamageItemEvent not even get called for this and just not damage the item? Or maybe not damage the item and call the event in a cancelled state.
In teory.. but i dont like that solution of just call EntityDamageItemEvent in canceled because that can cause another user cases fails if is just called in that part of code (currently... with the last upstreams changes in teory its just listen the canceled state passed in the hurts methods for wolfs)
As the titles states.
Only remaining question is with ignoring the notify parameter of neighborChanged in BaseRailBlock. Does this have any impact?
Expected behavior
Drinking a bucket of milk from a cow makes the bucket empty
Observed/Actual behavior
Drinking a bucket of milk from a cow makes it look like your still holding a bucket of milk on client, and lets you drink it. (not real bucket of milk)
Steps/models to reproduce
drink a bucket of milk
Plugin and Datapack List
Plugins: Tester
Datapacks [vanilla (built-in], [file/bukkit (world)], [paper (built-in)]
Paper version
Paper version 1.21-37-master@dd49fba (2024-06-24T02:08:49Z) (Implementing API version 1.21-R0.1-SNAPSHOT)
Other
No response
Cannot reproduce on build 37.
line 65 in Registration.java contained "overriden" instead of "overridden".
As a heads up, the test plugin contents are not example code.
There is 0 gain in fixing typos there.
yeah sorry for the trouble, I didn't select the right branch in my IDE. Is the plugin only for internal testing?
Yea, this is purely here for paper devs/contributors to quickly test their code additions/changes.
Code examples for plugin developers should be in the docs.
80f5fb2 Change item/xp merge and entity tracking range ... - kennytv
[PaperMC/Paper] New branch created: config-defaults
Oh ok. Sorry again, I'm new to Paper development :)
Restore vanilla defaults for the merge radius, increase the tracking range values as the current ones are absolute ass. I also increased raiderActivationRange, as raiders like to get stuck just out of reach and become unfindable.
Waiting on feedback on possibly changing other config values
Ok, I think this is the best solution. My idea of having a separate map for the "extra" ids being tracked is probably doable, but in a bigger diff for probably not that much gain. Both people who had this issue on the linked issue say this has resolved their problems with custom crafting.
Overall a step in the right direction as most of the config values are outdated for modern Minecraft. Considering majority of the server are small, this will restore some Vanilla experience and addresses some common question people asked (like cannot see players too far out).
Why can't tracking ranges be -1 by default, which will result in using vanilla values?
Vanilla has various values for each mob, setting a universal value per category already will result in behaviour differences without any possibility to restore it
Expected behavior
When you send a link, the link should be clickable.
Observed/Actual behavior
When you send a link, the link is not clickable.
Steps/models to reproduce
Just use PaperMC and send a link.
Plugin and Datapack List
Tested Plugins:
tested on 2 servers
Paper version
f4c7d37
Other
No response
This has not been the case for a couple of versions now and is intended behaviour (especially since signed messages were introduced in 1.19.x). You'll need to find a plugin that does this.
Expected behavior
attacking any entity runs all the necessary events needed
Observed/Actual behavior
absolutely no events are ran when attacking enemies, meaning plugins cant do anything with it and you cannot damage or interact with anything that involves left-clicking (only affects certain players) (paintings and item frames can still be destroyed).
Steps/models to reproduce
attack anything that isnt a painting or item frame, however not all players have this issue
Plugin and Datapack List
no plugins needed
Paper version
This server is running Paper version 1.21-37-master@dd49fba (2024-06-24T02:08:49Z) (Implementing API version 1.21-R0.1-SNAPSHOT)
You are running the latest version
Previous version: 1.21-28-812701d (MC: 1.21)
Other
https://github.com/PaperMC/Paper/assets/65318126/412d4e5c-a5a3-4a04-95ca-df574da9019e
Note: while the video does have plugins running on the server, it doesn't matter. I have tested on the same server with no pl...
no plugins needed
Does this mean you can replicate this issue on a server with on plugins? If it doesn't mean that? Can you replicate this on a server with 0 plugins?
the other section underneath the video says i can reproduce without any plugins
The purpose of this pr is to improve defaults, not to necessarily make them equal to vanilla, and those are visual only anyways
Does this need changes in the vanilla breaking changes docs pr?
Yess, you can remove the entries for the two merge radius values
can you try recording a short video clip of what you are experiencing?
Stack trace
https://paste.gg/p/anonymous/d83977b6d5ab47b092532b5a5403f42f
Plugin and Datapack List
Plugins - AdvancedTeleport, DeathChest, floodgate, Geyser-Spigot, OpenInv
There are 3 data pack(s) enabled: [vanilla (built-in)], [file/bukkit (world)], [paper (built-in)]
Actions to reproduce (if known)
No response
Paper version
This server is running Paper version 1.21-37-master@dd49fba
Other
No response
Your server is overloaded and is killed by the watchdog.
We are still missing a set of performance patches in 1.21, which is why it is marked as experimental.
Adds an awareness check to the inactiveTick of mobs (non-aware mobs aren't meant to have their AI ticked)
Stack trace
[15:29:09 WARN]: [io.netty.channel.DefaultChannelPipeline] An exceptionCaught() event was fired, and it reached at the tail of the pipeline. It usually means the last handler in the pipeline did not handle the exception.
io.netty.channel.StacklessClosedChannelException: null
at io.netty.channel.AbstractChannel$AbstractUnsafe.write(Object, ChannelPromise)(Unknown Source) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final]
Plugin and Datapack List
Spark, My own plugin
Actions to reproduce (if known)
Register a command with an argument of the Registry.STRUCTURE type:
commands.register(Commands.literal("structureargumentcommand")
.then(
Commands.argument("structure", ArgumentTypes.resource(RegistryKey.STRUCTURE))
.executes(ctx -> {
ctx.getSource().getSender().sendRichMessage(ctx.ge...
I should maybe add that I'm registering this using the plugin Bootstrapper. Dunno if that has an impact on that though
Then I recommend reporting it to mojira instead of here.
It was pointed out that the vanilla value for this is actually to disable it completely with -1. There are 2 exp merge systems in the server, this only controls the custom one spigot added, and doesn't mess with vanilla's own merge system. So disabling this completely will result in vanilla xp behavior.
Oh I was not aware of this and yeah that would certainly be a more favorable result.
Expected behavior
Items that are stored in the shoulker box to stay in the shoulker box when placed on ground
Observed/Actual behavior
Items that are stored in the shoulker box are gone when the SB is placed on ground
Steps/models to reproduce
Days ago I updated the server from 1.20.2 to 1.20.6...
My players started to notice that the shulker boxes that they had in inventory when are placed on ground so thet can access them are presented empty.
Plugin and Datapack List
26.06 16:58:26 [Server] INFO Server Plugins (52):
26.06 16:58:26 [Server] INFO Bukkit Plugins:
26.06 16:58:26 [Server] INFO - AdvancedAntiVPN, ajParkour, AuthMe, BlockedWords, BottledExp, ChestSort, Citizens, CMILib, CoreProtect, DailyRewardsPlus
26.06 16:58:26 [Server] INFO DeadChest, DecentHolograms, Despicaleaderboards, DoorsReloaded, Essentials, EssentialsChat, FarmLimiter, floodgate, GEmote, Geyser-Spigot
26.06 16:58:26 [Server] INFO GriefPrevention, GSit, ImageFrame, InventoryRollba...
Please provide a playerdata file from a backup from a player that had shulkers that lost items.
Please provide a playerdata file from a backup before updating from a player that had shulkers that lost items.
I will need some time to restore the backup and to extract the information
Expected behavior
In Spigot servers without Paper, plugins that overwrite vanilla commands don't break data packs because those commands only apply to console, chat, and command blocks. Commands in data pack functions and the vanilla /execute command always should run vanilla commands only, which data packs rely on in order to function.
Paper doesn't let these plugins overwrite commands in normal data pack functions, so it's expected the same applies to commands in function macros and in the /execute command, as is the case in Spigot.
Observed/Actual behavior
In the (currently) latest Paper version for MC 1.20.6, plugin commands are now used in data pack macro commands and in the vanilla /execute command, breaking data packs that rely on vanilla commands working in macros if any plugins that overwrite these commands are installed.
EssentialsX for example, one of the most popular plugins, overwrites many vanilla commands. If a data pack macro tries to run `/k...
Expected behavior
In Spigot servers without Paper, and in older Paper versions, /execute runs vanilla commands only. Vanilla commands that are overwritten by Paper or by plugins shouldn't break any of the functionality of commands under /execute.
Observed/Actual behavior
In the (currently) latest version of Paper, /execute can run the overwritten non-vanilla versions of vanilla commands too.
Steps/models to reproduce
- Enter
/execute run reloadin chat or (without a slash) in the console. - In Spigot and vanilla, this reloads data packs. In Paper, this displays a message warning against reloading plugins.
Plugin and Datapack List
N/A
Paper version
This server is running Paper version 1.20.6-147-ver/1.20.6@e41d44f (2024-06-17T19:24:35Z) (Implementing API version 1.20.6-R0.1-SNAPSHOT)
You are running the latest version
Previous version: 1.20.6-2233-0d6766e (MC: 1.20.6)
Other
If this change is intentional, it would be fine if it at least ...
update: in some worlds i can attack stuff, but it always does damage as if im holding nothing, regardles of what the damage of the weapond should do
im going to close this issue: it seems to be a side effect of an other issue. I will open a ticket for it in a few hours as i need to record it and dont have the ability to right now
well, both, we can still fix it, but it helps to know that it isnt a bug introduced by us
Ok, so here's my initial thoughts on solutions to this. There are 2 places plugins can register commands, in the bootstrapper and in JavaPlugin. The first is a super new place to register commands, so most plugins aren't using it. What we can do is only have commands registered there override vanilla commands in /execute run and command functions. Then commands registered the other way, that's existed for much longer, won't be able to be run in /execute run. This still provides a way for a plugin to override a vanilla command, which is something that should be supported, but it does it in such a way that the plugin has to explictly know that's what they are doing, instead of just retroactively doing it for all commands in all plugins.
The solution to this is to somehow filter out plugin commands that were registered in the JavaPlugin lifecycle event and prevent them from being executed when a macro is parsed at runtime. We still want commands registered by plugins in the boostrapper to be executable by macros (and datapack command functions in general), but since that system is still new and experimental, we can make it very clear that registering commands there that override vanilla commands can break expected datapack functionality.
I think that's a great solution, if I'm understanding correctly. I think whether it works in data packs being tied to whether it works in /execute makes a lot of sense, more so than having all commands work in /execute but none work in data packs. As long as the purpose of these APIs is made very clear so we don't get lots of plugin devs overwriting vanilla commands using the new API.
Surely this should be a config option so that individual server operators can choose to enable to disable it? Datapacks are built for an entirely vanilla environment most of the time, and allowing plugins to introduce changes to the command behavior seems like a recipe for disaster.
Or, if not a server operator config option, maybe an overload of the vanilla command override registry that allows the plugin author to choose whether they want to expose their new commands to macros or not; and have the overload be an optional secondary true/false arg that defaults to the vanilla behavior for macros?
Could it make sense to solve this (and maybe #10994 as well) using namespaces? I believe with Bukkit's command API, if PluginA and PluginB both register the test command, then whoever registers first gets the /test command, but both implementations are still available using /plugina:test and pluginb:test respectively?
Could that work in a similar way here? The Vanilla server always registers its commands first, so kill and /minecraft:kill for example always run the vanilla implementation. If EssentialsX then comes in and registers kill, /essentialsx:kill will run the plugin implementation, but /kill and /minecraft:kill will still run the vanilla implementation.
Plugin commands registered in JavaPlugin only work in macros at the moment, NOT in plain text command functions. This is the bug, not that they donโt work at all. Itโs not possible to have commands registered in JavaPlugin work in all command functions because JavaPlugin loading happens too late.
For the Bootstrapper, that happens before everything, so commands registered there can work.
Those namespaces donโt exist on a vanilla server. Namespaced commands are a thing that was added years ago
I've noticed this issue with dogs as well. Not sure what the exact cause is since it's also random for me but rejoining the server often helps.
this seems to effect other potion effects too, dying with strength makes it so you cant attack anything without at least a stone sword
1f5db50 Change item/xp merge and entity tracking range ... - kennytv
[PaperMC/Paper] branch deleted: config-defaults
f9ef3c2 Add forRemoval to material data deprecations - kennytv
[PaperMC/Paper] New branch created: deprecations
No paper comments because the future is now
Fixes https://github.com/PaperMC/Paper/issues/10994
Creates a second CommandDispatcher that contains all vanilla commands (and namespaced versions) as well as commands registered during bootstrap. One potential issue with this is... that you can't use the internal dispatcher provided to register commands for datapack functions. Not sure if that's resolveable and if we do want to resolve it, might have to take a different, more invasive, approach.
I've noticed this issue with dogs as well. Not sure what the exact cause is since it's also random for me but rejoining the server often helps.
Albright, thank you for confirming that the issue actually exists and I'm not just going insane. Do you have any idea if there's another workaround than just leaving? Reconnecting is inconvenient and takes some time on my server.
None that I've found so far
128 player tracking range is insane, especially since name tags don't render beyond 64 blocks, should be 64 blocks for players.
Expected behavior
I expected my pack to apply properly.
Observed/Actual behavior
I joined my paper-1.21-28.jar server and the texture pack reloaded 3 times before ultimately failing to apply.
Steps/models to reproduce
Install essentials, executable items, score, and worldguard on paper-1.21-38 or 37 and add any resource pack on versions 1.20.2 - 1.21.
Plugin and Datapack List
essentials, executable items, score, and worldguard
I removed all my plugins except for ones necessary to make sure it wasn't a plugin compatibility issue.
Paper version
paper-1.21-38.jar
Other
Here's my logs including the errors related to resource pack.
[07:19:53] [ServerMain/INFO]: Environment: Environment[sessionHost=https://sessionserver.mojang.com, servicesHost=https://api.minecraftservices.com, name=PROD]
[07:19:53] [ServerMain/INFO]: Loaded 1290 recipes
[07:19:53] [ServerMain/INFO]: Loaded 1399 advancements
[07:19:54] [Server thread/INFO]: Starting minecraft ...
All paper does is send the info you configured to the client, if it's failing to apply, you'd need to check your client logs
The value is perfectly ok for small SMP which is what majority of server owners are according to bstat, the value does not affect existing servers, not to mention, it can also be changed at owners discretion.
Until this is fixed either by Paper or upstream, I have made a simple [plugin] (https://hangar.papermc.io/Malfrador/ResetAttributesOnDeath) to work around the issue.
Expected behavior
Your health does not change.
Observed/Actual behavior
Your health is set to full.
Steps/models to reproduce
- Go to hell :-)
- take damage
- minecraft:tp to someone or something in the overworld. Also works with essentials /tp, /back, /home and seemingly any other plugin teleport.
Plugin and Datapack List
Paper version
[16:28:56 INFO]: This server is running Paper version 1.21-37-master@dd49fba (2024-06-24T02:08:49Z) (Implementing API version 1.21-R0.1-SNAPSHOT)
You are 1 version(s) behind
Download the new version at: https://papermc.io/downloads/paper
Previous version: 1.21-15-2df432f (MC: 1.21)
Other
clean server with new world, defaults on everything.
aa8d38d Add forRemoval to material data deprecations (#... - kennytv
[PaperMC/Paper] branch deleted: deprecations
- Remove floating point math from
getDistanceinorg.bukkit.map.MapPallete - Use bitwise & for bounds checks in
obc.map.CraftMapCanvasto reduce comparisons - Reduce size of image being drawn in
drawImageif it is larger than the available size. - Use
System.arraycopyto avoid iterating over the colors in the image.
Saw a ~30% performance improvement in obc.map.CraftMapView.render()
Tested with a world containing many custom maps created using the ImageOnMap plugin, modified to remove this optimisation so that it renders every tick.
Before: https://spark.lucko.me/NVdWKmSlFr
After: https://spark.lucko.me/j6AJiFG9pD
Usually imports should generally be avoided in non paper classes to reduce diff ;)
Its failing to apply server wide, not just client side. I've also tried switching versions, no mods, different accounts etc.
The pack works perfect in 1.20.4. I've updated the pack format to 1.21 and its just showing failing to load textures.
Resource packs do not apppy to the server in any form or capacity, all the
server does is send info about them inside of a packet. 1.21 also made
various changes to resource packs, check your client logs.
On Sat, 29 Jun 2024 at 13:50, DontMessWithDis @.***>
wrote:
Its failing to apply server wide, not just client side. I've also tried
switching versions, no mods, different accounts etc.โ
Reply to this email directly, view it on GitHub
https://github.com/PaperMC/Paper/issues/10998#issuecomment-2198150070,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAJMAZDEUKESA6RB3FHDZOTZJ2UQ5AVCNFSM6AAAAABKCGGTOOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCOJYGE2TAMBXGA
.
You are receiving this because you modified the open/close state.Message
ID: @.***>
Expected behavior
When using build 138, all plugins loaded properly.
Observed/Actual behavior
When using build 147, I receive PluginRemapper errors, specifically on Dynmap and Dynmap-Essentials.
Steps/models to reproduce
- Download Paper build 147 from site
- Rename file to
server.jar - Replace original
server.jarwithin server folder - Run
start.shas a program.
Plugin and Datapack List
- Chunky
- Dynmap
- Dynmap-Essentials
- Dynmap-WorldGuard
- Essentials
- EssentialsChat
- EssentialsDiscord
- EssentialsDiscordLink
- Geyser-Spigot
- LuckPerms
- Maintenance
- ProtocolLib
- spark
- Vault
- ViaBackwards
- ViaRewind
- ViaVersion
- WorldEdit
- WorldGuard
Paper version
This server is running Paper version 1.20.6-147-ver/1.20.6@e41d44f (2024-06-17T19:24:35Z) (Implementing API version 1.20.6-R0.1-SNAPSHOT)
You are running the latest version
Previous version: 1.20.6-137-bd5867a (MC: 1.20.6)
Other
`== Log ==
[13:12:26] [Paper...
Error loading plugin: java.lang.IllegalArgumentException: Directory 'plugins/.paper-remapped/Dynmap-3.7-beta-6-fabric-1.21.jar' does not contain a paper-plugin.yml or plugin.yml!
You downloaded the fabric version of dynmap which is why it's unable to enable, dynmap essentials is failing to load because it depends on dynmap which isn't present.
Error loading plugin: java.lang.IllegalArgumentException: Directory 'plugins/.paper-remapped/Dynmap-3.7-beta-6-fabric-1.21.jar' does not contain a paper-plugin.yml or plugin.yml!
You downloaded the fabric version of dynmap (same with geyser) which is why it's unable to enable, dynmap essentials is failing to load because it depends on dynmap which isn't present.
Well I guess that's what I get for trying to script a fast install process. Thank you for this information!
Are you sure this is needed/did you benchmark this change? I can't imagine this will scrape off much even beyond a nanosecond, such simple integer comparisons are generally free, but this does make readability a lot worse
Expected behavior
I expected the health boost effect to wear off upon dying.
Observed/Actual behavior
The health boost didn't show as an effect in the inventory, but still gave additional hearts even when dying.
Steps/models to reproduce
- Start a paper server with version 1.21 build #39 (latest as of writing this)
- /effect give @p health_boost infinite
- Die
Plugin and Datapack List
No plugins
Only default datapacks (vanilla, bukkit, paper)
Paper version
[22:54:51 INFO]: This server is running Paper version 1.21-39-master@aa8d38d (2024-06-29T09:10:10Z) (Implementing API version 1.21-R0.1-SNAPSHOT)
You are running the latest version
Other
No response
I don't recall it made much difference to be honest, I can remove it if you feel that makes more sense.
Well this not happen in upstream for what i check.
In upstream this seems to fix the issue https://hub.spigotmc.org/stash/projects/SPIGOT/repos/craftbukkit/commits/cdd05bc7faac70a5341ce9cd6524ac2ed0a80651#nms-patches%2Fnet%2Fminecraft%2Fworld%2Fentity%2FEntityLiving.patch but just for future effects if you still has a effect use this and die the effect its not removed unless you give the same effect again.
Yes, we're pending an upstream merge
Expected behavior
I would expect the passengers of an entity to be able to teleport
Observed/Actual behavior
I noticed when a player is riding an entity, if you teleport it (with flags) the player doesn't get teleported.
The player also gets stuck in some weird limbo.
For example if you move a few chunks, the chunks no longer load, and if you attempt to break a block, nothing.
If I relog, the player is then matched up with their vehicle.
Steps/models to reproduce
Test code to reproduce:
Random random = new Random();
Entity vehicle = player.getVehicle();
World world = vehicle.getWorld();
int x = random.nextInt(10000);
int z = random.nextInt(10000);
Location highest = world.getHighestBlockAt(x, z).getLocation().add(0, 1, 0);
vehicle.teleport(highest, TeleportFlag.EntityState.RETAIN_PASSENGERS);
I simply make myself ride a sheep, and ran a command with that code.
Plugin and Datapack List
just my test plugin
Paper version
Pape...
Fixes an error that appears when a registered enchantment uses the summon_entity effect. Original issue was reported here: https://github.com/PurpurMC/Purpur/issues/1545
The other day I could hear a dog barking next to me, but couldn't see it. I assume I had the same issue.
Expected behavior
Plugin loaded normally.
Observed/Actual behavior
IllegalStateException: Duplicate key
Error logs as follow:
https://mclo.gs/TbMmnRY
Steps/models to reproduce
Runs paper build #147 with a plugin in the following link:
https://github.com/amadeusmz/RemapperTest/releases/tag/test
The plugin load normally in papermc 1.20.4 (any build)
This is a simple plugin that was obfuscated with proguard. The source code of the plugin is in the same Github repository.
Plugin and Datapack List
Installed only that test plugin, and it wasn't loaded.
> plugins
[19:15:02 INFO]: Server Plugins (0):
Paper version
> version
[19:15:15 INFO]: Checking version, please wait...
[19:15:15 INFO]: This server is running Paper version 1.20.6-147-ver/1.20.6@e41d44f (2024-06-17T19:24:35Z) (Implementing API version 1.20.6-R0.1-SNAPSHOT)
You are running the latest version
Previous version: 1.20.6-2232-f1c87e4 (MC: 1.20.6)
Oth...
Pretty sure that this is considered a "won't fix" due to these obfuscators breaking JVM spec
Expected behavior
Observed/Actual behavior
why this plugins not work together
Steps/models to reproduce
.
Plugin and Datapack List
ultimaterewards/ mhyticmobs /modelengine / itemsadder
Paper version
1.20.4
Other
No response
Because your plugins created a dependency loop, you would either need the plugins involved to break that loop, or, in the meantime, you can use the flag to use the legacy loader which will load this stuff anyways.
Timings or Profile link
https://spark.lucko.me/vULGA1D9Ac
Description of issue
I don't understand why the chuns use it so much.
Plugin and Datapack List
Server config files
https://pastebin.com/dw2ACn9Qs
https://pastebin.com/cqxxfwzP
https://pastebin.com/WDTKM7XX
https://pastebin.com/6h7yaAzp
https://pastebin.com/gd76Cvp8
Paper version
This server is running Paper version
1.21-39-master@aa8d38d (2024-06-29T09:10:102) (Implementing
API version 1.21-0.1-SNAPSHOT)
Other
No response
Expected behavior
When calling setDecor on a LlamaInventory, I expected it to change the appearance of the llama.
Observed/Actual behavior
Calling setDecor on a LlamaInventory:
- When the llama isn't carrying a chest, it does nothing.
- When the llama is carrying a chest, it sets the wrong slot of the llama (no change in appearance, but the item used appears in the chest inventory when you ride it).
Calling getDecor on a LlamaInventory:
- Returns whatever is in the 1st of 9 slots of a llama's chest inventory, if its carrying a chest, otherwise returns nothing.
Steps/models to reproduce
- Spawn a llama
- Try setting the decor of it to any kind of carpet
- Watch in awe as it does nothing
Plugin and Datapack List
Skript, skript-reflect
Paper version
[00:05:11 INFO]: This server is running Paper version git-Paper-36 (MC: 1.20.6) (Implementing API version 1.20.6-R0.1-SNAPSHOT) (Git: 0db72ac)
Other
No response
Can replicate, this is because spigot doesn't recreate the player instance for some cross-world tp and respawn, they already put a "fix" (bandaid) here: https://hub.spigotmc.org/stash/projects/SPIGOT/repos/craftbukkit/commits/f993563ee5a5cd2282762735d2e6a332321e82d4#nms-patches%2Fnet%2Fminecraft%2Fserver%2Flevel%2FEntityPlayer.patch?t=921
Expected behavior
:)
Observed/Actual behavior
:(
Steps/models to reproduce
https://vm.tiktok.com/ZGes6jB34/
Plugin and Datapack List
Paper version
Other
No response
I guess you tested with this example: https://www.youtube.com/watch?v=lCYR2FN20lk. The latest comment on the video said it was broken by the update and i can't reproduce even in singleplayer. The game seems to have a boolean to allow falling block duplication at some point. However this specific design doesn't work anymore since passengers of a vehicle can now gets teleported by the portal (here the pigs).
Do you have more infos about that, does the pigs still wait in the overworld for you?
I successfully built and tested a machine on the original 1.21 server. However, upon migrating the server to Paper, the machine ceased to function. I initially suspected an issue with the test map provided in the documentation, but further testing confirmed the problem persists.
"vanilla" is not a valid paper version, a random tiktok video does not provide any information as to if this only affects single player or if this affects servers.
It's up to NeoForged whether they want to support this in AutoRenamingTool. This type of obfuscation doesn't provide any real benefit over standard obfuscation (a bytecode transformer to rename any conflicting fields would be quite simple to create, and from there mapping tools like Enigma would have no problem helping to name things). I would recommend either:
- Build your plugin with paperweight-userdev (or simply mark the manifest if you don't use internals) so you can ship the Mojang-mapped plugin jar to users (that won't need remapping)
- Disable the aggressive overloading option on ProGuard
Expected behavior
i thought when i die that it would get removed or be able to /effect clear
Observed/Actual behavior
when i died all of my effects was still on me
Steps/models to reproduce
so the way i found it was by doing
/effect give @a minecraft:health_boost infinite 99 true
then die from something ingame or do /kill
then all of the effects stay on you and you cant
/effect clear @a minecraft:health_boost so its just stuck on you
Plugin and Datapack List
im not running any datapacks or plugins right now i found the bug on my main server then tryed it on my test server with no plugins or nothing and same problem but if you want to know my list that i run on my main let me know
Paper version
This server is running Paper version 1.21-40-master@b45d9b6 (2024-07-01T08:23:14Z) (Implementing API version 1.21-R0.1-SNAPSHOT)
You are running the latest version
Previous version: 1.21-4-090775e (MC: 1.21)
Other
i also tryed using spigot and norma...
also one thing i forgot is the only fix i found was todo 1 of 2 things delete player data or /effect give @A minecraft:health_boost 10 99 true so setting a time can remove that effect
Duplicate of https://github.com/PaperMC/Paper/issues/11002, spigot "fixed" that (with a bandaid) in https://hub.spigotmc.org/stash/projects/SPIGOT/repos/craftbukkit/commits/cdd05bc7faac70a5341ce9cd6524ac2ed0a80651#nms-patches%2Fnet%2Fminecraft%2Fworld%2Fentity%2FEntityLiving.patch?t=136. The real issue is still the same as always the player instance is not recreated on respawn and it's just a matter of time before another thing break.
This is vanilla behavior for the way some structures are created during initial chunks creation. The initial bounding box has a hardcoded Y level. After the terrain is generated the structure is moved to the appropriate Y level of the structure.
f9a1015 Prioritize vanilla commands in function parsing - jpenilla
[PaperMC/Paper] New branch created: prioritize-mc-commands-in-function-parsing
fixes #10994
closes #10997
Please test the jar linked in #11011, /version being accessible is considered to be working as intended, however, Vanilla's /give should take priority over EssentialsX in function parsing.