Skip to content
This repository was archived by the owner on Feb 8, 2019. It is now read-only.

Commit f380c20

Browse files
committed
Xp関連の完成
1 parent 62c2dfe commit f380c20

File tree

1 file changed

+30
-4
lines changed
  • src/VectorNetworkProject/TheMix/game/level

1 file changed

+30
-4
lines changed

src/VectorNetworkProject/TheMix/game/level/XP.php

Lines changed: 30 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,34 +9,60 @@
99
namespace VectorNetworkProject\TheMix\game\level;
1010

1111
use pocketmine\Player;
12+
use pocketmine\Server;
13+
use VectorNetworkProject\TheMix\event\game\PlayerXpChangeEvent;
14+
use VectorNetworkProject\TheMix\provider\JSON;
1215

1316
class XP
1417
{
18+
/* @var string */
19+
public const XP = 'xp';
20+
21+
/* @var string */
22+
public const MAX = 'max';
23+
1524
/**
1625
* @param Player $player
1726
* @param int $xp
27+
*
1828
* @return void
1929
*/
2030
public static function setXP(Player $player, int $xp): void
2131
{
22-
//TODO:
32+
$event = new PlayerXpChangeEvent($player, $xp);
33+
Server::getInstance()->getPluginManager()->callEvent($event);
34+
if (!$event->isCancelled()) {
35+
$db = new JSON($player->getXuid(), Level::FILE_NAME);
36+
$db->set(self::XP, $xp);
37+
}
2338
}
2439

2540
/**
2641
* @param Player $player
42+
* @param int $min
43+
* @param int $max
44+
*
2745
* @return void
2846
*/
29-
public static function addXP(Player $player): void
47+
public static function addXP(Player $player, int $min = 10, int $max = 15): void
3048
{
31-
//TODO:
49+
$xp = mt_rand($min, $max);
50+
$event = new PlayerXpChangeEvent($player, $xp);
51+
Server::getInstance()->getPluginManager()->callEvent($event);
52+
if (!$event->isCancelled()) {
53+
$db = new JSON($player->getXuid(), Level::FILE_NAME);
54+
$db->set(self::XP, self::getXP($player) + $xp);
55+
}
3256
}
3357

3458
/**
3559
* @param Player $player
60+
*
3661
* @return int
3762
*/
3863
public static function getXP(Player $player): int
3964
{
40-
//TODO:
65+
$db = new JSON($player->getXuid(), Level::FILE_NAME);
66+
return $db->get(self::XP);
4167
}
4268
}

0 commit comments

Comments
 (0)