Advertisement
Guest User

Untitled

a guest
Oct 21st, 2016
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 23.32 KB | None | 0 0
  1. <?php
  2.  
  3. namespace ParadoxUHC;
  4.  
  5. use ParadoxUHC\Commands\MainEventCommand;
  6. use ParadoxUHC\Commands\MainHostCommand;
  7. use ParadoxUHC\Commands\MainMuteAllCommand;
  8. use ParadoxUHC\Commands\MainScenariosCommand;
  9. use ParadoxUHC\Commands\MainSpectateCommand;
  10. use ParadoxUHC\Commands\MainUHCCommand;
  11. use ParadoxUHC\Commands\MainStatsCommand;
  12. use ParadoxUHC\Commands\MainReportCommand;
  13. use ParadoxUHC\Commands\MainInfoCommand;
  14. use ParadoxUHC\Tasks\DeathTask;
  15. use ParadoxUHC\Tasks\Timer;
  16. use pocketmine\block\Block;
  17. use pocketmine\block\SkullBlock;
  18. use pocketmine\entity\CaveSpider;
  19. use pocketmine\entity\Chicken;
  20. use pocketmine\entity\Cow;
  21. use pocketmine\entity\Sheep;
  22. use pocketmine\entity\Skeleton;
  23. use pocketmine\entity\Spider;
  24. use pocketmine\entity\Zombie;
  25. use pocketmine\event\entity\EntityDamageByBlockEvent;
  26. use pocketmine\event\player\PlayerChatEvent;
  27. use pocketmine\inventory\ShapedRecipe;
  28. use pocketmine\nbt\tag\CompoundTag;
  29. use pocketmine\nbt\tag\IntTag;
  30. use pocketmine\nbt\tag\StringTag;
  31. use pocketmine\nbt\tag\ByteTag;
  32.  
  33. use pocketmine\Player;
  34. use pocketmine\plugin\PluginBase as P;
  35. use pocketmine\event\block\BlockBreakEvent as Breaker;
  36. use pocketmine\event\Listener as L;
  37. use pocketmine\event\player\PlayerJoinEvent as Join;
  38. use pocketmine\event\player\PlayerQuitEvent as Quit;
  39. use pocketmine\event\player\PlayerDeathEvent as Death;
  40. use pocketmine\event\entity\EntityRegainHealthEvent as Regen;
  41. use pocketmine\event\player\PlayerItemConsumeEvent as Eat;
  42. use pocketmine\event\entity\EntityDamageEvent as Damage;
  43. use pocketmine\event\entity\EntityDamageByEntityEvent;
  44. use pocketmine\item\Item;
  45. use pocketmine\tile\Tile;
  46. use pocketmine\tile\Skull;
  47. use pocketmine\utils\Config;
  48. use pocketmine\utils\TextFormat as TF;
  49. use pocketmine\entity\Effect;
  50. use pocketmine\math\Vector3;
  51. use pocketmine\event\player\PlayerPreLoginEvent as PreLogin;
  52. use pocketmine\event\block\BlockPlaceEvent as Place;
  53. use pocketmine\event\entity\EntityDeathEvent as EDeath;
  54.  
  55. class UHC extends P implements L
  56. {
  57.  
  58. public $relogPos = [];
  59. public $queue = [];
  60. public $kills = [];
  61. const STATUS_WAITING = -1;
  62. const STATUS_COUNTDOWN = 0;
  63. const STATUS_GRACE = 1;
  64. const STATUS_PVP = 2;
  65. const STATUS_TP_1 = 3;
  66. const STATUS_TELE_1 = 4;
  67. const STATUS_TP_2 = 5;
  68. const STATUS_TELE_2 = 6;
  69. const STATUS_LAST = 7;
  70. public $players = array();
  71. public $status = self::STATUS_WAITING;
  72. public $config;
  73. public $team;
  74. public $player;
  75. public $namedtag;
  76. public $killer;
  77. public $deathpos = [];
  78. public $prefix = TF::DARK_GRAY."[".TF::BLUE."Eon".TF::WHITE."UHC".TF::DARK_GRAY."]".TF::RESET;
  79.  
  80. /**
  81. * Enable and Disable Functions
  82. */
  83. public function onEnable()
  84. {
  85. $this->getServer()->getPluginManager()->registerEvents($this, $this);
  86. @mkdir($this->getDataFolder());
  87. @mkdir($this->getDataFolder()."players/");
  88. $this->config = new Config($this->getDataFolder()."/config.yml", Config::YAML, array(
  89. "#Scenarios for UHCs, by Irish",
  90. "#Choose whether Cut-Clean is on or off.",
  91. "cutclean" => true,
  92. "#Choose whether gold is on or off",
  93. "goldless" => false,
  94. "#Choose whether diamonds are on or off",
  95. "diamondless" => false,
  96. "#Choose whether golden heads are on or off",
  97. "heads" => false,
  98. "#Choose whether head pole system is on or off",
  99. "pole" => true,
  100. "#WIP, choose whether Timebomb is on or off. Must have head pole system off!",
  101. "timebomb" => false,
  102. "#Choose whether players take damage when mining diamonds",
  103. "blood-diamonds" => false,
  104. "#Choose whether barebones is on or off",
  105. "barebones" => false,
  106. "#Choose whether fireless is on or off",
  107. "fireless" => false,
  108. "#Choose whether no-fall is on or off",
  109. "nofall" => false,
  110. "#Choose whether Chicken is toggled",
  111. "chicken" => false,
  112. "#Choose whether cripple is toggled",
  113. "cripple"=> false,
  114. "#Choose whether cat eyes is toggled",
  115. "cat-eyes"=> false,
  116. "#Choose whether lights-out is toggled",
  117. "lights-out" => false,
  118. "#Choose whether Ultra Paranoid is toggled",
  119. "paranoid" => false,
  120. "#Choose multiplication of ores",
  121. "multi-ore" => 1,
  122. "#Choose whether Amphibian is toggled",
  123. "amphibian" => false,
  124. "#Apple Rate",
  125. "apple"=> 25,
  126. "#Choose whether the UHC is split or non-split",
  127. "split"=>"both",
  128. "#Global Mute",
  129. "mute"=>false,
  130. "#Border",
  131. "border"=>1000
  132. ));
  133. $this->config->save();
  134. $this->getLogger()->info(TF::GRAY . 'The plugin has been enabled!');
  135. if($this->scenarioIsOn("heads")) {
  136. $this->getServer()->getCraftingManager()->registerRecipe((new ShapedRecipe(Item::get(Item::GOLDEN_APPLE, 2, 1)->setCustomName(TF::GOLD . 'Golden Head'),
  137. "XXX",
  138. "XYX",
  139. "XXX"
  140. ))->setIngredient("X", Item::get(Item::GOLD_INGOT, 0, 9))->setIngredient("Y", Item::get(Item::SKULL, 3, 1)));
  141. }
  142. new Timer($this, $this);
  143. $this->registerAllCommands();
  144. }
  145.  
  146. public function onPreLogin(PreLogin $event){
  147. $player = $event->getPlayer();
  148. $name = $player->getName();
  149. if(!file_exists($this->getDataFolder()."players/".strtolower($name).".yml")) {
  150. $this->player = new Config($this->getDataFolder() . "players/" . strtolower($name) . ".yml", Config::YAML, array(
  151. "#------UHC Stats/Others------",
  152. "#Players killed in a UHC.",
  153. "Kills" => 0,
  154. "#Number of deaths in a UHC",
  155. "Deaths" => 0,
  156. "#Amount of games played",
  157. "UHCs" => 0,
  158. "#Number of UHCs won.",
  159. "Wins" => 0,
  160. "#Total number of diamonds found",
  161. "Diamonds" => 0,
  162. "#Total number of golden heads eaten.",
  163. "Heads" => 0,
  164. "#Language spoken",
  165. "language" => "english",
  166. "#---------------------"
  167. ));
  168. $this->player->save();
  169. }
  170. }
  171.  
  172. public function onDisable()
  173. {
  174. $this->getLogger()->info(TF::GRAY.'The plugin has been disabled!');
  175. }
  176.  
  177. //Custom Functions
  178.  
  179. public function registerAllCommands(){
  180. $this->getServer()->getCommandMap()->registerAll("paradox_1.1", [new MainSpectateCommand($this),new MainEventCommand($this), new MainUHCCommand($this), new MainScenariosCommand($this), new MainHostCommand($this), new MainStatsCommand($this), new MainReportCommand($this), new MainMuteAllCommand($this), new MainInfoCommand($this)]);
  181. }
  182.  
  183. public function finalHeal(){
  184. foreach($this->getServer()->getOnlinePlayers() as $player){
  185. $health = $player->getMaxHealth();
  186. $food = $player->getMaxFood();
  187. $player->setHealth($health);
  188. $player->setFood($food);
  189. }
  190. }
  191.  
  192. //events
  193.  
  194. public function onBreak(Breaker $event){
  195. $player = $event->getPlayer();
  196. $this->config = new Config($this->getDataFolder()."config.yml");
  197. $this->player = new Config($this->getDataFolder() . "players/" . strtolower($player->getName()) . ".yml", Config::YAML);
  198. $multiore = $this->config->get("multi-ore");
  199. $apple = $this->config->get("apple");
  200.  
  201. if(($player->getLevel() === $this->getServer()->getLevelByName("UHC"))&&($this->status === self::STATUS_WAITING || $this->status === self::STATUS_COUNTDOWN)){
  202. $event->setCancelled(true);
  203. return;
  204. }
  205. if($player->getLevel() == $this->getServer()->getLevelByName("hubuhc")){
  206. if(!($player->hasPermission("uhc.perms.bypass"))){
  207. $event->setCancelled(true);
  208. return;
  209. }
  210. }
  211. $block = $event->getBlock()->getId();
  212. switch($block){
  213. case Block::GOLD_ORE:
  214. if($this->scenarioIsOn("cutclean")){
  215. if($this->scenarioIsOn("goldless")){
  216. $event->setDrops([Item::get(Item::AIR)]);
  217. return;
  218. }
  219. if($this->scenarioIsOn("barebones")){
  220. $event->setDrops([Item::get(Item::IRON_INGOT, 0, $multiore)]);
  221. return;
  222. }
  223. $event->setDrops([Item::get(Item::GOLD_INGOT, 0, $multiore)]);
  224. return;
  225. }
  226. if(!($this->scenarioIsOn("cutclean"))){
  227. $event->setDrops([Item::get(Item::GOLD_ORE, 0, $multiore)]);
  228. }
  229. break;
  230. case Block::DIAMOND_ORE:
  231. $diamonds = $this->player->get("Diamonds");
  232. $this->player->set("Diamonds", $diamonds + 1);
  233. $this->player->save();
  234. if($this->scenarioIsOn("diamondless")){
  235. $event->setDrops([Item::get(Item::AIR)]);
  236. return;
  237. }
  238. if($this->scenarioIsOn("blood-diamonds")){
  239. $ev = new EntityDamageByBlockEvent(Block::get(Block::DIAMOND_ORE), $player, DAMAGE::CAUSE_CUSTOM, 1);
  240. $player->attack(1, $ev);
  241. $event->setDrops([Item::get(Item::DIAMOND, 0, $multiore)]);
  242. return;
  243. }
  244. if($this->scenarioIsOn("barebones")){
  245. $event->setDrops([Item::get(Item::IRON_INGOT, 0, $multiore)]);
  246. return;
  247. }
  248. $event->setDrops([Item::get(Item::DIAMOND, 0, $multiore)]);
  249. break;
  250. case Block::IRON_ORE:
  251. if($this->scenarioIsOn("cutclean")){
  252. $event->setDrops([Item::get(Item::IRON_INGOT, 0, $multiore)]);
  253. }
  254. break;
  255. case Block::LEAVES:
  256. case Block::LEAVES2:
  257. $rand = mt_rand(1, $apple);
  258. switch($rand){
  259. case 1:
  260. $event->setDrops([Item::get(Item::APPLE)]);
  261. }
  262. break;
  263. case Block::GRAVEL:
  264. if($this->scenarioIsOn("cutclean")){
  265. $event->setDrops([Item::get(Item::FLINT)]);
  266. }
  267. }
  268. }
  269.  
  270. public function onEat(Eat $event){
  271. $item = $event->getItem();
  272. $this->config = new Config($this->getDataFolder()."config.yml");
  273. $name = $item->getName();
  274. $id = $item->getId();
  275. $meta = $item->getDamage();
  276. $player = $event->getPlayer();
  277. if($id == Item::GOLDEN_APPLE) {
  278. if ($meta == 2) {
  279. if ($name === TF::GOLD . "Golden Head") {
  280. $player->addEffect(Effect::getEffect(Effect::REGENERATION)->setAmplifier(1)->setDuration(20 * 9));
  281. $health = $player->getHealth();
  282. $player->setHealth($health + 8);
  283. $this->player = new Config($this->getDataFolder() . "players/" . strtolower($player->getName()) . ".yml", Config::YAML);
  284. $heads = $this->player->get("Heads");
  285. $this->player->set("Heads", $heads + 1);
  286. $this->player->save();
  287. }
  288. }
  289. }
  290. }
  291.  
  292. public function onRegen(Regen $event){
  293. $player = $event->getEntity();
  294. if($player instanceof Player){
  295. if($player->hasEffect(Effect::getEffect(Effect::HEALING))){
  296.  
  297. }
  298. if(!$player->hasEffect(Effect::getEffect(Effect::REGENERATION))){
  299. $reason = $event->getRegainReason();
  300. switch($reason){
  301. case Regen::CAUSE_SATURATION:
  302. $event->setCancelled();
  303. break;
  304. case Regen::CAUSE_EATING:
  305. $event->setCancelled();
  306. }
  307. }
  308. }
  309. }
  310.  
  311. public function onJoin(Join $event)
  312. {
  313. $player = $event->getPlayer();
  314. if($player->isSurvival()){
  315. if(!isset($this->queue[$player->getName()])){
  316. $this->queue[$player->getName()] = $player->getName();
  317. }
  318. }
  319. if(isset($this->relogPos[$player->getName()])){
  320. $player->teleport($this->relogPos[$player->getName()]);
  321. }
  322.  
  323. $event->setJoinMessage(TF::DARK_GRAY.TF::BOLD.'['.TF::RESET.TF::GREEN.'+'.TF::DARK_GRAY.TF::BOLD.']'.TF::RESET.TF::GRAY." ".$player->getDisplayName());
  324. }
  325.  
  326. public function onQuit(Quit $event)
  327. {
  328. $player = $event->getPlayer();
  329. if(isset($this->queue[$player->getName()])){
  330. unset($this->queue[$player->getName()]);
  331. }
  332. if(!isset($this->relogPos[$player->getName()])){
  333. $this->relogPos[$player->getName()] = clone $player->getPosition();
  334. }
  335. $event->setQuitMessage(TF::DARK_GRAY.TF::BOLD.'['.TF::RESET.TF::RED.'-'.TF::DARK_GRAY.TF::BOLD.']'.TF::RESET.TF::GRAY." ".$player->getDisplayName());
  336. }
  337.  
  338. public function onChat(PlayerChatEvent $event){
  339. $player = $event->getPlayer();
  340. $this->config = new Config($this->getDataFolder()."config.yml");
  341. if($this->config->get("mute") === "true") {
  342. if (!($player->hasPermission("uhc.perms.talk"))) {
  343. $event->setCancelled(true);
  344. $event->getPlayer()->sendMessage($this->getPrefix(). TF::RED . "You can't talk during the global mute!");
  345. }
  346. }
  347. }
  348.  
  349. public function onEntityDeath(EDeath $event){
  350. $entity = $event->getEntity();
  351. if($this->scenarioIsOn("cutclean")) {
  352. if ($entity instanceof Chicken) {
  353. $event->setDrops([Item::get(Item::COOKED_CHICKEN, 0, mt_rand(3, 5))]);
  354. $entity->getLevel()->dropItem(new Vector3($entity->x, $entity->y, $entity->z), Item::get(Item::FEATHER, 0, mt_rand(2, 4)));
  355. }
  356. if ($entity instanceof Cow) {
  357. $event->setDrops([Item::get(Item::COOKED_BEEF, 0, mt_rand(3, 5))]);
  358. $entity->getLevel()->dropItem(new Vector3($entity->x, $entity->y, $entity->z), Item::get(Item::LEATHER, 0, mt_rand(2, 4)));
  359. }
  360. if ($entity instanceof Sheep) {
  361. $event->setDrops([Item::get(Item::COOKED_MUTTON, 0, mt_rand(3, 5))]);
  362. }
  363. if ($entity instanceof Spider) {
  364. $event->setDrops([Item::get(Item::SPIDER_EYE, 0, mt_rand(0, 2))]);
  365. $entity->getLevel()->dropItem(new Vector3($entity->x, $entity->y, $entity->z), Item::get(Item::STRING, 0, mt_rand(2, 5)));
  366. }
  367. if ($entity instanceof CaveSpider) {
  368. $event->setDrops([Item::get(Item::SPIDER_EYE, 0, mt_rand(0, 2))]);
  369. $entity->getLevel()->dropItem(new Vector3($entity->x, $entity->y, $entity->z), Item::get(Item::STRING, 0, mt_rand(2, 5)));
  370. }
  371. if ($entity instanceof Skeleton) {
  372. $event->setDrops([Item::get(Item::ARROW, 0, 2)]);
  373. $entity->getLevel()->dropItem(new Vector3($entity->x, $entity->y, $entity->z), Item::get(Item::BONE, 0, mt_rand(0, 2)));
  374. }
  375. if ($entity instanceof Zombie) {
  376. $event->setDrops([Item::get(Item::BAKED_POTATO, 0, mt_rand(1, 5))]);
  377. }
  378. }
  379. }
  380.  
  381. /**
  382. * @param Death $event
  383. */
  384. public function onDeath(Death $event)
  385. {
  386. $player = $event->getEntity();
  387. $event->setDeathMessage($this->getPrefix().TF::GRAY." A player has been eliminated!");
  388. $this->player = new Config($this->getDataFolder() . "players/" . strtolower($player->getName()) . ".yml", Config::YAML);
  389. $this->player->set("Deaths", $this->player->get("Deaths")+1);
  390. $this->player->save();
  391. $cause = $player->getLastDamageCause();
  392. if(isset($this->queue[$player->getName()])){
  393. unset($this->queue[$player->getName()]);
  394. }
  395. if($cause instanceof EntityDamageByEntityEvent){
  396. $killer = $cause->getDamager();
  397. if($killer instanceof Player){
  398. $kname = $killer->getName();
  399. $this->kills[$kname] = $this->kills[$kname] + 1;
  400. if($this->getLanguage($killer) == "english"){
  401. $killer->sendMessage(TF::DARK_GRAY."[".TF::BLUE."Eon".TF::WHITE."UHC".TF::DARK_GRAY."]".TF::RESET.TF::GRAY.' A kill has been added to your stats!');
  402. }
  403. if($this->getLanguage($killer) == "spanish"){
  404. $killer->sendMessage(TF::DARK_GRAY."[".TF::BLUE."Eon".TF::WHITE."UHC".TF::DARK_GRAY."]".TF::RESET.TF::GRAY.' Una matanza ha sido agregado a sus estadísticas!');
  405. }
  406. $this->player = new Config($this->getDataFolder()."players/". strtolower($killer->getName()).".yml",Config::YAML);
  407. $kills = $this->player->get("Kills");
  408. $this->player->set("Kills", $kills + 1);
  409. $this->player->save();
  410. }
  411. }
  412. if ($player->hasPermission("uhc.perms.spectate")) {
  413. $player->setGamemode(3);
  414. if($this->getLanguage($player) == "english"){
  415. $player->sendMessage(TF::DARK_GRAY."[".TF::BLUE."Eon".TF::WHITE."UHC".TF::DARK_GRAY."]".TF::RESET.TF::GRAY." You have died! Use /spectate [name] to spectate a player!");
  416. }
  417. if($this->getLanguage($player) == "spanish"){
  418. $player->sendMessage(TF::DARK_GRAY."[".TF::BLUE."Eon".TF::WHITE."UHC".TF::DARK_GRAY."]".TF::RESET.TF::GRAY." ¡Te has muerto! Uso /spectate [nombre] spectate un jugador!");
  419. }
  420. }
  421. if ($this->scenarioIsOn("diamondless")) {
  422. $player->getLevel()->dropItem(new Vector3($player->x, $player->y, $player->z), Item::get(Item::DIAMOND, 0, 1));
  423. }
  424. if ($this->scenarioIsOn("goldless")) {
  425. $player->getLevel()->dropItem(new Vector3($player->x, $player->y, $player->z), Item::get(Item::GOLD_INGOT, 0, 8));
  426. $player->getLevel()->dropItem(new Vector3($player->x, $player->y, $player->z), Item::get(Item::GOLDEN_APPLE, 2, 1)->setCustomName(TF::GOLD . 'Golden Head'));
  427. }
  428. if ($this->scenarioIsOn("barebones")) {
  429. $player->getLevel()->dropItem(new Vector3($player->x, $player->y, $player->z), Item::get(Item::DIAMOND, 0, 1));
  430. $player->getLevel()->dropItem(new Vector3($player->x, $player->y, $player->z), Item::get(Item::STRING, 0, 2));
  431. $player->getLevel()->dropItem(new Vector3($player->x, $player->y, $player->z), Item::get(Item::ARROW, 0, 32));
  432. $player->getLevel()->dropItem(new Vector3($player->x, $player->y, $player->z), Item::get(Item::GOLDEN_APPLE, 0, 1));
  433. }
  434. if ($this->scenarioIsOn("pole")) {
  435. $this->setHead($player);
  436. }
  437. if(!($player->hasPermission("uhc.perms.spectate"))){
  438. $task = new DeathTask($this, $player);
  439. $this->getServer()->getScheduler()->scheduleDelayedRepeatingTask($task, 0, 20);
  440. if($this->getLanguage($player) == "english"){
  441. $player->sendMessage(TF::DARK_GRAY."[".TF::BLUE."Eon".TF::WHITE."UHC".TF::DARK_GRAY."]".TF::RESET.TF::GRAY." You have 30 seconds to say your final words before getting kicked and unwhitelisted!");
  442. }
  443. if($this->getLanguage($player) == "spanish"){
  444. $player->sendMessage(TF::DARK_GRAY."[".TF::BLUE."Eon".TF::WHITE."UHC".TF::DARK_GRAY."]".TF::RESET.TF::GRAY." Tienes 30 segundos para decir sus últimas palabras antes de ser expulsado y unwhitelisted!");
  445. }
  446. }
  447. }
  448.  
  449. /**
  450. * @param Damage $event
  451. */
  452. public function onDamage(Damage $event){
  453. $cause = $event->getCause();
  454. $entity = $event->getEntity();
  455. $e = $this->getEvent();
  456. if($event instanceof EntityDamageByEntityEvent){
  457. $damager = $event->getDamager();
  458. if($entity instanceof Player){
  459. if($damager instanceof Player){
  460. switch($e){
  461. case self::STATUS_WAITING:
  462. case self::STATUS_COUNTDOWN:
  463. case self::STATUS_GRACE:
  464. $event->setCancelled();
  465. break;
  466. }
  467. }
  468. }
  469. }
  470. }
  471.  
  472.  
  473. public function onPlace(Place $event){
  474. $block = $event->getBlock()->getId();
  475. $level = $event->getPlayer()->getLevel();
  476. if($level == $this->getServer()->getLevelByName("hubuhc")){
  477. $player = $event->getPlayer();
  478. if(!($player->hasPermission("uhc.perms.bypass"))){
  479. $event->setCancelled(true);
  480. }
  481. }
  482. if($this->scenarioIsOn("lights-out")){
  483. if($block == Block::TORCH){
  484. $event->setCancelled();
  485. $event->getPlayer()->sendMessage($this->getPrefix().TF::RED." You can't place torches in a lights-out game!");
  486. }
  487. }
  488.  
  489. }
  490.  
  491. public function setHead(Player $player){
  492. $level = $player->getLevel();
  493. $x = $player->getFloorX();
  494. $y = $player->getFloorY();
  495. $z = $player->getFloorZ();
  496. $pos = $player->getPosition();
  497. $level->setBlock($pos->add(0, 1, 0), Block::get(Block::SKULL_BLOCK), true, true);
  498. $level->setBlock($pos, Block::get(Block::NETHER_BRICK_FENCE));
  499. $chunk = $level->getChunk($x >> 4, $z >> 4);
  500. $nbt = new CompoundTag("", [
  501. new StringTag("id", Tile::SKULL),
  502. new IntTag("x", $x),
  503. new IntTag("y", $y+1),
  504. new IntTag("z", $z),
  505. new ByteTag("SkullType", SkullBlock::STEVE_HEAD),
  506. new ByteTag("Rot", floor(($player->yaw * 16) + 0.5))
  507. ]);
  508. Tile::createTile("Skull", $chunk, $nbt);
  509. $t = $level->getTile(new Vector3($x, $y+1, $z));
  510. $level->addTile($t);
  511.  
  512.  
  513.  
  514. }
  515.  
  516.  
  517. public function scenarioIsOn(string $scenario){
  518. $this->config = new Config($this->getDataFolder()."config.yml");
  519. $sc = $this->config->get($scenario);
  520. if($sc == true){
  521. return true;
  522. }
  523. return false;
  524. }
  525. public function getLanguage(Player $player){
  526. $this->player = new Config($this->getDataFolder()."players/".strtolower($player->getName()).".yml");
  527. return $this->player->get("language");
  528. }
  529.  
  530. public function setLanguage(Player $player, $language){
  531. $this->player = new Config($this->getDataFolder()."players/".strtolower($player->getName()).".yml");
  532. $this->player->set("language", $language);
  533. }
  534.  
  535. public function getPrefix(){
  536. return $this->prefix;
  537. }
  538. public function getEvent(){
  539. return $this->status;
  540. }
  541.  
  542. public function getBorder(){
  543. $this->config = new Config($this->getDataFolder()."config.yml");
  544. return $this->config->get("border");
  545. }
  546.  
  547.  
  548.  
  549.  
  550.  
  551.  
  552.  
  553.  
  554. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement