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

Commit 124e25c

Browse files
committed
Merge branch 'develop' of https://github.com/VectorNetworkProject/TheMix into develop
2 parents 9cbc151 + c979ba5 commit 124e25c

File tree

8 files changed

+71
-8
lines changed

8 files changed

+71
-8
lines changed

src/VectorNetworkProject/TheMix/event/player/ThePlayerInteractEvent.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010

1111
use pocketmine\event\Listener;
1212
use pocketmine\event\player\PlayerInteractEvent;
13+
use pocketmine\Player;
1314
use VectorNetworkProject\TheMix\game\corepvp\TeamManager;
1415
use VectorNetworkProject\TheMix\game\DefaultConfig;
1516

@@ -27,6 +28,7 @@ public function event(PlayerInteractEvent $event)
2728
return;
2829
}
2930
TeamManager::JoinTeam($player);
31+
$player->setGamemode(Player::SURVIVAL);
3032
}
3133
}
3234
}
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
<?php
2+
/**
3+
* Copyright (c) 2018 VectorNetworkProject. All rights reserved. MIT license.
4+
*
5+
* GitHub: https://github.com/VectorNetworkProject/TheMix
6+
* Website: https://www.vector-network.tk
7+
*/
8+
9+
namespace VectorNetworkProject\TheMix\game;
10+
11+
use pocketmine\entity\Effect;
12+
use pocketmine\entity\EffectInstance;
13+
use pocketmine\Player;
14+
use pocketmine\Server;
15+
use VectorNetworkProject\TheMix\event\game\TheEndGameEvent;
16+
use VectorNetworkProject\TheMix\game\corepvp\CoreManager;
17+
use VectorNetworkProject\TheMix\game\corepvp\TeamManager;
18+
use VectorNetworkProject\TheMix\TheMix;
19+
20+
class GameManager
21+
{
22+
public static function resetGame(): void
23+
{
24+
TeamManager::resetTeam();
25+
CoreManager::resetHP();
26+
TheEndGameEvent::setFinish(false);
27+
foreach (Server::getInstance()->getOnlinePlayers() as $player) {
28+
$player->teleport(Server::getInstance()->getDefaultLevel()->getSpawnLocation());
29+
$player->setGamemode(Player::ADVENTURE);
30+
$player->setNameTag($player->getName());
31+
$player->setDisplayName($player->getName());
32+
$player->setFood(20);
33+
$player->setHealth(20);
34+
$player->setMaxHealth(20);
35+
$player->getInventory()->clearAll();
36+
$player->getArmorInventory()->clearAll();
37+
$player->removeAllEffects();
38+
$player->addEffect(new EffectInstance(Effect::getEffect(Effect::NIGHT_VISION), 99999999 * 20, 11, false));
39+
}
40+
TheMix::getInstance()->getServer()->unloadLevel(TheMix::getInstance()->getServer()->getLevelByName(DefaultConfig::getStageLevelName()));
41+
TheMix::getInstance()->getServer()->loadLevel(DefaultConfig::getStageLevelName());
42+
}
43+
}

src/VectorNetworkProject/TheMix/game/corepvp/CoreManager.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,19 @@
1010

1111
use pocketmine\block\Block;
1212
use pocketmine\Player;
13+
use VectorNetworkProject\TheMix\game\corepvp\blue\BlueCoreManager;
14+
use VectorNetworkProject\TheMix\game\corepvp\red\RedCoreManager;
1315

1416
abstract class CoreManager
1517
{
18+
const MAX_HP = 100;
19+
20+
public static function resetHP(): void
21+
{
22+
RedCoreManager::setHP(self::MAX_HP);
23+
BlueCoreManager::setHP(self::MAX_HP);
24+
}
25+
1626
/**
1727
* @param int $hp
1828
*/

src/VectorNetworkProject/TheMix/game/corepvp/TeamManager.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,12 @@ public static function JoinTeam(Player $player)
4343
}
4444
}
4545

46+
public static function resetTeam(): void
47+
{
48+
RedTeamManager::ClearList();
49+
BlueTeamManager::ClearList();
50+
}
51+
4652
/**
4753
* @param Player $player
4854
*/

src/VectorNetworkProject/TheMix/game/corepvp/blue/BlueCoreManager.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
class BlueCoreManager extends CoreManager
1818
{
1919
/** @var int $hp */
20-
private static $hp = 75;
20+
private static $hp = self::MAX_HP;
2121

2222
/**
2323
* @param int $hp

src/VectorNetworkProject/TheMix/game/corepvp/red/RedCoreManager.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
class RedCoreManager extends CoreManager
1818
{
1919
/** @var int $hp */
20-
private static $hp = 75;
20+
private static $hp = self::MAX_HP;
2121

2222
/**
2323
* @param int $hp

src/VectorNetworkProject/TheMix/task/BlockReGeneratorTask.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010

1111
use pocketmine\block\Block;
1212
use pocketmine\scheduler\Task;
13+
use VectorNetworkProject\TheMix\TheMix;
1314

1415
class BlockReGeneratorTask extends Task
1516
{
@@ -26,6 +27,11 @@ public function __construct(Block $block)
2627
*/
2728
public function onRun(int $currentTick)
2829
{
30+
if (TheMix::getInstance()->getServer()->getLevelByName($this->getBlock()->getLevel()->getName())->getId() === $this->getBlock()->getLevel()->getId()) {
31+
$this->getHandler()->cancel();
32+
33+
return;
34+
}
2935
$this->getBlock()->getLevel()->setBlock($this->getBlock()->asVector3(), $this->block);
3036
}
3137

src/VectorNetworkProject/TheMix/task/ResetGameTask.php

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,7 @@
99
namespace VectorNetworkProject\TheMix\task;
1010

1111
use pocketmine\scheduler\Task;
12-
use pocketmine\Server;
13-
use VectorNetworkProject\TheMix\game\DefaultConfig;
12+
use VectorNetworkProject\TheMix\game\GameManager;
1413

1514
class ResetGameTask extends Task
1615
{
@@ -19,9 +18,6 @@ class ResetGameTask extends Task
1918
*/
2019
public function onRun(int $currentTick)
2120
{
22-
foreach (Server::getInstance()->getOnlinePlayers() as $player) {
23-
$player->transfer(DefaultConfig::getIp(), DefaultConfig::getPort(), '再接続');
24-
}
25-
Server::getInstance()->shutdown();
21+
GameManager::resetGame();
2622
}
2723
}

0 commit comments

Comments
 (0)