类org.bukkit.event.entity.FoodLevelChangeEvent源码实例Demo

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

源代码1 项目: ProjectAres   文件: HungerMatchModule.java
@EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true)
public void handleHungerChange(final FoodLevelChangeEvent event) {
    if(event.getEntity() instanceof Player) {
        int oldFoodLevel = ((Player) event.getEntity()).getFoodLevel();
        event.setFoodLevel(oldFoodLevel);
    }
}
 
源代码2 项目: StaffPlus   文件: FoodLevelChange.java
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onPlace(FoodLevelChangeEvent event)
{
	Entity entity = event.getEntity();
	
	if(!(entity instanceof Player))
	{
		return;
	}
	
	if(options.modeHungerLoss || !modeCoordinator.isInMode(((Player) entity).getUniqueId()))
	{
		return;
	}
	
	event.setCancelled(true);
}
 
源代码3 项目: BedwarsRel   文件: PlayerListener.java
@EventHandler(priority = EventPriority.HIGH)
public void onHunger(FoodLevelChangeEvent flce) {
  if (!(flce.getEntity() instanceof Player)) {
    return;
  }

  Player player = (Player) flce.getEntity();
  Game game = BedwarsRel.getInstance().getGameManager().getGameOfPlayer(player);

  if (game == null) {
    return;
  }

  if (game.getState() == GameState.RUNNING) {
    if (game.isSpectator(player) || game.getCycle().isEndGameRunning()) {
      flce.setCancelled(true);
      return;
    }

    flce.setCancelled(false);
    return;
  }

  flce.setCancelled(true);
}
 
源代码4 项目: Slimefun4   文件: CoolerListener.java
@EventHandler
public void onHungerLoss(FoodLevelChangeEvent e) {
    if (cooler == null || cooler.isDisabled()) {
        return;
    }

    Player p = (Player) e.getEntity();

    if (e.getFoodLevel() < p.getFoodLevel()) {
        for (ItemStack item : p.getInventory().getContents()) {
            if (cooler.isItem(item)) {
                if (Slimefun.hasUnlocked(p, cooler, true)) {
                    takeJuiceFromCooler(p, item);
                }
                else {
                    return;
                }
            }
        }
    }
}
 
源代码5 项目: Slimefun4   文件: WindStaff.java
@Override
public ItemUseHandler getItemHandler() {
    return e -> {
        Player p = e.getPlayer();

        if (p.getFoodLevel() >= 2) {
            if (p.getInventory().getItemInMainHand().getType() != Material.SHEARS && p.getGameMode() != GameMode.CREATIVE) {
                FoodLevelChangeEvent event = new FoodLevelChangeEvent(p, p.getFoodLevel() - 2);
                Bukkit.getPluginManager().callEvent(event);
                p.setFoodLevel(event.getFoodLevel());
            }

            p.setVelocity(p.getEyeLocation().getDirection().multiply(4));
            p.getWorld().playSound(p.getLocation(), Sound.ENTITY_TNT_PRIMED, 1, 1);
            p.getWorld().playEffect(p.getLocation(), Effect.SMOKE, 1);
            p.setFallDistance(0F);
        }
        else {
            SlimefunPlugin.getLocalization().sendMessage(p, "messages.hungry", true);
        }
    };
}
 
源代码6 项目: askyblock   文件: PlayerEvents.java
/**
 * Prevents changing of hunger while having a special permission and being on your island
 * @param e - event
 */
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
public void onHungerChange(final FoodLevelChangeEvent e) {
    if (DEBUG) {
        plugin.getLogger().info(e.getEventName() + " food level = " + ((Player)e.getEntity()).getFoodLevel() + " new food level = " + e.getFoodLevel());

    }
    // Allow food increases
    if (e.getFoodLevel() - ((Player)e.getEntity()).getFoodLevel() > 0) {
        return;
    }
    if (e.getEntity().hasPermission(Settings.PERMPREFIX + "nohunger")) {
        if(plugin.getGrid().playerIsOnIsland((Player) e.getEntity())) {
            e.setCancelled(true);
        }
    }
}
 
