Call BlockBreakEvent when destroying ItemFrame. Close #827
This commit is contained in:
parent
cbee52d8a8
commit
fc35b6d6b3
1 changed files with 13 additions and 8 deletions
|
|
@ -39,6 +39,7 @@ use pocketmine\entity\Minecart;
|
|||
use pocketmine\entity\Projectile;
|
||||
use pocketmine\entity\ThrownExpBottle;
|
||||
use pocketmine\entity\ThrownPotion;
|
||||
use pocketmine\event\block\BlockBreakEvent;
|
||||
use pocketmine\event\block\ItemFrameDropItemEvent;
|
||||
use pocketmine\event\block\SignChangeEvent;
|
||||
use pocketmine\event\entity\EntityDamageByBlockEvent;
|
||||
|
|
@ -2468,16 +2469,20 @@ class Player extends Human implements CommandSender, InventoryHolder, ChunkLoade
|
|||
case ProtocolInfo::ITEM_FRAME_DROP_ITEM_PACKET:
|
||||
$tile = $this->level->getTile($this->temporalVector->setComponents($packet->x, $packet->y, $packet->z));
|
||||
if($tile instanceof ItemFrame){
|
||||
$item = $tile->getItem();
|
||||
$this->server->getPluginManager()->callEvent($ev = new ItemFrameDropItemEvent($this->level->getBlock($tile), $tile, $item));
|
||||
$block = $this->level->getBlock($tile);
|
||||
$this->server->getPluginManager()->callEvent($ev = new BlockBreakEvent($this, $block, $this->getInventory()->getItemInHand(), true));
|
||||
if(!$ev->isCancelled()){
|
||||
if($item->getId() !== Item::AIR){
|
||||
if((mt_rand(0, 10) / 10) < $tile->getItemDropChance()){
|
||||
$this->level->dropItem($tile, $item);
|
||||
$item = $tile->getItem();
|
||||
$this->server->getPluginManager()->callEvent($ev = new ItemFrameDropItemEvent($block, $tile, $item));
|
||||
if(!$ev->isCancelled()){
|
||||
if($item->getId() !== Item::AIR){
|
||||
if((mt_rand(0, 10) / 10) < $tile->getItemDropChance()){
|
||||
$this->level->dropItem($tile, $item);
|
||||
}
|
||||
$tile->setItem(Item::get(Item::AIR));
|
||||
$tile->setItemRotation(0);
|
||||
}
|
||||
$tile->setItem(Item::get(Item::AIR));
|
||||
$tile->setItemRotation(0);
|
||||
}
|
||||
}else $tile->spawnTo($this);
|
||||
}else $tile->spawnTo($this);
|
||||
}
|
||||
break;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue