Skip to content

Instantly share code, notes, and snippets.

@PurpleIsEverything
Created August 16, 2017 22:16
Show Gist options
  • Save PurpleIsEverything/5e861ea8b9620bb1a610b2ff6dca7305 to your computer and use it in GitHub Desktop.
Save PurpleIsEverything/5e861ea8b9620bb1a610b2ff6dca7305 to your computer and use it in GitHub Desktop.
Test code for inventory/slot parent bug.
package com.example;
import org.spongepowered.api.entity.living.player.Player;
import org.spongepowered.api.event.Listener;
import org.spongepowered.api.event.Order;
import org.spongepowered.api.event.filter.cause.First;
import org.spongepowered.api.event.item.inventory.ClickInventoryEvent;
import org.spongepowered.api.item.inventory.Slot;
import org.spongepowered.api.item.inventory.transaction.SlotTransaction;
import org.spongepowered.api.item.inventory.type.CarriedInventory;
public class ClickInventoryListener {
@Listener(order = Order.POST)
public void onClickInventory(ClickInventoryEvent event, @First Player player) {
//Make sure we have a transaction to validate
if (event.getTransactions().size() <= 0) {
return;
}
for(SlotTransaction transaction : event.getTransactions()) {
Slot slot = transaction.getSlot();
if (slot.parent() instanceof CarriedInventory && transaction.getOriginal() != transaction.getFinal()) {
System.out.println("Inventory Event Fired");
System.out.println("SLOT PARENT: " + slot.parent().toString());
System.out.println("TARGET INV: " + event.getTargetInventory().toString());
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment