mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-05-13 17:29:44 +00:00
Move responsibility of copying block-picked item NBT to Block instead of Player
This commit is contained in:
parent
c29523baf4
commit
066eadd687
@ -105,7 +105,6 @@ use pocketmine\permission\PermissionAttachment;
|
|||||||
use pocketmine\permission\PermissionAttachmentInfo;
|
use pocketmine\permission\PermissionAttachmentInfo;
|
||||||
use pocketmine\permission\PermissionManager;
|
use pocketmine\permission\PermissionManager;
|
||||||
use pocketmine\plugin\Plugin;
|
use pocketmine\plugin\Plugin;
|
||||||
use pocketmine\tile\Tile;
|
|
||||||
use pocketmine\timings\Timings;
|
use pocketmine\timings\Timings;
|
||||||
use pocketmine\utils\TextFormat;
|
use pocketmine\utils\TextFormat;
|
||||||
use pocketmine\utils\UUID;
|
use pocketmine\utils\UUID;
|
||||||
@ -1837,17 +1836,7 @@ class Player extends Human implements CommandSender, ChunkLoader, ChunkListener,
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
$item = $block->getPickedItem();
|
$item = $block->getPickedItem($addTileNBT);
|
||||||
if($addTileNBT){
|
|
||||||
$tile = $this->getWorld()->getTile($block);
|
|
||||||
if($tile instanceof Tile){
|
|
||||||
$nbt = $tile->getCleanedNBT();
|
|
||||||
if($nbt instanceof CompoundTag){
|
|
||||||
$item->setCustomBlockData($nbt);
|
|
||||||
$item->setLore(["+(DATA)"]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$ev = new PlayerBlockPickEvent($this, $block, $item);
|
$ev = new PlayerBlockPickEvent($this, $block, $item);
|
||||||
$ev->call();
|
$ev->call();
|
||||||
|
@ -42,7 +42,7 @@ class Beetroot extends Crops{
|
|||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getPickedItem() : Item{
|
public function getPickedItem(bool $addUserData = false) : Item{
|
||||||
return ItemFactory::get(Item::BEETROOT_SEEDS);
|
return ItemFactory::get(Item::BEETROOT_SEEDS);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -37,9 +37,11 @@ use pocketmine\math\RayTraceResult;
|
|||||||
use pocketmine\math\Vector3;
|
use pocketmine\math\Vector3;
|
||||||
use pocketmine\metadata\Metadatable;
|
use pocketmine\metadata\Metadatable;
|
||||||
use pocketmine\metadata\MetadataValue;
|
use pocketmine\metadata\MetadataValue;
|
||||||
|
use pocketmine\nbt\tag\CompoundTag;
|
||||||
use pocketmine\network\mcpe\protocol\types\RuntimeBlockMapping;
|
use pocketmine\network\mcpe\protocol\types\RuntimeBlockMapping;
|
||||||
use pocketmine\Player;
|
use pocketmine\Player;
|
||||||
use pocketmine\plugin\Plugin;
|
use pocketmine\plugin\Plugin;
|
||||||
|
use pocketmine\tile\Tile;
|
||||||
use pocketmine\tile\TileFactory;
|
use pocketmine\tile\TileFactory;
|
||||||
use pocketmine\world\Position;
|
use pocketmine\world\Position;
|
||||||
use pocketmine\world\World;
|
use pocketmine\world\World;
|
||||||
@ -500,10 +502,24 @@ class Block extends Position implements BlockLegacyIds, Metadatable{
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the item that players will equip when middle-clicking on this block.
|
* Returns the item that players will equip when middle-clicking on this block.
|
||||||
|
*
|
||||||
|
* @param bool $addUserData
|
||||||
|
*
|
||||||
* @return Item
|
* @return Item
|
||||||
*/
|
*/
|
||||||
public function getPickedItem() : Item{
|
public function getPickedItem(bool $addUserData = false) : Item{
|
||||||
return $this->asItem();
|
$item = $this->asItem();
|
||||||
|
if($addUserData){
|
||||||
|
$tile = $this->world->getTile($this);
|
||||||
|
if($tile instanceof Tile){
|
||||||
|
$nbt = $tile->getCleanedNBT();
|
||||||
|
if($nbt instanceof CompoundTag){
|
||||||
|
$item->setCustomBlockData($nbt);
|
||||||
|
$item->setLore(["+(DATA)"]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $item;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -35,7 +35,7 @@ class Carrot extends Crops{
|
|||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getPickedItem() : Item{
|
public function getPickedItem(bool $addUserData = false) : Item{
|
||||||
return ItemFactory::get(Item::CARROT);
|
return ItemFactory::get(Item::CARROT);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -118,7 +118,7 @@ class CocoaBlock extends Transparent{
|
|||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getPickedItem() : Item{
|
public function getPickedItem(bool $addUserData = false) : Item{
|
||||||
return ItemFactory::get(Item::DYE, 3); //cocoa beans
|
return ItemFactory::get(Item::DYE, 3); //cocoa beans
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -105,7 +105,7 @@ class Farmland extends Transparent{
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getPickedItem() : Item{
|
public function getPickedItem(bool $addUserData = false) : Item{
|
||||||
return ItemFactory::get(Item::DIRT);
|
return ItemFactory::get(Item::DIRT);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -150,8 +150,8 @@ class FlowerPot extends Flowable{
|
|||||||
return $items;
|
return $items;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getPickedItem() : Item{
|
public function getPickedItem(bool $addUserData = false) : Item{
|
||||||
return $this->plant !== null ? $this->plant->asItem() : parent::getPickedItem();
|
return $this->plant !== null ? $this->plant->asItem() : parent::getPickedItem($addUserData);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function isAffectedBySilkTouch() : bool{
|
public function isAffectedBySilkTouch() : bool{
|
||||||
|
@ -197,8 +197,8 @@ class ItemFrame extends Flowable{
|
|||||||
return $drops;
|
return $drops;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getPickedItem() : Item{
|
public function getPickedItem(bool $addUserData = false) : Item{
|
||||||
return $this->framedItem !== null ? clone $this->framedItem : parent::getPickedItem();
|
return $this->framedItem !== null ? clone $this->framedItem : parent::getPickedItem($addUserData);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function isAffectedBySilkTouch() : bool{
|
public function isAffectedBySilkTouch() : bool{
|
||||||
|
@ -35,7 +35,7 @@ class Potato extends Crops{
|
|||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getPickedItem() : Item{
|
public function getPickedItem(bool $addUserData = false) : Item{
|
||||||
return ItemFactory::get(Item::POTATO);
|
return ItemFactory::get(Item::POTATO);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -42,7 +42,7 @@ class Wheat extends Crops{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getPickedItem() : Item{
|
public function getPickedItem(bool $addUserData = false) : Item{
|
||||||
return ItemFactory::get(Item::WHEAT_SEEDS);
|
return ItemFactory::get(Item::WHEAT_SEEDS);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user