當前位置: 首頁>>代碼示例>>Java>>正文


Java InventoryType.WORKBENCH屬性代碼示例

本文整理匯總了Java中org.bukkit.event.inventory.InventoryType.WORKBENCH屬性的典型用法代碼示例。如果您正苦於以下問題:Java InventoryType.WORKBENCH屬性的具體用法?Java InventoryType.WORKBENCH怎麽用?Java InventoryType.WORKBENCH使用的例子?那麽, 這裏精選的屬性代碼示例或許可以為您提供幫助。您也可以進一步了解該屬性所在org.bukkit.event.inventory.InventoryType的用法示例。


在下文中一共展示了InventoryType.WORKBENCH屬性的9個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: rowType

public static boolean rowType(Integer row, Integer slot, Inventory inventory) {
	if (slot != null && row != null) {
		Integer mod = 9;
		if (inventory != null) {
			if (inventory.getType() == InventoryType.DISPENSER ||inventory.getType() == InventoryType.WORKBENCH || inventory.getType() == InventoryType.DROPPER) {
				mod = 3;
			} else if (inventory.getType() == InventoryType.CHEST || inventory.getType() == InventoryType.ENDER_CHEST || inventory.getType() == InventoryType.PLAYER){
				mod = 9;
			} else {
				mod = inventory.getSize();
			}
		}
		Integer calculate = row * mod;
		return slot >= calculate - mod && slot < calculate;
	}
	return false;
}
 
開發者ID:WheezyGold7931,項目名稱:skLib,代碼行數:17,代碼來源:ExprClickedRow.java

示例2: onPacketSending

@Override
public void onPacketSending(PacketEvent event) {
    Player player = event.getPlayer();
    //noinspection ConstantConditions
    if (event.isCancelled() || !InventoryManager.playerIsLoaded(player)
            || isNotNeededHere(player)) {
        return;
    }

    WrapperPlayServerWindowItems packet = new WrapperPlayServerWindowItems(event.getPacket());
    if (player.getOpenInventory().getType() == InventoryType.WORKBENCH) {
        List<ItemStack> contents = packet.getSlotData();

        List<CraftExtension> extensions = CraftManager.getExtensions(player);
        for (CraftExtension extension : extensions) {
            for (int slot : extension.getSlots()) {
                contents.set(slot, extension.getCapItem());
            }
        }

        packet.setSlotData(contents);
    }
}
 
開發者ID:EndlessCodeGroup,項目名稱:RPGInventory,代碼行數:23,代碼來源:CraftListener.java

示例3: onInventoryClick

@EventHandler(ignoreCancelled = true, priority = EventPriority.HIGH)
public void onInventoryClick(InventoryClickEvent event) {
    final Player player = (Player) event.getWhoClicked();
    //noinspection ConstantConditions
    if (!InventoryManager.playerIsLoaded(player)
            || event.getInventory().getType() != InventoryType.WORKBENCH
            || isNotNeededHere(player)) {
        return;
    }

    List<CraftExtension> extensions = CraftManager.getExtensions(player);
    for (CraftExtension extension : extensions) {
        for (int slot : extension.getSlots()) {
            if (slot == event.getRawSlot()) {
                event.setCancelled(true);
                PlayerUtils.updateInventory(player);
                return;
            }
        }
    }
}
 
開發者ID:EndlessCodeGroup,項目名稱:RPGInventory,代碼行數:21,代碼來源:CraftListener.java

示例4: getType

public InventoryType getType() {
    // Thanks to Droppers extending Dispensers, order is important.
    if (inventory instanceof net.minecraft.inventory.InventoryCrafting) {
        return inventory.getSizeInventory() >= 9 ? InventoryType.WORKBENCH : InventoryType.CRAFTING;
    } else if (inventory instanceof net.minecraft.entity.player.InventoryPlayer) {
        return InventoryType.PLAYER;
    } else if (inventory instanceof net.minecraft.tileentity.TileEntityDropper) {
        return InventoryType.DROPPER;
    } else if (inventory instanceof net.minecraft.tileentity.TileEntityDispenser) {
        return InventoryType.DISPENSER;
    } else if (inventory instanceof net.minecraft.tileentity.TileEntityFurnace) {
        return InventoryType.FURNACE;
    } else if (inventory instanceof net.minecraft.inventory.ContainerEnchantTableInventory) {
        return InventoryType.ENCHANTING;
    } else if (inventory instanceof net.minecraft.tileentity.TileEntityBrewingStand) {
        return InventoryType.BREWING;
    } else if (inventory instanceof CraftInventoryCustom.MinecraftInventory) {
        return ((CraftInventoryCustom.MinecraftInventory) inventory).getType();
    } else if (inventory instanceof net.minecraft.inventory.InventoryEnderChest) {
        return InventoryType.ENDER_CHEST;
    } else if (inventory instanceof net.minecraft.inventory.InventoryMerchant) {
        return InventoryType.MERCHANT;
    } else if (inventory instanceof net.minecraft.tileentity.TileEntityBeacon) {
        return InventoryType.BEACON;
    } else if (inventory instanceof net.minecraft.inventory.ContainerRepairInventory) {
        return InventoryType.ANVIL;
    } else if (inventory instanceof net.minecraft.tileentity.IHopper) {
        return InventoryType.HOPPER;
    } else {
        return InventoryType.CHEST;
    }
}
 
開發者ID:UraniumMC,項目名稱:Uranium,代碼行數:32,代碼來源:CraftInventory.java