源代码7 项目: GriefDefender   文件: PlayerEventHandler.java
@EventHandler(priority = EventPriority.LOWEST)
public void onPlayerFoodLevelChange(FoodLevelChangeEvent event) {
    final Player player = event.getEntity() instanceof Player ? (Player) event.getEntity() : null;
    if (player == null) {
        return;
    }

    GDCauseStackManager.getInstance().pushCause(player);
    final GDPlayerData playerData = GriefDefenderPlugin.getInstance().dataStore.getOrCreatePlayerData(player.getWorld(), player.getUniqueId());
    final GDClaim claim = GriefDefenderPlugin.getInstance().dataStore.getClaimAtPlayer(playerData, player.getLocation());
    final Boolean denyHunger = GDPermissionManager.getInstance().getInternalOptionValue(TypeToken.of(Boolean.class), playerData.getSubject(), Options.PLAYER_DENY_HUNGER, claim);
    if (denyHunger != null && denyHunger) {
        event.setCancelled(true);
    }
}
 
源代码8 项目: PGM   文件: HungerMatchModule.java
@EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true)
public void handleHungerChange(final FoodLevelChangeEvent event) {
  if (event.getEntity() instanceof Player) {
    int oldFoodLevel = ((Player) event.getEntity()).getFoodLevel();
    event.setFoodLevel(oldFoodLevel);
  }
}
 
源代码9 项目: Skript   文件: ExprFoodLevel.java
@Override
protected Float[] get(final Event e, final Player[] source) {
	return get(source, new Getter<Float, Player>() {
		@Override
		public Float get(final Player p) {
			if (getTime() >= 0 && e instanceof FoodLevelChangeEvent && p.equals(((FoodLevelChangeEvent) e).getEntity()) && !Delay.isDelayed(e)) {
				return 0.5f * ((FoodLevelChangeEvent) e).getFoodLevel();
			} else {
				return 0.5f * p.getFoodLevel();
			}
		}
	});
}
 
源代码10 项目: AnnihilationPro   文件: Areas.java
@EventHandler(ignoreCancelled = true,priority = EventPriority.LOW)
public void checkFood(FoodLevelChangeEvent event)
{
    Area a = getArea(new Loc(event.getEntity().getLocation(),false));
    if(a != null && !a.getAllowHunger())
    {
        event.setFoodLevel(20);
        //event.setCancelled(true);
    }
}
 
源代码11 项目: DungeonsXL   文件: DPlayerListener.java
@EventHandler
public void onFoodLevelChange(FoodLevelChangeEvent event) {
    GameWorld gameWorld = plugin.getGameWorld(event.getEntity().getWorld());
    if (gameWorld != null) {
        if (!gameWorld.isPlaying() || !gameWorld.getDungeon().getRules().getState(GameRule.FOOD_LEVEL)) {
            event.setCancelled(true);
        }
    }
}
 
源代码12 项目: uSkyBlock   文件: PlayerEvents.java
@EventHandler(priority = EventPriority.NORMAL)
public void onPlayerFoodChange(final FoodLevelChangeEvent event) {
    if (event.getEntity() instanceof Player && plugin.getWorldManager().isSkyWorld(event.getEntity().getWorld())) {
        Player hungerman = (Player) event.getEntity();
        float randomNum = RANDOM.nextFloat();
        if (plugin.getWorldManager().isSkyWorld(hungerman.getWorld())
                && hungerman.getFoodLevel() > event.getFoodLevel()
                && plugin.playerIsOnIsland(hungerman)) {
            Perk perk = plugin.getPerkLogic().getPerk(hungerman);
            if (randomNum <= perk.getHungerReduction()) {
                event.setCancelled(true);
            }
        }
    }
}
 
源代码13 项目: Slimefun4   文件: StormStaff.java
private void useItem(Player p, ItemStack item, Location loc) {
    loc.getWorld().strikeLightning(loc);

    if (p.getInventory().getItemInMainHand().getType() == Material.SHEARS) {
        return;
    }

    if (p.getGameMode() != GameMode.CREATIVE) {
        FoodLevelChangeEvent event = new FoodLevelChangeEvent(p, p.getFoodLevel() - 4);
        Bukkit.getPluginManager().callEvent(event);

        if (!event.isCancelled()) {
            p.setFoodLevel(event.getFoodLevel());
        }
    }

    ItemMeta meta = item.getItemMeta();
    int usesLeft = meta.getPersistentDataContainer().getOrDefault(usageKey, PersistentDataType.INTEGER, MAX_USES);

    if (usesLeft == 1) {
        p.playSound(p.getLocation(), Sound.ENTITY_ITEM_BREAK, 1, 1);
        item.setAmount(0);
    }
    else {
        usesLeft--;
        meta.getPersistentDataContainer().set(usageKey, PersistentDataType.INTEGER, usesLeft);

        List<String> lore = meta.getLore();
        lore.set(4, ChatColors.color("&e" + usesLeft + ' ' + (usesLeft > 1 ? "Uses" : "Use") + " &7left"));
        meta.setLore(lore);

        item.setItemMeta(meta);
    }
}
 
