java类org.bukkit.event.player.PlayerShearEntityEvent的实例源码

TimesShornListener.java 文件源码 项目:Statz 阅读 24 收藏 0 点赞 0 评论 0
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onShear(final PlayerShearEntityEvent event) {

    final PlayerStat stat = PlayerStat.TIMES_SHORN;

    // Get player
    final Player player = (Player) event.getPlayer();

    // Do general check
    if (!plugin.doGeneralCheck(player, stat))
        return;

    // Update value to new stat.
    plugin.getDataManager().setPlayerInfo(player.getUniqueId(), stat, StatzUtil.makeQuery("uuid",
            player.getUniqueId().toString(), "value", 1, "world", player.getWorld().getName()));

}
ShearObjective.java 文件源码 项目:BetonQuest 阅读 24 收藏 0 点赞 0 评论 0
@EventHandler
public void onShear(PlayerShearEntityEvent event) {
    if (event.getEntity().getType() != EntityType.SHEEP)
        return;
    String playerID = PlayerConverter.getID(event.getPlayer());
    if (!containsPlayer(playerID))
        return;
    if (name != null && (event.getEntity().getCustomName() == null || !event.getEntity().getCustomName().equals(name)))
        return;
    if (color != null && !((Sheep) event.getEntity()).getColor().toString().equalsIgnoreCase(color))
        return;
    SheepData data = (SheepData) dataMap.get(playerID);
    if (checkConditions(playerID))
        data.shearSheep();
    if (data.getAmount() <= 0)
        completeObjective(playerID);
    else if (notify)
        Config.sendMessage(playerID, "sheep_to_shear", new String[] { String.valueOf(data.getAmount()) });
}
IslandGuard.java 文件源码 项目:bskyblock 阅读 22 收藏 0 点赞 0 评论 0
@EventHandler(priority = EventPriority.LOW)
public void onShear(final PlayerShearEntityEvent e) {
    if (DEBUG) {
        plugin.getLogger().info(e.getEventName());
    }
    if (Util.inWorld(e.getPlayer())) {
        if (actionAllowed(e.getPlayer(), e.getEntity().getLocation(), SettingsFlag.SHEARING)) {
            return;
        }
        // Not allowed
        Util.sendMessage(e.getPlayer(), plugin.getLocale(e.getPlayer().getUniqueId()).get("island.protected"));
        e.setCancelled(true);
    }
}
PlayerShearEventListener.java 文件源码 项目:KingdomFactions 阅读 22 收藏 0 点赞 0 评论 0
@EventHandler
public void onShear(PlayerShearEntityEvent e) {

KingdomFactionsPlayer p = PlayerModule.getInstance().getPlayer(e.getPlayer());
if(p.getSettingsProfile().hasAdminMode()) return;
if(!p.canBuild(e.getEntity().getLocation())) {
    e.setCancelled(!ProtectionModule.getInstance().tryInfluence(p, 100));
} 
}
EntityListener.java 文件源码 项目:WebSandboxMC 阅读 25 收藏 0 点赞 0 评论 0
@EventHandler(ignoreCancelled = true)
public void onShear(PlayerShearEntityEvent event) {
    Entity entity = event.getEntity();

    String username = webPlayerBridge.entityId2Username.get(entity.getEntityId());
    if (username == null) {
        return;
    }

    Player player = event.getPlayer();
    String playerName = player.getDisplayName();

    webPlayerBridge.notifySheared(username, playerName);
}
AchieveShearListener.java 文件源码 项目:AdvancedAchievements 阅读 24 收藏 0 点赞 0 评论 0
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onPlayerShearEntity(PlayerShearEntityEvent event) {
    if (!(event.getEntity() instanceof Sheep)) {
        return;
    }

    Player player = event.getPlayer();
    NormalAchievements category = NormalAchievements.SHEARS;
    if (!shouldIncreaseBeTakenIntoAccount(player, category)) {
        return;
    }

    updateStatisticAndAwardAchievementsIfAvailable(player, category, 1);
}
EntitySheep.java 文件源码 项目:CraftBukkit 阅读 23 收藏 0 点赞 0 评论 0
public boolean a(EntityHuman entityhuman) {
    ItemStack itemstack = entityhuman.inventory.getItemInHand();

    if (itemstack != null && itemstack.getItem() == Items.SHEARS && !this.isSheared() && !this.isBaby()) {
        if (!this.world.isStatic) {
            // CraftBukkit start
            PlayerShearEntityEvent event = new PlayerShearEntityEvent((org.bukkit.entity.Player) entityhuman.getBukkitEntity(), this.getBukkitEntity());
            this.world.getServer().getPluginManager().callEvent(event);

            if (event.isCancelled()) {
                return false;
            }
            // CraftBukkit end

            this.setSheared(true);
            int i = 1 + this.random.nextInt(3);

            for (int j = 0; j < i; ++j) {
                EntityItem entityitem = this.a(new ItemStack(Item.getItemOf(Blocks.WOOL), 1, this.getColor()), 1.0F);

                entityitem.motY += (double) (this.random.nextFloat() * 0.05F);
                entityitem.motX += (double) ((this.random.nextFloat() - this.random.nextFloat()) * 0.1F);
                entityitem.motZ += (double) ((this.random.nextFloat() - this.random.nextFloat()) * 0.1F);
            }
        }

        itemstack.damage(1, entityhuman);
        this.makeSound("mob.sheep.shear", 1.0F, 1.0F);
    }

    return super.a(entityhuman);
}
PlayerMovementListener.java 文件源码 项目:beaconz 阅读 23 收藏 0 点赞 0 评论 0
/**
 * Prevents shearing outside the game area
 * @param event
 */
