What does SlotTransaction validity signify?

I couldn’t find any clear documentation on what the validity of a SlotTransaction is supposed to be. My impression was that setValid(false) would basically cancel the individual transaction, but that’s not what I observe.

To test this, I have this listener to disable all SlotTransactions:

@Listener
fun onAffectSlot(event: AffectSlotEvent) {
    event.transactions.forEach { it.isValid = false }
}

Now, if I open an inventory with a single item in it. When I left click the item, the item remains in the inventory, but I also get a copy of the item on my cursor. If I click on any slot with the item in my hand, the item will be removed from my cursor, with the slot remaining unchanged. If I click outside the inventory with the item on my cursor, the item is dropped in front of me.

Is this the expected behavior, and there’s something I’m missing? Or is a bug in the 1.12 beta build that I’m using? Any insight would be well appreciated :slight_smile:

No, that should cancel it if it was working correctly. File an issue on SpongeCommon.

1 Like

Good to hear! I opened Issue #1448.