Search in sources :

Example 1 with Sheep

use of org.bukkit.entity.Sheep in project MagicPlugin by elBukkit.

the class CycleEntityAction method perform.

@Override
public SpellResult perform(CastContext context) {
    Entity entity = context.getTargetEntity();
    EntityType entityType = entity.getType();
    Mage mage = context.getMage();
    switch(entityType) {
        case PAINTING:
            context.registerModified(entity);
            Painting painting = (Painting) entity;
            Art[] artValues = Art.values();
            Art oldArt = painting.getArt();
            Art newArt = oldArt;
            int ordinal = (oldArt.ordinal() + 1);
            for (int i = 0; i < artValues.length; i++) {
                newArt = artValues[ordinal++ % artValues.length];
                painting.setArt(newArt);
                newArt = painting.getArt();
                if (oldArt != newArt) {
                    break;
                }
            }
            if (oldArt == newArt) {
                return SpellResult.FAIL;
            }
            mage.sendDebugMessage("Altering art from " + oldArt + " to " + newArt);
            break;
        case ITEM_FRAME:
            ItemFrame itemFrame = (ItemFrame) entity;
            ItemStack frameItem = itemFrame.getItem();
            if (frameItem == null || frameItem.getType() != Material.MAP) {
                return SpellResult.NO_TARGET;
            }
            short data = frameItem.getDurability();
            data++;
            MapView mapView = DeprecatedUtils.getMap(data);
            if (mapView == null) {
                data = 0;
                mapView = DeprecatedUtils.getMap(data);
                if (mapView == null) {
                    return SpellResult.NO_TARGET;
                }
            }
            context.registerModified(entity);
            frameItem.setDurability(data);
            itemFrame.setItem(frameItem);
            break;
        case HORSE:
            context.registerModified(entity);
            Horse horse = (Horse) entity;
            Horse.Color color = horse.getColor();
            Horse.Color[] colorValues = Horse.Color.values();
            color = colorValues[(color.ordinal() + 1) % colorValues.length];
            Horse.Style horseStyle = horse.getStyle();
            Horse.Style[] styleValues = Horse.Style.values();
            horseStyle = styleValues[(horseStyle.ordinal() + 1) % styleValues.length];
            horse.setStyle(horseStyle);
            horse.setColor(color);
            break;
        case OCELOT:
            context.registerModified(entity);
            Ocelot ocelot = (Ocelot) entity;
            Ocelot.Type catType = ocelot.getCatType();
            Ocelot.Type[] typeValues = Ocelot.Type.values();
            catType = typeValues[(catType.ordinal() + 1) % typeValues.length];
            ocelot.setCatType(catType);
            break;
        case VILLAGER:
            context.registerModified(entity);
            Villager villager = (Villager) entity;
            Villager.Profession profession = villager.getProfession();
            Villager.Profession[] professionValues = Villager.Profession.values();
            int villagerOrdinal = (profession.ordinal() + 1) % professionValues.length;
            // Special-cases for zombie-reserved professions
            if (villagerOrdinal == 0 || villagerOrdinal == 7) {
                villagerOrdinal = 1;
            }
            profession = professionValues[villagerOrdinal];
            villager.setProfession(profession);
            break;
        case WOLF:
            context.registerModified(entity);
            Wolf wolf = (Wolf) entity;
            DyeColor wolfColor = wolf.getCollarColor();
            DyeColor[] wolfColorValues = DyeColor.values();
            wolfColor = wolfColorValues[(wolfColor.ordinal() + 1) % wolfColorValues.length];
            wolf.setCollarColor(wolfColor);
            break;
        case SHEEP:
            context.registerModified(entity);
            Sheep sheep = (Sheep) entity;
            DyeColor dyeColor = sheep.getColor();
            DyeColor[] dyeColorValues = DyeColor.values();
            dyeColor = dyeColorValues[(dyeColor.ordinal() + 1) % dyeColorValues.length];
            sheep.setColor(dyeColor);
            break;
        default:
            return SpellResult.NO_TARGET;
    }
    ;
    return SpellResult.CAST;
}
Also used : Entity(org.bukkit.entity.Entity) Art(org.bukkit.Art) ItemFrame(org.bukkit.entity.ItemFrame) Horse(org.bukkit.entity.Horse) Villager(org.bukkit.entity.Villager) MapView(org.bukkit.map.MapView) Wolf(org.bukkit.entity.Wolf) DyeColor(org.bukkit.DyeColor) DyeColor(org.bukkit.DyeColor) Painting(org.bukkit.entity.Painting) EntityType(org.bukkit.entity.EntityType) Ocelot(org.bukkit.entity.Ocelot) EntityType(org.bukkit.entity.EntityType) Mage(com.elmakers.mine.bukkit.api.magic.Mage) Sheep(org.bukkit.entity.Sheep) ItemStack(org.bukkit.inventory.ItemStack)

