Paper Version: 1​06​4
Steps To Reproduce:
Reproduced and it's duplicating (Paper 1063)
Please see here for a video of it happening. https://youtu.be/xC1GvN8UwrA?t=2612
I advise muting the video.
This has been ongoing since at least 1062.
Has anybody tested in CB/Spigot? Can this be pinpointed back to a release, or a specific timeframe as to when this started occuring if it's only a recent thing?
I can't reproduce with plain Spigot.
https://gfycat.com/JovialDazzlingFlies~~
Works with Spigot too - only 1 plugin on the server (to print the stack trace)
https://gfycat.com/ImaginativeFairCollardlizard
Also with Paper, again with one test plugin.
https://gfycat.com/GrimConstantFlee
EntityDeathEvent is called twice in both instances.
Spigot: https://hastebin.com/wufopoquxi.md
Paper: https://hastebin.com/edovekikar.md
Has anybody tested in CB/Spigot?
Has anybody tested in vanilla?
I think this guy did:
```
If we can get some verification of the fix in PR #634 I would appreciate it, I am not currently somewhere where I could easily do so. There is a jar link attached, and the author has shown himself to be a trustworthy member of the community.
Please confirm the solution, thanks.
Fixed with 45ad477 which will ship in builds 1065+
In vanilla, and prior to this latest Paper change, if I spawned a wolf in the overworld and then pushed it through a nether portal, it was just fine. With this latest build (1065), if I push the wolf through a nether portal, it dies, unless I can quickly get through the portal myself and have time to push the wolf out of the portal to safety in the nether. Is this supposed to happen?
Re-test against 1066 please, think I got this in 08aa6e5f49c9ceee3290bbe457998c0030d8ca7d
Edit: gogo 1067
The problem still exists for me with build 1067. If after being pushed through the portal, unless the wolf (or whatever animal) decides to quickly move (or is pushed) out of the portal, it takes damage and dies. Prior to 1065, after being teleported, the wolf could stay fully or partially in the portal and it would be just fine.
Is this only happening for me? I am using Multiverse-Core and Multiverse-NetherPortals, although I'm doing this wolf/portal testing using the main world.
BTW, I haven't tried or tested the donkey chest duplication glitch. The animal-dying issue is of more importance to me.
Can confirm the issue still exists on 1067. Items are being duplicated still but just remain on the nether-side. Plain Paper 1067 with no other gameplay affecting mods/plugins.
Please see #635 this should work to fix the entities suffocating after teleporting through a portal, I still cannot re-replicate the dupe bug, however I can't recall exactly which commits I'd fully tested this on, in the event that the dupe bug was re-added in the last 2 commits, it's likely that this should be the fix
(jar attached to PR)
I will now be testing each version from 1064 onwards and see which one fixed the duplication glitch and which one broke the fix.
1063 - Duplication Works
1064 - Duplication Works (On second attempt)
1065 - Duplication Works
1066 - Duplication Works
1067 - Duplication Works
@Zbob750 I would suggest re-opening the Issue as with Paper Spigot and no other plugins, this duplication glitch is still working. For extra information, it is also duplicating the saddles on the Donkey.
Can anybody else duplicate on 1065, and test the build I've linked in my PR?
I have been unable to replicate the duplication on either of those builds, whereas on 1064 I was able to replicate as time I tried
@electronicboy I have tested 1065 and your build and both are duplicating items in the chest on a Donkey still. The donkey must be at 1/2 heart before going in and there must be the cactus on the nether side.
Which I have tried on many occasions on both of these builds, the entity dies yet the relevant events fired are only triggered once, I'll try and take another look into this when I get home, however I do have some doubts on your findings, and especially for such a manner would love to have additional verification as to if the issue exists or not, especially as both me and Z750 was both attempting to replicate this issue, as well as entities suffocating on teleport, and in my PR I can replicate neither, whereas in the last build I can replicate the latter however did not reproduce the duplication after trying several dozen times
I don't think there is anything to get wrong here. I am doing each of the steps in the OP and on completely vanilla 1065. There is nothing in the plugins folder. Could there be something in bukkit, spigot or paper YMLs that is affecting this?
Album of screenshots showing this on 1065 - http://imgur.com/a/2ij6q
One person saying the dupe still exists is not enough to re-open this issue, I need multiple confirmations.
@WonderDave 1068 should resolve the issue with entities getting stuck and dying.
I can confirm what FirstReplay been saying. Latest paper spigot build and duplication still works as it was. Only difference for me is that most of the times items stay in the nether (but still dupe).
Full inventory dupes (chest contents + saddle).
Edit: meant to say paper spigot*
We're not interested in the latest Spigot build, this is Paper.
Sorry meant to say paper spigot
@Zbob750 Yeah, I just pushed a bunch of animals through portals using build 1068, and none of them died. Thanks.
Still unable to replicate, literally spawning a donkey in with 0.1 health and sending it through, I have a plugin that is throwing out a stack trace whenever an item is added to the world, and it works as intended;
Caused by: java.lang.Exception: SADDLE: 1 : Location{world=CraftWorld{name=world_nether},x=-24.03614286184311,y=54.0,z=31.519994729757308,pitch=0.0,yaw=5.8682966}
Caused by: java.lang.Exception: SAND: 1 : Location{world=CraftWorld{name=world_nether},x=-24.330091691017152,y=54.0,z=31.44614621400833,pitch=0.0,yaw=113.735275}
Caused by: java.lang.Exception: LEATHER: 2 : Location{world=CraftWorld{name=world_nether},x=-24.077441370487215,y=54.0,z=31.668218398094176,pitch=0.0,yaw=263.4958}
Caused by: java.lang.Exception: SADDLE: 1 : Location{world=CraftWorld{name=world},x=-219.5,y=65.1600000038743,z=243.95356236994266,pitch=0.0,yaw=-84.1317}
Caused by: java.lang.Exception: SAND: 1 : Location{world=CraftWorld{name=world},x=-219.5,y=65.0,z=244.33009169101715,pitch=0.0,yaw=23.735275}
Caused by: java.lang.Exception: LEATHER: 2 : Location{world=CraftWorld{name=world},x=-219.5,y=65.1600000038743,z=244.1721139088273,pitch=0.0,yaw=173.49579}
1st stack traces:
[02:03:58] [Server thread/ERROR]: Could not pass event ItemSpawnEvent to Testykot v1.0-SNAPSHOT
org.bukkit.event.EventException
at com.destroystokyo.paper.event.executor.MethodHandleEventExecutor.execute(MethodHandleEventExecutor.java:37) ~[paper-1.11.2.jar:git-Paper-"a30343c8"]
at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:78) ~[paper-1.11.2.jar:git-Paper-"a30343c8"]
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[paper-1.11.2.jar:git-Paper-"a30343c8"]
at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:517) [paper-1.11.2.jar:git-Paper-"a30343c8"]
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:502) [paper-1.11.2.jar:git-Paper-"a30343c8"]
at org.bukkit.craftbukkit.v1_11_R1.event.CraftEventFactory.callItemSpawnEvent(CraftEventFactory.java:312) [paper-1.11.2.jar:git-Paper-"a30343c8"]
at net.minecraft.server.v1_11_R1.World.addEntity(World.java:1133) [paper-1.11.2.jar:git-Paper-"a30343c8"]
at net.minecraft.server.v1_11_R1.WorldServer.addEntity(WorldServer.java:1084) [paper-1.11.2.jar:git-Paper-"a30343c8"]
at org.bukkit.craftbukkit.v1_11_R1.CraftWorld.dropItem(CraftWorld.java:333) [paper-1.11.2.jar:git-Paper-"a30343c8"]
at org.bukkit.craftbukkit.v1_11_R1.CraftWorld.dropItemNaturally(CraftWorld.java:372) [paper-1.11.2.jar:git-Paper-"a30343c8"]
at org.bukkit.craftbukkit.v1_11_R1.event.CraftEventFactory.callEntityDeathEvent(CraftEventFactory.java:402) [paper-1.11.2.jar:git-Paper-"a30343c8"]
at net.minecraft.server.v1_11_R1.EntityLiving.die(EntityLiving.java:1100) [paper-1.11.2.jar:git-Paper-"a30343c8"]
at net.minecraft.server.v1_11_R1.EntityHorseAbstract.die(EntityHorseAbstract.java:481) [paper-1.11.2.jar:git-Paper-"a30343c8"]
at net.minecraft.server.v1_11_R1.EntityHorseChestedAbstract.die(SourceFile:80) [paper-1.11.2.jar:git-Paper-"a30343c8"]
at net.minecraft.server.v1_11_R1.EntityLiving.damageEntity(EntityLiving.java:954) [paper-1.11.2.jar:git-Paper-"a30343c8"]
at net.minecraft.server.v1_11_R1.EntityHorseAbstract.damageEntity(EntityHorseAbstract.java:166) [paper-1.11.2.jar:git-Paper-"a30343c8"]
at net.minecraft.server.v1_11_R1.BlockCactus.a(BlockCactus.java:94) [paper-1.11.2.jar:git-Paper-"a30343c8"]
at net.minecraft.server.v1_11_R1.Entity.checkBlockCollisions(Entity.java:938) [paper-1.11.2.jar:git-Paper-"a30343c8"]
at net.minecraft.server.v1_11_R1.Entity.move(Entity.java:522) [paper-1.11.2.jar:git-Paper-"a30343c8"]
at net.minecraft.server.v1_11_R1.EntityLiving.g(EntityLiving.java:1787) [paper-1.11.2.jar:git-Paper-"a30343c8"]
at net.minecraft.server.v1_11_R1.EntityHorseAbstract.g(EntityHorseAbstract.java:707) [paper-1.11.2.jar:git-Paper-"a30343c8"]
at net.minecraft.server.v1_11_R1.EntityLiving.n(EntityLiving.java:2081) [paper-1.11.2.jar:git-Paper-"a30343c8"]
at net.minecraft.server.v1_11_R1.EntityInsentient.n(EntityInsentient.java:502) [paper-1.11.2.jar:git-Paper-"a30343c8"]
at net.minecraft.server.v1_11_R1.EntityAgeable.n(EntityAgeable.java:158) [paper-1.11.2.jar:git-Paper-"a30343c8"]
at net.minecraft.server.v1_11_R1.EntityAnimal.n(EntityAnimal.java:24) [paper-1.11.2.jar:git-Paper-"a30343c8"]
at net.minecraft.server.v1_11_R1.EntityHorseAbstract.n(EntityHorseAbstract.java:489) [paper-1.11.2.jar:git-Paper-"a30343c8"]
at net.minecraft.server.v1_11_R1.EntityLiving.A_(EntityLiving.java:1916) [paper-1.11.2.jar:git-Paper-"a30343c8"]
at net.minecraft.server.v1_11_R1.EntityInsentient.A_(EntityInsentient.java:245) [paper-1.11.2.jar:git-Paper-"a30343c8"]
at net.minecraft.server.v1_11_R1.EntityHorseAbstract.A_(EntityHorseAbstract.java:526) [paper-1.11.2.jar:git-Paper-"a30343c8"]
at net.minecraft.server.v1_11_R1.World.entityJoinedWorld(World.java:1740) [paper-1.11.2.jar:git-Paper-"a30343c8"]
at net.minecraft.server.v1_11_R1.World.h(World.java:1715) [paper-1.11.2.jar:git-Paper-"a30343c8"]
at net.minecraft.server.v1_11_R1.World.tickEntities(World.java:1532) [paper-1.11.2.jar:git-Paper-"a30343c8"]
at net.minecraft.server.v1_11_R1.WorldServer.tickEntities(WorldServer.java:621) [paper-1.11.2.jar:git-Paper-"a30343c8"]
at net.minecraft.server.v1_11_R1.MinecraftServer.D(MinecraftServer.java:898) [paper-1.11.2.jar:git-Paper-"a30343c8"]
at net.minecraft.server.v1_11_R1.DedicatedServer.D(DedicatedServer.java:403) [paper-1.11.2.jar:git-Paper-"a30343c8"]
at net.minecraft.server.v1_11_R1.MinecraftServer.C(MinecraftServer.java:754) [paper-1.11.2.jar:git-Paper-"a30343c8"]
at net.minecraft.server.v1_11_R1.MinecraftServer.run(MinecraftServer.java:652) [paper-1.11.2.jar:git-Paper-"a30343c8"]
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_121]
Caused by: java.lang.Exception: SADDLE: 1 : Location{world=CraftWorld{name=world_nether},x=-24.03614286184311,y=54.0,z=31.519994729757308,pitch=0.0,yaw=5.8682966}
at pw.valaria.testykot.Testykot.iSpawn(Testykot.kt:70) ~[?:?]
at com.destroystokyo.paper.event.executor.MethodHandleEventExecutor.execute(MethodHandleEventExecutor.java:35) ~[paper-1.11.2.jar:git-Paper-"a30343c8"]
... 37 more
[02:03:58] [Server thread/ERROR]: Could not pass event ItemSpawnEvent to Testykot v1.0-SNAPSHOT
org.bukkit.event.EventException
at com.destroystokyo.paper.event.executor.MethodHandleEventExecutor.execute(MethodHandleEventExecutor.java:37) ~[paper-1.11.2.jar:git-Paper-"a30343c8"]
at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:78) ~[paper-1.11.2.jar:git-Paper-"a30343c8"]
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[paper-1.11.2.jar:git-Paper-"a30343c8"]
at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:517) [paper-1.11.2.jar:git-Paper-"a30343c8"]
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:502) [paper-1.11.2.jar:git-Paper-"a30343c8"]
at org.bukkit.craftbukkit.v1_11_R1.event.CraftEventFactory.callItemSpawnEvent(CraftEventFactory.java:312) [paper-1.11.2.jar:git-Paper-"a30343c8"]
at net.minecraft.server.v1_11_R1.World.addEntity(World.java:1133) [paper-1.11.2.jar:git-Paper-"a30343c8"]
at net.minecraft.server.v1_11_R1.WorldServer.addEntity(WorldServer.java:1084) [paper-1.11.2.jar:git-Paper-"a30343c8"]
at net.minecraft.server.v1_11_R1.World.addEntity(World.java:1095) [paper-1.11.2.jar:git-Paper-"a30343c8"]
at net.minecraft.server.v1_11_R1.Entity.teleportTo(Entity.java:2396) [paper-1.11.2.jar:git-Paper-"a30343c8"]
at net.minecraft.server.v1_11_R1.Entity.c(Entity.java:2305) [paper-1.11.2.jar:git-Paper-"a30343c8"]
at net.minecraft.server.v1_11_R1.EntityItem.c(EntityItem.java:399) [paper-1.11.2.jar:git-Paper-"a30343c8"]
at net.minecraft.server.v1_11_R1.Entity.U(Entity.java:369) [paper-1.11.2.jar:git-Paper-"a30343c8"]
at net.minecraft.server.v1_11_R1.Entity.A_(Entity.java:330) [paper-1.11.2.jar:git-Paper-"a30343c8"]
at net.minecraft.server.v1_11_R1.EntityItem.A_(EntityItem.java:65) [paper-1.11.2.jar:git-Paper-"a30343c8"]
at net.minecraft.server.v1_11_R1.World.entityJoinedWorld(World.java:1740) [paper-1.11.2.jar:git-Paper-"a30343c8"]
at net.minecraft.server.v1_11_R1.World.h(World.java:1715) [paper-1.11.2.jar:git-Paper-"a30343c8"]
at net.minecraft.server.v1_11_R1.World.tickEntities(World.java:1532) [paper-1.11.2.jar:git-Paper-"a30343c8"]
at net.minecraft.server.v1_11_R1.WorldServer.tickEntities(WorldServer.java:621) [paper-1.11.2.jar:git-Paper-"a30343c8"]
at net.minecraft.server.v1_11_R1.MinecraftServer.D(MinecraftServer.java:898) [paper-1.11.2.jar:git-Paper-"a30343c8"]
at net.minecraft.server.v1_11_R1.DedicatedServer.D(DedicatedServer.java:403) [paper-1.11.2.jar:git-Paper-"a30343c8"]
at net.minecraft.server.v1_11_R1.MinecraftServer.C(MinecraftServer.java:754) [paper-1.11.2.jar:git-Paper-"a30343c8"]
at net.minecraft.server.v1_11_R1.MinecraftServer.run(MinecraftServer.java:652) [paper-1.11.2.jar:git-Paper-"a30343c8"]
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_121]
Caused by: java.lang.Exception: SADDLE: 1 : Location{world=CraftWorld{name=world},x=-219.5,y=65.1600000038743,z=243.95356236994266,pitch=0.0,yaw=-84.1317}
at pw.valaria.testykot.Testykot.iSpawn(Testykot.kt:70) ~[?:?]
at com.destroystokyo.paper.event.executor.MethodHandleEventExecutor.execute(MethodHandleEventExecutor.java:35) ~[paper-1.11.2.jar:git-Paper-"a30343c8"]
... 23 more
I don't see where any additional items could be coming from, the 1st items are added to the world from the entity dying (worth noting, that the entity is dying as part of net.minecraft.server.v1_11_R1.World.entityJoinedWorld, effectively meaning that it's dying on the tick it teleported over, which appeared to have been what was causing the original death in the first place, being the new and the original (which is generally removed on the first fresh tick) both dying on this tick, as of now, we're only seeing a single death, and a single set of drops into the world from this stack.
The 2nd set of stacks are all effectively the same, and are caused by being ticked while in the portal, thus causing them to teleport over back to the main world.
https://hastebin.com/eleqenexej.vbs
Plugin:
https://keybase.pub/electronicboy/testykot-1.0-SNAPSHOT.jar
If somebody wants to grab a full full log with that and duplicate the issue, you're more than welcome to email me the log (or throw it on here) so long as you provide the full log without removing any info (excluding IP addresses, I don't care about them...). there is a /donkey command (Don't judge, this is a plugin that I use for when creating a new project for something just isn't worth it, that will create a new entity with the following:
override fun execute(sender: CommandSender, command: org.bukkit.command.Command, label: String, args: Array<out String>): Boolean {
if (sender !is Player) return true
if (!sender.isOp) return true
val hashSet = HashSet<Material>()
hashSet.add(Material.AIR)
val targetBlock = sender.getTargetBlock(hashSet, 20)
val spawnLocation = targetBlock.location.clone().add(0.0, 1.0, 0.0)
val spawnEntity = sender.location.world.spawnEntity(spawnLocation, EntityType.DONKEY)
spawnEntity as Donkey
spawnEntity.isTamed = true
spawnEntity.isCarryingChest = true
spawnEntity.inventory.setItem(0, ItemStack(Material.SADDLE))
spawnEntity.health = 0.1
spawnEntity.setAdult()
return true
}
Have you used an egg to spawn a donkey or /summon and then manually taken it to 1/2 a heart of health? I am still getting success doing this every time on the latest Paper.
Still works in latest build: https://imgur.com/a/hATpo
I simply spawned a donkey via spawn egg, took the donkey to 0.5hp and after it went through portal it duped the items.
A clean server without any additional plugins
Would be great if somebody like, grabbed the info I've asked for...
@electronicboy I am afraid I am not aware of how to get that info.
This is a video from 10 minutes ago using the glitch with 0 plugins on a brand new server on 1069.
https://www.youtube.com/watch?v=Qj2ZnfpzVIo - Dupes 3 flowers into 6.
Please do exactly what is in the video and not summon a donkey with low health. I know it might not make any difference but for the sake of argument.
@FirstReplay he explained how three comments above yours... you just need to add his plugin to your plugins folder and try to replicate the issue.
https://hastebin.com/guxexicacu.vbs
Dont know if its all thats needed. Dupe worked. Started with 2 stacks of diamond blocks. Ended with 4 stacks. Saddle also dupped
I have ran the plugin and confirmed the dupe working again on 1069.
https://hastebin.com/xewedafuba.vbs
https://hastebin.com/ocexaqaxux.php
Still unable to replicate, the stacks of the drops are indicating that the original bug is still in play, however I can't see how that could be, nor can I replicate it.
I'll consider having another dumpster dive soon later once I've gotten my head out of "this is how it works" and can follow the code more, it will likely end up with a drop of a paper jar that will dump info directly to the console instead of relying on events as I likely need to see some additional info which as I'm unable to replicate means that I personally can't even really begin to trace down the issue.... While I could replicate it before the original patch, right now I can't....
They're the exact same jar...
bd55e79777a616ce8a8af5e2d40f65ca *patched_1.11.2.jar - DT b1069
bd55e79777a616ce8a8af5e2d40f65ca *PaperSpigot-latest.jar - Yives
@Zbob750 Oops I downloaded an old version from first link -.- Sorry ignore. Dupe worked on both after downloading correct version
define "old version", as right now this is a wild goose chase behind people who are now saying that at one point the bug wasn't an issue
@jamie2013
the dev can't replicate the issue this is such a fail
show us what your netherside portal looks like with the cactus placements
As I've already said, I was able to replicate the issue before my original commit and no longer afterwards.
You're more than welcome to fix the underlying issue yourself if you want to act high and mighty.
I feel like you should switch the discussion to irc so that you don't spam everybody's inbox
It looks like electronicboy had been well on track with his changes, but we overlooked something. With his latest change, and testing from both he and I, I believe this issue to be resolved.
The changes will be present in builds 1070+
It was patched in the 1.16 version, probably could exist a data pack that make it happen again?
might as well just give your players permission to /give
Most helpful comment
As I've already said, I was able to replicate the issue before my original commit and no longer afterwards.
You're more than welcome to fix the underlying issue yourself if you want to act high and mighty.