
Changed assignment of pickup delays in such a way that they may not be larger than the value actually stored inside the NBT format that is Short.MAX_VALUE. Did not change method signature in order not to produce any shortening cast warnings in existing code. All values larger than 32767 are generally used to indicate that an item should never be picked up. Shortening this to 32767 will actually cause the pickup delay to never decrease, thus resulting in non-pickupable item stacks.
49 lines
1.2 KiB
Java
49 lines
1.2 KiB
Java
package org.bukkit.craftbukkit.entity;
|
|
|
|
import net.minecraft.server.Entity;
|
|
import net.minecraft.server.EntityItem;
|
|
|
|
import org.bukkit.entity.EntityType;
|
|
import org.bukkit.entity.Item;
|
|
import org.bukkit.inventory.ItemStack;
|
|
import org.bukkit.craftbukkit.inventory.CraftItemStack;
|
|
import org.bukkit.craftbukkit.CraftServer;
|
|
|
|
public class CraftItem extends CraftEntity implements Item {
|
|
private final EntityItem item;
|
|
|
|
public CraftItem(CraftServer server, Entity entity, EntityItem item) {
|
|
super(server, entity);
|
|
this.item = item;
|
|
}
|
|
|
|
public CraftItem(CraftServer server, EntityItem entity) {
|
|
this(server, entity, entity);
|
|
}
|
|
|
|
public ItemStack getItemStack() {
|
|
return CraftItemStack.asCraftMirror(item.getItemStack());
|
|
}
|
|
|
|
public void setItemStack(ItemStack stack) {
|
|
item.setItemStack(CraftItemStack.asNMSCopy(stack));
|
|
}
|
|
|
|
public int getPickupDelay() {
|
|
return item.pickupDelay;
|
|
}
|
|
|
|
public void setPickupDelay(int delay) {
|
|
item.pickupDelay = Math.min(delay, Short.MAX_VALUE);
|
|
}
|
|
|
|
@Override
|
|
public String toString() {
|
|
return "CraftItem";
|
|
}
|
|
|
|
public EntityType getType() {
|
|
return EntityType.DROPPED_ITEM;
|
|
}
|
|
}
|