mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-07-28 05:35:40 +00:00
Rewired eating
This commit is contained in:
parent
93e149e91c
commit
121777375e
@ -2129,25 +2129,7 @@ class Player extends Human implements CommandSender, ChunkLoader, IPlayer{
|
||||
}
|
||||
$this->craftingType = 0;
|
||||
|
||||
$this->setGenericFlag(self::DATA_FLAG_ACTION, false); //TODO: check if this should be true
|
||||
|
||||
switch($packet->event){
|
||||
case EntityEventPacket::USE_ITEM: //Eating
|
||||
$slot = $this->inventory->getItemInHand();
|
||||
|
||||
if($slot->canBeConsumed()){
|
||||
$ev = new PlayerItemConsumeEvent($this, $slot);
|
||||
if(!$slot->canBeConsumedBy($this)){
|
||||
$ev->setCancelled();
|
||||
}
|
||||
$this->server->getPluginManager()->callEvent($ev);
|
||||
if(!$ev->isCancelled()){
|
||||
$slot->onConsume($this);
|
||||
}else{
|
||||
$this->inventory->sendContents($this);
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
@ -2553,11 +2535,33 @@ class Player extends Human implements CommandSender, ChunkLoader, IPlayer{
|
||||
}
|
||||
}
|
||||
}
|
||||
}else{
|
||||
$this->inventory->sendContents($this);
|
||||
}
|
||||
|
||||
$this->setGenericFlag(self::DATA_FLAG_ACTION, false);
|
||||
return true;
|
||||
case InventoryTransactionPacket::RELEASE_ITEM_ACTION_CONSUME:
|
||||
$slot = $this->inventory->getItemInHand();
|
||||
|
||||
if($slot->canBeConsumed()){
|
||||
$ev = new PlayerItemConsumeEvent($this, $slot);
|
||||
if(!$slot->canBeConsumedBy($this)){
|
||||
$ev->setCancelled();
|
||||
}
|
||||
$this->server->getPluginManager()->callEvent($ev);
|
||||
if(!$ev->isCancelled()){
|
||||
$slot->onConsume($this);
|
||||
}else{
|
||||
$this->inventory->sendContents($this);
|
||||
}
|
||||
|
||||
return true;
|
||||
}elseif($this->inventory->getItemInHand()->getId() === Item::BUCKET and $this->inventory->getItemInHand()->getDamage() === 1){ //Milk!
|
||||
$this->server->getPluginManager()->callEvent($ev = new PlayerItemConsumeEvent($this, $this->inventory->getItemInHand()));
|
||||
if($ev->isCancelled()){
|
||||
$this->inventory->sendContents($this);
|
||||
break;
|
||||
return true;
|
||||
}
|
||||
|
||||
$pk = new EntityEventPacket();
|
||||
@ -2574,11 +2578,11 @@ class Player extends Human implements CommandSender, ChunkLoader, IPlayer{
|
||||
}
|
||||
|
||||
$this->removeAllEffects();
|
||||
}else{
|
||||
$this->inventory->sendContents($this);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user