コンテンツアイコン

MoneyConnector 1.1.0

MoneyConnector
簡単に複数の経済APIに対応させる

ライセンス:
GNU General Public License v3.0
ソースコード: PJZ9n/MoneyConnector (GitHub)

現時点で対応している経済API
  • onebone/EconomyAPI
  • mixpowder/MixCoinSystem
  • metowa1227/MoneySystem
この他にも対応してほしい経済APIなどがあれば追加できるのでお気軽にお問い合わせください!

導入方法
  • MoneyConnectorPlugin.pharのプラグインを導入する
  • MoneyConnector.pharのVirionライブラリをあなたのプラグインに注入する(方法については公式ドキュメンテーションを参照)
のどちらか好きな方法を使用出来ます。

使用出来る関数に関しては、こちらのinterfaceをご確認ください。
基本的にonebone氏のEconomyAPIに準拠していて、同じような感覚で使用できます。

使用例
  • このライブラリを使用したプラグイン(PJZ9n/GiveMoney)を参照
  • Poggit CIを使用したVirionライプラリの注入例
YAML:
--- # Poggit-CI Manifest. Open the CI at https://poggit.pmmp.io/ci/...
build-by-default: true
branches:
- master
projects:
  RepoName:
    libs:
      - src: PJZ9n/MoneyConnector/MoneyConnector
        version: 1.1.0
...
  • 具体的な使用例
PHP:
<?php

declare(strict_types=1);

namespace Example;

use PJZ9n\MoneyConnector\Connectors\EconomyAPI;
use PJZ9n\MoneyConnector\Connectors\MixCoinSystem;
use PJZ9n\MoneyConnector\Connectors\MoneySystem;
use PJZ9n\MoneyConnector\MoneyConnector;
use pocketmine\event\block\BlockBreakEvent;
use pocketmine\event\block\BlockPlaceEvent;
use pocketmine\event\Listener;
use pocketmine\event\player\PlayerInteractEvent;
use pocketmine\plugin\PluginBase;
use pocketmine\utils\Config;
use RuntimeException;

class Main extends PluginBase implements Listener
{
    /** @var MoneyConnector */
    private $connector;
  
    public function onEnable(): void
    {
        $settings = new Config($this->getDataFolder() . "settings.yml", Config::YAML, [
            "moneyapi" => "EconomyAPI",
        ]);
        $moneyAPI = $settings->get("moneyapi");
        switch ($moneyAPI) {
            case "EconomyAPI":
                $this->moneyConnector = new EconomyAPI();
                break;
            case "MixCoinSystem":
                $this->moneyConnector = new MixCoinSystem();
                break;
            case "MoneySystem":
                $this->moneyConnector = new MoneySystem();
                break;
            default:
                throw new RuntimeException("API \"{$moneyAPI}\" is not supported");
        }
        $this->getServer()->getPluginManager()->registerEvents($this, $this);
    }
  
    public function onBlockBreak(BlockBreakEvent $event): void
    {
        $player = $event->getPlayer();
        $this->connector->addMoney($player, 1000);//プレイヤーがブロックを破壊するたびに、1000増やす
    }
  
    public function onBlockPlace(BlockPlaceEvent $event): void
    {
        $player = $event->getPlayer();
        $this->connector->reduceMoney($player, 1000);//プレイヤーがブロックを設置するたびに、1000減らす
    }
  
    public function onPlayerInteract(PlayerInteractEvent $event): void
    {
        if ($event->getAction() !== PlayerInteractEvent::LEFT_CLICK_BLOCK) return;
        $player = $event->getPlayer();
        $money = $this->connector->myMoney($player);//プレイヤーの所持金
        $unit = $this->connector->getMonetaryUnit();//単位
        $player->sendMessage("あなたの所持金は、{$unit}{$money}です!");
    }
}
著者
PJZ9n
ダウンロード数
803
閲覧数
2,508
最初のリリース
最後の更新
評価
0.00 つ星 評価0

More resources from PJZ9n