mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-28 23:38:25 +01:00
Deprecate ItemStack#setType
This commit is contained in:
parent
1c53b54fd9
commit
4092b60fa0
1 changed files with 28 additions and 0 deletions
|
@ -143,8 +143,18 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
|
||||||
* {@link Material#isItem()} returns false.</b>
|
* {@link Material#isItem()} returns false.</b>
|
||||||
*
|
*
|
||||||
* @param type New type to set the items in this stack to
|
* @param type New type to set the items in this stack to
|
||||||
|
* @deprecated <b>Setting the material type of ItemStacks is no longer supported.</b>
|
||||||
|
* <p>
|
||||||
|
* This method is deprecated due to potential illegal behavior that may occur
|
||||||
|
* during the context of which this ItemStack is being used, allowing for certain item validation to be bypassed.
|
||||||
|
* It is recommended to instead create a new ItemStack object with the desired
|
||||||
|
* Material type, and if possible, set it in the appropriate context.
|
||||||
|
*
|
||||||
|
* Using this method in ItemStacks passed in events will result in undefined behavior.
|
||||||
|
* @see ItemStack#withType(Material)
|
||||||
*/
|
*/
|
||||||
@Utility
|
@Utility
|
||||||
|
@Deprecated // Paper
|
||||||
public void setType(@NotNull Material type) {
|
public void setType(@NotNull Material type) {
|
||||||
Preconditions.checkArgument(type != null, "Material cannot be null");
|
Preconditions.checkArgument(type != null, "Material cannot be null");
|
||||||
this.type = type;
|
this.type = type;
|
||||||
|
@ -157,6 +167,24 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
|
||||||
this.data = null;
|
this.data = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// Paper start
|
||||||
|
/**
|
||||||
|
* Creates a new ItemStack with the specified Material type, where the item count and item meta is preserved.
|
||||||
|
*
|
||||||
|
* @param type The Material type of the new ItemStack.
|
||||||
|
* @return A new ItemStack instance with the specified Material type.
|
||||||
|
*/
|
||||||
|
@NotNull
|
||||||
|
@org.jetbrains.annotations.Contract(value = "_ -> new", pure = true)
|
||||||
|
public ItemStack withType(@NotNull Material type) {
|
||||||
|
ItemStack itemStack = new ItemStack(type, this.amount);
|
||||||
|
if (this.hasItemMeta()) {
|
||||||
|
itemStack.setItemMeta(this.getItemMeta());
|
||||||
|
}
|
||||||
|
|
||||||
|
return itemStack;
|
||||||
|
}
|
||||||
|
// Paper end
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the amount of items in this stack
|
* Gets the amount of items in this stack
|
||||||
|
|
Loading…
Reference in a new issue