Advertisement
Halsey748

Untitled

May 4th, 2020
2,505
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <?php
  2.  
  3. namespace EntityText;
  4.    
  5. use pocketmine\Server;
  6. use pocketmine\Player;
  7. use pocketmine\math\Vector3;
  8. use pocketmine\utils\Config;
  9. use pocketmine\event\Listener;
  10. use pocketmine\plugin\PluginBase;
  11. use pocketmine\event\player\PlayerJoinEvent;
  12. use pocketmine\network\protocol\AddEntityPacket;
  13. use pocketmine\level\particle\FloatingTextParticle;
  14.  
  15. class Main extends PluginBase implements Listener
  16.     {
  17.  
  18.         public function onEnable()
  19.         {
  20.             $this->getServer()->getPluginManager()->registerEvents($this, $this);
  21.            
  22.             @mkdir($this->getDataFolder());
  23.             $this->config = new Config($this->getDataFolder() . "config.yml", Config::YAML, array(
  24.                 'Типы сущностей' => array(
  25.                     '0' => 'Без сущности',
  26.                     '1' => 'Пузырёк опыта',
  27.                     '2' => 'Око края',
  28.                     '3' => 'Снаряд шалкера',
  29.                     '4' => 'Яйцо',
  30.                     '5' => 'Пузырек с водой'
  31.                 ),
  32.                 'Texts' => array(
  33.                     array(
  34.                         'Coordinates' => '0 0 0',
  35.                         'Text' => 'Example',
  36.                         'Type' => 1
  37.                     ),
  38.                     array(
  39.                         'Coordinates' => '1 1 1',
  40.                         'Text' => 'Example #2',
  41.                         'Type' => 2
  42.                     )
  43.                 )
  44.             ));
  45.            
  46.             $this->getLogger()->info('Плагин включен');
  47.         }
  48.  
  49.         public function onPJE(PlayerJoinEvent $event)
  50.         {
  51.             $player = $event->getPlayer();
  52.             foreach($this->config->get('Texts') as $item){
  53.                 $coordinates = explode(' ', $item['Coordinates']);
  54.                 $coordinates[1] += 1.25;
  55.                
  56.                 foreach(array_reverse(explode('\n', $item['Text']), true) as $index => $text) {
  57.                     $text = str_replace('{player}', $player->getName(), $text);
  58.                     $player->getLevel()->addParticle(new FloatingTextParticle(new Vector3($coordinates[0], $coordinates[1] + ((count(explode('\n', $item['Text'])) - $index) / 4.175 - 0.8), $coordinates[2]), null, $text), array($player));
  59.                 }
  60.                
  61.                 switch($item['Type']) {
  62.                    
  63.                     case '0':
  64.                         $type = 0;
  65.                     break;
  66.                    
  67.                     case '1':
  68.                         $type = 68;
  69.                     break;
  70.                    
  71.                     case '2':
  72.                         $type = 70;
  73.                     break;
  74.                    
  75.                     case '3':
  76.                         $type = 76;
  77.                     break;
  78.                    
  79.                     case '4':
  80.                         $type = 82;
  81.                     break;
  82.                    
  83.                     case '5':
  84.                         $type = 86;
  85.                     break;
  86.                    
  87.                     default:
  88.                         $type = 70;
  89.                     break;
  90.                    
  91.                 }
  92.                
  93.                 if($type != 0) {
  94.                     $pk = new AddEntityPacket();
  95.                     $pk->eid = mt_rand(1111, 9999);
  96.                     $pk->type = $type;
  97.                     $pk->x = $coordinates[0];
  98.                     $pk->y = $coordinates[1] - 1.25;
  99.                     $pk->z = $coordinates[2];
  100.                     $pk->yaw = 0;
  101.                     $pk->pitch = 0;
  102.                     $pk->metadata = [];
  103.                     $player->dataPacket($pk);
  104.                 }
  105.             }
  106.         }
  107.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement