Rewired eating

This commit is contained in:
Dylan K. Taylor 2017-08-21 12:52:20 +01:00
parent 93e149e91c
commit 121777375e

View File

@ -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;
}