类org.bukkit.event.player.PlayerShearEntityEvent源码实例Demo

下面列出了怎么用org.bukkit.event.player.PlayerShearEntityEvent的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: BetonQuest   文件: ShearObjective.java
@EventHandler(ignoreCancelled = true)
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();
        // complete quest or notify
        if (data.getAmount() <= 0)
            completeObjective(playerID);
        else if (notify && data.getAmount() % notifyInterval == 0)
            Config.sendNotify(playerID, "sheep_to_shear", new String[]{String.valueOf(data.getAmount())},
                    "sheep_to_shear,info");
    }
}
 
源代码2 项目: Quests   文件: ShearingTaskType.java
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onShear(PlayerShearEntityEvent event) {
    if (!(event.getEntity() instanceof Sheep)) {
        return;
    }

    Player player = event.getPlayer();

    QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(player.getUniqueId(), true);
    QuestProgressFile questProgressFile = qPlayer.getQuestProgressFile();

    for (Quest quest : super.getRegisteredQuests()) {
        if (questProgressFile.hasStartedQuest(quest)) {
            QuestProgress questProgress = questProgressFile.getQuestProgress(quest);

            for (Task task : quest.getTasksOfType(super.getType())) {
                TaskProgress taskProgress = questProgress.getTaskProgress(task.getId());

                if (taskProgress.isCompleted()) {
                    continue;
                }

                int sheepNeeded = (int) task.getConfigValue("amount");

                int progressSheared;
                if (taskProgress.getProgress() == null) {
                    progressSheared = 0;
                } else {
                    progressSheared = (int) taskProgress.getProgress();
                }

                taskProgress.setProgress(progressSheared + 1);

                if (((int) taskProgress.getProgress()) >= sheepNeeded) {
                    taskProgress.setCompleted(true);
                }
            }
        }
    }
}
 
源代码3 项目: AdditionsAPI   文件: CustomItemShearEntity.java
@EventHandler(priority = EventPriority.MONITOR)
public void onCustomItemShearEntity(CustomItemShearEntityEvent customEvent) {
	if (customEvent.isCancelled())
		return;
	CustomItem cItem = customEvent.getCustomItem();
	PlayerShearEntityEvent event = customEvent.getPlayerShearEntityEvent();
	Player player = event.getPlayer();
	if (cItem.getDurabilityMechanics() instanceof ShearDurability) {
		ItemStack item = customEvent.getCustomItemStack().getItemStack();
		ShearDurability mechanics = (ShearDurability) cItem.getDurabilityMechanics();
		Bukkit.getServer().getPluginManager()
				.callEvent(new PlayerCustomItemDamageEvent(player, item, mechanics.getShearSheep(), cItem));
	}
}
 
源代码4 项目: AdditionsAPI   文件: PlayerShearEntity.java
@EventHandler(priority = EventPriority.MONITOR)
public void onPlayerShearEntity(PlayerShearEntityEvent event) {
	PlayerInventory inv = event.getPlayer().getInventory();
	ItemStack item = inv.getItemInMainHand();
	if (ItemType.getItemType(item) != ItemType.SHEARS) {
		item = inv.getItemInOffHand();
		if (ItemType.getItemType(item) != ItemType.SHEARS)
			return;
	}
	if (AdditionsAPI.isCustomItem(item)) {
		CustomItemShearEntityEvent customEvent = new CustomItemShearEntityEvent(event, new CustomItemStack(item));
		Bukkit.getServer().getPluginManager().callEvent(customEvent);
	}
}
 
源代码5 项目: uSkyBlock   文件: GriefEvents.java
@EventHandler
public void onShearEvent(PlayerShearEntityEvent event) {
    Player player = event.getPlayer();
    if (!shearingEnabled || !plugin.getWorldManager().isSkyAssociatedWorld(player.getWorld())) {
        return; // Not our concern
    }
    if (player.hasPermission("usb.mod.bypassprotection")) {
        return;
    }
    if (!plugin.playerIsOnIsland(player)) {
        event.setCancelled(true);
    }
}
 
源代码6 项目: askyblock   文件: IslandGuard.java
@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;
    }
}
 
源代码7 项目: AuthMeReloaded   文件: PlayerListenerTest.java
@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)
        .check(listener::onPlayerHeldItem, PlayerItemHeldEvent.class);
}
 
