public function buy(Player $buyer) { $rpg = ToAruPG::getInstance()->getRPGPlayerByName($buyer); $skill = SkillManager::getSkill($this->skillId); $rpg->acquireSkill($skill); EconomyAPI::getInstance()->reduceMoney($buyer, $this->cost, true, "To Aru Shop"); $buyer->sendMessage(TextFormat::AQUA . ToAruPG::getTranslation("BOUGHT")); }
public function buy(Player $buyer) { $rpg = ToAruPG::getInstance()->getRPGPlayerByName($buyer); $job = JobManager::getJob($this->jobId); $rpg->changeJob($job); foreach ($job->getSkills() as $skill) { $skill = SkillManager::getSkill($skill); if (!$skill->canBeAcquired($rpg)) { $buyer->sendMessage(TextFormat::RED . ToAruPG::getTranslation("SKILL_COULD_NOT_ACQUIRE", ToAruPG::getTranslation($skill->getName()))); continue; } if ($rpg->hasSkill($skill->getId())) { $buyer->sendMessage(TextFormat::RED . ToAruPG::getTranslation("ALREADY_HAS_SKILL", ToAruPG::getTranslation($skill->getName()))); continue; } $rpg->acquireSkill($skill); } EconomyAPI::getInstance()->reduceMoney($buyer, $this->cost, true, "To Aru Shop"); $buyer->sendMessage(TextFormat::AQUA . ToAruPG::getTranslation("BOUGHT")); }
public function onRun($currentTick) { ToAruPG::getInstance()->saveAll(); ToAruPG::getInstance()->getLogger()->info(TextFormat::AQUA . "Auto-saved!"); }
public function setArmorStatus(Status $status) { Server::getInstance()->getPluginManager()->callEvent(new ArmorChangeEvent(ToAruPG::getInstance(), $this, $this->armorStatus, $status)); $this->armorStatus = $status; }
public function onRun($currentTick) { ToAruPG::getInstance()->heal(); }
public function onRun($currentTick) { if (!ToAruPG::getInstance()->isValidPlayer($this->player->getPlayer())) { return; } $pos = $this->player->getPlayer()->getPosition(); for ($i = 0; $i < self::SPLIT_SHOT_COUNT; $i++) { $arrow = Archery::createEffectArrow($this->player->getPlayer(), $pos, new Vector3(mt_rand(-5, 5) / 5, -1, mt_rand(-5, 5) / 5), 0, -90, 255, 0, 120, false); $arrow->namedtag["ArcheryDamage"] = new Double("ArcheryDamage", $this->player->getCurrentJob()->getFinalDamage($this->player) * (2 + $this->level / 10)); $arrow->namedtag["Custom"] = new Int("Custom", 1); $this->player->getPlayer()->getLevel()->addEntity($arrow); $arrow->spawnToAll(); } }
public function handle(ProjectileHitEvent $event) { $shootingEntity = $event->getEntity()->shootingEntity; if (!$shootingEntity instanceof Player) { return; } $rpgPlayer = ToAruPG::getInstance()->getRPGPlayerByName($shootingEntity->getName()); if ($rpgPlayer === null) { return; } $skill = $rpgPlayer->getSkillById(SkillLightningShot::getId()); if (!$skill instanceof SkillLightningShot) { return; } $pos = $event->getEntity(); $aedPk = new AddEntityPacket(); $aedPk->eid = Entity::$entityCount++; $aedPk->type = 93; $aedPk->x = $pos->getX(); $aedPk->y = $pos->getY(); $aedPk->z = $pos->getZ(); $aedPk->speedX = 0; $aedPk->speedY = 0; $aedPk->speedZ = 0; $aedPk->yaw = 0; $aedPk->pitch = 0; $aedPk->metadata = []; $expPk = new ExplodePacket(); $expPk->x = $pos->getX(); $expPk->y = $pos->getY(); $expPk->z = $pos->getZ(); $expPk->radius = self::EXPLOSION_SIZE; $pos->getLevel()->addChunkPacket($pos->chunk->getX(), $pos->chunk->getZ(), $aedPk); $pos->getLevel()->addChunkPacket($pos->chunk->getX(), $pos->chunk->getZ(), $expPk); $aabb = new AxisAlignedBB($pos->getX() - self::EXPLOSION_SIZE - 1, $pos->getY() - self::EXPLOSION_SIZE - 1, $pos->getZ() - self::EXPLOSION_SIZE - 1, $pos->getX() + self::EXPLOSION_SIZE + 1, $pos->getY() + self::EXPLOSION_SIZE + 1, $pos->getZ() + self::EXPLOSION_SIZE + 1); foreach ($pos->getLevel()->getNearbyEntities($aabb, $shootingEntity) as $e) { if ($e instanceof Player && !ToAruPG::$pvpEnabled) { continue; } $event = new EntityDamageByEntityEvent($shootingEntity, $e, EntityDamageByEntityEvent::CAUSE_CUSTOM, $skill->getDamage()); Server::getInstance()->getPluginManager()->callEvent($event); if (!$event->isCancelled()) { $e->attack($skill->getDamage(), $event); $thread = new SafeBurnThread($e, $shootingEntity, $skill->getFireTick()); $thread->setHandler(Server::getInstance()->getScheduler()->scheduleRepeatingTask($thread, 40)); } } }
public function setXp($xp) { Server::getInstance()->getPluginManager()->callEvent(new XPChangeEvent(ToAruPG::getInstance(), $this->owner, $this->xp, $xp)); $this->xp = $xp; }
public function buy(Player $buyer) { ToAruPG::getInstance()->getRPGPlayerByName($buyer)->changeJob(JobManager::getJob($this->jobId)); EconomyAPI::getInstance()->reduceMoney($buyer, $this->cost, true, "To Aru Shop"); $buyer->sendMessage(TextFormat::AQUA . ToAruPG::getTranslation("BOUGHT")); }