Здравствуйте, можете пожалуйста дописать плагин. Мне нужно чтобы после получения награды она больше не выдавалась. Пожалуйста!
Main.php (2,2 КБ)
Сам код выше
Здравствуйте, можете пожалуйста дописать плагин. Мне нужно чтобы после получения награды она больше не выдавалась. Пожалуйста!
срочно-срочно? а если опоздаю?
Лето закончится и придется переделывать на осенний квест(
Плевать даже на код, но sount
Что?
<?php
namespace quests;
use pocketmine\plugin\PluginBase;
use pocketmine\event\Listener;
use pocketmine\event\block\BlockBreakEvent;
use pocketmine\command\CommandSender;
use pocketmine\command\Command;
use pocketmine\utils\Config;
class Main extends PluginBase implements Listener{
private $config;
public function onEnable(){
$this->getServer()->getPluginManager()->registerEvents($this, $this);
$this->config = new Config($this->getDataFolder() . "players.yml", Config::YAML);
}
public function onBreakAddBlock(BlockBreakEvent $event){
$player = $event->getPlayer();
$blockId = $event->getBlock()->getId();
if($blockId === 1 && $player->getGamemode() === 0){
$playerName = strtolower($player->getName());
$collected = $this->config->getNested($playerName, 0);
$collected++;
$this->config->setNested($playerName, $collected);
$this->config->save();
//$player->sendTip("§7(§eЛетний Ивент§7)§c* §fДобыто: §a{$collected} §fиз §a50000");
if($collected >= 50000 && !$this->config->getNested($playerName . "_reward", false)){
$player->sendMessage("§7(§eЛетний Ивент§7)§c* §fВы выполнили квест и получили награду!");
$this->getServer()->dispatchCommand(new ConsoleCommandSender(), "givemoney {$player} 3000000");
$this->getServer()->dispatchCommand(new ConsoleCommandSender(), "setgroup {$player} АнтиГрифер");
$this->config->setNested($playerName . "_reward", true);
$this->config->save();
}else{
$player->sendMessage("§7(§eЛетний Ивент§7)§c* §fВы уже получили награду за выполнение квеста!");
}
}
}
public function onCommand(CommandSender $sender, Command $command, string $label, array $args): bool{
if($command->getName() === "letoevent"){
$player = $sender;
$playerName = strtolower($player->getName());
$collected = $this->config->getNested($playerName, 0);
$player->sendMessage("§7(§eЛетний квест)§c* §fВаша статистика по квесту:");
$player->sendMessage("§7(§eЛетний квест)§c* §fДобыто камня: §f{$collected} §fиз §a50000");
$player->sendMessage("§7(§eЛетний квест)§c* §fНаграда за выполнение квеста: Основатель и 3 миллиона");
return true;
}
return false;
}
}
Попробуй работает или нет.
Error: Declaration of quests\Main::onCommand(pocketmine\command\CommandSender $sender, pocketmine\command\Command $command, string $label, array $args): bool must be compatible with pocketmine\plugin\PluginBase::onCommand(pocketmine\command\CommandSender $sender, pocketmine\command\Command $command, $label, array $args)
File: plugins/Quests/src/quests/Main
Line: 12
Type: E_COMPILE_ERROR
THIS CRASH WAS CAUSED BY A PLUGIN
Code:
[3] namespace quests;
[4]
[5] use pocketmine\plugin\PluginBase;
[6] use pocketmine\event\Listener;
[7] use pocketmine\event\block\BlockBreakEvent;
[8] use pocketmine\command\CommandSender;
[9] use pocketmine\command\Command;
[10] use pocketmine\utils\Config;
[11]
[12] class Main extends PluginBase implements Listener{
[13] private $config;
[14]
[15] public function onEnable(){
[16] $this->getServer()->getPluginManager()->registerEvents($this, $this);
[17]
[18] $this->config = new Config($this->getDataFolder() . “players.yml”, Config::YAML);
[19] }
[20]
[21] public function onBreakAddBlock(BlockBreakEvent $event){
[22] $player = $event->getPlayer();
убери