use of org.spongepowered.api.entity.living.animal.Mule in project SpongeCommon by SpongePowered.
the class CustomInventoryTest method onPunchEntity.
@Listener
public void onPunchEntity(InteractEntityEvent.Primary event, @Root Player player) {
if (!player.get(Keys.IS_SNEAKING).orElse(false)) {
return;
}
if (event.getTargetEntity() instanceof Mule) {
Inventory.Builder builder;
if (((Mule) event.getTargetEntity()).getInventory().capacity() <= 2) {
builder = Inventory.builder().of(InventoryArchetypes.HORSE);
} else {
builder = Inventory.builder().of(InventoryArchetypes.HORSE_WITH_CHEST);
}
Inventory inventory = builder.property(InventoryTitle.PROPERTY_NAME, InventoryTitle.of(Text.of("Custom Mule"))).withCarrier(((Horse) event.getTargetEntity())).build(this);
int i = 1;
for (Inventory slot : inventory.slots()) {
slot.set(ItemStack.of(ItemTypes.APPLE, i++));
}
Sponge.getCauseStackManager().pushCause(player);
player.openInventory(inventory);
Sponge.getCauseStackManager().popCause();
event.setCancelled(true);
} else if (event.getTargetEntity() instanceof Llama) {
Inventory.Builder builder;
if (((Llama) event.getTargetEntity()).getInventory().capacity() <= 2) {
builder = Inventory.builder().of(InventoryArchetypes.HORSE);
} else {
builder = Inventory.builder().of(InventoryArchetypes.HORSE_WITH_CHEST);
}
Inventory inventory = builder.property(InventoryTitle.PROPERTY_NAME, InventoryTitle.of(Text.of("Custom Llama"))).withCarrier(((Horse) event.getTargetEntity())).build(this);
int i = 1;
for (Inventory slot : inventory.slots()) {
slot.set(ItemStack.of(ItemTypes.APPLE, i++));
}
Sponge.getCauseStackManager().pushCause(player);
player.openInventory(inventory);
Sponge.getCauseStackManager().popCause();
event.setCancelled(true);
} else if (event.getTargetEntity() instanceof Horse) {
Inventory inventory = Inventory.builder().of(InventoryArchetypes.HORSE).property(InventoryTitle.PROPERTY_NAME, InventoryTitle.of(Text.of("Custom Horse"))).withCarrier(((Horse) event.getTargetEntity())).build(this);
int i = 1;
for (Inventory slot : inventory.slots()) {
slot.set(ItemStack.of(ItemTypes.APPLE, i++));
}
Sponge.getCauseStackManager().pushCause(player);
player.openInventory(inventory);
Sponge.getCauseStackManager().popCause();
event.setCancelled(true);
}
if (event.getTargetEntity() instanceof Slime) {
Inventory inventory = Inventory.builder().of(InventoryArchetypes.MENU_GRID).property(InventoryDimension.of(1, 9)).property(InventoryTitle.of(Text.of("Slime Content"))).property(new Identifiable()).property(new GuiIdProperty(GuiIds.DISPENSER)).build(this);
ItemStack flard = ItemStack.of(ItemTypes.SLIME, 1);
flard.offer(Keys.DISPLAY_NAME, Text.of("Flard?"));
for (Inventory slot : inventory.slots()) {
slot.set(flard);
}
Sponge.getCauseStackManager().pushCause(player);
player.openInventory(inventory);
Sponge.getCauseStackManager().popCause();
}
}
Aggregations