本文整理汇总了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;
}
示例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);
}
}
示例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;
}
}
}
}
示例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;
}
}
示例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));
}
}
}
示例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;
}
示例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();
}
示例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();
}
}
示例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);
}