Hey PocketMine-Community! I have a little problem... PHP: public function onBreak(BlockBreakEvent $event) { $player = $event->getPlayer(); $block = $event->getBlock(); if($block->getID() === BLOCK::GOLD_BLOCK){ switch(mt_rand(1, 5)){ case 1: $player->getInventory()->addItem(Item::get(Item::DIAMOND_SWORD, 0, 1)); case 2: $player->getInventory()->addItem(Item::get(Item::STONE_SWORD, 0, 1)); case 3: $player->getInventory()->addItem(Item::get(Item::WOODEN_SWORD, 0, 1)); case 4: $player->getInventory()->addItem(Item::get(Item::IRON_SWORD, 0, 1)); case 5: $player->getInventory()->addItem(Item::get(Item::GOLD_SWORD, 0, 1)); } } } If i touch a Goldblock, nothing happens. (What i want: If a player breaks a Goldblock, he gets a random sword!) Does anyone know why? Thank you!
Did you register the events? Well, you should also use something like this: PHP: public function onBreak(BlockBreakEvent $event) { $player = $event->getPlayer(); $block = $event->getBlock(); if($block->getID() === BLOCK::GOLD_BLOCK){ switch(mt_rand(1, 5)){ case 1: $item = Item::get(Item::DIAMOND_SWORD, 0, 1); case 2: $item = Item::get(Item::STONE_SWORD, 0, 1); case 3: $item = Item::get(Item::WOODEN_SWORD, 0, 1); case 4: $item = Item::get(Item::IRON_SWORD, 0, 1); case 5: $item = Item::get(Item::GOLD_SWORD, 0, 1); }$player->getInventory()->addItem($item); } }
Yes, I register the events! If I use your code, i get an error. :/ [Server] Parse error: syntax error, unexpected 'public function onBreak' (T_STRING), expecting function (T_FUNCTION) in....
PHP: public function onBreak(BlockBreakEvent $event) { $player = $event->getPlayer(); $block = $event->getBlock(); if($block->getID() === BLOCK::GOLD_BLOCK){ switch(mt_rand(1, 5)){ case 1: $item = Item::get(Item::DIAMOND_SWORD, 0, 1); case 2: $item = Item::get(Item::STONE_SWORD, 0, 1); case 3: $item = Item::get(Item::WOODEN_SWORD, 0, 1); case 4: $item = Item::get(Item::IRON_SWORD, 0, 1); case 5: $item = Item::get(Item::GOLD_SWORD, 0, 1); }$player->getInventory()->addItem($item); } } Nope.. I think I don't forget a "}" or "{".
PHP: <?phpnamespace test;use pocketmine\plugin\PluginBase;use pocketmine\event\Listener;use pocketmine\event\block\BlockBreakEvent;use pocketmine\block\Block;class Main extends PluginBase implements Listener { public function onEnable(){ $this->getLogger()->info("§aAktiviert!"); $this->getServer()->getPluginManager()->registerEvents($this, $this); } public function onBreak(BlockBreakEvent $event) { $player = $event->getPlayer(); $block = $event->getBlock(); if($block->getID() === BLOCK::GOLD_BLOCK){ switch(mt_rand(1, 5)){ case 1: $item = Item::get(Item::DIAMOND_SWORD, 0, 1); case 2: $item = Item::get(Item::STONE_SWORD, 0, 1); case 3: $item = Item::get(Item::WOODEN_SWORD, 0, 1); case 4: $item = Item::get(Item::IRON_SWORD, 0, 1); case 5: $item = Item::get(Item::GOLD_SWORD, 0, 1); }$player->getInventory()->addItem($item); } }}
Look at the pocketmine's source code files. Its pocketmine\Player. And no he doesn't have to use it in this case.