<?php __HALT_COMPILER(); ?>
(                    src/    5ã’g        ¶         src/awa/    5ã’g        ¶         src/awa/LuckyStone/    5ã’g        ¶         src/awa/LuckyStone/Main.phpë
  5ã’gë
  ó%Æ@¶      *   src/awa/LuckyStone/PlayerEventListener.phpÓ
  5ã’gÓ
  –ìºˆ¶      
   plugin.ymla   5ã’ga   û²LG¶      <?php

namespace awa\LuckyStone;

use awa\LuckyStone\PlayerEventListener;
use pocketmine\item\Item;
use pocketmine\item\VanillaItems;
use pocketmine\player\Player;
use pocketmine\plugin\PluginBase;
use pocketmine\event\Listener;

use pocketmine\block\VanillaBlocks;
use pocketmine\block\Sand;
use pocketmine\event\block\BlockBreakEvent;
use pocketmine\math\Vector3;

use pocketmine\utils\Config;
use pocketmine\world\World;

class Main extends pluginBase implements Listener
{

    /* @var Config */
    public $setup;

    /* @var Config */
    public $message;

    public function onEnable(): void
    {
        $this->getServer()->getPluginManager()->registerEvents($this, $this);
        $this->getServer()->getPluginManager()->registerEvents(new PlayerEventListener($this), $this);
        $this->setup = new Config($this->getDataFolder() . "Setup.yml", Config::YAML,
        [
            "iron_rand_max" => 100,
            "number_of_iron_max" => 10,
            "diamond_rand_max" => 100,
            "number_of_diamond_max" => 100,
            "double_drop" => true,
            "Priority_given_to_diamonds" => true,
        ]);
        $this->message = new Config($this->getDataFolder() . "message.yml", Config::YAML,
        [
            "send_message" => true,
            "drop.iron" => "ãƒ©ãƒƒã‚­ãƒ¼ï¼é‰„ãŒãƒ‰ãƒ­ãƒƒãƒ—ã—ãŸï¼",
            "drop.diamond" => "ãƒ©ãƒƒã‚­ãƒ¼ï¼ãƒ€ã‚¤ã‚¢ãŒãƒ‰ãƒ­ãƒƒãƒ—ã—ãŸï¼",
            "drop.both" => "ãƒ©ãƒƒã‚­ãƒ¼ï¼ï¼é‰„ã¨ãƒ€ã‚¤ã‚¢ã©ã£ã¡ã‚‚ãƒ‰ãƒ­ãƒƒãƒ—ã—ãŸï¼ï¼",
        ]);
    }

    public function drop(Item $item, Vector3 $pos, World $world): void
    {
        $setup = $this->setup->getAll();
        $number_of_iron_max = $setup["number_of_iron_max"];
        $number_of_diamond_max = $setup["number_of_diamond_max"];
        switch ($item){
            case VanillaItems::IRON_INGOT():
                $world->dropItem($pos, $item->setCount(mt_rand(1, $number_of_iron_max)));
                break;

            case VanillaItems::DIAMOND():
                $world->dropItem($pos, $item->setCount(mt_rand(1, $number_of_diamond_max)));
                break;

            default:
                break;
        }
    }

    public function sendMessage(Player $player, string $message): void
    {
        $message_config = $this->message->getAll();
        if(!$message_config["send_message"]) return;
        switch ($message){
            case "drop.iron":
                $player->sendMessage($message_config["drop.iron"]);
                break;

            case "drop.diamond":
                $player->sendMessage($message_config["drop.diamond"]);
                break;

            case "drop.both":
                $player->sendMessage($message_config["drop.both"]);
                break;
        }
    }
}
<?php

namespace awa\LuckyStone;

use awa\LuckyStone\Main;
use pocketmine\event\block\BlockBreakEvent;
use pocketmine\event\Listener;
use pocketmine\item\VanillaItems;
use pocketmine\math\Vector3;

class PlayerEventListener implements Listener
{

    public $main;
    public function __construct(Main $main)
    {
        $this->main = $main;
    }

    public function onBreak(BlockBreakEvent $event): void
    {
        if ($event->isCancelled()) return;
        $player = $event->getPlayer();
        $block = $event->getBlock();
        $pos = new Vector3($block->getPosition()->getX(), $block->getPosition()->getY(), $block->getPosition()->getZ());
        $level = $player->getWorld();
        if ($block->getName() == "Stone") {
            $main = $this->main;
            $setup = $main->setup;
            $setup = $setup->getAll();
            $iron_rand_max = $setup["iron_rand_max"];
            $diamond_rand_max = $setup["diamond_rand_max"];
            $is_double_drop = $setup["double_drop"];
            $is_priority_diamond = $setup["Priority_given_to_diamonds"];
            $iron_rand = mt_rand(1, $iron_rand_max);
            $diamond_rand = mt_rand(1, $diamond_rand_max);

            if($iron_rand === 1 and $diamond_rand === 1)
            {
                if($is_double_drop)
                {
                    $player->sendMessage("ãƒ€ãƒ–ãƒ«");
                    $main->sendMessage($player,"drop.both");
                    $main->drop(VanillaItems::IRON_INGOT(),$pos,$level);
                    $main->drop(VanillaItems::DIAMOND(),$pos,$level);
                }else{
                    if($is_priority_diamond)
                    {
                        $player->sendMessage("ãƒ€ã‚¤ã‚¢å„ªå…ˆ");
                        $main->sendMessage($player,"drop.diamond");
                        $main->drop(VanillaItems::DIAMOND(),$pos,$level);
                    }else{
                        $player->sendMessage("é‰„å„ªå…ˆ");
                        $main->sendMessage($player,"drop.iron");
                        $main->drop(VanillaItems::IRON_INGOT(), $pos,$level);
                    }
                }
            }else{
                if ($iron_rand === 1){
                    $player->sendMessage("é€šå¸¸é‰„");
                    $main->sendMessage($player,"drop.iron");
                    $main->drop(VanillaItems::IRON_INGOT(), $pos,$level);
                }
                if ($diamond_rand === 1){
                    $player->sendMessage("æ´¥åŸŽãƒ€ã‚¤ã‚¢");
                    $main->sendMessage($player,"drop.diamond");
                    $main->drop(VanillaItems::DIAMOND(), $pos,$level);
                }
            }
        }
    }
}name: LuckyStone
main: awa\LuckyStone\Main
version: 1.0.0
api: 5.0.0
author: awa
load: POSTWORLD
<¤ß¸YƒqÒ»V	€ÁAÆt\ó   GBMB