源代码8 项目: StackMob-3   文件: ShearEvent.java
@EventHandler
public void onSheepShear(PlayerShearEntityEvent event) {
    if(!(StackTools.hasSizeMoreThanOne(event.getEntity()))){
        return;
    }
    if(event.isCancelled()){
        return;
    }

    Entity oldEntity = event.getEntity();
    int stackSize = StackTools.getSize(oldEntity);
    if(oldEntity instanceof Sheep){
        Sheep sheep = (Sheep) oldEntity;
        ItemStack item = event.getPlayer().getInventory().getItemInMainHand();
        if(sm.getLogic().doSheepShearAll(sheep, item)){
            ItemTools.damageItemInHand(event.getPlayer(), stackSize);
        }else{
            sm.getLogic().doSheepShearSingle(sheep);
        }
    }

    // TODO: Make method in stacklogic class for this as well.
    if(oldEntity instanceof MushroomCow){
        if(sm.getCustomConfig().getBoolean("multiply.mooshroom-mushrooms") && ItemTools.hasEnoughDurability(event.getPlayer(), stackSize)){
            // Duplicate mushrooms
            ItemStack mushrooms = new ItemStack(Material.RED_MUSHROOM,1);
            sm.getDropTools().dropDrops(mushrooms, (stackSize - 1) * 5, oldEntity.getLocation());

            // Spawn separate normal cow for the rest of the stack.
            Entity cow = oldEntity.getWorld().spawnEntity(oldEntity.getLocation(), EntityType.COW);
            StackTools.setSize(cow,stackSize - 1);
            // Set the required damage as if done separately
            ItemTools.damageItemInHand(event.getPlayer(), stackSize);
            StackTools.removeSize(oldEntity);
        }else if (sm.getCustomConfig().getBoolean("divide-on.mooshroom-shear")){
            Entity mushroomCow = oldEntity.getWorld().spawnEntity(oldEntity.getLocation(), EntityType.MUSHROOM_COW);
            StackTools.setSize(mushroomCow,stackSize - 1);
            StackTools.makeSingle(oldEntity);
        }
    }
}
 
源代码9 项目: AdditionsAPI   文件: CustomItemShearEntityEvent.java
public CustomItemShearEntityEvent(PlayerShearEntityEvent event, CustomItemStack cStack) {
	super(cStack);
	this.playerShearEntityEvent = event;
}
 
源代码10 项目: AdditionsAPI   文件: CustomItemShearEntityEvent.java
public PlayerShearEntityEvent getPlayerShearEntityEvent() {
	return playerShearEntityEvent;
}
 
源代码11 项目: EliteMobs   文件: SheepHandler.java
@EventHandler
public void onShear(PlayerShearEntityEvent event) {

    if (event.getEntity() instanceof Sheep && EntityTracker.isSuperMob(event.getEntity())) {

        Sheep sheep = (Sheep) event.getEntity();

        for (int i = 0; i < 50; i++) {

            sheep.getWorld().dropItem(sheep.getLocation(), woolStackRandomizer(sheep)).setVelocity(ItemDropVelocity.ItemDropVelocity());

        }

    }

}
 
源代码12 项目: EliteMobs   文件: MushroomCowHandler.java
@EventHandler
public void onShear(PlayerShearEntityEvent event) {

    if (event.getEntity() instanceof MushroomCow && EntityTracker.isSuperMob(event.getEntity())) {

        MushroomCow mushroomCow = (MushroomCow) event.getEntity();

        ItemStack mushroomStack = new ItemStack(RED_MUSHROOM, 5);

        for (int i = 0; i < 50; i++) {

            mushroomCow.getWorld().dropItem(mushroomCow.getLocation(), mushroomStack).setVelocity(ItemDropVelocity.ItemDropVelocity());

        }

    }

}
 
源代码13 项目: Statz   文件: TimesShornListener.java
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onShear(final PlayerShearEntityEvent event) {

	final PlayerStat stat = PlayerStat.TIMES_SHORN;

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

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

	PlayerStatSpecification specification = new TimesShornSpecification(player.getUniqueId(), 1,
			player.getWorld().getName());

	// Update value to new stat.
	plugin.getDataManager().setPlayerInfo(player.getUniqueId(), stat, specification.constructQuery());

}
 
源代码14 项目: AuthMeReloaded   文件: PlayerListener.java
@EventHandler(ignoreCancelled = true, priority = EventPriority.LOWEST)
public void onPlayerShear(PlayerShearEntityEvent event) {
    if (listenerService.shouldCancelEvent(event)) {
        event.setCancelled(true);
    }
}
 
 类所在包
 类方法
 同包方法