From e3f0cf70d9cd6008b019fdbaca7888e35a9666e4 Mon Sep 17 00:00:00 2001 From: jerry Date: Mon, 3 Dec 2018 11:29:12 +0800 Subject: [PATCH] :rocket: Just a little update. --- src/cqbot/api/CQAPI.php | 22 ++++++++++++++++++++++ src/cqbot/utils/Scheduler.php | 4 ++++ 2 files changed, 26 insertions(+) diff --git a/src/cqbot/api/CQAPI.php b/src/cqbot/api/CQAPI.php index 7f1de52d..00155a3d 100644 --- a/src/cqbot/api/CQAPI.php +++ b/src/cqbot/api/CQAPI.php @@ -75,6 +75,28 @@ class CQAPI } public static function __callStatic($name, $arg) { + if(mb_substr($name, -6) == "_after"){ + $all = self::getSupportedAPIs(); + $find = null; + $true_name = mb_substr($name, 0, -6); + if(!in_array($true_name, $all)){ + Console::error("Unknown API " . $name); + return false; + } + $ms = array_shift($arg); + Scheduler::after($ms, function() use ($true_name, $arg){ + $reply = ["action" => $true_name]; + if (!is_array($arg[1])) { + Console::error("Error when parsing params. Please make sure your params is an array."); + return false; + } + if ($arg[1] != []) { + $reply["params"] = $arg[1]; + } + return self::processAPI($arg[0], $reply, $arg[2]); + }); + return true; + } $all = self::getSupportedAPIs(); $find = null; if (in_array($name, $all)) $find = $name; diff --git a/src/cqbot/utils/Scheduler.php b/src/cqbot/utils/Scheduler.php index 01d2c7bb..5c3133aa 100644 --- a/src/cqbot/utils/Scheduler.php +++ b/src/cqbot/utils/Scheduler.php @@ -40,4 +40,8 @@ class Scheduler } } } + + public static function after($ms, callable $callback){ + return swoole_timer_after($ms, $callback); + } } \ No newline at end of file