下面列出了怎么用org.bukkit.block.BrewingStand的API类实例代码及写法,或者点击链接到github查看源代码。
@Override
public ItemStack extractItem(TPDirection extractDirection, int amount, ItemFilter itemFilter) {
if (!isInLoadedChunk()) {
return null;
}
if (isInvLocked(cachedBrewingStand)) {
return null;
}
if (extractDirection != TPDirection.DOWN && ((BrewingStand) block.getState()).getBrewingTime() == 0) {
ItemStack takeItem = null;
if (itemFilter.applyFilter(cachedInv.getItem(0)) > 0) {
takeItem = cachedInv.getItem(0);
cachedInv.setItem(0, null);
} else if (itemFilter.applyFilter(cachedInv.getItem(1)) > 0) {
takeItem = cachedInv.getItem(1);
cachedInv.setItem(1, null);
} else if (itemFilter.applyFilter(cachedInv.getItem(2)) > 0) {
takeItem = cachedInv.getItem(2);
cachedInv.setItem(2, null);
}
if (takeItem != null) {
return takeItem;
}
}
return null;
}
public TransportPipesContainer createContainerFromBlock(Block block) {
if (block.getState() instanceof Furnace) {
return new FurnaceContainer(block);
} else if (block.getState() instanceof BrewingStand) {
return new BrewingStandContainer(block);
} else if (block.getState() instanceof InventoryHolder) {
return new SimpleInventoryContainer(block);
}
return null;
}
@EventHandler(priority = EventPriority.HIGHEST)
public void onHopperEvent(InventoryMoveItemEvent event) {
Inventory inv = event.getDestination();
if(inv.getType().equals(InventoryType.BREWING) && GameManager.getGameManager().getConfiguration().getBanLevelTwoPotions() && inv.getHolder() instanceof BrewingStand){
Bukkit.getScheduler().runTaskLater(UhcCore.getPlugin(), new CheckBrewingStandAfterClick((BrewingStand) inv.getHolder(), null),1);
}
}
@EventHandler(ignoreCancelled = true)
public void onIngredientPut(InventoryClickEvent event) {
if (event.getInventory().getType() != InventoryType.BREWING)
return;
if (event.getRawSlot() == 3 || event.getClick().equals(ClickType.SHIFT_LEFT)) {
String playerID = PlayerConverter.getID((Player) event.getWhoClicked());
if (!containsPlayer(playerID))
return;
locations.put(((BrewingStand) event.getInventory().getHolder()).getLocation(), playerID);
}
}
@EventHandler(ignoreCancelled = true)
public void onPreBrew(InventoryClickEvent e) {
Inventory inventory = e.getInventory();
if (inventory.getType() == InventoryType.BREWING && e.getRawSlot() < inventory.getSize() && inventory.getHolder() instanceof BrewingStand) {
e.setCancelled(isUnallowed(SlimefunItem.getByItem(e.getCursor())));
}
}
private InventoryClickEvent mockBrewingEvent(ItemStack item) {
Player player = server.addPlayer();
Inventory inv = TestUtilities.mockInventory(InventoryType.BREWING);
Mockito.when(inv.getHolder()).thenReturn(Mockito.mock(BrewingStand.class));
Mockito.when(inv.getSize()).thenReturn(5);
InventoryView view = player.openInventory(inv);
view.setCursor(item);
InventoryClickEvent event = new InventoryClickEvent(view, SlotType.CONTAINER, 1, ClickType.LEFT, InventoryAction.PICKUP_ONE);
listener.onPreBrew(event);
return event;
}
@Override
public BrewingStand getHolder() {
return (BrewingStand) inventory.getOwner();
}
public BrewingStandContainer(Block block) {
super(block);
this.chunk = block.getChunk();
this.cachedBrewingStand = (BrewingStand) block.getState();
this.cachedInv = cachedBrewingStand.getInventory();
}
@Override
public void updateBlock() {
this.cachedBrewingStand = ((BrewingStand) block.getState());
this.cachedInv = cachedBrewingStand.getInventory();
}
private CheckBrewingStandAfterClick(BrewingStand stand, HumanEntity human) {
this.stand = stand;
this.human = human;
}
@Override
public BrewingStand getHolder() {
return (BrewingStand) inventory.getOwner();
}
@EventHandler
public void onInteraction(PlayerInteractEvent event) {
if (testObserver(event.getPlayer())) {
event.setCancelled(true);
if ((event.getAction().equals(Action.RIGHT_CLICK_AIR) || event.getAction().equals(Action.RIGHT_CLICK_BLOCK)) && (event.getPlayer().getInventory().getItemInMainHand() != null && event.getPlayer().getInventory().getItemInMainHand().getType().equals(Material.WRITTEN_BOOK))){
event.setUseInteractedBlock(Event.Result.DENY);
event.setUseItemInHand(Event.Result.ALLOW);
}
if (event.getClickedBlock() != null && !event.getPlayer().isSneaking() && event.getAction() == Action.RIGHT_CLICK_BLOCK) {
if (event.getClickedBlock().getType().equals(Material.CHEST) || event.getClickedBlock().getType().equals(Material.TRAPPED_CHEST)) {
Inventory chest = Bukkit.createInventory(null, ((Chest) event.getClickedBlock().getState()).getInventory().getSize());
for (int i = 0; i < ((Chest) event.getClickedBlock().getState()).getInventory().getSize(); i++) {
chest.setItem(i, ((Chest) event.getClickedBlock().getState()).getInventory().getItem(i));
}
event.getPlayer().openInventory(chest);
}
if (event.getClickedBlock().getType().equals(Material.FURNACE) || event.getClickedBlock().getType().equals(Material.BURNING_FURNACE)) {
Inventory furnace = Bukkit.createInventory(null, InventoryType.FURNACE);
for (int i = 0; i < ((Furnace) event.getClickedBlock().getState()).getInventory().getSize(); i++) {
furnace.setItem(i, ((Furnace) event.getClickedBlock().getState()).getInventory().getItem(i));
}
event.getPlayer().openInventory(furnace);
}
if (event.getClickedBlock().getType().equals(Material.DISPENSER)) {
Inventory dispenser = Bukkit.createInventory(null, InventoryType.DISPENSER);
for (int i = 0; i < ((Dispenser) event.getClickedBlock().getState()).getInventory().getSize(); i++) {
dispenser.setItem(i, ((Dispenser) event.getClickedBlock().getState()).getInventory().getItem(i));
}
event.getPlayer().openInventory(dispenser);
}
if (event.getClickedBlock().getType().equals(Material.DROPPER)) {
Inventory dropper = Bukkit.createInventory(null, InventoryType.DROPPER);
for (int i = 0; i < ((Dropper) event.getClickedBlock().getState()).getInventory().getSize(); i++) {
dropper.setItem(i, ((Dropper) event.getClickedBlock().getState()).getInventory().getItem(i));
}
event.getPlayer().openInventory(dropper);
}
if (event.getClickedBlock().getType().equals(Material.HOPPER)) {
Inventory hopper = Bukkit.createInventory(null, InventoryType.HOPPER);
for (int i = 0; i < ((Hopper) event.getClickedBlock().getState()).getInventory().getSize(); i++) {
hopper.setItem(i, ((Hopper) event.getClickedBlock().getState()).getInventory().getItem(i));
}
event.getPlayer().openInventory(hopper);
}
if (event.getClickedBlock().getType().equals(Material.BREWING_STAND)) {
Inventory brewingStand = Bukkit.createInventory(null, InventoryType.BREWING);
for (int i = 0; i < ((BrewingStand) event.getClickedBlock().getState()).getInventory().getSize(); i++) {
brewingStand.setItem(i, ((BrewingStand) event.getClickedBlock().getState()).getInventory().getItem(i));
}
event.getPlayer().openInventory(brewingStand);
}
if (event.getClickedBlock().getType().equals(Material.BEACON)) {
Inventory beacon = Bukkit.createInventory(null, InventoryType.BEACON);
for (int i = 0; i < ((Beacon) event.getClickedBlock().getState()).getInventory().getSize(); i++) {
beacon.setItem(i, ((Beacon) event.getClickedBlock().getState()).getInventory().getItem(i));
}
event.getPlayer().openInventory(beacon);
}
}
}
}
BrewingStand getHolder();