本文整理匯總了Java中org.bukkit.event.inventory.InventoryDragEvent.getOldCursor方法的典型用法代碼示例。如果您正苦於以下問題:Java InventoryDragEvent.getOldCursor方法的具體用法?Java InventoryDragEvent.getOldCursor怎麽用?Java InventoryDragEvent.getOldCursor使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類org.bukkit.event.inventory.InventoryDragEvent
的用法示例。
在下文中一共展示了InventoryDragEvent.getOldCursor方法的6個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。
示例1: equipWeaponEvent
import org.bukkit.event.inventory.InventoryDragEvent; //導入方法依賴的package包/類
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
public void equipWeaponEvent(InventoryDragEvent event) {
if (Result.DENY.equals(event.getResult())) return;
HumanEntity human = event.getWhoClicked();
Inventory inv = event.getInventory();
ItemStack prior = event.getOldCursor();
StandardGun priorGun = findGun(prior);
// Don't really care what sort of drag, if we have a gun in inv and this was a gun, deny.
if (priorGun != null && inv != null && !InventoryType.PLAYER.equals(inv.getType()) && priorGun.isLimitToOne() && priorGun.hasGun(human)) {
event.setResult(Result.DENY);
// yes this will prevent drag style of weapon in chest invs. Oh well.
}
}
示例2: equipWeaponEvent
import org.bukkit.event.inventory.InventoryDragEvent; //導入方法依賴的package包/類
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
public void equipWeaponEvent(InventoryDragEvent event) {
if (!enabled) return;
HumanEntity human = event.getWhoClicked();
boolean alreadyHasGun = hasGun(human);
Inventory inv = event.getInventory();
ItemStack prior = event.getOldCursor();
// Don't really care what sort of drag, if we have a gun in inv and this was a gun, deny.
if (alreadyHasGun && (inv != null && !InventoryType.PLAYER.equals(inv.getType()))
&& (prior != null && isGun(prior))) {
event.setResult(Result.DENY);
// yes this will prevent drag style of weapon in chest invs. Oh well.
}
}
示例3: onPlayerDragInventory
import org.bukkit.event.inventory.InventoryDragEvent; //導入方法依賴的package包/類
@EventHandler(ignoreCancelled = true)
public void onPlayerDragInventory(InventoryDragEvent event) {
// This is when you spread items evenly across slots by dragging
if(!(event.getWhoClicked() instanceof Player)) {
return;
}
Player player = (Player) event.getWhoClicked();
ItemStack transferred = event.getOldCursor().clone();
transferred.setAmount(0);
Inventory externalInventory = null;
for(Map.Entry<Integer, ItemStack> entry : event.getNewItems().entrySet()) {
Inventory inventory = getLocalInventory(event.getView(), entry.getKey());
if(inventory.getHolder() != player) {
// Add stacks to the total if they are dragged over an external inventory
externalInventory = inventory;
transferred.setAmount(transferred.getAmount() + entry.getValue().getAmount());
}
}
if(externalInventory != null) {
int initialQuantity = transferred.getAmount();
PlayerItemTransferEvent transferEvent = new PlayerItemTransferEvent(
event, ItemTransferEvent.Type.PLACE, player,
Optional.empty(),
Optional.of(new InventorySlot<>(externalInventory)),
transferred, null, initialQuantity,
event.getOldCursor()
);
this.callEvent(transferEvent);
if(initialQuantity != transferEvent.getQuantity()) {
// If the quantity changes, we have to cancel the entire drag,
// because bukkit does not let us modify the dragged stacks.
event.setCancelled(true);
}
}
}
示例4: onInventoryDrag
import org.bukkit.event.inventory.InventoryDragEvent; //導入方法依賴的package包/類
@EventHandler(ignoreCancelled = true)
public void onInventoryDrag(InventoryDragEvent event) {
Player player = (Player) event.getWhoClicked();
if (!InventoryManager.playerIsLoaded(player)) {
return;
}
for (Integer rawSlotId : event.getRawSlots()) {
ItemStack cursor = event.getOldCursor();
Inventory inventory = event.getInventory();
if (PetManager.isPetItem(cursor)) {
event.setCancelled(true);
return;
}
if (inventory.getType() == InventoryType.CRAFTING) {
if (InventoryManager.get(player).isOpened()) {
return;
}
// Shield slot is QUICKBAR and has rawId - 45 o.O
if (rawSlotId >= 1 && rawSlotId <= 8 || rawSlotId == 45) {
event.setCancelled(true);
return;
}
} else if (InventoryAPI.isRPGInventory(inventory)) {
if (rawSlotId < 54) {
event.setCancelled(true);
return;
}
}
}
}
示例5: playerDragInventoryEvent
import org.bukkit.event.inventory.InventoryDragEvent; //導入方法依賴的package包/類
@EventHandler
public void playerDragInventoryEvent(InventoryDragEvent e) {
ArmorType newArmorType = ArmorType.matchType(e.getOldCursor());
if (newArmorType == null)
return;
ArmorEquipEvent armorEquipEvent = new ArmorEquipEvent((Player) e.getWhoClicked(), EquipMethod.DRAG,
newArmorType, e.getOldCursor());
if (!e.getRawSlots().contains(newArmorType.getSlot()))
return;
Bukkit.getServer().getPluginManager().callEvent(armorEquipEvent);
if (armorEquipEvent.isCancelled()) {
e.setCancelled(true);
}
}
示例6: onDrag
import org.bukkit.event.inventory.InventoryDragEvent; //導入方法依賴的package包/類
@EventHandler (priority = EventPriority.HIGHEST)
public void onDrag(InventoryDragEvent e){
if(!isEnabled(e.getWhoClicked().getWorld())) return;
if(e.getOldCursor() == null || (e.getCursor() != null && e.getCursor().getType() != Material.ELYTRA)) return;
if(!e.getInventorySlots().contains(38)) return;
e.setCancelled(true);
}