diff --git a/src/pocketmine/Player.php b/src/pocketmine/Player.php index 17a750799..45da7e6a3 100644 --- a/src/pocketmine/Player.php +++ b/src/pocketmine/Player.php @@ -32,8 +32,8 @@ use pocketmine\entity\Effect; use pocketmine\entity\EffectInstance; use pocketmine\entity\Entity; use pocketmine\entity\Human; -use pocketmine\entity\Item as DroppedItem; use pocketmine\entity\Living; +use pocketmine\entity\object\ItemEntity; use pocketmine\entity\projectile\Arrow; use pocketmine\entity\Skin; use pocketmine\event\entity\EntityDamageByBlockEvent; @@ -2461,7 +2461,7 @@ class Player extends Human implements CommandSender, ChunkLoader, IPlayer{ if(!$target->isAlive()){ return true; } - if($target instanceof DroppedItem or $target instanceof Arrow){ + if($target instanceof ItemEntity or $target instanceof Arrow){ $this->kick("Attempting to attack an invalid entity"); $this->server->getLogger()->warning($this->getServer()->getLanguage()->translateString("pocketmine.player.invalidEntity", [$this->getName()])); return false; diff --git a/src/pocketmine/entity/DataPropertyManager.php b/src/pocketmine/entity/DataPropertyManager.php index fbc3a6bbe..977a977a3 100644 --- a/src/pocketmine/entity/DataPropertyManager.php +++ b/src/pocketmine/entity/DataPropertyManager.php @@ -23,6 +23,7 @@ declare(strict_types=1); namespace pocketmine\entity; +use pocketmine\item\Item; use pocketmine\math\Vector3; class DataPropertyManager{ @@ -138,20 +139,20 @@ class DataPropertyManager{ /** * @param int $key * - * @return null|\pocketmine\item\Item + * @return null|Item */ - public function getItem(int $key) : ?\pocketmine\item\Item{ + public function getItem(int $key) : ?Item{ $value = $this->getPropertyValue($key, Entity::DATA_TYPE_SLOT); assert($value instanceof \pocketmine\item\Item or $value === null); return $value; } /** - * @param int $key - * @param \pocketmine\item\Item $value - * @param bool $force + * @param int $key + * @param Item $value + * @param bool $force */ - public function setItem(int $key, \pocketmine\item\Item $value, bool $force = false) : void{ + public function setItem(int $key, Item $value, bool $force = false) : void{ $this->setPropertyValue($key, Entity::DATA_TYPE_SLOT, $value, $force); } diff --git a/src/pocketmine/entity/Entity.php b/src/pocketmine/entity/Entity.php index 42a5bd362..9517a9689 100644 --- a/src/pocketmine/entity/Entity.php +++ b/src/pocketmine/entity/Entity.php @@ -30,6 +30,7 @@ use pocketmine\block\Block; use pocketmine\block\BlockFactory; use pocketmine\block\Water; use pocketmine\entity\object\ExperienceOrb; +use pocketmine\entity\object\ItemEntity; use pocketmine\entity\object\Painting; use pocketmine\entity\object\PaintingMotive; use pocketmine\entity\projectile\Arrow; @@ -237,7 +238,7 @@ abstract class Entity extends Location implements Metadatable, EntityIds{ Entity::registerEntity(ExperienceBottle::class, false, ['ThrownExpBottle', 'minecraft:xp_bottle']); Entity::registerEntity(ExperienceOrb::class, false, ['XPOrb', 'minecraft:xp_orb']); Entity::registerEntity(FallingSand::class, false, ['FallingSand', 'minecraft:falling_block']); - Entity::registerEntity(Item::class, false, ['Item', 'minecraft:item']); + Entity::registerEntity(ItemEntity::class, false, ['Item', 'minecraft:item']); Entity::registerEntity(Painting::class, false, ['Painting', 'minecraft:painting']); Entity::registerEntity(PrimedTNT::class, false, ['PrimedTnt', 'PrimedTNT', 'minecraft:tnt']); Entity::registerEntity(Snowball::class, false, ['Snowball', 'minecraft:snowball']); diff --git a/src/pocketmine/entity/Human.php b/src/pocketmine/entity/Human.php index 3a1114891..782532072 100644 --- a/src/pocketmine/entity/Human.php +++ b/src/pocketmine/entity/Human.php @@ -33,7 +33,7 @@ use pocketmine\inventory\InventoryHolder; use pocketmine\inventory\PlayerInventory; use pocketmine\item\Consumable; use pocketmine\item\FoodSource; -use pocketmine\item\Item as ItemItem; +use pocketmine\item\Item; use pocketmine\level\Level; use pocketmine\nbt\NBT; use pocketmine\nbt\tag\ByteArrayTag; @@ -517,9 +517,9 @@ class Human extends Creature implements ProjectileSource, InventoryHolder{ if($slot >= 0 and $slot < 9){ //Hotbar //Old hotbar saving stuff, ignore it }elseif($slot >= 100 and $slot < 104){ //Armor - $this->armorInventory->setItem($slot - 100, ItemItem::nbtDeserialize($item)); + $this->armorInventory->setItem($slot - 100, Item::nbtDeserialize($item)); }else{ - $this->inventory->setItem($slot - 9, ItemItem::nbtDeserialize($item)); + $this->inventory->setItem($slot - 9, Item::nbtDeserialize($item)); } } } @@ -528,7 +528,7 @@ class Human extends Creature implements ProjectileSource, InventoryHolder{ if($enderChestInventoryTag !== null){ /** @var CompoundTag $item */ foreach($enderChestInventoryTag as $i => $item){ - $this->enderChestInventory->setItem($item->getByte("Slot"), ItemItem::nbtDeserialize($item)); + $this->enderChestInventory->setItem($item->getByte("Slot"), Item::nbtDeserialize($item)); } } diff --git a/src/pocketmine/entity/Living.php b/src/pocketmine/entity/Living.php index fdb5546c7..54f93a873 100644 --- a/src/pocketmine/entity/Living.php +++ b/src/pocketmine/entity/Living.php @@ -35,7 +35,7 @@ use pocketmine\inventory\ArmorInventory; use pocketmine\item\Armor; use pocketmine\item\Consumable; use pocketmine\item\enchantment\Enchantment; -use pocketmine\item\Item as ItemItem; +use pocketmine\item\Item; use pocketmine\math\Vector3; use pocketmine\math\VoxelRayTrace; use pocketmine\nbt\tag\ByteTag; @@ -751,7 +751,7 @@ abstract class Living extends Entity implements Damageable{ } /** - * @return ItemItem[] + * @return Item[] */ public function getDrops() : array{ return []; diff --git a/src/pocketmine/entity/Squid.php b/src/pocketmine/entity/Squid.php index e1c99022e..69167ef78 100644 --- a/src/pocketmine/entity/Squid.php +++ b/src/pocketmine/entity/Squid.php @@ -25,7 +25,7 @@ namespace pocketmine\entity; use pocketmine\event\entity\EntityDamageByEntityEvent; use pocketmine\event\entity\EntityDamageEvent; -use pocketmine\item\Item as ItemItem; +use pocketmine\item\Item; use pocketmine\item\ItemFactory; use pocketmine\math\Vector3; use pocketmine\network\mcpe\protocol\EntityEventPacket; @@ -123,7 +123,7 @@ class Squid extends WaterAnimal{ public function getDrops() : array{ return [ - ItemFactory::get(ItemItem::DYE, 0, mt_rand(1, 3)) + ItemFactory::get(Item::DYE, 0, mt_rand(1, 3)) ]; } } diff --git a/src/pocketmine/entity/Zombie.php b/src/pocketmine/entity/Zombie.php index 715f912a0..8e01b4178 100644 --- a/src/pocketmine/entity/Zombie.php +++ b/src/pocketmine/entity/Zombie.php @@ -23,7 +23,7 @@ declare(strict_types=1); namespace pocketmine\entity; -use pocketmine\item\Item as ItemItem; +use pocketmine\item\Item; use pocketmine\item\ItemFactory; class Zombie extends Monster{ @@ -38,19 +38,19 @@ class Zombie extends Monster{ public function getDrops() : array{ $drops = [ - ItemFactory::get(ItemItem::ROTTEN_FLESH, 0, mt_rand(0, 2)) + ItemFactory::get(Item::ROTTEN_FLESH, 0, mt_rand(0, 2)) ]; if(mt_rand(0, 199) < 5){ switch(mt_rand(0, 2)){ case 0: - $drops[] = ItemFactory::get(ItemItem::IRON_INGOT, 0, 1); + $drops[] = ItemFactory::get(Item::IRON_INGOT, 0, 1); break; case 1: - $drops[] = ItemFactory::get(ItemItem::CARROT, 0, 1); + $drops[] = ItemFactory::get(Item::CARROT, 0, 1); break; case 2: - $drops[] = ItemFactory::get(ItemItem::POTATO, 0, 1); + $drops[] = ItemFactory::get(Item::POTATO, 0, 1); break; } } diff --git a/src/pocketmine/entity/Item.php b/src/pocketmine/entity/object/ItemEntity.php similarity index 93% rename from src/pocketmine/entity/Item.php rename to src/pocketmine/entity/object/ItemEntity.php index 7af64e7e6..fc9842494 100644 --- a/src/pocketmine/entity/Item.php +++ b/src/pocketmine/entity/object/ItemEntity.php @@ -21,18 +21,19 @@ declare(strict_types=1); -namespace pocketmine\entity; +namespace pocketmine\entity\object; +use pocketmine\entity\Entity; use pocketmine\event\entity\EntityDamageEvent; use pocketmine\event\entity\ItemDespawnEvent; use pocketmine\event\entity\ItemSpawnEvent; use pocketmine\event\inventory\InventoryPickupItemEvent; -use pocketmine\item\Item as ItemItem; +use pocketmine\item\Item; use pocketmine\network\mcpe\protocol\AddItemEntityPacket; use pocketmine\network\mcpe\protocol\TakeItemEntityPacket; use pocketmine\Player; -class Item extends Entity{ +class ItemEntity extends Entity{ public const NETWORK_ID = self::ITEM; /** @var string */ @@ -41,7 +42,7 @@ class Item extends Entity{ protected $thrower = ""; /** @var int */ protected $pickupDelay = 0; - /** @var ItemItem */ + /** @var Item */ protected $item; public $width = 0.25; @@ -70,7 +71,7 @@ class Item extends Entity{ return; } - $this->item = ItemItem::nbtDeserialize($itemTag); + $this->item = Item::nbtDeserialize($itemTag); $this->server->getPluginManager()->callEvent(new ItemSpawnEvent($this)); @@ -142,9 +143,9 @@ class Item extends Entity{ } /** - * @return ItemItem + * @return Item */ - public function getItem() : ItemItem{ + public function getItem() : Item{ return $this->item; } @@ -217,7 +218,7 @@ class Item extends Entity{ $item = $this->getItem(); $playerInventory = $player->getInventory(); - if(!($item instanceof ItemItem) or ($player->isSurvival() and !$playerInventory->canAddItem($item))){ + if(!($item instanceof Item) or ($player->isSurvival() and !$playerInventory->canAddItem($item))){ return; } @@ -227,10 +228,10 @@ class Item extends Entity{ } switch($item->getId()){ - case ItemItem::WOOD: + case Item::WOOD: $player->awardAchievement("mineWood"); break; - case ItemItem::DIAMOND: + case Item::DIAMOND: $player->awardAchievement("diamond"); break; } diff --git a/src/pocketmine/event/entity/EntityDespawnEvent.php b/src/pocketmine/event/entity/EntityDespawnEvent.php index 561295857..9c27296e9 100644 --- a/src/pocketmine/event/entity/EntityDespawnEvent.php +++ b/src/pocketmine/event/entity/EntityDespawnEvent.php @@ -26,7 +26,7 @@ namespace pocketmine\event\entity; use pocketmine\entity\Creature; use pocketmine\entity\Entity; use pocketmine\entity\Human; -use pocketmine\entity\Item; +use pocketmine\entity\object\ItemEntity; use pocketmine\entity\projectile\Projectile; use pocketmine\entity\Vehicle; @@ -86,7 +86,7 @@ class EntityDespawnEvent extends EntityEvent{ * @return bool */ public function isItem() : bool{ - return $this->entity instanceof Item; + return $this->entity instanceof ItemEntity; } } diff --git a/src/pocketmine/event/entity/EntitySpawnEvent.php b/src/pocketmine/event/entity/EntitySpawnEvent.php index d33a7fabd..f128f4348 100644 --- a/src/pocketmine/event/entity/EntitySpawnEvent.php +++ b/src/pocketmine/event/entity/EntitySpawnEvent.php @@ -26,7 +26,7 @@ namespace pocketmine\event\entity; use pocketmine\entity\Creature; use pocketmine\entity\Entity; use pocketmine\entity\Human; -use pocketmine\entity\Item; +use pocketmine\entity\object\ItemEntity; use pocketmine\entity\projectile\Projectile; use pocketmine\entity\Vehicle; use pocketmine\level\Position; @@ -94,7 +94,7 @@ class EntitySpawnEvent extends EntityEvent{ * @return bool */ public function isItem() : bool{ - return $this->entity instanceof Item; + return $this->entity instanceof ItemEntity; } } diff --git a/src/pocketmine/event/entity/ItemDespawnEvent.php b/src/pocketmine/event/entity/ItemDespawnEvent.php index 76b34a523..6d5dc4994 100644 --- a/src/pocketmine/event/entity/ItemDespawnEvent.php +++ b/src/pocketmine/event/entity/ItemDespawnEvent.php @@ -23,22 +23,22 @@ declare(strict_types=1); namespace pocketmine\event\entity; -use pocketmine\entity\Item; +use pocketmine\entity\object\ItemEntity; use pocketmine\event\Cancellable; class ItemDespawnEvent extends EntityEvent implements Cancellable{ public static $handlerList = null; /** - * @param Item $item + * @param ItemEntity $item */ - public function __construct(Item $item){ + public function __construct(ItemEntity $item){ $this->entity = $item; } /** - * @return Item + * @return ItemEntity */ public function getEntity(){ return $this->entity; diff --git a/src/pocketmine/event/entity/ItemSpawnEvent.php b/src/pocketmine/event/entity/ItemSpawnEvent.php index 20427c43d..326b0fc94 100644 --- a/src/pocketmine/event/entity/ItemSpawnEvent.php +++ b/src/pocketmine/event/entity/ItemSpawnEvent.php @@ -23,21 +23,21 @@ declare(strict_types=1); namespace pocketmine\event\entity; -use pocketmine\entity\Item; +use pocketmine\entity\object\ItemEntity; class ItemSpawnEvent extends EntityEvent{ public static $handlerList = null; /** - * @param Item $item + * @param ItemEntity $item */ - public function __construct(Item $item){ + public function __construct(ItemEntity $item){ $this->entity = $item; } /** - * @return Item + * @return ItemEntity */ public function getEntity(){ return $this->entity; diff --git a/src/pocketmine/event/inventory/InventoryPickupItemEvent.php b/src/pocketmine/event/inventory/InventoryPickupItemEvent.php index 19a5b0044..fef763a21 100644 --- a/src/pocketmine/event/inventory/InventoryPickupItemEvent.php +++ b/src/pocketmine/event/inventory/InventoryPickupItemEvent.php @@ -23,29 +23,29 @@ declare(strict_types=1); namespace pocketmine\event\inventory; -use pocketmine\entity\Item; +use pocketmine\entity\object\ItemEntity; use pocketmine\event\Cancellable; use pocketmine\inventory\Inventory; class InventoryPickupItemEvent extends InventoryEvent implements Cancellable{ public static $handlerList = null; - /** @var Item */ + /** @var ItemEntity */ private $item; /** - * @param Inventory $inventory - * @param Item $item + * @param Inventory $inventory + * @param ItemEntity $item */ - public function __construct(Inventory $inventory, Item $item){ + public function __construct(Inventory $inventory, ItemEntity $item){ $this->item = $item; parent::__construct($inventory); } /** - * @return Item + * @return ItemEntity */ - public function getItem() : Item{ + public function getItem() : ItemEntity{ return $this->item; } diff --git a/src/pocketmine/level/Level.php b/src/pocketmine/level/Level.php index 177c493ad..7e2183a31 100644 --- a/src/pocketmine/level/Level.php +++ b/src/pocketmine/level/Level.php @@ -29,8 +29,8 @@ namespace pocketmine\level; use pocketmine\block\Block; use pocketmine\block\BlockFactory; use pocketmine\entity\Entity; -use pocketmine\entity\Item as DroppedItem; use pocketmine\entity\object\ExperienceOrb; +use pocketmine\entity\object\ItemEntity; use pocketmine\event\block\BlockBreakEvent; use pocketmine\event\block\BlockPlaceEvent; use pocketmine\event\block\BlockUpdateEvent; @@ -1623,7 +1623,7 @@ class Level implements ChunkManager, Metadatable{ * @param Vector3 $motion * @param int $delay * - * @return DroppedItem|null + * @return ItemEntity|null */ public function dropItem(Vector3 $source, Item $item, Vector3 $motion = null, int $delay = 10){ $motion = $motion ?? new Vector3(lcg_value() * 0.2 - 0.1, 0.2, lcg_value() * 0.2 - 0.1); @@ -1637,7 +1637,7 @@ class Level implements ChunkManager, Metadatable{ $nbt->setTag($itemTag); $itemEntity = Entity::createEntity("Item", $this, $nbt); - if($itemEntity instanceof DroppedItem){ + if($itemEntity instanceof ItemEntity){ $itemEntity->spawnToAll(); return $itemEntity;