Example 2 with Sheep

use of org.bukkit.entity.Sheep in project MagicPlugin by elBukkit.

the class EntityProjectileAction method setEntity.

protected Entity setEntity(MageController controller, @Nonnull Entity entity) {
    this.entity = entity;
    if (noTarget) {
        entity.setMetadata("notarget", new FixedMetadataValue(controller.getPlugin(), true));
    }
    if (entity instanceof LivingEntity) {
        ((LivingEntity) entity).setMaxHealth(1000.0);
        ((LivingEntity) entity).setHealth(1000.0);
    }
    if (entity instanceof Slime) {
        ((Slime) entity).setSize(1);
    }
    // Variant name still used here for backwards compatibility
    if (entity instanceof Ocelot) {
        Ocelot ocelot = (Ocelot) entity;
        Ocelot.Type variant = Ocelot.Type.WILD_OCELOT;
        if (variantName != null) {
            try {
                variant = Ocelot.Type.valueOf(variantName.toUpperCase());
            } catch (Exception ignored) {
            }
        } else {
            variant = Ocelot.Type.WILD_OCELOT;
        }
        ocelot.setCatType(variant);
    }
    if (entity instanceof Sheep) {
        Sheep sheep = (Sheep) entity;
        DyeColor color = DyeColor.WHITE;
        if (variantName != null) {
            try {
                color = DyeColor.valueOf(variantName.toUpperCase());
            } catch (Exception ignored) {
            }
        }
        sheep.setColor(color);
    }
    if (entity instanceof Wolf) {
        Wolf wolf = (Wolf) entity;
        if (variantName != null) {
            // Only set collar color if a variant is set..
            // this makes it a dog, versus a wolf. Technically.
            DyeColor color = DyeColor.RED;
            try {
                color = DyeColor.valueOf(variantName.toUpperCase());
                wolf.setTamed(true);
            } catch (Exception ignored) {
            }
            wolf.setCollarColor(color);
        }
    }
    if (projectileEffects != null && entity instanceof LivingEntity) {
        CompatibilityUtils.applyPotionEffects((LivingEntity) entity, projectileEffects);
    }
    targeting.ignoreEntity(entity);
    return entity;
}
Also used : LivingEntity(org.bukkit.entity.LivingEntity) Ocelot(org.bukkit.entity.Ocelot) FixedMetadataValue(org.bukkit.metadata.FixedMetadataValue) Sheep(org.bukkit.entity.Sheep) Wolf(org.bukkit.entity.Wolf) Slime(org.bukkit.entity.Slime) DyeColor(org.bukkit.DyeColor)

Example 3 with Sheep

use of org.bukkit.entity.Sheep in project Citizens2 by CitizensDev.

the class SheepEquipper method equip.

@Override
public void equip(Player equipper, NPC toEquip) {
    ItemStack hand = equipper.getInventory().getItemInHand();
    Sheep sheep = (Sheep) toEquip.getEntity();
    if (hand.getType() == Material.SHEARS) {
        Messaging.sendTr(equipper, toEquip.getTrait(SheepTrait.class).toggleSheared() ? Messages.SHEARED_SET : Messages.SHEARED_STOPPED, toEquip.getName());
    } else if (hand.getType() == Material.INK_SACK) {
        Dye dye = (Dye) hand.getData();
        if (sheep.getColor() == dye.getColor())
            return;
        DyeColor color = dye.getColor();
        toEquip.getTrait(WoolColor.class).setColor(color);
        Messaging.sendTr(equipper, Messages.EQUIPMENT_EDITOR_SHEEP_COLOURED, toEquip.getName(), color.name().toLowerCase().replace("_", " "));
        hand.setAmount(hand.getAmount() - 1);
    } else {
        toEquip.getTrait(WoolColor.class).setColor(DyeColor.WHITE);
        Messaging.sendTr(equipper, Messages.EQUIPMENT_EDITOR_SHEEP_COLOURED, toEquip.getName(), "white");
    }
    equipper.getInventory().setItemInHand(hand);
}
Also used : Dye(org.bukkit.material.Dye) Sheep(org.bukkit.entity.Sheep) ItemStack(org.bukkit.inventory.ItemStack) DyeColor(org.bukkit.DyeColor) SheepTrait(net.citizensnpcs.trait.SheepTrait)

