diff --git a/.gitignore b/.gitignore index 5ba5810..9273723 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,6 @@ composer.phar # JetBrains IDE .idea/workspace.xml .idea/dictionaries/ + +# VS Code +.vscode \ No newline at end of file diff --git a/.idea/TheMix.iml b/.idea/TheMix.iml index 8736bca..f47d728 100644 --- a/.idea/TheMix.iml +++ b/.idea/TheMix.iml @@ -4,6 +4,7 @@ + diff --git a/.idea/php.xml b/.idea/php.xml index bdcb744..0e55d51 100644 --- a/.idea/php.xml +++ b/.idea/php.xml @@ -20,6 +20,7 @@ + diff --git a/.poggit.yml b/.poggit.yml index 21b3a05..748f7a1 100644 --- a/.poggit.yml +++ b/.poggit.yml @@ -9,7 +9,7 @@ projects: - src: fuyutsuki/libform/libform version: 0.4.0 - src: InkoHX/LeveLibrary/LeveLibrary - version: 0.0.3 + version: 0.0.4 - src: InkoHX/GoldLibrary/GoldLibrary - version: 0.0.2 + version: 0.0.3 ... diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index e69de29..0000000 diff --git a/composer.json b/composer.json index ba32fd0..37b1691 100644 --- a/composer.json +++ b/composer.json @@ -1,5 +1,6 @@ { "name": "vectornetworkproject/themix", + "description": "Original game of VectorNetwork", "homepage": "https://www.vector-network.tk", "type": "project", "license": "MIT", @@ -48,7 +49,7 @@ "ext-zip": "*", "ext-zlib": ">=1.2.11", "mdanter/ecc": "^0.5.0", - "pocketmine/pocketmine-mp": "^3.3.4", + "pocketmine/pocketmine-mp": "^3.5.0", "pocketmine/raklib": "^0.12.0", "pocketmine/spl": "^0.3.0", "pocketmine/binaryutils": "^0.1.0", @@ -56,8 +57,9 @@ "pocketmine/math": "^0.2.0", "pocketmine/snooze": "^0.1.0", "fuyutsuki/libform": "^0.4.0", - "inkohx/levelibrary": "^0.0.3", - "inkohx/goldlibrary": "^0.0.2" + "inkohx/levelibrary": "^0.0.4", + "inkohx/goldlibrary": "^0.0.3", + "daverandom/callback-validator": "dev-master" }, "autoload": { "psr-4": { diff --git a/composer.lock b/composer.lock index 895c766..ca4545f 100644 --- a/composer.lock +++ b/composer.lock @@ -4,8 +4,48 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "450a3308919b1702d6a461a1374f1cc6", + "content-hash": "a5ca7c6a8e0117df725c80046c89ebfb", "packages": [ + { + "name": "daverandom/callback-validator", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/DaveRandom/CallbackValidator.git", + "reference": "d87a08cddbc6099816ed01e50ce25cdfc43b542f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/DaveRandom/CallbackValidator/zipball/d87a08cddbc6099816ed01e50ce25cdfc43b542f", + "reference": "d87a08cddbc6099816ed01e50ce25cdfc43b542f", + "shasum": "" + }, + "require": { + "ext-reflection": "*", + "php": ">=7.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "DaveRandom\\CallbackValidator\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Chris Wright", + "email": "cw@daverandom.com" + } + ], + "description": "Tools for validating callback signatures", + "time": "2017-04-03T15:22:41+00:00" + }, { "name": "fgrosse/phpasn1", "version": "v2.1.1", @@ -77,7 +117,7 @@ }, { "name": "fuyutsuki/libform", - "version": "v0.4.0", + "version": "0.4.0", "source": { "type": "git", "url": "https://github.com/fuyutsuki/libform", @@ -125,11 +165,11 @@ }, { "name": "inkohx/goldlibrary", - "version": "v0.0.2", + "version": "v0.0.3", "source": { "type": "git", "url": "https://github.com/InkoHX/GoldLibrary", - "reference": "19c5948ed9e610256f0c7182a7640d2171d0fcb5" + "reference": "358c467b005ae72316d80c9edbbb3590b9025d3c" }, "require": { "ext-bcmath": "*", @@ -157,7 +197,7 @@ "pocketmine/binaryutils": "^0.1.0", "pocketmine/math": "^0.2.0", "pocketmine/nbt": "^0.2.1", - "pocketmine/pocketmine-mp": "^3.0", + "pocketmine/pocketmine-mp": "^3.4.0", "pocketmine/raklib": "^0.12.0", "pocketmine/snooze": "^0.1.0", "pocketmine/spl": "^0.3.0" @@ -180,15 +220,15 @@ } ], "description": "A library that can easily create a gold system", - "time": "2018-11-30T15:08:24+00:00" + "time": "2018-12-07T12:48:54+00:00" }, { "name": "inkohx/levelibrary", - "version": "v0.0.3", + "version": "v0.0.4", "source": { "type": "git", "url": "https://github.com/InkoHX/LeveLibrary", - "reference": "6ddf08c66abcfa52dafa85fde4589099b1d0c927" + "reference": "46fb8c148d6c414d4d89b89512b851a3efc6a2d7" }, "require": { "ext-bcmath": "*", @@ -216,7 +256,7 @@ "pocketmine/binaryutils": "^0.1.0", "pocketmine/math": "^0.2.0", "pocketmine/nbt": "^0.2.1", - "pocketmine/pocketmine-mp": "^3.0", + "pocketmine/pocketmine-mp": "^3.4.0", "pocketmine/raklib": "^0.12.0", "pocketmine/snooze": "^0.1.0", "pocketmine/spl": "^0.3.0" @@ -239,20 +279,20 @@ } ], "description": "A library that can easily create a level system", - "time": "2018-12-01T10:14:09+00:00" + "time": "2018-12-07T12:47:27+00:00" }, { "name": "mdanter/ecc", - "version": "v0.5.1", + "version": "v0.5.2", "source": { "type": "git", "url": "https://github.com/phpecc/phpecc.git", - "reference": "9a3aca17c6dfc04bdaad2e7ddab3b8df656ffc5b" + "reference": "b95f25cc1bacc83a9f0ccd375900b7cfd343029e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpecc/phpecc/zipball/9a3aca17c6dfc04bdaad2e7ddab3b8df656ffc5b", - "reference": "9a3aca17c6dfc04bdaad2e7ddab3b8df656ffc5b", + "url": "https://api.github.com/repos/phpecc/phpecc/zipball/b95f25cc1bacc83a9f0ccd375900b7cfd343029e", + "reference": "b95f25cc1bacc83a9f0ccd375900b7cfd343029e", "shasum": "" }, "require": { @@ -311,7 +351,7 @@ "secp256k1", "secp256r1" ], - "time": "2018-12-01T23:35:23+00:00" + "time": "2018-12-03T18:17:01+00:00" }, { "name": "pocketmine/binaryutils", @@ -363,13 +403,14 @@ }, { "name": "pocketmine/nbt", - "version": "0.2.2", + "version": "0.2.3", "source": { "type": "git", "url": "https://github.com/pmmp/NBT", - "reference": "474f0cf0a47656d0122b4f3f71302e694ed6977b" + "reference": "291bf5cc2a94500eada1edbda51d15bed25a1e1c" }, "require": { + "ext-zlib": "*", "php": ">=7.2.0", "php-64bit": "*", "pocketmine/binaryutils": "^0.1.0" @@ -389,17 +430,18 @@ "LGPL-3.0" ], "description": "PHP library for working with Named Binary Tags", - "time": "2018-10-12T08:26:44+00:00" + "time": "2018-12-03T16:08:28+00:00" }, { "name": "pocketmine/pocketmine-mp", - "version": "3.3.4", + "version": "3.5.0", "source": { "type": "git", "url": "https://github.com/pmmp/PocketMine-MP", - "reference": "aa7206126a0f739ff32c93f5539f2988ee469e5c" + "reference": "2323601f98bf5f48901cd57b96d0e680a7d5e56e" }, "require": { + "daverandom/callback-validator": "dev-master", "ext-bcmath": "*", "ext-ctype": "*", "ext-curl": "*", @@ -444,7 +486,7 @@ ], "description": "A server software for Minecraft: Pocket Edition written in PHP", "homepage": "https://pmmp.io", - "time": "2018-12-01T10:00:38+00:00" + "time": "2018-12-12T19:03:07+00:00" }, { "name": "pocketmine/raklib", @@ -529,7 +571,8 @@ "aliases": [], "minimum-stability": "stable", "stability-flags": { - "ext-pthreads": 20 + "ext-pthreads": 20, + "daverandom/callback-validator": 20 }, "prefer-stable": false, "prefer-lowest": false, diff --git a/plugin.yml b/plugin.yml index efe0571..38a9f8b 100644 --- a/plugin.yml +++ b/plugin.yml @@ -6,7 +6,7 @@ softdepend: description: "Original game of VectorNetwork" website: "https://vector-network.tk" -version: 0.0.7-BETA +version: 0.0.8-BETA authors: - InkoHX - MazaiCrafty diff --git a/resources/config.yml b/resources/config.yml index 4d057d4..3ee19d7 100644 --- a/resources/config.yml +++ b/resources/config.yml @@ -1,8 +1,27 @@ -version: 7 +# It is a setting file of VectorNetwork's original game "The Mix". +# +# GitHub: https://github.com/VectorNetworkProject/TheMix +# Website: https://www.vector-network.tk +# Discord: https://discord.gg/EF2G5dh + +# Config version +version: 8 +# You can set whether to enable developer mode. +# Note: Do not forget to disable developer mode when publishing server. dev-mode: true +# Please enter the name of the map. stage-world-name: stage +# Please set the time the event will come. By default, it is held every 30 minutes. +# This function will be implemented in the future. event-time: 30 +# Please set the time zone. timezone: Asia/Tokyo +# Please enter the block ID which can participate in the game when touching the block. +join-block-id: 247 +# Please configure server address and port. +ip: play.vector-network.tk +port: 19132 + red: spawn1: x: 1 diff --git a/src/VectorNetworkProject/TheMix/TheMix.php b/src/VectorNetworkProject/TheMix/TheMix.php index 3a19ecd..bfac6ea 100644 --- a/src/VectorNetworkProject/TheMix/TheMix.php +++ b/src/VectorNetworkProject/TheMix/TheMix.php @@ -36,7 +36,7 @@ class TheMix extends PluginBase { - public const VERSION = 7; + public const VERSION = 8; /* @var TheMix $instance */ private static $instance = null; diff --git a/src/VectorNetworkProject/TheMix/command/Permissions.php b/src/VectorNetworkProject/TheMix/command/Permissions.php index f10a99e..7a3f4ac 100644 --- a/src/VectorNetworkProject/TheMix/command/Permissions.php +++ b/src/VectorNetworkProject/TheMix/command/Permissions.php @@ -16,6 +16,9 @@ class Permissions public const USER = 'the.mix.commands.user.'; public const ADMIN = 'the.mix.commands.admin.'; + /** + * @return void + */ public static function registerPermissions(): void { PermissionManager::getInstance()->addPermission(new Permission(self::USER.'ping', '応答速度を計測します。', Permission::DEFAULT_TRUE)); diff --git a/src/VectorNetworkProject/TheMix/command/defaults/DiscordCommand.php b/src/VectorNetworkProject/TheMix/command/defaults/DiscordCommand.php index f5c5384..650e2c3 100644 --- a/src/VectorNetworkProject/TheMix/command/defaults/DiscordCommand.php +++ b/src/VectorNetworkProject/TheMix/command/defaults/DiscordCommand.php @@ -36,7 +36,7 @@ public function __construct(Plugin $owner) */ public function execute(CommandSender $sender, string $commandLabel, array $args) { - $sender->sendMessage('Discord: https://discord.gg/EF2G5dh'); + $sender->sendMessage('§9Discord: https://discord.gg/EF2G5dh'); return true; } diff --git a/src/VectorNetworkProject/TheMix/event/block/BlockReGeneratorEvent.php b/src/VectorNetworkProject/TheMix/event/block/BlockReGeneratorEvent.php index f2956be..added28 100644 --- a/src/VectorNetworkProject/TheMix/event/block/BlockReGeneratorEvent.php +++ b/src/VectorNetworkProject/TheMix/event/block/BlockReGeneratorEvent.php @@ -19,6 +19,9 @@ class BlockReGeneratorEvent implements Listener { + /** + * @param BlockBreakEvent $event + */ public function event(BlockBreakEvent $event): void { $block = $event->getBlock(); diff --git a/src/VectorNetworkProject/TheMix/event/block/TheBlockBreakEvent.php b/src/VectorNetworkProject/TheMix/event/block/TheBlockBreakEvent.php index 70034f8..af22aea 100644 --- a/src/VectorNetworkProject/TheMix/event/block/TheBlockBreakEvent.php +++ b/src/VectorNetworkProject/TheMix/event/block/TheBlockBreakEvent.php @@ -24,6 +24,11 @@ class TheBlockBreakEvent implements Listener { + /** + * @param BlockBreakEvent $event + * + * @throws \ReflectionException + */ public function event(BlockBreakEvent $event) { $player = $event->getPlayer(); @@ -58,7 +63,7 @@ public function event(BlockBreakEvent $event) Server::getInstance()->getLogger()->info("{$player->getNameTag()}§fが§cRED§fのコアを破壊している!"); $block->getLevel()->broadcastLevelSoundEvent($block->asVector3(), LevelSoundEventPacket::SOUND_RANDOM_ANVIL_USE); foreach (Server::getInstance()->getOnlinePlayers() as $player) { - LevelSounds::NotePiano($player, 20); + LevelSounds::NotePiano($player); } } elseif (BlueCoreManager::isCore($block)) { $event->setCancelled(); @@ -78,7 +83,7 @@ public function event(BlockBreakEvent $event) Server::getInstance()->getLogger()->info("{$player->getNameTag()}§fが§cRED§fのコアを破壊している!"); $block->getLevel()->broadcastLevelSoundEvent($block->asVector3(), LevelSoundEventPacket::SOUND_RANDOM_ANVIL_USE); foreach (Server::getInstance()->getOnlinePlayers() as $player) { - LevelSounds::NotePiano($player, 20); + LevelSounds::NotePiano($player); } } } diff --git a/src/VectorNetworkProject/TheMix/event/block/TheBlockPlaceEvent.php b/src/VectorNetworkProject/TheMix/event/block/TheBlockPlaceEvent.php index 9fb23b9..747ad37 100644 --- a/src/VectorNetworkProject/TheMix/event/block/TheBlockPlaceEvent.php +++ b/src/VectorNetworkProject/TheMix/event/block/TheBlockPlaceEvent.php @@ -16,6 +16,9 @@ class TheBlockPlaceEvent implements Listener { + /** + * @param BlockPlaceEvent $event + */ public function event(BlockPlaceEvent $event) { $player = $event->getPlayer(); diff --git a/src/VectorNetworkProject/TheMix/event/entity/TheEntityDamageEvent.php b/src/VectorNetworkProject/TheMix/event/entity/TheEntityDamageEvent.php index ead3643..42dd405 100644 --- a/src/VectorNetworkProject/TheMix/event/entity/TheEntityDamageEvent.php +++ b/src/VectorNetworkProject/TheMix/event/entity/TheEntityDamageEvent.php @@ -24,6 +24,11 @@ class TheEntityDamageEvent implements Listener { + /** + * @param EntityDamageEvent $event + * + * @throws \ReflectionException + */ public function event(EntityDamageEvent $event) { $entity = $event->getEntity(); diff --git a/src/VectorNetworkProject/TheMix/event/game/TheEndGameEvent.php b/src/VectorNetworkProject/TheMix/event/game/TheEndGameEvent.php index 4102134..ab11172 100644 --- a/src/VectorNetworkProject/TheMix/event/game/TheEndGameEvent.php +++ b/src/VectorNetworkProject/TheMix/event/game/TheEndGameEvent.php @@ -24,6 +24,9 @@ class TheEndGameEvent implements Listener /** @var bool $finish */ private static $finish = false; + /** + * @param GameWinEvent $event + */ public function event(GameWinEvent $event) { if (DefaultConfig::isDev()) { diff --git a/src/VectorNetworkProject/TheMix/event/game/ThePlayerStreakEvent.php b/src/VectorNetworkProject/TheMix/event/game/ThePlayerStreakEvent.php index 5c6cc51..a1bd5a2 100644 --- a/src/VectorNetworkProject/TheMix/event/game/ThePlayerStreakEvent.php +++ b/src/VectorNetworkProject/TheMix/event/game/ThePlayerStreakEvent.php @@ -15,25 +15,23 @@ class ThePlayerStreakEvent implements Listener { + /** + * @param PlayerStreakEvent $event + */ public function event(PlayerStreakEvent $event) { $player = $event->getPlayer(); switch ($event->getCount()) { case 5: - $this->getStreakMessage($player, $event->getCount()); - break; case 10: - $this->getStreakMessage($player, $event->getCount()); - break; case 20: - $this->getStreakMessage($player, $event->getCount()); - break; case 30: - $this->getStreakMessage($player, $event->getCount()); - break; + case 40: case 50: - $this->getStreakMessage($player, $event->getCount()); - break; + case 60: + case 70: + case 80: + case 90: case 100: $this->getStreakMessage($player, $event->getCount()); break; diff --git a/src/VectorNetworkProject/TheMix/event/gold/ThePlayerAddGoldEvent.php b/src/VectorNetworkProject/TheMix/event/gold/ThePlayerAddGoldEvent.php index 0bcab7a..d1e365f 100644 --- a/src/VectorNetworkProject/TheMix/event/gold/ThePlayerAddGoldEvent.php +++ b/src/VectorNetworkProject/TheMix/event/gold/ThePlayerAddGoldEvent.php @@ -13,6 +13,9 @@ class ThePlayerAddGoldEvent implements Listener { + /** + * @param PlayerAddGoldEvent $event + */ public function event(PlayerAddGoldEvent $event) { $event->getPlayer()->sendMessage("§6{$event->getGold()}g §fを手に入れた。"); diff --git a/src/VectorNetworkProject/TheMix/event/level/TheItemSpawnEvent.php b/src/VectorNetworkProject/TheMix/event/level/TheItemSpawnEvent.php index a4af538..23ddd12 100644 --- a/src/VectorNetworkProject/TheMix/event/level/TheItemSpawnEvent.php +++ b/src/VectorNetworkProject/TheMix/event/level/TheItemSpawnEvent.php @@ -15,6 +15,9 @@ class TheItemSpawnEvent implements Listener { + /** + * @param ItemSpawnEvent $event + */ public function event(ItemSpawnEvent $event) { if (DefaultConfig::isDev()) { diff --git a/src/VectorNetworkProject/TheMix/event/level/TheLevelUpEvent.php b/src/VectorNetworkProject/TheMix/event/level/TheLevelUpEvent.php index f782ac9..99d9f86 100644 --- a/src/VectorNetworkProject/TheMix/event/level/TheLevelUpEvent.php +++ b/src/VectorNetworkProject/TheMix/event/level/TheLevelUpEvent.php @@ -13,6 +13,9 @@ class TheLevelUpEvent implements Listener { + /** + * @param PlayerLevelUpEvent $event + */ public function event(PlayerLevelUpEvent $event) { $player = $event->getPlayer(); diff --git a/src/VectorNetworkProject/TheMix/event/level/ThePlayerAddXpEvent.php b/src/VectorNetworkProject/TheMix/event/level/ThePlayerAddXpEvent.php index 826d27c..9f28e01 100644 --- a/src/VectorNetworkProject/TheMix/event/level/ThePlayerAddXpEvent.php +++ b/src/VectorNetworkProject/TheMix/event/level/ThePlayerAddXpEvent.php @@ -13,6 +13,9 @@ class ThePlayerAddXpEvent implements Listener { + /** + * @param PlayerAddXpEvent $event + */ public function event(PlayerAddXpEvent $event) { $event->getPlayer()->sendMessage("§b{$event->getXp()}XP §fを手に入れた"); diff --git a/src/VectorNetworkProject/TheMix/event/player/ThePlayerInteractEvent.php b/src/VectorNetworkProject/TheMix/event/player/ThePlayerInteractEvent.php index e3f4edc..6d97ce4 100644 --- a/src/VectorNetworkProject/TheMix/event/player/ThePlayerInteractEvent.php +++ b/src/VectorNetworkProject/TheMix/event/player/ThePlayerInteractEvent.php @@ -8,7 +8,6 @@ namespace VectorNetworkProject\TheMix\event\player; -use pocketmine\block\Block; use pocketmine\event\Listener; use pocketmine\event\player\PlayerInteractEvent; use VectorNetworkProject\TheMix\game\corepvp\TeamManager; @@ -16,11 +15,14 @@ class ThePlayerInteractEvent implements Listener { + /** + * @param PlayerInteractEvent $event + */ public function event(PlayerInteractEvent $event) { $player = $event->getPlayer(); $block = $event->getBlock(); - if ($block->getId() === Block::NETHER_REACTOR) { + if ($block->getId() === DefaultConfig::getBlockId()) { if (DefaultConfig::isDev()) { return; } diff --git a/src/VectorNetworkProject/TheMix/event/player/ThePlayerJoinEvent.php b/src/VectorNetworkProject/TheMix/event/player/ThePlayerJoinEvent.php index 55adb76..b3448e8 100644 --- a/src/VectorNetworkProject/TheMix/event/player/ThePlayerJoinEvent.php +++ b/src/VectorNetworkProject/TheMix/event/player/ThePlayerJoinEvent.php @@ -22,6 +22,9 @@ class ThePlayerJoinEvent implements Listener { + /** + * @param PlayerJoinEvent $event + */ public function event(PlayerJoinEvent $event) { $player = $event->getPlayer(); diff --git a/src/VectorNetworkProject/TheMix/event/player/ThePlayerLoginEvent.php b/src/VectorNetworkProject/TheMix/event/player/ThePlayerLoginEvent.php index 9a59b2b..4e6b1bf 100644 --- a/src/VectorNetworkProject/TheMix/event/player/ThePlayerLoginEvent.php +++ b/src/VectorNetworkProject/TheMix/event/player/ThePlayerLoginEvent.php @@ -15,6 +15,9 @@ class ThePlayerLoginEvent implements Listener { + /** + * @param PlayerLoginEvent $event + */ public function event(PlayerLoginEvent $event) { $player = $event->getPlayer(); diff --git a/src/VectorNetworkProject/TheMix/event/player/ThePlayerQuitEvent.php b/src/VectorNetworkProject/TheMix/event/player/ThePlayerQuitEvent.php index 2f92a80..a55d75b 100644 --- a/src/VectorNetworkProject/TheMix/event/player/ThePlayerQuitEvent.php +++ b/src/VectorNetworkProject/TheMix/event/player/ThePlayerQuitEvent.php @@ -16,6 +16,9 @@ class ThePlayerQuitEvent implements Listener { + /** + * @param PlayerQuitEvent $event + */ public function event(PlayerQuitEvent $event) { $player = $event->getPlayer(); diff --git a/src/VectorNetworkProject/TheMix/game/DefaultConfig.php b/src/VectorNetworkProject/TheMix/game/DefaultConfig.php index 968c900..4e61069 100644 --- a/src/VectorNetworkProject/TheMix/game/DefaultConfig.php +++ b/src/VectorNetworkProject/TheMix/game/DefaultConfig.php @@ -27,6 +27,9 @@ class DefaultConfig /** @var string */ const TIMEZONE = 'timezone'; + /** @var string */ + const BLOCK_ID = 'join-block-id'; + /** @var string */ const RED = 'red'; @@ -65,11 +68,38 @@ public static function getEventTime(): int return TheMix::getInstance()->getConfig()->get(self::EVENT_TIME); } + /** + * @return string + */ public static function getTimezone(): string { return TheMix::getInstance()->getConfig()->get(self::TIMEZONE); } + /** + * @return int + */ + public static function getBlockId(): int + { + return TheMix::getInstance()->getConfig()->get(self::BLOCK_ID); + } + + /** + * @return string + */ + public static function getIp(): string + { + return TheMix::getInstance()->getConfig()->get('ip'); + } + + /** + * @return int + */ + public static function getPort(): int + { + return TheMix::getInstance()->getConfig()->get('port'); + } + /** * @return array */ diff --git a/src/VectorNetworkProject/TheMix/game/bounty/Bounty.php b/src/VectorNetworkProject/TheMix/game/bounty/Bounty.php index 26bfe2c..c53464f 100644 --- a/src/VectorNetworkProject/TheMix/game/bounty/Bounty.php +++ b/src/VectorNetworkProject/TheMix/game/bounty/Bounty.php @@ -9,7 +9,6 @@ namespace VectorNetworkProject\TheMix\game\bounty; use pocketmine\Player; -use pocketmine\Server; use VectorNetworkProject\TheMix\game\event\player\PlayerBountyEvent; use VectorNetworkProject\TheMix\game\event\player\PlayerBountyLostEvent; use VectorNetworkProject\TheMix\provider\JSON; @@ -92,18 +91,23 @@ public static function isBounty(Player $player): bool return $db->get(self::CONFIG_BOUNTY); } + /** + * @param Player $player + * + * @throws \ReflectionException + */ public static function setPlayerBounty(Player $player): void { if (self::isBounty($player)) { $gold = self::getGold($player) + 100; $event = new PlayerBountyEvent($player, $gold, PlayerBountyEvent::PLUS_GOLD); - Server::getInstance()->getPluginManager()->callEvent($event); + $event->call(); if (!$event->isCancelled()) { self::setGold($player, $gold); } } else { $event = new PlayerBountyEvent($player, 100, PlayerBountyEvent::ENABLE_BOUNTY); - Server::getInstance()->getPluginManager()->callEvent($event); + $event->call(); if (!$event->isCancelled()) { self::setBounty($player, true); self::setGold($player, 100); @@ -114,6 +118,8 @@ public static function setPlayerBounty(Player $player): void /** * @param Player $player * @param Player|null $killer + * + * @throws \ReflectionException */ public static function PlayerBountyLost(Player $player, Player $killer = null): void { @@ -122,14 +128,14 @@ public static function PlayerBountyLost(Player $player, Player $killer = null): } if ($killer) { $event = new PlayerBountyLostEvent($player, self::getGold($player)); - Server::getInstance()->getPluginManager()->callEvent($event); + $event->call(); if (!$event->isCancelled()) { self::setBounty($player, false); self::setGold($player, 0); } } else { $event = new PlayerBountyLostEvent($player, self::getGold($player), $killer, PlayerBountyLostEvent::TYPE_KILLED); - Server::getInstance()->getPluginManager()->callEvent($event); + $event->call(); if (!$event->isCancelled()) { self::setBounty($player, false); self::setGold($player, 0); diff --git a/src/VectorNetworkProject/TheMix/game/corepvp/SpawnManager.php b/src/VectorNetworkProject/TheMix/game/corepvp/SpawnManager.php index af06840..48d08c5 100644 --- a/src/VectorNetworkProject/TheMix/game/corepvp/SpawnManager.php +++ b/src/VectorNetworkProject/TheMix/game/corepvp/SpawnManager.php @@ -25,6 +25,9 @@ class SpawnManager { + /** + * @param Player $player + */ public static function PlayerReSpawn(Player $player) { if (RedTeamManager::isJoined($player)) { @@ -38,6 +41,10 @@ public static function PlayerReSpawn(Player $player) } } + /** + * @param Player $player + * @param Position $position + */ private static function ReSpawnCooldown(Player $player, Position $position): void { $player->addTitle('§l§cYOU DIED', 'あなたは死んでしまった!5秒後行動可能になります。', 20, 100, 20); diff --git a/src/VectorNetworkProject/TheMix/game/corepvp/TeamManager.php b/src/VectorNetworkProject/TheMix/game/corepvp/TeamManager.php index 2d5af0b..be08d8c 100644 --- a/src/VectorNetworkProject/TheMix/game/corepvp/TeamManager.php +++ b/src/VectorNetworkProject/TheMix/game/corepvp/TeamManager.php @@ -18,6 +18,9 @@ abstract class TeamManager { + /** + * @param Player $player + */ public static function JoinTeam(Player $player) { if (BlueTeamManager::isJoined($player) || RedTeamManager::isJoined($player)) { @@ -40,11 +43,25 @@ public static function JoinTeam(Player $player) } } + /** + * @param Player $player + */ abstract public static function addList(Player $player): void; + /** + * @param Player $player + */ abstract public static function removeList(Player $player): void; + /** + * @param Player $player + * + * @return bool + */ abstract public static function isJoined(Player $player): bool; + /** + * @return array + */ abstract public static function getList(): array; } diff --git a/src/VectorNetworkProject/TheMix/game/corepvp/blue/BlueCoreManager.php b/src/VectorNetworkProject/TheMix/game/corepvp/blue/BlueCoreManager.php index 5e8ed1a..9cab11c 100644 --- a/src/VectorNetworkProject/TheMix/game/corepvp/blue/BlueCoreManager.php +++ b/src/VectorNetworkProject/TheMix/game/corepvp/blue/BlueCoreManager.php @@ -10,7 +10,6 @@ use pocketmine\block\Block; use pocketmine\Player; -use pocketmine\Server; use VectorNetworkProject\TheMix\game\corepvp\CoreManager; use VectorNetworkProject\TheMix\game\DefaultConfig; use VectorNetworkProject\TheMix\game\event\game\GameWinEvent; @@ -47,13 +46,15 @@ public static function getHP(): int /** * @param int $hp * @param Player $player + * + * @throws \ReflectionException */ public static function reduceHP(int $hp, Player $player): void { self::$hp -= $hp; + $event = new GameWinEvent(GameWinEvent::WIN_RED, $player); if (self::getHP() <= 0) { - $event = new GameWinEvent(GameWinEvent::WIN_RED, $player); - Server::getInstance()->getPluginManager()->callEvent($event); + $event->call(); if ($event->isCancelled()) { self::addHP(1); } diff --git a/src/VectorNetworkProject/TheMix/game/corepvp/blue/BlueTeamManager.php b/src/VectorNetworkProject/TheMix/game/corepvp/blue/BlueTeamManager.php index c731cd1..6ef4d37 100644 --- a/src/VectorNetworkProject/TheMix/game/corepvp/blue/BlueTeamManager.php +++ b/src/VectorNetworkProject/TheMix/game/corepvp/blue/BlueTeamManager.php @@ -23,6 +23,9 @@ public static function addList(Player $player): void } } + /** + * @param Player $player + */ public static function removeList(Player $player): void { if (self::isJoined($player)) { @@ -30,16 +33,27 @@ public static function removeList(Player $player): void } } + /** + * @param Player $player + * + * @return bool + */ public static function isJoined(Player $player): bool { return isset(self::$list[$player->getName()]) ? true : false; } + /** + * @return array + */ public static function getList(): array { return self::$list; } + /** + * @return int + */ public static function getListCount(): int { return count(self::$list); diff --git a/src/VectorNetworkProject/TheMix/game/corepvp/red/RedConfig.php b/src/VectorNetworkProject/TheMix/game/corepvp/red/RedConfig.php index 725b225..7942b43 100644 --- a/src/VectorNetworkProject/TheMix/game/corepvp/red/RedConfig.php +++ b/src/VectorNetworkProject/TheMix/game/corepvp/red/RedConfig.php @@ -12,16 +12,25 @@ class RedConfig extends DefaultConfig { + /** + * @return array + */ public static function getSpawn1(): array { return self::getRedConfig()['spawn1']; } + /** + * @return array + */ public static function getSpawn2(): array { return self::getRedConfig()['spawn2']; } + /** + * @return array + */ public static function getCore(): array { return self::getRedConfig()['core']; diff --git a/src/VectorNetworkProject/TheMix/game/corepvp/red/RedCoreManager.php b/src/VectorNetworkProject/TheMix/game/corepvp/red/RedCoreManager.php index 0e85a1d..6d57d93 100644 --- a/src/VectorNetworkProject/TheMix/game/corepvp/red/RedCoreManager.php +++ b/src/VectorNetworkProject/TheMix/game/corepvp/red/RedCoreManager.php @@ -10,7 +10,6 @@ use pocketmine\block\Block; use pocketmine\Player; -use pocketmine\Server; use VectorNetworkProject\TheMix\game\corepvp\CoreManager; use VectorNetworkProject\TheMix\game\DefaultConfig; use VectorNetworkProject\TheMix\game\event\game\GameWinEvent; @@ -47,13 +46,15 @@ public static function getHP(): int /** * @param int $hp * @param Player $player + * + * @throws \ReflectionException */ public static function reduceHP(int $hp, Player $player): void { self::$hp -= $hp; + $event = new GameWinEvent(GameWinEvent::WIN_BLUE, $player); if (self::getHP() <= 0) { - $event = new GameWinEvent(GameWinEvent::WIN_BLUE, $player); - Server::getInstance()->getPluginManager()->callEvent($event); + $event->call(); if ($event->isCancelled()) { self::addHP(1); } diff --git a/src/VectorNetworkProject/TheMix/game/corepvp/red/RedTeamManager.php b/src/VectorNetworkProject/TheMix/game/corepvp/red/RedTeamManager.php index 2ab73d2..a0f9eb6 100644 --- a/src/VectorNetworkProject/TheMix/game/corepvp/red/RedTeamManager.php +++ b/src/VectorNetworkProject/TheMix/game/corepvp/red/RedTeamManager.php @@ -23,6 +23,9 @@ public static function addList(Player $player): void } } + /** + * @param Player $player + */ public static function removeList(Player $player): void { if (self::isJoined($player)) { @@ -30,21 +33,35 @@ public static function removeList(Player $player): void } } + /** + * @param Player $player + * + * @return bool + */ public static function isJoined(Player $player): bool { return isset(self::$list[$player->getName()]) ? true : false; } + /** + * @return array + */ public static function getList(): array { return self::$list; } + /** + * @return int + */ public static function getListCount(): int { return count(self::$list); } + /** + * @return void + */ public static function ClearList(): void { self::$list = []; diff --git a/src/VectorNetworkProject/TheMix/game/event/player/PlayerStreakEvent.php b/src/VectorNetworkProject/TheMix/game/event/player/PlayerStreakEvent.php index 1295d02..307d74c 100644 --- a/src/VectorNetworkProject/TheMix/game/event/player/PlayerStreakEvent.php +++ b/src/VectorNetworkProject/TheMix/game/event/player/PlayerStreakEvent.php @@ -17,6 +17,12 @@ class PlayerStreakEvent extends PlayerEvent implements Cancellable /** @var int $count */ private $count; + /** + * PlayerStreakEvent constructor. + * + * @param Player $player + * @param int $count + */ public function __construct(Player $player, int $count) { $this->player = $player; diff --git a/src/VectorNetworkProject/TheMix/game/item/ItemManager.php b/src/VectorNetworkProject/TheMix/game/item/ItemManager.php index 801274c..642c5aa 100644 --- a/src/VectorNetworkProject/TheMix/game/item/ItemManager.php +++ b/src/VectorNetworkProject/TheMix/game/item/ItemManager.php @@ -13,6 +13,9 @@ class ItemManager { + /** + * @param Player $player + */ public static function DropItem(Player $player) { $contents = $player->getInventory()->getContents(); diff --git a/src/VectorNetworkProject/TheMix/game/kit/BlueKit.php b/src/VectorNetworkProject/TheMix/game/kit/BlueKit.php index 80fe762..4e97da2 100644 --- a/src/VectorNetworkProject/TheMix/game/kit/BlueKit.php +++ b/src/VectorNetworkProject/TheMix/game/kit/BlueKit.php @@ -16,6 +16,9 @@ class BlueKit { + /** + * @param Player $player + */ public static function sendItems(Player $player): void { $armors = [ diff --git a/src/VectorNetworkProject/TheMix/game/kit/RedKit.php b/src/VectorNetworkProject/TheMix/game/kit/RedKit.php index ada1c1e..5d5f4a3 100644 --- a/src/VectorNetworkProject/TheMix/game/kit/RedKit.php +++ b/src/VectorNetworkProject/TheMix/game/kit/RedKit.php @@ -16,6 +16,9 @@ class RedKit { + /** + * @param Player $player + */ public static function sendItem(Player $player) { $armors = [ diff --git a/src/VectorNetworkProject/TheMix/game/streak/Streak.php b/src/VectorNetworkProject/TheMix/game/streak/Streak.php index b398c20..888b819 100644 --- a/src/VectorNetworkProject/TheMix/game/streak/Streak.php +++ b/src/VectorNetworkProject/TheMix/game/streak/Streak.php @@ -9,7 +9,6 @@ namespace VectorNetworkProject\TheMix\game\streak; use pocketmine\Player; -use pocketmine\Server; use VectorNetworkProject\TheMix\game\event\player\PlayerStreakEvent; class Streak @@ -27,11 +26,13 @@ public static function init(Player $player): void /** * @param Player $player + * + * @throws \ReflectionException */ public static function addStreak(Player $player): void { $event = new PlayerStreakEvent($player, self::getStreak($player) + 1); - Server::getInstance()->getPluginManager()->callEvent($event); + $event->call(); if (!$event->isCancelled()) { self::$streaks[$player->getXuid()] += 1; } diff --git a/src/VectorNetworkProject/TheMix/lib/sound/LevelSounds.php b/src/VectorNetworkProject/TheMix/lib/sound/LevelSounds.php index fd1a9aa..215ff60 100644 --- a/src/VectorNetworkProject/TheMix/lib/sound/LevelSounds.php +++ b/src/VectorNetworkProject/TheMix/lib/sound/LevelSounds.php @@ -8,7 +8,6 @@ namespace VectorNetworkProject\TheMix\lib\sound; -use pocketmine\math\Math; use pocketmine\network\mcpe\protocol\LevelSoundEventPacket; use pocketmine\Player; @@ -38,7 +37,6 @@ public static function Anvil(Player $player): void $packet = new LevelSoundEventPacket(); $packet->position = $player->asVector3(); $packet->sound = LevelSoundEventPacket::SOUND_RANDOM_ANVIL_USE; - $packet->pitch = Math::floorFloat(mt_rand(8, 10) / 10); $player->sendDataPacket($packet); } @@ -161,14 +159,12 @@ public static function Twinklt(Player $player): void /** * @param Player $player - * @param int $pitch */ - public static function NotePiano(Player $player, int $pitch = 1): void + public static function NotePiano(Player $player): void { $packet = new LevelSoundEventPacket(); $packet->position = $player->asVector3(); $packet->sound = LevelSoundEventPacket::SOUND_NOTE; - $packet->pitch = $pitch; $player->sendDataPacket($packet); } } diff --git a/src/VectorNetworkProject/TheMix/task/BlockReGeneratorTask.php b/src/VectorNetworkProject/TheMix/task/BlockReGeneratorTask.php index 5a62954..cb084d9 100644 --- a/src/VectorNetworkProject/TheMix/task/BlockReGeneratorTask.php +++ b/src/VectorNetworkProject/TheMix/task/BlockReGeneratorTask.php @@ -21,6 +21,9 @@ public function __construct(Block $block) $this->block = $block; } + /** + * @param int $currentTick + */ public function onRun(int $currentTick) { $this->getBlock()->getLevel()->setBlock($this->getBlock()->asVector3(), $this->block); diff --git a/src/VectorNetworkProject/TheMix/task/ReSpawnCooldownTask.php b/src/VectorNetworkProject/TheMix/task/ReSpawnCooldownTask.php index 8213cad..88dcda7 100644 --- a/src/VectorNetworkProject/TheMix/task/ReSpawnCooldownTask.php +++ b/src/VectorNetworkProject/TheMix/task/ReSpawnCooldownTask.php @@ -21,12 +21,21 @@ class ReSpawnCooldownTask extends Task /** @var Position $position */ private $position; + /** + * ReSpawnCooldownTask constructor. + * + * @param Player $player + * @param Position $position + */ public function __construct(Player $player, Position $position) { $this->player = $player; $this->position = $position; } + /** + * @param int $currentTick + */ public function onRun(int $currentTick) { $this->player->teleport($this->position); diff --git a/src/VectorNetworkProject/TheMix/task/ResetGameTask.php b/src/VectorNetworkProject/TheMix/task/ResetGameTask.php index 2dd24c2..874dd30 100644 --- a/src/VectorNetworkProject/TheMix/task/ResetGameTask.php +++ b/src/VectorNetworkProject/TheMix/task/ResetGameTask.php @@ -10,13 +10,17 @@ use pocketmine\scheduler\Task; use pocketmine\Server; +use VectorNetworkProject\TheMix\game\DefaultConfig; class ResetGameTask extends Task { + /** + * @param int $currentTick + */ public function onRun(int $currentTick) { foreach (Server::getInstance()->getOnlinePlayers() as $player) { - $player->transfer('play.vector-network.tk', 19132, '再接続'); + $player->transfer(DefaultConfig::getIp(), DefaultConfig::getPort(), '再接続'); } Server::getInstance()->shutdown(); }