theNaspenGrove / LightMaker

A way to use the 1.17 light block in survival!
1 stars 3 forks source link

Dont make BlockDropItemEvent#items immutable #10

Open knniDE opened 1 year ago

knniDE commented 1 year ago

hi! I have a problem with LightMaker in combination with other plugins. The developer of these plugins said that BlockDropItemEvent#items should not make immutable.

The Error(s): https://mclo.gs/CVUdJm8

The Chatlog with Auxilor: image

n-aspen commented 1 year ago

I'm not sure what I'm doing exactly to make that method immutable, but I'm looking into it <3

n-aspen commented 1 year ago

It looks like I was passing an immutable value to the event I was calling, this should hopefully fix it. https://modrinth.com/plugin/lightmaker/version/S0zDZMXp

knniDE commented 1 year ago

It seems to work without an error. But the problem is now that 2 items drop when break 1 Light Block :o

n-aspen commented 1 year ago

I can't replicate that with just LightMaker installed and I can't see how the change I made would cause that. Looking at the error log and the code for the Telekinesis Effect, it looks like it's trying to clear the item list but it's failing to do so in this case. I'm reaching out to them to see if I can figure out why.

n-aspen commented 1 year ago

I'm looking through what the telekinesis effect is trying to do, which I think is just moving the items from the block to the player. When you say it drops two items, is one dropped at the location of the light block and the other dropped at the player? Does it happen when you aren't using telekinesis?

knniDE commented 1 year ago

So, sorry for the late reply. I have now tested it again: Without telekinesis: The light block drops 2x on the ground. With telekinesis: 1x light block goes into the inventory and 1x drops on the floor.

You can build the plugins from the "eco-system" for yourself for testing.

n-aspen commented 1 year ago

Just wanted to give an update that I haven't forgotten about this and have been returning to it every couple of days. I've been able to replicate it using a compiled version of libreforge, but I haven't found any kind of fix. Best as I can tell, whatever libreforge is doing to the event isn't removing the item but I have no idea if that's an issue on my side when I create the event, theirs when they handle it, or some weird edge case with Paper/Spigot.

What I do know so far, is that other plugins that provide a similar effect, such as my ItemShift plugin, do remove the item, and a couple of others that I've tried as well. In my case I'm just canceling the event, but I'm not sure what other options there would be to remove the items you're affecting. They could just be modifying the drop list and leaving the event as a whole intact, but that should remove them just like canceling it does.