类org.bukkit.block.Container源码实例Demo

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

源代码1 项目: StackMob-3   文件: DispenserShear.java
@EventHandler
public void onDispenserShear(BlockShearEntityEvent event) {
    if(!StackTools.hasSizeMoreThanOne(event.getEntity())) {
        return;
    }
    if(event.getEntity() instanceof Sheep) {
        Sheep sheep = (Sheep) event.getEntity();
        if(sm.getLogic().doSheepShearAll(sheep, event.getTool())){
            ItemStack is = ItemTools.damageItem(event.getTool(), StackTools.getSize(event.getEntity()));
            sm.getServer().getScheduler().runTask(sm, () -> {
                Container dispenser = (Container) event.getBlock().getState();
                int itemId = dispenser.getInventory().first(event.getTool());
                dispenser.getInventory().setItem(itemId, is);
            });
            return;
        }
        sm.getLogic().doSheepShearSingle(sheep);
    } else {
        throw new UnsupportedOperationException("This is not implemented!");
    }
}
 
源代码2 项目: Modern-LWC   文件: DropTransferModule.java
@Override
public void onProtectionInteract(LWCProtectionInteractEvent event) {
    LWC lwc = event.getLWC();
    Protection protection = event.getProtection();
    Set<String> actions = event.getActions();
    boolean canAccess = event.canAccess();

    Player bPlayer = event.getPlayer();
    LWCPlayer player = lwc.wrapPlayer(bPlayer);

    if (!actions.contains("dropTransferSelect")) {
        return;
    }

    if (!canAccess) {
        lwc.sendLocale(player, "protection.interact.dropxfer.noaccess");
    } else {
        if (event.getEvent().getClickedBlock() instanceof Container) {
            lwc.sendLocale(player, "protection.interact.dropxfer.notchest");
            player.removeAllActions();
            event.setResult(Result.CANCEL);

            return;
        }

        Mode mode = new Mode();
        mode.setName("dropTransfer");
        mode.setData(protection.getId() + "");
        mode.setPlayer(bPlayer);
        player.enableMode(mode);
        mode = new Mode();
        mode.setName("+dropTransfer");
        mode.setPlayer(bPlayer);
        player.enableMode(mode);

        lwc.sendLocale(player, "protection.interact.dropxfer.finalize");
    }

    player.removeAllActions(); // ignore the persist mode
}
 
源代码3 项目: DungeonsXL   文件: ContainerAdapter.java
public static boolean isValidContainer(Block block) {
    if (Version.isAtLeast(Version.MC1_12_1)) {
        return block.getState() instanceof Container;
    } else {
        return block.getState() instanceof Chest;
    }
}
 
源代码4 项目: DungeonsXL   文件: ContainerAdapter.java
public static boolean isValidContainer(Inventory inventory) {
    if (Version.isAtLeast(Version.MC1_12_1)) {
        return inventory.getHolder() instanceof Container;
    } else {
        return inventory.getHolder() instanceof Chest;
    }
}
 
源代码5 项目: DungeonsXL   文件: ContainerAdapter.java
public static Block getHolderBlock(InventoryHolder holder) {
    if (Version.isAtLeast(Version.MC1_12_1)) {
        return ((Container) holder).getBlock();
    } else {
        return ((Chest) holder).getBlock();
    }
}
 
源代码6 项目: DungeonsXL   文件: ContainerAdapter.java
public static Inventory getBlockInventory(Block block) {
    if (Version.isAtLeast(Version.MC1_12_1)) {
        return ((Container) block.getState()).getInventory();
    } else {
        return ((Chest) block.getState()).getInventory();
    }
}
 
 类所在包
 类方法
 同包方法