Advertisement
DanielYTK

Untitled

Nov 20th, 2017
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.51 KB | None | 0 0
  1. <?php
  2. namespace DanielYTK\Beacon;
  3.  
  4. use pocketmine\Player;
  5. use pocketmine\scheduler\PluginTask;
  6.  
  7. use pocketmine\level\Level;
  8. use pocketmine\math\Vector3;
  9. use pocketmine\level\Position;
  10.  
  11. use pocketmine\entity\Entity;
  12. use pocketmine\entity\Effect;
  13.  
  14.  
  15. use DanielYTK\Beacon\Main;
  16.  
  17. class BeaconTask extends PluginTask{
  18.  
  19. public $plugin;
  20.  
  21. public function __construct(Main $plugin){
  22. parent::__construct($plugin);
  23. $this->plugin = $plugin;
  24. }
  25.  
  26. public function getServer(){
  27. return $this->plugin->getServer();
  28. }
  29.  
  30. public function onRun($ticks){
  31. foreach($this->plugin->beacon->getAll() as $coords => $info){
  32. $pos = explode("-", $coords);
  33. $pos2 = new Position($pos[0], $pos[1], $pos[2], $this->getServer()->getLevelByName($pos[3]));
  34. if($info["Level"] === 1){
  35. foreach($this->plugin->getServer()->getOnlinePlayers() as $ps){
  36. if($pos2->distance($ps) < $this->plugin->config->get("distance_effect")){
  37. if($info["Efeito"] == "SPEED"){
  38. $ef = Effect::getEffect(1);
  39. $ef->setAmplifier(0);
  40. $ef->setDuration(40);
  41. $ps->addEffect($ef);
  42. }
  43. if($info["Efeito"] == "HASTE"){
  44. $ef = Effect::getEffect(3);
  45. $ef->setAmplifier(0);
  46. $ef->setDuration(40);
  47. $ps->addEffect($ef);
  48. }
  49. if($info["Efeito"] == "JUMP"){
  50. $ef = Effect::getEffect(8);
  51. $ef->setAmplifier(0);
  52. $ef->setDuration(40);
  53. $ps->addEffect($ef);
  54. }
  55. if($info["Efeito"] == "REGEN"){
  56. $ef = Effect::getEffect(10);
  57. $ef->setAmplifier(0);
  58. $ef->setDuration(40);
  59. $ps->addEffect($ef);
  60. }
  61. }
  62. }
  63. }
  64. if($info["Level"] === 2){
  65. foreach($this->plugin->getServer()->getOnlinePlayers() as $ps){
  66. if($pos2->distance($ps) < $this->plugin->config->get("distance_effect")){
  67. if($info["Efeito"] == "SPEED"){
  68. $ef = Effect::getEffect(1);
  69. $ef->setAmplifier(1);
  70. $ef->setDuration(40);
  71. $ps->addEffect($ef);
  72. }
  73. if($info["Efeito"] == "HASTE"){
  74. $ef = Effect::getEffect(3);
  75. $ef->setAmplifier(1);
  76. $ef->setDuration(40);
  77. $ps->addEffect($ef);
  78. }
  79. if($info["Efeito"] == "JUMP"){
  80. $ef = Effect::getEffect(8);
  81. $ef->setAmplifier(1);
  82. $ef->setDuration(40);
  83. $ps->addEffect($ef);
  84. }
  85. if($info["Efeito"] == "REGEN"){
  86. $ef = Effect::getEffect(10);
  87. $ef->setAmplifier(1);
  88. $ef->setDuration(40);
  89. $ps->addEffect($ef);
  90. }
  91. }
  92. }
  93. }
  94. }
  95. }
  96. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement