From dfb9b10ee86ae3f546ff8c15a2ae7dd6eaeb32d3 Mon Sep 17 00:00:00 2001 From: TheNewHEROBRINEX Date: Wed, 7 Aug 2019 19:53:29 +0200 Subject: [PATCH 1/2] Add PlayerRewardEvent --- src/LDX/VoteReward/Main.php | 75 ++++++++++--------- src/LDX/VoteReward/PlayerRewardEvent.php | 93 ++++++++++++++++++++++++ src/LDX/VoteReward/PlayerVoteEvent.php | 18 ----- 3 files changed, 132 insertions(+), 54 deletions(-) create mode 100644 src/LDX/VoteReward/PlayerRewardEvent.php delete mode 100644 src/LDX/VoteReward/PlayerVoteEvent.php diff --git a/src/LDX/VoteReward/Main.php b/src/LDX/VoteReward/Main.php index cc3d7eb..022e501 100644 --- a/src/LDX/VoteReward/Main.php +++ b/src/LDX/VoteReward/Main.php @@ -107,7 +107,7 @@ public function onCommand(CommandSender $sender, Command $command, string $label return true; } - public function rewardPlayer($player, $multiplier) { + public function rewardPlayer($player, $multiplier){ if(!$player instanceof Player) { return; } @@ -116,44 +116,47 @@ public function rewardPlayer($player, $multiplier) { return; } $clones = []; - foreach($this->items as $item) { + foreach ($this->items as $item) { $clones[] = clone $item; } - foreach($clones as $item) { - $item->setCount($item->getCount() * $multiplier); - $player->getInventory()->addItem($item); - } - foreach($this->commands as $command) { - $this->getServer()->dispatchCommand(new ConsoleCommandSender, str_replace([ - "{USERNAME}", - "{NICKNAME}", - "{X}", - "{Y}", - "{Y1}", - "{Z}" - ], [ - $player->getName(), - $player->getDisplayName(), - $player->getX(), - $player->getY(), - $player->getY() + 1, - $player->getZ() - ], Utils::translateColors($command))); - } - if(trim($this->message) != "") { - $message = str_replace([ - "{USERNAME}", - "{NICKNAME}" - ], [ - $player->getName(), - $player->getDisplayName() - ], Utils::translateColors($this->message)); - foreach($this->getServer()->getOnlinePlayers() as $p) { - $p->sendMessage($message); + $ev = new PlayerRewardEvent($player, $clones, $multiplier, $this->commands, $this->message); + $ev->call(); + if(!$ev->isCancelled()) { + foreach ($ev->getItems() as $item) { + $item->setCount($item->getCount() * $ev->getMultiplier()); + $player->getInventory()->addItem($item); + } + foreach ($ev->getCommands() as $command) { + $this->getServer()->dispatchCommand(new ConsoleCommandSender, str_replace([ + "{USERNAME}", + "{NICKNAME}", + "{X}", + "{Y}", + "{Y1}", + "{Z}" + ], [ + $player->getName(), + $player->getDisplayName(), + $player->getX(), + $player->getY(), + $player->getY() + 1, + $player->getZ() + ], Utils::translateColors($command))); } - $this->getServer()->getLogger()->info($message); + if(trim($ev->getMessage()) != "") { + $message = str_replace([ + "{USERNAME}", + "{NICKNAME}" + ], [ + $player->getName(), + $player->getDisplayName() + ], Utils::translateColors($ev->getMessage())); + foreach ($this->getServer()->getOnlinePlayers() as $p) { + $p->sendMessage($message); + } + $this->getServer()->getLogger()->info($message); + } + $player->sendMessage("[VoteReward] You voted on $multiplier server list" . ($multiplier == 1 ? "" : "s") . "!"); } - $player->sendMessage("[VoteReward] You voted on $multiplier server list" . ($multiplier == 1 ? "" : "s") . "!"); } - } \ No newline at end of file diff --git a/src/LDX/VoteReward/PlayerRewardEvent.php b/src/LDX/VoteReward/PlayerRewardEvent.php new file mode 100644 index 0000000..d648a2b --- /dev/null +++ b/src/LDX/VoteReward/PlayerRewardEvent.php @@ -0,0 +1,93 @@ +player = $player; + $this->items = $items; + $this->multiplier = $multiplier; + $this->commands = $commands; + $this->message = $message; + } + + /** + * @return Item[] + */ + public function getItems() : array{ + return $this->items; + } + + /** + * @param Item[] $items + */ + public function setItems(array $items) : void{ + $this->items = $items; + } + + /** + * @return int + */ + public function getMultiplier() : int{ + return $this->multiplier; + } + + /** + * @param int $multiplier + */ + public function setMultiplier(int $multiplier) : void{ + $this->multiplier = $multiplier; + } + + /** + * @return string[] + */ + public function getCommands() : array{ + return $this->commands; + } + + /** + * @param string[] $commands + */ + public function setCommands(array $commands) : void{ + $this->commands = $commands; + } + + /** + * @return string + */ + public function getMessage() : string{ + return $this->message; + } + + /** + * @param string $message + */ + public function setMessage(string $message) : void{ + $this->message = $message; + } +} diff --git a/src/LDX/VoteReward/PlayerVoteEvent.php b/src/LDX/VoteReward/PlayerVoteEvent.php deleted file mode 100644 index 8b8d52c..0000000 --- a/src/LDX/VoteReward/PlayerVoteEvent.php +++ /dev/null @@ -1,18 +0,0 @@ -player = $player; - } -} From d36adbb6f70b16e017974eeca28916e9de62ac30 Mon Sep 17 00:00:00 2001 From: TheNewHEROBRINEX Date: Wed, 7 Aug 2019 19:58:53 +0200 Subject: [PATCH 2/2] Version bump --- plugin.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugin.yml b/plugin.yml index 1116550..cf7461e 100644 --- a/plugin.yml +++ b/plugin.yml @@ -1,6 +1,6 @@ name: VoteReward main: LDX\VoteReward\Main -version: 3.0.3 +version: 3.0.4 api: [3.0.0] author: LDX website: "https://github.com/LDX-MCPE/VoteReward"