类org.bukkit.event.inventory.FurnaceBurnEvent源码实例Demo

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

源代码1 项目: Skript   文件: ExprFurnaceSlot.java
@SuppressWarnings({"unchecked", "null"})
@Override
public boolean init(final Expression<?>[] exprs, final int matchedPattern, final Kleenean isDelayed, final ParseResult parseResult) {
	isEvent = matchedPattern == 0;
	slot = parseResult.mark;
	if (isEvent && slot == RESULT && !ScriptLoader.isCurrentEvent(FurnaceSmeltEvent.class)) {
		Skript.error("Cannot use 'result slot' outside a fuel smelt event.");
		return false;
	} else if (isEvent && slot == FUEL && !ScriptLoader.isCurrentEvent(FurnaceBurnEvent.class)) {
		Skript.error("Cannot use 'fuel slot' outside a fuel burn event.");
		return false;
	}
	if (!isEvent)
		setExpr((Expression<Block>) exprs[0]);
	return true;
}
 
源代码2 项目: Skript   文件: ExprFurnaceSlot.java
@Override
@Nullable
public ItemStack getItem() {
	switch (slot) {
		case RESULT:
			if (e instanceof FurnaceSmeltEvent)
				return getTime() > -1 ? ((FurnaceSmeltEvent) e).getResult().clone() : super.getItem();
			else
				return super.getItem();
		case FUEL:
			if (e instanceof FurnaceBurnEvent)
				return getTime() > -1 ? ((FurnaceBurnEvent) e).getFuel().clone() : super.getItem();
			 else
				return pastItem();
		case ORE:
			if (e instanceof FurnaceSmeltEvent)
				return pastItem();
			else
				return super.getItem();
		default:
			return null;
	}
}
 
源代码3 项目: UhcCore   文件: FastSmeltingListener.java
@EventHandler
public void onFurnaceBurn(FurnaceBurnEvent e){
    Block block = e.getBlock();

    Bukkit.getScheduler().runTaskLater(UhcCore.getPlugin(), new Runnable() {
        @Override
        public void run() {
            // If the furnace is broken stop thread.
            if (block.getType() == Material.AIR){
                return;
            }

            Furnace furnace = (Furnace) block.getState();

            // If furnace almost stopped burning stop thread. A new FurnaceBurnEvent will be called.
            if (furnace.getBurnTime() <= 10) {
                return;
            }

            // If no item is cooking don't speed up cooking time but show down thread while waiting for the burning to stop.
            if (furnace.getCookTime() <= 0){
                Bukkit.getScheduler().runTaskLater(UhcCore.getPlugin(), this, 5);
                return;
            }

            // Speed up cooking time by 10 ticks, this happens every 2 ticks (5x the default speed).
            short newCookTime = (short) (furnace.getCookTime() + speed);

            // If new cook time is greater than the max cook time of item set to 199.
            if (newCookTime >= 200){
                newCookTime = 199;
            }

            furnace.setCookTime(newCookTime);
            furnace.update();
            Bukkit.getScheduler().runTaskLater(UhcCore.getPlugin(), this, 2);
        }
    }, 1);
}
 
源代码4 项目: AdditionsAPI   文件: FurnaceBurn.java
@EventHandler(priority = EventPriority.LOWEST)
public void onFurnaceBurn(FurnaceBurnEvent event) {
	if (event.isCancelled())
		return;
	ItemStack fuel = event.getFuel();
	if (!AdditionsAPI.isCustomItem(fuel))
		return;
	CustomItemStack cStack = new CustomItemStack(fuel);
	Bukkit.getPluginManager().callEvent(new CustomItemFurnaceBurnEvent(event, cStack));
}
 
源代码5 项目: Skript   文件: ExprBurnCookTime.java
@Override
public boolean init(Expression<?>[] exprs, int matchedPattern, Kleenean isDelayed, SkriptParser.ParseResult parseResult) {
	cookTime = parseResult.mark == 1;
	isEvent = matchedPattern == 0;
	if (isEvent && !ScriptLoader.isCurrentEvent(FurnaceBurnEvent.class)) {
		Skript.error("Cannot use 'burning time' outside a fuel burn event.");
		return false;
	}
	if (!isEvent)
		setExpr((Expression<? extends Block>) exprs[0]);
	return true;
}
 
源代码6 项目: Slimefun4   文件: EnhancedFurnaceListener.java
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onFuelBurn(FurnaceBurnEvent e) {
    SlimefunItem furnace = BlockStorage.check(e.getBlock());

    if (furnace instanceof EnhancedFurnace && ((EnhancedFurnace) furnace).getFuelEfficiency() > 0) {
        int burnTime = e.getBurnTime();
        int newBurnTime = ((EnhancedFurnace) furnace).getFuelEfficiency() * burnTime;
        e.setBurnTime(Math.min(newBurnTime, Short.MAX_VALUE));
    }
}
 
源代码7 项目: CardinalPGM   文件: WorldFreeze.java
@EventHandler
public void onFurnaceBurn(FurnaceBurnEvent event) {
    if (!match.isRunning()) {
        event.setCancelled(true);
        event.setBurning(true);
    }
}
 
源代码8 项目: AdditionsAPI   文件: CustomItemFurnaceBurnEvent.java
public CustomItemFurnaceBurnEvent(FurnaceBurnEvent event, CustomItemStack cStack) {
	super(cStack);
	this.setFurnaceBurnEvent(event);
}
 
源代码9 项目: AdditionsAPI   文件: CustomItemFurnaceBurnEvent.java
/**
 * @return the event
 */
public FurnaceBurnEvent getFurnaceBurnEvent() {
	return event;
}
 
源代码10 项目: Skript   文件: ExprFurnaceSlot.java
@SuppressWarnings("unchecked")
@Override
public boolean setTime(final int time) {
	return super.setTime(time, getExpr(), FurnaceSmeltEvent.class, FurnaceBurnEvent.class);
}
 
源代码11 项目: AdditionsAPI   文件: CustomItemFurnaceBurnEvent.java
/**
 * @param event
 *            the event to set
 */
public void setFurnaceBurnEvent(FurnaceBurnEvent event) {
	this.event = event;
}
 
 类所在包
 类方法
 同包方法