mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-05-13 17:29:44 +00:00
Added Milk bucket to creative inventory
This commit is contained in:
parent
dfec44645b
commit
81fe98d4cc
@ -1832,9 +1832,10 @@ class Player extends Human implements CommandSender, InventoryHolder, IPlayer{
|
|||||||
$this->lastBreak = microtime(true);
|
$this->lastBreak = microtime(true);
|
||||||
break;
|
break;
|
||||||
case 5: //Shot arrow
|
case 5: //Shot arrow
|
||||||
if($this->startAction > -1 and $this->getDataFlag(self::DATA_FLAGS, self::DATA_FLAG_ACTION) and $this->inventory->getItemInHand()->getId() === Item::BOW){
|
if($this->startAction > -1 and $this->getDataFlag(self::DATA_FLAGS, self::DATA_FLAG_ACTION)){
|
||||||
|
if($this->inventory->getItemInHand()->getId() === Item::BOW) {
|
||||||
$bow = $this->inventory->getItemInHand();
|
$bow = $this->inventory->getItemInHand();
|
||||||
if($this->isSurvival() and !$this->inventory->contains(Item::get(Item::ARROW, 0, 1))){
|
if ($this->isSurvival() and !$this->inventory->contains(Item::get(Item::ARROW, 0, 1))) {
|
||||||
$this->inventory->sendContents($this);
|
$this->inventory->sendContents($this);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -1862,39 +1863,64 @@ class Player extends Human implements CommandSender, InventoryHolder, IPlayer{
|
|||||||
$f = min((($p ** 2) + $p * 2) / 3, 1) * 2;
|
$f = min((($p ** 2) + $p * 2) / 3, 1) * 2;
|
||||||
$ev = new EntityShootBowEvent($this, $bow, Entity::createEntity("Arrow", $this->chunk, $nbt, $this, $f == 2 ? true : false), $f);
|
$ev = new EntityShootBowEvent($this, $bow, Entity::createEntity("Arrow", $this->chunk, $nbt, $this, $f == 2 ? true : false), $f);
|
||||||
|
|
||||||
if($f < 0.1 or $diff < 5){
|
if ($f < 0.1 or $diff < 5) {
|
||||||
$ev->setCancelled();
|
$ev->setCancelled();
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->server->getPluginManager()->callEvent($ev);
|
$this->server->getPluginManager()->callEvent($ev);
|
||||||
|
|
||||||
if($ev->isCancelled()){
|
if ($ev->isCancelled()) {
|
||||||
$ev->getProjectile()->kill();
|
$ev->getProjectile()->kill();
|
||||||
$this->inventory->sendContents($this);
|
$this->inventory->sendContents($this);
|
||||||
}else{
|
} else {
|
||||||
$ev->getProjectile()->setMotion($ev->getProjectile()->getMotion()->multiply($ev->getForce()));
|
$ev->getProjectile()->setMotion($ev->getProjectile()->getMotion()->multiply($ev->getForce()));
|
||||||
if($this->isSurvival()){
|
if($this->isSurvival()){
|
||||||
$this->inventory->removeItem(Item::get(Item::ARROW, 0, 1));
|
$this->inventory->removeItem(Item::get(Item::ARROW, 0, 1));
|
||||||
$bow->setDamage($bow->getDamage() + 1);
|
$bow->setDamage($bow->getDamage() + 1);
|
||||||
if($bow->getDamage() >= 385){
|
if ($bow->getDamage() >= 385) {
|
||||||
$this->inventory->setItemInHand(Item::get(Item::AIR, 0, 0));
|
$this->inventory->setItemInHand(Item::get(Item::AIR, 0, 0));
|
||||||
}else{
|
} else {
|
||||||
$this->inventory->setItemInHand($bow);
|
$this->inventory->setItemInHand($bow);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if($ev->getProjectile() instanceof Projectile){
|
if ($ev->getProjectile() instanceof Projectile) {
|
||||||
$this->server->getPluginManager()->callEvent($projectileEv = new ProjectileLaunchEvent($ev->getProjectile()));
|
$this->server->getPluginManager()->callEvent($projectileEv = new ProjectileLaunchEvent($ev->getProjectile()));
|
||||||
if($projectileEv->isCancelled()){
|
if ($projectileEv->isCancelled()) {
|
||||||
$ev->getProjectile()->kill();
|
$ev->getProjectile()->kill();
|
||||||
}else{
|
} else {
|
||||||
$ev->getProjectile()->spawnToAll();
|
$ev->getProjectile()->spawnToAll();
|
||||||
$this->level->addSound(new LaunchSound($this), $this->getViewers());
|
$this->level->addSound(new LaunchSound($this), $this->getViewers());
|
||||||
}
|
}
|
||||||
}else{
|
} else {
|
||||||
$ev->getProjectile()->spawnToAll();
|
$ev->getProjectile()->spawnToAll();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}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;
|
||||||
|
}
|
||||||
|
|
||||||
|
$pk = new EntityEventPacket();
|
||||||
|
$pk->eid = $this->getId();
|
||||||
|
$pk->event = 9;
|
||||||
|
$pk->setChannel(Network::CHANNEL_WORLD_EVENTS);
|
||||||
|
$this->dataPacket($pk);
|
||||||
|
Server::broadcastPacket($this->getViewers(), $pk);
|
||||||
|
|
||||||
|
if ($this->isSurvival()) {
|
||||||
|
$slot = $this->inventory->getItemInHand();
|
||||||
|
--$slot->count;
|
||||||
|
$this->inventory->setItemInHand($slot, $this);
|
||||||
|
$this->inventory->addItem(Item::get(Item::BUCKET, 0, 1));
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->removeAllEffects();
|
||||||
|
}else{
|
||||||
|
$this->inventory->sendContents($this);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case 6: //get out of the bed
|
case 6: //get out of the bed
|
||||||
$this->stopSleep();
|
$this->stopSleep();
|
||||||
@ -2222,25 +2248,6 @@ class Player extends Human implements CommandSender, InventoryHolder, IPlayer{
|
|||||||
$this->addEffect(Effect::getEffect(Effect::NAUSEA)->setAmplifier(1)->setDuration(15 * 20));
|
$this->addEffect(Effect::getEffect(Effect::NAUSEA)->setAmplifier(1)->setDuration(15 * 20));
|
||||||
$this->addEffect(Effect::getEffect(Effect::POISON)->setAmplifier(3)->setDuration(60 * 20));
|
$this->addEffect(Effect::getEffect(Effect::POISON)->setAmplifier(3)->setDuration(60 * 20));
|
||||||
}
|
}
|
||||||
}elseif($slot->getId() === Item::BUCKET and $slot->getId() === 1){ //Milk!
|
|
||||||
$this->server->getPluginManager()->callEvent($ev = new PlayerItemConsumeEvent($this, $slot));
|
|
||||||
if($ev->isCancelled()){
|
|
||||||
$this->inventory->sendContents($this);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
$pk = new EntityEventPacket();
|
|
||||||
$pk->eid = $this->getId();
|
|
||||||
$pk->event = 9;
|
|
||||||
$pk->setChannel(Network::CHANNEL_WORLD_EVENTS);
|
|
||||||
$this->dataPacket($pk);
|
|
||||||
Server::broadcastPacket($this->getViewers(), $pk);
|
|
||||||
|
|
||||||
--$slot->count;
|
|
||||||
$this->inventory->setItemInHand($slot, $this);
|
|
||||||
$this->inventory->addItem(Item::get(Item::BUCKET, 0, 1));
|
|
||||||
|
|
||||||
$this->removeAllEffects();
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -472,6 +472,7 @@ class Block extends Position implements Metadatable{
|
|||||||
//TODO [Item::POWERED_RAILS, 0],
|
//TODO [Item::POWERED_RAILS, 0],
|
||||||
[Item::TORCH, 0],
|
[Item::TORCH, 0],
|
||||||
[Item::BUCKET, 0],
|
[Item::BUCKET, 0],
|
||||||
|
[Item::BUCKET, 1],
|
||||||
[Item::BUCKET, 8],
|
[Item::BUCKET, 8],
|
||||||
[Item::BUCKET, 10],
|
[Item::BUCKET, 10],
|
||||||
[Item::TNT, 0],
|
[Item::TNT, 0],
|
||||||
|
Loading…
x
Reference in New Issue
Block a user