源代码14 项目: Slimefun4   文件: TestCoolerListener.java
@Test
public void testCoolerUsage() throws InterruptedException {
    Player player = server.addPlayer();
    PlayerProfile profile = TestUtilities.awaitProfile(player);
    PlayerBackpack backpack = profile.createBackpack(cooler.getSize());
    backpack.getInventory().setItem(0, juice.getItem().clone());

    ItemStack personalCooler = cooler.getItem().clone();
    new BackpackListener().setBackpackId(player, personalCooler, 1, backpack.getId());
    player.getInventory().setItem(7, personalCooler);

    FoodLevelChangeEvent event = new FoodLevelChangeEvent(player, 16);
    listener.onHungerLoss(event);
    Assertions.assertTrue(player.hasPotionEffect(PotionEffectType.HEALTH_BOOST));
}
 
源代码15 项目: HubBasics   文件: KeepFood.java
@EventHandler
public void onFoodChange(FoodLevelChangeEvent event) {
    String world = event.getEntity().getWorld().getName().toLowerCase();
    if (this.foodLevelMap.containsKey(world)) {
        int food = this.foodLevelMap.get(world);
        if (food > 0 && food <= 20)
            event.setFoodLevel(food);
    }
}
 
源代码16 项目: HeavySpleef   文件: FlagSpectate.java
@EventHandler
public void onFoodLevelChange(FoodLevelChangeEvent event) {
	HumanEntity entity = event.getEntity();
	if (!(entity instanceof Player)) {
		return;
	}
	
	SpleefPlayer player = getHeavySpleef().getSpleefPlayer(entity);
	if (!isSpectating(player)) {
		return;
	}
	
	event.setCancelled(true);
}
 
源代码17 项目: AuthMeReloaded   文件: EntityListenerTest.java
@Test
public void shouldHandleSimpleEvents() {
    withServiceMock(listenerService)
        .check(listener::onFoodLevelChange, FoodLevelChangeEvent.class)
        .check(listener::onShoot, EntityShootBowEvent.class)
        .check(listener::onEntityInteract, EntityInteractEvent.class)
        .check(listener::onLowestEntityInteract, EntityInteractEvent.class);
}
 
源代码18 项目: PGM   文件: ViewInventoryMatchModule.java
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void updateMonitoredHunger(final FoodLevelChangeEvent event) {
  this.scheduleCheck((Player) event.getEntity());
}
 
源代码19 项目: ProjectAres   文件: ViewInventoryMatchModule.java
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void updateMonitoredHunger(final FoodLevelChangeEvent event) {
    this.scheduleCheck((Player) event.getEntity());
}
 
源代码20 项目: ProjectAres   文件: EnvironmentControlListener.java
@EventHandler(priority = EventPriority.NORMAL)
public void noHunger(final FoodLevelChangeEvent event) {
    event.setCancelled(true);
}
 
源代码21 项目: VoxelGamesLibv2   文件: NoHungerLossFeature.java
@GameEvent
public void onHungerDepletion(@Nonnull FoodLevelChangeEvent event) {
    event.setCancelled(true);
}
 
源代码22 项目: Skript   文件: ExprFoodLevel.java
@Override
public boolean setTime(final int time) {
	return super.setTime(time, FoodLevelChangeEvent.class, getExpr());
}
 
源代码23 项目: ZombieEscape   文件: ServerListener.java
@EventHandler
public void onStarve(FoodLevelChangeEvent event) {
    event.setCancelled(true);
}
 
源代码24 项目: CardinalPGM   文件: ObserverModule.java
@EventHandler
public void onViewingFoodLevelChange(FoodLevelChangeEvent event) {
    refreshView(event.getEntity().getUniqueId());
}
 
源代码25 项目: CardinalPGM   文件: Hunger.java
@EventHandler
public void onHungerDepletion(FoodLevelChangeEvent event) {
    if (!hungerEnabled) {
        event.setCancelled(true);
    }
}
 
源代码26 项目: AuthMeReloaded   文件: EntityListener.java
@EventHandler(ignoreCancelled = true, priority = EventPriority.LOWEST)
public void onFoodLevelChange(FoodLevelChangeEvent event) {
    if (listenerService.shouldCancelEvent(event)) {
        event.setCancelled(true);
    }
}
 
 类所在包
 同包方法