Search in sources :

Example 1 with Slime

use of org.spongepowered.api.entity.living.monster.Slime 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();
    }
}
Also used : GuiIdProperty(org.spongepowered.api.item.inventory.property.GuiIdProperty) Llama(org.spongepowered.api.entity.living.animal.Llama) Mule(org.spongepowered.api.entity.living.animal.Mule) Horse(org.spongepowered.api.entity.living.animal.Horse) Slime(org.spongepowered.api.entity.living.monster.Slime) ItemStack(org.spongepowered.api.item.inventory.ItemStack) Inventory(org.spongepowered.api.item.inventory.Inventory) CarriedInventory(org.spongepowered.api.item.inventory.type.CarriedInventory) Identifiable(org.spongepowered.api.item.inventory.property.Identifiable) Listener(org.spongepowered.api.event.Listener)

Aggregations

Horse (org.spongepowered.api.entity.living.animal.Horse)1 Llama (org.spongepowered.api.entity.living.animal.Llama)1 Mule (org.spongepowered.api.entity.living.animal.Mule)1 Slime (org.spongepowered.api.entity.living.monster.Slime)1 Listener (org.spongepowered.api.event.Listener)1 Inventory (org.spongepowered.api.item.inventory.Inventory)1 ItemStack (org.spongepowered.api.item.inventory.ItemStack)1 GuiIdProperty (org.spongepowered.api.item.inventory.property.GuiIdProperty)1 Identifiable (org.spongepowered.api.item.inventory.property.Identifiable)1 CarriedInventory (org.spongepowered.api.item.inventory.type.CarriedInventory)1