Example 4 with Sheep

use of org.bukkit.entity.Sheep in project StackMob-2 by Nathat23.

the class DyeEvent method onSheepDye.

@EventHandler
public void onSheepDye(SheepDyeWoolEvent event) {
    if (!event.getEntity().hasMetadata(GlobalValues.METATAG)) {
        return;
    }
    int stackSize = event.getEntity().getMetadata(GlobalValues.METATAG).get(0).asInt();
    Entity oldEntity = event.getEntity();
    if (sm.config.getCustomConfig().getBoolean("divide-on.sheep-dye") && stackSize > 1) {
        Sheep newEntity = (Sheep) sm.tools.duplicate(oldEntity);
        newEntity.setColor(event.getEntity().getColor());
        newEntity.setMetadata(GlobalValues.METATAG, new FixedMetadataValue(sm, stackSize - 1));
        newEntity.setMetadata(GlobalValues.NO_SPAWN_STACK, new FixedMetadataValue(sm, true));
        oldEntity.setMetadata(GlobalValues.METATAG, new FixedMetadataValue(sm, 1));
        oldEntity.setCustomName(null);
    }
}
Also used : Entity(org.bukkit.entity.Entity) Sheep(org.bukkit.entity.Sheep) FixedMetadataValue(org.bukkit.metadata.FixedMetadataValue) EventHandler(org.bukkit.event.EventHandler)

Example 5 with Sheep

use of org.bukkit.entity.Sheep in project modules-extra by CubeEngine.

the class ListenerPlayerEntity method onPlayerInteractEntityEvent.

@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onPlayerInteractEntityEvent(PlayerInteractEntityEvent event) {
    if (!(event.getRightClicked() instanceof LivingEntity)) {
        return;
    }
    Player player = event.getPlayer();
    Entity entity = event.getRightClicked();
    ActionPlayerEntity action;
    if (player.getItemInHand().getType() == COAL && entity instanceof PoweredMinecart) {
        action = this.newAction(UseFurnaceMinecart.class, entity.getWorld());
    } else if (player.getItemInHand().getType() == INK_SACK && entity instanceof Sheep || entity instanceof Wolf) {
        action = this.newAction(EntityDye.class, entity.getWorld());
        if (action != null) {
            ((EntityDye) action).setColor(((Dye) player.getItemInHand().getData()).getColor());
        }
    } else if (player.getItemInHand().getType().equals(BOWL) && entity instanceof MushroomCow) {
        action = this.newAction(EntityFillSoup.class, entity.getWorld());
    } else {
        return;
    }
    if (action != null) {
        action.setEntity(entity);
        action.setPlayer(player);
        action.setLocation(entity.getLocation());
        this.logAction(action);
    }
}
Also used : LivingEntity(org.bukkit.entity.LivingEntity) LivingEntity(org.bukkit.entity.LivingEntity) Entity(org.spongepowered.api.entity.Entity) Dye(org.bukkit.material.Dye) Player(org.spongepowered.api.entity.player.Player) MushroomCow(org.bukkit.entity.MushroomCow) PoweredMinecart(org.bukkit.entity.minecart.PoweredMinecart) Sheep(org.bukkit.entity.Sheep) Wolf(org.bukkit.entity.Wolf) EventHandler(org.bukkit.event.EventHandler)

Aggregations

Sheep (org.bukkit.entity.Sheep)14 ItemStack (org.bukkit.inventory.ItemStack)10 DyeColor (org.bukkit.DyeColor)6 Horse (org.bukkit.entity.Horse)6 Villager (org.bukkit.entity.Villager)6 Wolf (org.bukkit.entity.Wolf)6 Entity (org.bukkit.entity.Entity)5 Ocelot (org.bukkit.entity.Ocelot)5 EventHandler (org.bukkit.event.EventHandler)5 EntityType (org.bukkit.entity.EntityType)4 ItemFrame (org.bukkit.entity.ItemFrame)4 Painting (org.bukkit.entity.Painting)4 Rabbit (org.bukkit.entity.Rabbit)4 Dynamic (com.mojang.serialization.Dynamic)2 MyPetBaby (de.Keyle.MyPet.api.entity.MyPetBaby)2 MyAxolotl (de.Keyle.MyPet.api.entity.types.MyAxolotl)2 MyBee (de.Keyle.MyPet.api.entity.types.MyBee)2 MyCat (de.Keyle.MyPet.api.entity.types.MyCat)2 MyCreeper (de.Keyle.MyPet.api.entity.types.MyCreeper)2 MyEnderman (de.Keyle.MyPet.api.entity.types.MyEnderman)2