@EventHandler(priority = EventPriority.LOW, ignoreCancelled=true)
public void onShear(final PlayerShearEntityEvent event) {
    if (event.getEntity().getWorld().equals(getBeaconzWorld())) {
        if (getGameMgr().getGame(event.getEntity().getLocation()) == null) {
            event.setCancelled(true);
            event.getPlayer().sendMessage(ChatColor.RED + Lang.errorYouCannotDoThat);
        }
    }
}
GriefEvents.java 文件源码 项目:uSkyBlock 阅读 27 收藏 0 点赞 0 评论 0
@EventHandler
public void onShearEvent(PlayerShearEntityEvent event) {
    Player player = event.getPlayer();
    if (!shearingEnabled || !plugin.isSkyAssociatedWorld(player.getWorld())) {
        return; // Not our concern
    }
    if (hasPermission(player, "usb.mod.bypassprotection")) {
        return;
    }
    if (!plugin.playerIsOnIsland(player)) {
        event.setCancelled(true);
    }
}
BlocksListener.java 文件源码 项目:BelovedBlocks 阅读 19 收藏 0 点赞 0 评论 0
/**
 * Used to prevent our tool from shearing sheeps or mushroom cows.
 * <p>
 * The cow seems to disappear, a relog fix that. Cannot be fixed on our side
 * (Minecraft or CBukkit bug).
 */
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onPlayerShearEntity(PlayerShearEntityEvent ev)
{
    if (BelovedBlocks.getToolsManager().getFromItem(ev.getPlayer().getItemInHand()) instanceof StoneCutter)
    {
        ev.setCancelled(true);
    }
}
EntitySheep.java 文件源码 项目:Almura-Server 阅读 24 收藏 0 点赞 0 评论 0
public boolean a(EntityHuman entityhuman) {
    ItemStack itemstack = entityhuman.inventory.getItemInHand();

    if (itemstack != null && itemstack.id == Item.SHEARS.id && !this.isSheared() && !this.isBaby()) {
        if (!this.world.isStatic) {
            // CraftBukkit start
            PlayerShearEntityEvent event = new PlayerShearEntityEvent((org.bukkit.entity.Player) entityhuman.getBukkitEntity(), this.getBukkitEntity());
            this.world.getServer().getPluginManager().callEvent(event);

            if (event.isCancelled()) {
                return false;
            }
            // CraftBukkit end

            this.setSheared(true);
            int i = 1 + this.random.nextInt(3);

            for (int j = 0; j < i; ++j) {
                EntityItem entityitem = this.a(new ItemStack(Block.WOOL.id, 1, this.getColor()), 1.0F);

                entityitem.motY += (double) (this.random.nextFloat() * 0.05F);
                entityitem.motX += (double) ((this.random.nextFloat() - this.random.nextFloat()) * 0.1F);
                entityitem.motZ += (double) ((this.random.nextFloat() - this.random.nextFloat()) * 0.1F);
            }
        }

        itemstack.damage(1, entityhuman);
        this.makeSound("mob.sheep.shear", 1.0F, 1.0F);
    }

    return super.a(entityhuman);
}
IslandGuard.java 文件源码 项目:acidisland 阅读 26 收藏 0 点赞 0 评论 0
@EventHandler(priority = EventPriority.LOW)
public void onShear(final PlayerShearEntityEvent e) {
    if (DEBUG) {
        plugin.getLogger().info(e.getEventName());
    }
    if (inWorld(e.getPlayer())) {
        if (actionAllowed(e.getPlayer(), e.getEntity().getLocation(), SettingsFlag.SHEARING)) {
            return;
        }
        // Not allowed
        Util.sendMessage(e.getPlayer(), ChatColor.RED + plugin.myLocale(e.getPlayer().getUniqueId()).islandProtected);
        e.setCancelled(true);
        return;
    }
}
EntitySheep.java 文件源码 项目:Tweakkit-Server 阅读 19 收藏 0 点赞 0 评论 0
public boolean a(EntityHuman entityhuman) {
    ItemStack itemstack = entityhuman.inventory.getItemInHand();

    if (itemstack != null && itemstack.getItem() == Items.SHEARS && !this.isSheared() && !this.isBaby()) {
        if (!this.world.isStatic) {
            // CraftBukkit start
            PlayerShearEntityEvent event = new PlayerShearEntityEvent((org.bukkit.entity.Player) entityhuman.getBukkitEntity(), this.getBukkitEntity());
            this.world.getServer().getPluginManager().callEvent(event);

            if (event.isCancelled()) {
                return false;
            }
            // CraftBukkit end

            this.setSheared(true);
            int i = 1 + this.random.nextInt(3);

            for (int j = 0; j < i; ++j) {
                EntityItem entityitem = this.a(new ItemStack(Item.getItemOf(Blocks.WOOL), 1, this.getColor()), 1.0F);

                entityitem.motY += (double) (this.random.nextFloat() * 0.05F);
                entityitem.motX += (double) ((this.random.nextFloat() - this.random.nextFloat()) * 0.1F);
                entityitem.motZ += (double) ((this.random.nextFloat() - this.random.nextFloat()) * 0.1F);
            }
        }

        itemstack.damage(1, entityhuman);
        this.makeSound("mob.sheep.shear", 1.0F, 1.0F);
    }

    return super.a(entityhuman);
}
IslandGuard.java 文件源码 项目:askyblock 阅读 21 收藏 0 点赞 0 评论 0
@EventHandler(priority = EventPriority.LOW)
public void onShear(final PlayerShearEntityEvent e) {
    if (DEBUG) {
        plugin.getLogger().info(e.getEventName());
    }
    if (inWorld(e.getPlayer())) {
        if (actionAllowed(e.getPlayer(), e.getEntity().getLocation(), SettingsFlag.SHEARING)) {
            return;
        }
        // Not allowed
        Util.sendMessage(e.getPlayer(), ChatColor.RED + plugin.myLocale(e.getPlayer().getUniqueId()).islandProtected);
        e.setCancelled(true);
        return;
    }
}
ItemShears.java 文件源码 项目:Cauldron 阅读 20 收藏 0 点赞 0 评论 0
@Override
public boolean itemInteractionForEntity(ItemStack itemstack, EntityPlayer player, EntityLivingBase entity)
{
    if (entity.worldObj.isRemote)
    {
        return false;
    }
    if (entity instanceof IShearable)
    {
        IShearable target = (IShearable)entity;
        if (target.isShearable(itemstack, entity.worldObj, (int)entity.posX, (int)entity.posY, (int)entity.posZ))
        {
            // Cauldron start
            PlayerShearEntityEvent event = new PlayerShearEntityEvent((org.bukkit.entity.Player) player.getBukkitEntity(), entity.getBukkitEntity());
            player.worldObj.getServer().getPluginManager().callEvent(event);

            if (event.isCancelled())
            {
                return false;
            }

            // Cauldron end
            ArrayList<ItemStack> drops = target.onSheared(itemstack, entity.worldObj, (int)entity.posX, (int)entity.posY, (int)entity.posZ,
                    EnchantmentHelper.getEnchantmentLevel(Enchantment.fortune.effectId, itemstack));

            Random rand = new Random();
            for(ItemStack stack : drops)
            {
                EntityItem ent = entity.entityDropItem(stack, 1.0F);
                ent.motionY += rand.nextFloat() * 0.05F;
                ent.motionX += (rand.nextFloat() - rand.nextFloat()) * 0.1F;
                ent.motionZ += (rand.nextFloat() - rand.nextFloat()) * 0.1F;
            }
            itemstack.damageItem(1, entity);
        }
        return true;
    }
    return false;
}
ListenerPlayerEntity.java 文件源码 项目:modules-extra 阅读 46 收藏 0 点赞 0 评论 0
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onEntityShear(PlayerShearEntityEvent event)
{
    EntityShear action = this.newAction(EntityShear.class, event.getEntity().getWorld());
    if (action != null)
    {
        action.setEntity(event.getEntity());
        action.setPlayer(event.getPlayer());
        action.setLocation(event.getEntity().getLocation());
        this.logAction(action);
    }
}
DynamicPlayerListener.java 文件源码 项目:CrazyLogin 阅读 22 收藏 0 点赞 0 评论 0
@EventHandler(ignoreCancelled = true, priority = EventPriority.LOW)
public void PlayerShear(final PlayerShearEntityEvent event)
{
    if (!(event.getEntity() instanceof Player))
        return;
    final Player player = (Player) event.getEntity();
    if (plugin.isLoggedIn(player))
        return;
    event.setCancelled(true);
}
EntitySheep.java 文件源码 项目:SpigotSource 阅读 22 收藏 0 点赞 0 评论 0
public boolean a(EntityHuman entityhuman, EnumHand enumhand, @Nullable ItemStack itemstack) {
    if (itemstack != null && itemstack.getItem() == Items.SHEARS && !this.isSheared() && !this.isBaby()) {
        if (!this.world.isClientSide) {
            // CraftBukkit start
            PlayerShearEntityEvent event = new PlayerShearEntityEvent((org.bukkit.entity.Player) entityhuman.getBukkitEntity(), this.getBukkitEntity());
            this.world.getServer().getPluginManager().callEvent(event);

            if (event.isCancelled()) {
                return false;
            }
            // CraftBukkit end

            this.setSheared(true);
            int i = 1 + this.random.nextInt(3);

            for (int j = 0; j < i; ++j) {
                this.forceDrops = true; // CraftBukkit
                EntityItem entityitem = this.a(new ItemStack(Item.getItemOf(Blocks.WOOL), 1, this.getColor().getColorIndex()), 1.0F);
                this.forceDrops = false; // CraftBukkit

                entityitem.motY += (double) (this.random.nextFloat() * 0.05F);
                entityitem.motX += (double) ((this.random.nextFloat() - this.random.nextFloat()) * 0.1F);
                entityitem.motZ += (double) ((this.random.nextFloat() - this.random.nextFloat()) * 0.1F);
            }
        }

        itemstack.damage(1, entityhuman);
        this.a(SoundEffects.eP, 1.0F, 1.0F);
    }

    return super.a(entityhuman, enumhand, itemstack);
}
FarmFlagListener.java 文件源码 项目:NPlugins 阅读 27 收藏 0 点赞 0 评论 0
@EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true)
public void onPlayerShearEntity(final PlayerShearEntityEvent event) {
    final GeneralRegion cuboid = this.getPlugin().getDb().getPriorByLocation(event.getEntity().getLocation());
    if (cuboid != null && cuboid.getFlag(Flag.FARM) && !cuboid.isUser(event.getPlayer())) {
        event.setCancelled(true);
    }
}
SSGPlayerListener.java 文件源码 项目:simple-survival-games 阅读 27 收藏 0 点赞 0 评论 0
@EventHandler
public void onPlayerShearEntity(PlayerShearEntityEvent event) {
    Player p = event.getPlayer();
    ArenaManager am = SimpleSurvivalGames.instance.getArenaManager();

    // Is the current player playing
    if(am.isInArena(p)) {
        ArenaPlayer ap = am.getPlayer(p);

        // Is the player in the lobby of the arena
        if(ap.isInLobby()) {

            // Has the player a arena spawn assigned
            if(ap.hasAssignedAreanSpawn()) {

                // Cancel the event and send a status message
                event.setCancelled(true);
                p.sendMessage(ChatColor.DARK_RED + "It's a shame to make this sheep naked inside the lobby of an arena!");
            }
        }

        // Is the player an spectators
        if(ap.isSpectator()) {
            event.setCancelled(true);
            ap.sendMessage(ChatColor.DARK_RED + "You can't make this sheep naked while spectating!");
        }
    }
}
PlayerListenerTest.java 文件源码 项目:AuthMeReloaded 阅读 38 收藏 0 点赞 0 评论 0
@Test
public void shouldHandleSimpleCancelableEvents() {
    withServiceMock(listenerService)
        .check(listener::onPlayerShear, PlayerShearEntityEvent.class)
        .check(listener::onPlayerFish, PlayerFishEvent.class)
        .check(listener::onPlayerBedEnter, PlayerBedEnterEvent.class)
        .check(listener::onPlayerDropItem, PlayerDropItemEvent.class)
        .check(listener::onPlayerHitPlayerEvent, EntityDamageByEntityEvent.class)
        .check(listener::onPlayerConsumeItem, PlayerItemConsumeEvent.class)
        .check(listener::onPlayerInteract, PlayerInteractEvent.class)
        .check(listener::onPlayerPickupItem, PlayerPickupItemEvent.class)
        .check(listener::onPlayerInteractEntity, PlayerInteractEntityEvent.class);
}
EntitySheep.java 文件源码 项目:Craft-city 阅读 30 收藏 0 点赞 0 评论 0
public boolean a_(EntityHuman entityhuman) {
    ItemStack itemstack = entityhuman.inventory.getItemInHand();

    if (itemstack != null && itemstack.id == Item.SHEARS.id && !this.isSheared() && !this.isBaby()) {
        if (!this.world.isStatic) {
            // CraftBukkit start
            PlayerShearEntityEvent event = new PlayerShearEntityEvent((org.bukkit.entity.Player) entityhuman.getBukkitEntity(), this.getBukkitEntity());
            this.world.getServer().getPluginManager().callEvent(event);

            if (event.isCancelled()) {
                return false;
            }
            // CraftBukkit end

            this.setSheared(true);
            int i = 1 + this.random.nextInt(3);

            for (int j = 0; j < i; ++j) {
                EntityItem entityitem = this.a(new ItemStack(Block.WOOL.id, 1, this.getColor()), 1.0F);

                entityitem.motY += (double) (this.random.nextFloat() * 0.05F);
                entityitem.motX += (double) ((this.random.nextFloat() - this.random.nextFloat()) * 0.1F);
                entityitem.motZ += (double) ((this.random.nextFloat() - this.random.nextFloat()) * 0.1F);
            }
        }

        itemstack.damage(1, entityhuman);
        this.makeSound("mob.sheep.shear", 1.0F, 1.0F);
    }

    return super.a_(entityhuman);
}
PartyEvents.java 文件源码 项目:DiscoSheep 阅读 30 收藏 0 点赞 0 评论 0
/**
 * Handler that prevents sheep shearing
 *
 * @param e The event
 */
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onPlayerShear(PlayerShearEntityEvent e) {
    if (e.getEntity() instanceof Sheep && isFromParty(e.getEntity())) {
        e.setCancelled(true);
    }
}
EnvironmentManager.java 文件源码 项目:ZentrelaRPG 阅读 30 收藏 0 点赞 0 评论 0
@EventHandler
public void onShear(PlayerShearEntityEvent event) {
    event.setCancelled(true);
}
EntityProtectionListener.java 文件源码 项目:FactionsXL 阅读 25 收藏 0 点赞 0 评论 0
@EventHandler
public void onPlayerShearEntity(PlayerShearEntityEvent event) {
    forbidIfInProtectedTerritory(event.getPlayer(), event.getEntity(), event, SHEAR);
}
EntityMushroomCow.java 文件源码 项目:CraftBukkit 阅读 21 收藏 0 点赞 0 评论 0
public boolean a(EntityHuman entityhuman) {
    ItemStack itemstack = entityhuman.inventory.getItemInHand();

    if (itemstack != null && itemstack.getItem() == Items.BOWL && this.getAge() >= 0) {
        if (itemstack.count == 1) {
            entityhuman.inventory.setItem(entityhuman.inventory.itemInHandIndex, new ItemStack(Items.MUSHROOM_SOUP));
            return true;
        }

        if (entityhuman.inventory.pickup(new ItemStack(Items.MUSHROOM_SOUP)) && !entityhuman.abilities.canInstantlyBuild) {
            entityhuman.inventory.splitStack(entityhuman.inventory.itemInHandIndex, 1);
            return true;
        }
    }

    if (itemstack != null && itemstack.getItem() == Items.SHEARS && this.getAge() >= 0) {
        // CraftBukkit start
        PlayerShearEntityEvent event = new PlayerShearEntityEvent((org.bukkit.entity.Player) entityhuman.getBukkitEntity(), this.getBukkitEntity());
        this.world.getServer().getPluginManager().callEvent(event);

        if (event.isCancelled()) {
            return false;
        }
        // CraftBukkit end

        this.die();
        this.world.addParticle("largeexplode", this.locX, this.locY + (double) (this.length / 2.0F), this.locZ, 0.0D, 0.0D, 0.0D);
        if (!this.world.isStatic) {
            EntityCow entitycow = new EntityCow(this.world);

            entitycow.setPositionRotation(this.locX, this.locY, this.locZ, this.yaw, this.pitch);
            entitycow.setHealth(this.getHealth());
            entitycow.aM = this.aM;
            this.world.addEntity(entitycow);

            for (int i = 0; i < 5; ++i) {
                this.world.addEntity(new EntityItem(this.world, this.locX, this.locY + (double) this.length, this.locZ, new ItemStack(Blocks.RED_MUSHROOM)));
            }

            itemstack.damage(1, entityhuman);
            this.makeSound("mob.sheep.shear", 1.0F, 1.0F);
        }

        return true;
    } else {
        return super.a(entityhuman);
    }
}
EntityMushroomCow.java 文件源码 项目:Almura-Server 阅读 20 收藏 0 点赞 0 评论 0
public boolean a(EntityHuman entityhuman) {
    ItemStack itemstack = entityhuman.inventory.getItemInHand();

    if (itemstack != null && itemstack.id == Item.BOWL.id && this.getAge() >= 0) {
        if (itemstack.count == 1) {
            entityhuman.inventory.setItem(entityhuman.inventory.itemInHandIndex, new ItemStack(Item.MUSHROOM_SOUP));
            return true;
        }

        if (entityhuman.inventory.pickup(new ItemStack(Item.MUSHROOM_SOUP)) && !entityhuman.abilities.canInstantlyBuild) {
            entityhuman.inventory.splitStack(entityhuman.inventory.itemInHandIndex, 1);
            return true;
        }
    }

    if (itemstack != null && itemstack.id == Item.SHEARS.id && this.getAge() >= 0) {
        // CraftBukkit start
        PlayerShearEntityEvent event = new PlayerShearEntityEvent((org.bukkit.entity.Player) entityhuman.getBukkitEntity(), this.getBukkitEntity());
        this.world.getServer().getPluginManager().callEvent(event);

        if (event.isCancelled()) {
            return false;
        }
        // CraftBukkit end

        this.die();
        this.world.addParticle("largeexplode", this.locX, this.locY + (double) (this.length / 2.0F), this.locZ, 0.0D, 0.0D, 0.0D);
        if (!this.world.isStatic) {
            EntityCow entitycow = new EntityCow(this.world);

            entitycow.setPositionRotation(this.locX, this.locY, this.locZ, this.yaw, this.pitch);
            entitycow.setHealth(this.getHealth());
            entitycow.aN = this.aN;
            this.world.addEntity(entitycow);

            for (int i = 0; i < 5; ++i) {
                this.world.addEntity(new EntityItem(this.world, this.locX, this.locY + (double) this.length, this.locZ, new ItemStack(Block.RED_MUSHROOM)));
            }
        }

        return true;
    } else {
        return super.a(entityhuman);
    }
}
EntityMushroomCow.java 文件源码 项目:Tweakkit-Server 阅读 23 收藏 0 点赞 0 评论 0
public boolean a(EntityHuman entityhuman) {
    ItemStack itemstack = entityhuman.inventory.getItemInHand();

    if (itemstack != null && itemstack.getItem() == Items.BOWL && this.getAge() >= 0) {
        if (itemstack.count == 1) {
            entityhuman.inventory.setItem(entityhuman.inventory.itemInHandIndex, new ItemStack(Items.MUSHROOM_SOUP));
            return true;
        }

        if (entityhuman.inventory.pickup(new ItemStack(Items.MUSHROOM_SOUP)) && !entityhuman.abilities.canInstantlyBuild) {
            entityhuman.inventory.splitStack(entityhuman.inventory.itemInHandIndex, 1);
            return true;
        }
    }

    if (itemstack != null && itemstack.getItem() == Items.SHEARS && this.getAge() >= 0) {
        // CraftBukkit start
        PlayerShearEntityEvent event = new PlayerShearEntityEvent((org.bukkit.entity.Player) entityhuman.getBukkitEntity(), this.getBukkitEntity());
        this.world.getServer().getPluginManager().callEvent(event);

        if (event.isCancelled()) {
            return false;
        }
        // CraftBukkit end

        this.die();
        this.world.addParticle("largeexplode", this.locX, this.locY + (double) (this.length / 2.0F), this.locZ, 0.0D, 0.0D, 0.0D);
        if (!this.world.isStatic) {
            EntityCow entitycow = new EntityCow(this.world);

            entitycow.setPositionRotation(this.locX, this.locY, this.locZ, this.yaw, this.pitch);
            entitycow.setHealth(this.getHealth());
            entitycow.aM = this.aM;
            this.world.addEntity(entitycow);

            for (int i = 0; i < 5; ++i) {
                this.world.addEntity(new EntityItem(this.world, this.locX, this.locY + (double) this.length, this.locZ, new ItemStack(Blocks.RED_MUSHROOM)));
            }

            itemstack.damage(1, entityhuman);
            this.makeSound("mob.sheep.shear", 1.0F, 1.0F);
        }

        return true;
    } else {
        return super.a(entityhuman);
    }
}
EntityMushroomCow.java 文件源码 项目:SpigotSource 阅读 20 收藏 0 点赞 0 评论 0
public boolean a(EntityHuman entityhuman, EnumHand enumhand, @Nullable ItemStack itemstack) {
    if (itemstack != null && itemstack.getItem() == Items.BOWL && this.getAge() >= 0 && !entityhuman.abilities.canInstantlyBuild) {
        if (--itemstack.count == 0) {
            entityhuman.a(enumhand, new ItemStack(Items.MUSHROOM_STEW));
        } else if (!entityhuman.inventory.pickup(new ItemStack(Items.MUSHROOM_STEW))) {
            entityhuman.drop(new ItemStack(Items.MUSHROOM_STEW), false);
        }

        return true;
    } else if (itemstack != null && itemstack.getItem() == Items.SHEARS && this.getAge() >= 0) {
        // CraftBukkit start
        PlayerShearEntityEvent event = new PlayerShearEntityEvent((org.bukkit.entity.Player) entityhuman.getBukkitEntity(), this.getBukkitEntity());
        this.world.getServer().getPluginManager().callEvent(event);

        if (event.isCancelled()) {
            return false;
        }
        // CraftBukkit end
        this.die();
        this.world.addParticle(EnumParticle.EXPLOSION_LARGE, this.locX, this.locY + (double) (this.length / 2.0F), this.locZ, 0.0D, 0.0D, 0.0D, new int[0]);
        if (!this.world.isClientSide) {
            EntityCow entitycow = new EntityCow(this.world);

            entitycow.setPositionRotation(this.locX, this.locY, this.locZ, this.yaw, this.pitch);
            entitycow.setHealth(this.getHealth());
            entitycow.aN = this.aN;
            if (this.hasCustomName()) {
                entitycow.setCustomName(this.getCustomName());
            }

            this.world.addEntity(entitycow);

            for (int i = 0; i < 5; ++i) {
                this.world.addEntity(new EntityItem(this.world, this.locX, this.locY + (double) this.length, this.locZ, new ItemStack(Blocks.RED_MUSHROOM)));
            }

            itemstack.damage(1, entityhuman);
            this.a(SoundEffects.dx, 1.0F, 1.0F);
        }

        return true;
    } else {
        return super.a(entityhuman, enumhand, itemstack);
    }
}
PlayerListener.java 文件源码 项目:AuthMeReloaded 阅读 24 收藏 0 点赞 0 评论 0
@EventHandler(ignoreCancelled = true, priority = EventPriority.LOWEST)
public void onPlayerShear(PlayerShearEntityEvent event) {
    if (listenerService.shouldCancelEvent(event)) {
        event.setCancelled(true);
    }
}


问题


面经


文章

微信
公众号

扫码关注公众号