__CLASS__, // hook 'name' => 'Silver2Coin', // 插件名称 'version' => '0.0.1', // 插件版本 'desc' => '银瓜子兑换硬币', // 插件描述 'author' => 'Lkeme',// 作者 'priority' => 1105, // 插件优先级 'cycle' => '24(小时)', // 运行周期 ]; /** * @param Plugin $plugin */ public function __construct(Plugin &$plugin) { // TimeLock::initTimeLock(); // $this::class $plugin->register($this, 'execute'); } /** * 执行 * @return void * @throws NoLoginException */ public function execute(): void { if (TimeLock::getTimes() > time() || !getEnable('silver2coin')) return; // if ($this->before()) { if (!$this->exchangeTask()) { TimeLock::setTimes(3600); return; } // $this->after(); } // 定时10点 + 1-60分钟随机 TimeLock::setTimes(TimeLock::timing(10, 0, 0, true)); } /** * @return void */ protected function after(): void { ApiRevenueWallet::myWallet(); } /** * @return bool * @throws NoLoginException */ protected function before(): bool { $response = ApiRevenueWallet::getStatus(); // switch ($response['code']) { case -101: throw new NoLoginException($response['message']); case 0: // if ($response['data']['silver_2_coin_left'] == 0) { Log::notice("银瓜子兑换硬币: 今日已兑换过一次了哦~"); return false; } // if ($response['data']['silver'] < 700) { Log::notice("银瓜子兑换硬币: 瓜子余额不足以兑换哦~~"); return false; } return true; default: Log::warning("银瓜子兑换硬币: 获取钱包状态失败 {$response['code']} -> {$response['message']}"); return false; } } /** * 兑换任务 * @return bool */ protected function exchangeTask(): bool { // $response = ApiRevenueWallet::appSilver2coin(); if ($this->handle('APP', $response)) return true; // $response = ApiRevenueWallet::appSilver2coin(); if ($this->handle('PC', $response)) return true; // return false; } /** * 处理结果 * @param string $type * @param array $data * @return bool */ protected function handle(string $type, array $data): bool { // {"code":403,"msg":"每天最多能兑换 1 个","message":"每天最多能兑换 1 个","data":[]} // {"code":403,"msg":"仅主站正式会员以上的用户可以兑换","message":"仅主站正式会员以上的用户可以兑换","data":[]} // {"code":0,"msg":"兑换成功","message":"兑换成功","data":{"gold":"5074","silver":"36734","tid":"727ab65376a15a6b117cf560a20a21122334","coin":1}} // {"code":0,"data":{"coin":1,"gold":1234,"silver":4321,"tid":"Silver2Coin21062316490299678123456"},"message":"兑换成功"} switch ($data['code']) { case 0: Log::notice("银瓜子兑换硬币[$type]: {$data['message']}"); return true; case 403: Log::warning("银瓜子兑换硬币[$type]: {$data['message']}"); return true; default: Log::warning("银瓜子兑换硬币[$type]: CODE -> {$data['code']} MSG -> {$data['message']} "); } return false; } }