mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-05-12 00:39:45 +00:00
Merge branch 'release/3.3'
This commit is contained in:
commit
4608ecde9b
@ -32,7 +32,6 @@ use pocketmine\math\AxisAlignedBB;
|
|||||||
use pocketmine\math\Facing;
|
use pocketmine\math\Facing;
|
||||||
use pocketmine\math\Vector3;
|
use pocketmine\math\Vector3;
|
||||||
use pocketmine\Player;
|
use pocketmine\Player;
|
||||||
use pocketmine\Server;
|
|
||||||
|
|
||||||
class Cactus extends Transparent{
|
class Cactus extends Transparent{
|
||||||
|
|
||||||
@ -104,7 +103,8 @@ class Cactus extends Transparent{
|
|||||||
for($y = 1; $y < 3; ++$y){
|
for($y = 1; $y < 3; ++$y){
|
||||||
$b = $this->getLevel()->getBlockAt($this->x, $this->y + $y, $this->z);
|
$b = $this->getLevel()->getBlockAt($this->x, $this->y + $y, $this->z);
|
||||||
if($b->getId() === self::AIR){
|
if($b->getId() === self::AIR){
|
||||||
Server::getInstance()->getPluginManager()->callEvent($ev = new BlockGrowEvent($b, BlockFactory::get(Block::CACTUS)));
|
$ev = new BlockGrowEvent($b, BlockFactory::get(Block::CACTUS));
|
||||||
|
$ev->call();
|
||||||
if(!$ev->isCancelled()){
|
if(!$ev->isCancelled()){
|
||||||
$this->getLevel()->setBlock($b, $ev->getNewState());
|
$this->getLevel()->setBlock($b, $ev->getNewState());
|
||||||
}
|
}
|
||||||
|
@ -28,7 +28,6 @@ use pocketmine\item\Item;
|
|||||||
use pocketmine\math\Facing;
|
use pocketmine\math\Facing;
|
||||||
use pocketmine\math\Vector3;
|
use pocketmine\math\Vector3;
|
||||||
use pocketmine\Player;
|
use pocketmine\Player;
|
||||||
use pocketmine\Server;
|
|
||||||
|
|
||||||
abstract class Crops extends Flowable{
|
abstract class Crops extends Flowable{
|
||||||
/** @var int */
|
/** @var int */
|
||||||
@ -67,8 +66,8 @@ abstract class Crops extends Flowable{
|
|||||||
$block->age = 7;
|
$block->age = 7;
|
||||||
}
|
}
|
||||||
|
|
||||||
Server::getInstance()->getPluginManager()->callEvent($ev = new BlockGrowEvent($this, $block));
|
$ev = new BlockGrowEvent($this, $block);
|
||||||
|
$ev->call();
|
||||||
if(!$ev->isCancelled()){
|
if(!$ev->isCancelled()){
|
||||||
$this->getLevel()->setBlock($this, $ev->getNewState());
|
$this->getLevel()->setBlock($this, $ev->getNewState());
|
||||||
}
|
}
|
||||||
@ -95,8 +94,8 @@ abstract class Crops extends Flowable{
|
|||||||
if($this->age < 7 and mt_rand(0, 2) === 1){
|
if($this->age < 7 and mt_rand(0, 2) === 1){
|
||||||
$block = clone $this;
|
$block = clone $this;
|
||||||
++$block->age;
|
++$block->age;
|
||||||
Server::getInstance()->getPluginManager()->callEvent($ev = new BlockGrowEvent($this, $block));
|
$ev = new BlockGrowEvent($this, $block);
|
||||||
|
$ev->call();
|
||||||
if(!$ev->isCancelled()){
|
if(!$ev->isCancelled()){
|
||||||
$this->getLevel()->setBlock($this, $ev->getNewState());
|
$this->getLevel()->setBlock($this, $ev->getNewState());
|
||||||
}
|
}
|
||||||
|
@ -31,7 +31,6 @@ use pocketmine\event\entity\EntityDamageByBlockEvent;
|
|||||||
use pocketmine\event\entity\EntityDamageEvent;
|
use pocketmine\event\entity\EntityDamageEvent;
|
||||||
use pocketmine\item\Item;
|
use pocketmine\item\Item;
|
||||||
use pocketmine\math\Facing;
|
use pocketmine\math\Facing;
|
||||||
use pocketmine\Server;
|
|
||||||
|
|
||||||
class Fire extends Flowable{
|
class Fire extends Flowable{
|
||||||
|
|
||||||
@ -84,7 +83,7 @@ class Fire extends Flowable{
|
|||||||
if($entity instanceof Arrow){
|
if($entity instanceof Arrow){
|
||||||
$ev->setCancelled();
|
$ev->setCancelled();
|
||||||
}
|
}
|
||||||
Server::getInstance()->getPluginManager()->callEvent($ev);
|
$ev->call();
|
||||||
if(!$ev->isCancelled()){
|
if(!$ev->isCancelled()){
|
||||||
$entity->setOnFire($ev->getDuration());
|
$entity->setOnFire($ev->getDuration());
|
||||||
}
|
}
|
||||||
@ -168,7 +167,8 @@ class Fire extends Flowable{
|
|||||||
|
|
||||||
private function burnBlock(Block $block, int $chanceBound) : void{
|
private function burnBlock(Block $block, int $chanceBound) : void{
|
||||||
if(mt_rand(0, $chanceBound) < $block->getFlammability()){
|
if(mt_rand(0, $chanceBound) < $block->getFlammability()){
|
||||||
$this->level->getServer()->getPluginManager()->callEvent($ev = new BlockBurnEvent($block, $this));
|
$ev = new BlockBurnEvent($block, $this);
|
||||||
|
$ev->call();
|
||||||
if(!$ev->isCancelled()){
|
if(!$ev->isCancelled()){
|
||||||
$block->onIncinerate();
|
$block->onIncinerate();
|
||||||
|
|
||||||
|
@ -67,7 +67,8 @@ class Grass extends Solid{
|
|||||||
$lightAbove = $this->level->getFullLightAt($this->x, $this->y + 1, $this->z);
|
$lightAbove = $this->level->getFullLightAt($this->x, $this->y + 1, $this->z);
|
||||||
if($lightAbove < 4 and BlockFactory::$lightFilter[$this->level->getBlockIdAt($this->x, $this->y + 1, $this->z)] >= 3){ //2 plus 1 standard filter amount
|
if($lightAbove < 4 and BlockFactory::$lightFilter[$this->level->getBlockIdAt($this->x, $this->y + 1, $this->z)] >= 3){ //2 plus 1 standard filter amount
|
||||||
//grass dies
|
//grass dies
|
||||||
$this->level->getServer()->getPluginManager()->callEvent($ev = new BlockSpreadEvent($this, $this, BlockFactory::get(Block::DIRT)));
|
$ev = new BlockSpreadEvent($this, $this, BlockFactory::get(Block::DIRT));
|
||||||
|
$ev->call();
|
||||||
if(!$ev->isCancelled()){
|
if(!$ev->isCancelled()){
|
||||||
$this->level->setBlock($this, $ev->getNewState(), false);
|
$this->level->setBlock($this, $ev->getNewState(), false);
|
||||||
}
|
}
|
||||||
@ -86,7 +87,8 @@ class Grass extends Solid{
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->level->getServer()->getPluginManager()->callEvent($ev = new BlockSpreadEvent($b = $this->level->getBlockAt($x, $y, $z), $this, BlockFactory::get(Block::GRASS)));
|
$ev = new BlockSpreadEvent($b = $this->level->getBlockAt($x, $y, $z), $this, BlockFactory::get(Block::GRASS));
|
||||||
|
$ev->call();
|
||||||
if(!$ev->isCancelled()){
|
if(!$ev->isCancelled()){
|
||||||
$this->level->setBlock($b, $ev->getNewState(), false);
|
$this->level->setBlock($b, $ev->getNewState(), false);
|
||||||
}
|
}
|
||||||
|
@ -29,7 +29,6 @@ use pocketmine\event\entity\EntityDamageByBlockEvent;
|
|||||||
use pocketmine\event\entity\EntityDamageEvent;
|
use pocketmine\event\entity\EntityDamageEvent;
|
||||||
use pocketmine\math\Facing;
|
use pocketmine\math\Facing;
|
||||||
use pocketmine\network\mcpe\protocol\LevelSoundEventPacket;
|
use pocketmine\network\mcpe\protocol\LevelSoundEventPacket;
|
||||||
use pocketmine\Server;
|
|
||||||
|
|
||||||
class Lava extends Liquid{
|
class Lava extends Liquid{
|
||||||
|
|
||||||
@ -108,7 +107,7 @@ class Lava extends Liquid{
|
|||||||
$entity->attack($ev);
|
$entity->attack($ev);
|
||||||
|
|
||||||
$ev = new EntityCombustByBlockEvent($this, $entity, 15);
|
$ev = new EntityCombustByBlockEvent($this, $entity, 15);
|
||||||
Server::getInstance()->getPluginManager()->callEvent($ev);
|
$ev->call();
|
||||||
if(!$ev->isCancelled()){
|
if(!$ev->isCancelled()){
|
||||||
$entity->setOnFire($ev->getDuration());
|
$entity->setOnFire($ev->getDuration());
|
||||||
}
|
}
|
||||||
|
@ -108,8 +108,8 @@ class Leaves extends Transparent{
|
|||||||
|
|
||||||
public function onRandomTick() : void{
|
public function onRandomTick() : void{
|
||||||
if(!$this->noDecay and $this->checkDecay){
|
if(!$this->noDecay and $this->checkDecay){
|
||||||
$this->getLevel()->getServer()->getPluginManager()->callEvent($ev = new LeavesDecayEvent($this));
|
$ev = new LeavesDecayEvent($this);
|
||||||
|
$ev->call();
|
||||||
if($ev->isCancelled() or $this->findLog($this)){
|
if($ev->isCancelled() or $this->findLog($this)){
|
||||||
$this->getLevel()->setBlock($this, $this, false);
|
$this->getLevel()->setBlock($this, $this, false);
|
||||||
}else{
|
}else{
|
||||||
|
@ -27,7 +27,6 @@ use pocketmine\event\block\BlockSpreadEvent;
|
|||||||
use pocketmine\item\Item;
|
use pocketmine\item\Item;
|
||||||
use pocketmine\item\ItemFactory;
|
use pocketmine\item\ItemFactory;
|
||||||
use pocketmine\math\Facing;
|
use pocketmine\math\Facing;
|
||||||
use pocketmine\Server;
|
|
||||||
|
|
||||||
class Mycelium extends Solid{
|
class Mycelium extends Solid{
|
||||||
|
|
||||||
@ -67,7 +66,8 @@ class Mycelium extends Solid{
|
|||||||
$block = $this->getLevel()->getBlockAt($x, $y, $z);
|
$block = $this->getLevel()->getBlockAt($x, $y, $z);
|
||||||
if($block->getId() === Block::DIRT){
|
if($block->getId() === Block::DIRT){
|
||||||
if($block->getSide(Facing::UP) instanceof Transparent){
|
if($block->getSide(Facing::UP) instanceof Transparent){
|
||||||
Server::getInstance()->getPluginManager()->callEvent($ev = new BlockSpreadEvent($block, $this, BlockFactory::get(Block::MYCELIUM)));
|
$ev = new BlockSpreadEvent($block, $this, BlockFactory::get(Block::MYCELIUM));
|
||||||
|
$ev->call();
|
||||||
if(!$ev->isCancelled()){
|
if(!$ev->isCancelled()){
|
||||||
$this->getLevel()->setBlock($block, $ev->getNewState());
|
$this->getLevel()->setBlock($block, $ev->getNewState());
|
||||||
}
|
}
|
||||||
|
@ -82,8 +82,8 @@ class NetherWartPlant extends Flowable{
|
|||||||
if($this->age < 3 and mt_rand(0, 10) === 0){ //Still growing
|
if($this->age < 3 and mt_rand(0, 10) === 0){ //Still growing
|
||||||
$block = clone $this;
|
$block = clone $this;
|
||||||
$block->age++;
|
$block->age++;
|
||||||
$this->getLevel()->getServer()->getPluginManager()->callEvent($ev = new BlockGrowEvent($this, $block));
|
$ev = new BlockGrowEvent($this, $block);
|
||||||
|
$ev->call();
|
||||||
if(!$ev->isCancelled()){
|
if(!$ev->isCancelled()){
|
||||||
$this->getLevel()->setBlock($this, $ev->getNewState());
|
$this->getLevel()->setBlock($this, $ev->getNewState());
|
||||||
}
|
}
|
||||||
|
@ -27,7 +27,6 @@ use pocketmine\event\block\BlockGrowEvent;
|
|||||||
use pocketmine\item\Item;
|
use pocketmine\item\Item;
|
||||||
use pocketmine\item\ItemFactory;
|
use pocketmine\item\ItemFactory;
|
||||||
use pocketmine\math\Facing;
|
use pocketmine\math\Facing;
|
||||||
use pocketmine\Server;
|
|
||||||
|
|
||||||
abstract class Stem extends Crops{
|
abstract class Stem extends Crops{
|
||||||
|
|
||||||
@ -38,7 +37,8 @@ abstract class Stem extends Crops{
|
|||||||
if($this->age < 7){
|
if($this->age < 7){
|
||||||
$block = clone $this;
|
$block = clone $this;
|
||||||
++$block->age;
|
++$block->age;
|
||||||
Server::getInstance()->getPluginManager()->callEvent($ev = new BlockGrowEvent($this, $block));
|
$ev = new BlockGrowEvent($this, $block);
|
||||||
|
$ev->call();
|
||||||
if(!$ev->isCancelled()){
|
if(!$ev->isCancelled()){
|
||||||
$this->getLevel()->setBlock($this, $ev->getNewState());
|
$this->getLevel()->setBlock($this, $ev->getNewState());
|
||||||
}
|
}
|
||||||
@ -53,7 +53,8 @@ abstract class Stem extends Crops{
|
|||||||
$side = $this->getSide(Facing::HORIZONTAL[array_rand(Facing::HORIZONTAL)]);
|
$side = $this->getSide(Facing::HORIZONTAL[array_rand(Facing::HORIZONTAL)]);
|
||||||
$d = $side->getSide(Facing::DOWN);
|
$d = $side->getSide(Facing::DOWN);
|
||||||
if($side->getId() === self::AIR and ($d->getId() === self::FARMLAND or $d->getId() === self::GRASS or $d->getId() === self::DIRT)){
|
if($side->getId() === self::AIR and ($d->getId() === self::FARMLAND or $d->getId() === self::GRASS or $d->getId() === self::DIRT)){
|
||||||
Server::getInstance()->getPluginManager()->callEvent($ev = new BlockGrowEvent($side, $grow));
|
$ev = new BlockGrowEvent($side, $grow);
|
||||||
|
$ev->call();
|
||||||
if(!$ev->isCancelled()){
|
if(!$ev->isCancelled()){
|
||||||
$this->getLevel()->setBlock($side, $ev->getNewState());
|
$this->getLevel()->setBlock($side, $ev->getNewState());
|
||||||
}
|
}
|
||||||
|
@ -28,7 +28,6 @@ use pocketmine\item\Item;
|
|||||||
use pocketmine\math\Facing;
|
use pocketmine\math\Facing;
|
||||||
use pocketmine\math\Vector3;
|
use pocketmine\math\Vector3;
|
||||||
use pocketmine\Player;
|
use pocketmine\Player;
|
||||||
use pocketmine\Server;
|
|
||||||
|
|
||||||
class Sugarcane extends Flowable{
|
class Sugarcane extends Flowable{
|
||||||
|
|
||||||
@ -65,7 +64,8 @@ class Sugarcane extends Flowable{
|
|||||||
for($y = 1; $y < 3; ++$y){
|
for($y = 1; $y < 3; ++$y){
|
||||||
$b = $this->getLevel()->getBlockAt($this->x, $this->y + $y, $this->z);
|
$b = $this->getLevel()->getBlockAt($this->x, $this->y + $y, $this->z);
|
||||||
if($b->getId() === self::AIR){
|
if($b->getId() === self::AIR){
|
||||||
Server::getInstance()->getPluginManager()->callEvent($ev = new BlockGrowEvent($b, BlockFactory::get(Block::SUGARCANE_BLOCK)));
|
$ev = new BlockGrowEvent($b, BlockFactory::get(Block::SUGARCANE_BLOCK));
|
||||||
|
$ev->call();
|
||||||
if(!$ev->isCancelled()){
|
if(!$ev->isCancelled()){
|
||||||
$this->getLevel()->setBlock($b, $ev->getNewState());
|
$this->getLevel()->setBlock($b, $ev->getNewState());
|
||||||
}
|
}
|
||||||
|
@ -94,7 +94,7 @@ class Network{
|
|||||||
$logger->logException($e);
|
$logger->logException($e);
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->server->getPluginManager()->callEvent(new NetworkInterfaceCrashEvent($interface, $e));
|
(new NetworkInterfaceCrashEvent($interface, $e))->call();
|
||||||
|
|
||||||
$interface->emergencyShutdown();
|
$interface->emergencyShutdown();
|
||||||
$this->unregisterInterface($interface);
|
$this->unregisterInterface($interface);
|
||||||
@ -113,7 +113,8 @@ class Network{
|
|||||||
* @param NetworkInterface $interface
|
* @param NetworkInterface $interface
|
||||||
*/
|
*/
|
||||||
public function registerInterface(NetworkInterface $interface) : void{
|
public function registerInterface(NetworkInterface $interface) : void{
|
||||||
$this->server->getPluginManager()->callEvent($ev = new NetworkInterfaceRegisterEvent($interface));
|
$ev = new NetworkInterfaceRegisterEvent($interface);
|
||||||
|
$ev->call();
|
||||||
if(!$ev->isCancelled()){
|
if(!$ev->isCancelled()){
|
||||||
$interface->start();
|
$interface->start();
|
||||||
$this->interfaces[$hash = spl_object_hash($interface)] = $interface;
|
$this->interfaces[$hash = spl_object_hash($interface)] = $interface;
|
||||||
@ -129,7 +130,7 @@ class Network{
|
|||||||
* @param NetworkInterface $interface
|
* @param NetworkInterface $interface
|
||||||
*/
|
*/
|
||||||
public function unregisterInterface(NetworkInterface $interface) : void{
|
public function unregisterInterface(NetworkInterface $interface) : void{
|
||||||
$this->server->getPluginManager()->callEvent(new NetworkInterfaceUnregisterEvent($interface));
|
(new NetworkInterfaceUnregisterEvent($interface))->call();
|
||||||
unset($this->interfaces[$hash = spl_object_hash($interface)], $this->advancedInterfaces[$hash]);
|
unset($this->interfaces[$hash = spl_object_hash($interface)], $this->advancedInterfaces[$hash]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -92,7 +92,8 @@ class NetworkSession{
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected function createPlayer() : void{
|
protected function createPlayer() : void{
|
||||||
$this->server->getPluginManager()->callEvent($ev = new PlayerCreationEvent($this));
|
$ev = new PlayerCreationEvent($this);
|
||||||
|
$ev->call();
|
||||||
$class = $ev->getPlayerClass();
|
$class = $ev->getPlayerClass();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -201,7 +202,8 @@ class NetworkSession{
|
|||||||
$this->server->getLogger()->debug("Still " . strlen($remains) . " bytes unread in " . $packet->getName() . ": 0x" . bin2hex($remains));
|
$this->server->getLogger()->debug("Still " . strlen($remains) . " bytes unread in " . $packet->getName() . ": 0x" . bin2hex($remains));
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->server->getPluginManager()->callEvent($ev = new DataPacketReceiveEvent($this->player, $packet));
|
$ev = new DataPacketReceiveEvent($this->player, $packet);
|
||||||
|
$ev->call();
|
||||||
if(!$ev->isCancelled() and !$packet->handle($this->handler)){
|
if(!$ev->isCancelled() and !$packet->handle($this->handler)){
|
||||||
$this->server->getLogger()->debug("Unhandled " . $packet->getName() . " received from " . $this->player->getName() . ": 0x" . bin2hex($packet->buffer));
|
$this->server->getLogger()->debug("Unhandled " . $packet->getName() . " received from " . $this->player->getName() . ": 0x" . bin2hex($packet->buffer));
|
||||||
}
|
}
|
||||||
@ -213,7 +215,8 @@ class NetworkSession{
|
|||||||
$timings = Timings::getSendDataPacketTimings($packet);
|
$timings = Timings::getSendDataPacketTimings($packet);
|
||||||
$timings->startTiming();
|
$timings->startTiming();
|
||||||
try{
|
try{
|
||||||
$this->server->getPluginManager()->callEvent($ev = new DataPacketSendEvent($this->player, $packet));
|
$ev = new DataPacketSendEvent($this->player, $packet);
|
||||||
|
$ev->call();
|
||||||
if($ev->isCancelled()){
|
if($ev->isCancelled()){
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user