92        if($sender instanceof 
Player){
 
   93            $senderPos = $sender->getPosition();
 
   94            $world = $senderPos->getWorld();
 
   96                $this->getRelativeDouble($senderPos->getX(), $sender, $args[1]),
 
   97                $this->getRelativeDouble($senderPos->getY(), $sender, $args[2], World::Y_MIN, World::Y_MAX),
 
   98                $this->getRelativeDouble($senderPos->getZ(), $sender, $args[3])
 
  101            $world = $sender->getServer()->getWorldManager()->getDefaultWorld();
 
  102            $pos = 
new Vector3((
float) $args[1], (
float) $args[2], (
float) $args[3]);
 
  105        $name = strtolower($args[0]);
 
  107        $xd = (float) $args[4];
 
  108        $yd = (float) $args[5];
 
  109        $zd = (float) $args[6];
 
  111        $count = isset($args[7]) ? max(1, (
int) $args[7]) : 1;
 
  113        $data = $args[8] ?? 
null;
 
  115        $particle = $this->getParticle($name, $data);
 
  117        if($particle === 
null){
 
  118            $sender->sendMessage(KnownTranslationFactory::commands_particle_notFound($name)->prefix(TextFormat::RED));
 
  122        $sender->sendMessage(KnownTranslationFactory::commands_particle_success($name, (
string) $count));
 
  124        $random = 
new Random((
int) (microtime(
true) * 1000) + mt_rand());
 
  126        for($i = 0; $i < $count; ++$i){
 
  127            $world->addParticle($pos->add(
 
  128                $random->nextSignedFloat() * $xd,
 
  129                $random->nextSignedFloat() * $yd,
 
  130                $random->nextSignedFloat() * $zd
 
 
  217                if($data !== 
null && ($block = StringToItemParser::getInstance()->parse($data)?->getBlock()) !== 
null && $block->getTypeId() !== BlockTypeIds::AIR){