本文整理了Java中org.bukkit.inventory.ItemStack.isSimilar()
方法的一些代码示例,展示了ItemStack.isSimilar()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ItemStack.isSimilar()
方法的具体详情如下:
包路径:org.bukkit.inventory.ItemStack
类名称:ItemStack
方法名:isSimilar
[英]This method is the same as equals, but does not consider stack size (amount).
[中]此方法与等量相同,但不考虑堆栈大小(数量)。
代码示例来源:origin: Bukkit/Bukkit
@Override
@Utility
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (!(obj instanceof ItemStack)) {
return false;
}
ItemStack stack = (ItemStack) obj;
return getAmount() == stack.getAmount() && isSimilar(stack);
}
代码示例来源:origin: GlowstoneMC/Glowstone
private ItemStack combine(ItemStack slotItem, ItemStack cursor, int amount) {
if (InventoryUtil.isEmpty(slotItem)) {
ItemStack stack = cursor.clone();
stack.setAmount(amount);
return stack;
} else if (slotItem.isSimilar(cursor)) {
slotItem.setAmount(slotItem.getAmount() + amount);
return slotItem;
} else {
throw new IllegalArgumentException(
"Trying to combine dissimilar " + slotItem + " and " + cursor);
}
}
代码示例来源:origin: GlowstoneMC/Glowstone
private boolean compareItems(ItemStack a, ItemStack b, boolean ignoreMeta) {
if (ignoreMeta) {
return a.getTypeId() == b.getTypeId() && a.getDurability() == b.getDurability();
}
return a.isSimilar(b);
}
代码示例来源:origin: GlowstoneMC/Glowstone
if (slotItem.isSimilar(cursor)) {
int transfer = Math.min(cursor.getAmount(),
slotItem.getType().getMaxStackSize() - slotItem.getAmount());
if (cursor.isSimilar(slotItem)) {
if (slotItem.getAmount() + 1 <= slotItem.getType().getMaxStackSize()) {
return InventoryAction.PLACE_ONE;
代码示例来源:origin: GlowstoneMC/Glowstone
firstEmpty = i;
} else if (currentStack
.isSimilar(stack)) { // Non empty slot of similar items, try to fill stack
代码示例来源:origin: GlowstoneMC/Glowstone
.isSimilar(getItemStack())) {
ItemStack clone = getItemStack().clone();
代码示例来源:origin: GlowstoneMC/Glowstone
for (int dragSlot : slots) {
ItemStack oldItem = view.getItem(dragSlot);
if (InventoryUtil.isEmpty(oldItem) || cursor.isSimilar(oldItem)) {
Inventory dragInv = dragSlot < top.getSize() ? top : bottom;
int oldItemAmount = InventoryUtil.itemOrEmpty(oldItem).getAmount();
if (!InventoryUtil.isEmpty(slotItem) && slotItem.isSimilar(cursor)) {
if (message.getMode() == 0 && slotItem.isSimilar(cursor)) {
if (!InventoryUtil.isEmpty(slotItem)
&& cursorAmount + slotItem.getAmount() <= slotItem.getMaxStackSize()) {
SlotType type = (i < top.getSize() ? top : bottom)
.getSlotType(view.convertSlot(i));
if (InventoryUtil.isEmpty(item) || !cursor.isSimilar(item)
|| type == SlotType.RESULT) {
continue;
代码示例来源:origin: seeseemelk/MockBukkit
/**
* Asserts that the inventory contains at least one itemstack that is compatible
* with the given itemstack.
*
* @param item The itemstack to compare everything to.
*/
public void assertContainsAny(ItemStack item)
{
assertTrueForSome(itemstack -> item.isSimilar(itemstack));
}
代码示例来源:origin: TheBusyBiscuit/Slimefun4
/**
* Attempts to get the category with the given display item.
*
* @param item the display item of the category to get
* @return Category if found, or null
*
* @since 4.0
*/
public static Category getByItem(ItemStack item) {
for (Category c: list) {
if (c.getItem().isSimilar(item)) return c;
}
return null;
}
代码示例来源:origin: mcMMO-Dev/mcMMO
public AlchemyPotion getChild(ItemStack ingredient) {
if (!children.isEmpty()) {
for (Entry<ItemStack, String> child : children.entrySet()) {
if (ingredient.isSimilar(child.getKey())) {
return PotionConfig.getInstance().getPotion(child.getValue());
}
}
}
return null;
}
代码示例来源:origin: seeseemelk/MockBukkit
/**
* Get the number of times a certain item is in the inventory.
* @param item The item to check for.
* @return The number of times the item is present in this inventory.
*/
public int getNumberOfItems(ItemStack item)
{
int amount = 0;
for (ItemStack itemstack : items)
{
if (itemstack != null && item.isSimilar(itemstack))
{
amount += itemstack.getAmount();
}
}
return amount;
}
代码示例来源:origin: mcMMO-Dev/mcMMO
public static boolean isValidIngredient(Player player, ItemStack item) {
if (isEmpty(item)) {
return false;
}
for (ItemStack ingredient : getValidIngredients(player)) {
if (item.isSimilar(ingredient)) {
return true;
}
}
return false;
}
代码示例来源:origin: FunnyGuilds/FunnyGuilds
public static int getItemAmount(ItemStack item, Inventory inv) {
int amount = 0;
for (ItemStack is : inv.getContents()) {
if (item.isSimilar(is)) {
amount += is.getAmount();
}
}
return amount;
}
代码示例来源:origin: SpigotMC/Spigot-API
@Override
@Utility
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (!(obj instanceof ItemStack)) {
return false;
}
ItemStack stack = (ItemStack) obj;
return getAmount() == stack.getAmount() && isSimilar(stack);
}
代码示例来源:origin: PyvesB/AdvancedAchievements
/**
* Determines whether the used item is bone meal.
*
* @param itemStack
* @return true if the item is bone meal, false otherwise
*/
@SuppressWarnings("deprecation")
private boolean isBoneMeal(ItemStack itemStack) {
return serverVersion >= 13 ? itemStack.getType() == Material.BONE_MEAL
: itemStack.isSimilar(new ItemStack(Material.valueOf("INK_SACK"), 1, (short) 15));
}
代码示例来源:origin: mcMMO-Dev/mcMMO
@Override
public void run() {
Location location = brewingStand.getLocation();
ItemStack[] newInventory = Arrays.copyOfRange(brewingStand.getInventory().getContents(), 0, 4);
boolean validBrew = brewingStand.getFuelLevel() > 0 && AlchemyPotionBrewer.isValidBrew(player, newInventory);
if (Alchemy.brewingStandMap.containsKey(location)) {
if (oldInventory[Alchemy.INGREDIENT_SLOT] == null || newInventory[Alchemy.INGREDIENT_SLOT] == null || !oldInventory[Alchemy.INGREDIENT_SLOT].isSimilar(newInventory[Alchemy.INGREDIENT_SLOT]) || !validBrew) {
Alchemy.brewingStandMap.get(location).cancelBrew();
}
}
else if (validBrew) {
Alchemy.brewingStandMap.put(location, new AlchemyBrewTask(brewingStand, player));
}
}
}
代码示例来源:origin: ProjectKorra/ProjectKorra
@EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true)
public void onPlayerItemDamage(final PlayerItemDamageEvent event) {
if (TempArmor.hasTempArmor(event.getPlayer())) {
final TempArmor armor = TempArmor.getVisibleTempArmor(event.getPlayer());
for (final ItemStack i : armor.getNewArmor()) {
if (i != null && event.getItem().isSimilar(i)) {
event.setCancelled(true);
break;
}
}
}
}
代码示例来源:origin: NyaaCat/RPGItems-reloaded
private boolean removeItem(Inventory inventory, ItemStack item, int amount) {
for (int slot = 0; slot < inventory.getSize(); slot++) {
ItemStack tmp = inventory.getItem(slot);
if (tmp != null && tmp.getType() != Material.AIR && tmp.getAmount() >= amount && tmp.isSimilar(item)) {
if (tmp.getAmount() > amount) {
tmp.setAmount(tmp.getAmount() - amount);
inventory.setItem(slot, tmp);
return true;
} else {
inventory.setItem(slot, new ItemStack(Material.AIR));
return true;
}
}
}
return false;
}
代码示例来源:origin: jiongjionger/NeverLag
public GUIMaker fillWhite(ItemStack item) {
for (int i = 0; i < this.inv.getSize(); i++) {
if (this.inv.getItem(i) != null && this.inv.getItem(i).getType() != Material.AIR && !this.inv.getItem(i).isSimilar(item)) {
int left_slot = i - 1;
int right_slot = i + 1;
if (getRow(i) == getRow(left_slot) && left_slot >= 0) {
if (this.inv.getItem(left_slot) == null || this.inv.getItem(left_slot).getType() == Material.AIR) {
this.inv.setItem(left_slot, item);
}
}
if (getRow(i) == getRow(right_slot) && right_slot <= this.inv.getSize() - 1) {
if (this.inv.getItem(right_slot) == null || this.inv.getItem(right_slot).getType() == Material.AIR) {
this.inv.setItem(right_slot, item);
}
}
}
}
return this;
}
代码示例来源:origin: seeseemelk/MockBukkit
@Test
public void setContents_OneItemAndOneNull_SetAndRestCleared()
{
ItemStack filler = new ItemStack(Material.COBBLESTONE, 1);
for (int i = 1; i < inventory.getSize(); i++)
{
inventory.setItem(i, filler);
}
ItemStack item = new ItemStack(Material.DIRT, 32);
inventory.setContents(new ItemStack[] { item });
assertTrue(item.isSimilar(inventory.getItem(0)));
for (int i = 1; i < inventory.getSize(); i++)
{
ItemStack emptyItem = inventory.getItem(i);
assertNotNull(emptyItem);
assertEquals(Material.AIR, emptyItem.getType());
}
}
内容来源于网络,如有侵权,请联系作者删除!