示例5: onInventoryClose

@EventHandler
public void onInventoryClose(InventoryCloseEvent e)
{
	if (!(e.getPlayer() instanceof Player))
		return;
	final Player p = (Player) e.getPlayer();

	if (!p.hasMetadata("shared_workbench"))
		return;
	if (e.getInventory().getType() == InventoryType.WORKBENCH)
	{
		// Workaround to get the accessed WorkBench
		final Block workbench = p.getTargetBlock((Set<Material>) null, 8);

		if (!workbench.hasMetadata("shared_players") || workbench.getType() != Material.WORKBENCH)
		{
			if (p.getOpenInventory().getTopInventory() != null)
				p.getOpenInventory().getTopInventory().clear();
			p.removeMetadata("shared_workbench", Survival.instance);
			
			return;
		}

		@SuppressWarnings("unchecked")
		List<UUID> list = (workbench.getMetadata("shared_players").get(0).value() instanceof List<?>) ? (List<UUID>)workbench.getMetadata("shared_players").get(0).value() : new ArrayList<UUID>();
		
		list.remove(p.getUniqueId());
		
		if (list.isEmpty())
			workbench.removeMetadata("shared_players", Survival.instance);
		else
		{
			e.getInventory().clear();
			workbench.setMetadata("shared_players", new FixedMetadataValue(Survival.instance, list));
		}
	}
}
 
開發者ID:FattyMieo,項目名稱:SurvivalPlus,代碼行數:37,代碼來源:WorkbenchShare.java

示例6: get

@Override
@Nullable
protected Number[] get(Event e) {
	InventoryType container = ((InventoryClickEvent)e).getClickedInventory().getType();
	if (container != InventoryType.CHEST || container != InventoryType.DISPENSER || container != InventoryType.DROPPER || container != InventoryType.WORKBENCH || container != InventoryType.ENDER_CHEST || container != InventoryType.PLAYER) {
		for (int i = 1; i < ((InventoryClickEvent)e).getClickedInventory().getSize() + 1; i++) {
			if (rowType(i, ((InventoryClickEvent)e).getSlot(), ((InventoryClickEvent)e).getInventory())) {
				return new Number[]{i};
			}
		}
	}
	return null;
}
 
開發者ID:WheezyGold7931,項目名稱:skLib,代碼行數:13,代碼來源:ExprClickedRow.java

示例7: onInventoryOpen

@EventHandler(priority = EventPriority.LOW)
public void onInventoryOpen(InventoryOpenEvent event) {
    final Player player = (Player) event.getPlayer();
    if (!InventoryManager.playerIsLoaded(player)
            || event.getInventory().getType() != InventoryType.WORKBENCH
            || isNotNeededHere(player)) {
        return;
    }

    //noinspection deprecation
    player.updateInventory();
}
 
開發者ID:EndlessCodeGroup,項目名稱:RPGInventory,代碼行數:12,代碼來源:CraftListener.java

示例8: onWorkbenchClosed

@EventHandler(priority = EventPriority.MONITOR)
public void onWorkbenchClosed(InventoryCloseEvent event) {
    Player player = (Player) event.getPlayer();
    if (!InventoryManager.playerIsLoaded(player)) {
        return;
    }

    if (event.getInventory().getType() == InventoryType.WORKBENCH) {
        //noinspection ConstantConditions
        InventoryManager.get(player).onWorkbenchClosed();
    }
}
 
開發者ID:EndlessCodeGroup,項目名稱:RPGInventory,代碼行數:12,代碼來源:CraftListener.java

示例9: onBreakWorkbench

@EventHandler(priority = EventPriority.HIGHEST)
public void onBreakWorkbench(BlockBreakEvent e)
{
	if(e.isCancelled()) return;
	Block workbench = e.getBlock();

	if (!workbench.hasMetadata("shared_players") || workbench.getType() != Material.WORKBENCH)
		return;
	
	@SuppressWarnings("unchecked")
	List<UUID> list = (workbench.getMetadata("shared_players").get(0).value() instanceof List<?>) ? (List<UUID>)workbench.getMetadata("shared_players").get(0).value() : new ArrayList<UUID>();
	
	Iterator<UUID> iterator = list.iterator();
	
	Inventory sharedInventory = Bukkit.createInventory(null, InventoryType.WORKBENCH);
	
	while (iterator.hasNext())
	{
		UUID next = iterator.next();
		
		iterator.remove();
		
		final Player idPlayer = Bukkit.getPlayer(next);
		
		if (idPlayer != null)
		{
			idPlayer.removeMetadata("shared_inv", Survival.instance);
			
			if(idPlayer.isOnline())
			{
				final Inventory open = idPlayer.getOpenInventory().getTopInventory();
				
				if (open != null && open.getType() == InventoryType.WORKBENCH)
				{
					sharedInventory.setContents(open.getContents());
					open.clear();
					idPlayer.closeInventory();
				}
			}
		}
	}
	
	for(int i = 1; i < sharedInventory.getSize(); i++)
	{
		ItemStack item = sharedInventory.getItem(i);
		if(item != null)
			workbench.getWorld().dropItem(workbench.getLocation(), item);
	}
	
	workbench.removeMetadata("shared_players", Survival.instance);
}
 
開發者ID:FattyMieo,項目名稱:SurvivalPlus,代碼行數:51,代碼來源:WorkbenchShare.java


注:本文中的org.bukkit.event.inventory.InventoryType.WORKBENCH屬性示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。