91 lines
2.3 KiB
PHP
Raw Normal View History

2020-03-02 16:14:20 +08:00
<?php
namespace Module\Example;
use Framework\Console;
use ZM\Annotation\CQ\CQCommand;
use ZM\Annotation\Http\Middleware;
2020-03-08 16:40:04 +08:00
use ZM\Annotation\Http\RequestMapping;
2020-03-02 16:14:20 +08:00
use ZM\Annotation\Swoole\SwooleEventAt;
use ZM\Connection\CQConnection;
use ZM\ModBase;
2020-05-06 17:26:50 +08:00
use ZM\Utils\ZMUtil;
2020-03-02 16:14:20 +08:00
/**
* Class Hello
* @package Module\Example
* @since 1.0
2020-03-02 16:14:20 +08:00
*/
class Hello extends ModBase
{
/**
* 在机器人连接后向终端输出信息
2020-03-02 16:14:20 +08:00
* @SwooleEventAt("open",rule="connectType:qq")
* @param $conn
*/
2020-05-02 23:27:26 +08:00
public function onConnect(CQConnection $conn) {
Console::info("机器人 " . $conn->getQQ() . " 已连接!");
2020-03-02 16:14:20 +08:00
}
2020-05-02 23:27:26 +08:00
2020-03-02 16:14:20 +08:00
/**
* 向机器人发送"你好",即可回复这句话
2020-03-02 16:14:20 +08:00
* @CQCommand("你好")
*/
2020-05-02 23:27:26 +08:00
public function hello() {
2020-03-02 16:14:20 +08:00
return "你好啊,我是由炸毛框架构建的机器人!";
}
2020-03-08 16:40:04 +08:00
2020-05-06 17:26:50 +08:00
/**
* @CQCommand(".reload")
*/
public function reload() {
context()->reply("reloading...");
ZMUtil::reload();
}
/**
* @CQCommand("随机数")
* @CQCommand(regexMatch="*从*到*的随机数")
* @param $arg
*/
public function randNum($arg) {
// 获取第一个数字类型的参数
$num1 = context()->getArgs($arg, ZM_MATCH_NUMBER, "请输入第一个数字");
// 获取第二个数字类型的参数
$num2 = context()->getArgs($arg, ZM_MATCH_NUMBER, "请输入第二个数字");
$a = min(intval($num1), intval($num2));
$b = max(intval($num1), intval($num2));
// 回复用户结果
context()->reply("随机数是:".mt_rand($a, $b));
}
2020-03-08 16:40:04 +08:00
/**
* 中间件测试的一个示例函数
* @RequestMapping("/httpTimer")
* @Middleware("timer")
2020-03-08 16:40:04 +08:00
*/
2020-05-02 23:27:26 +08:00
public function timer() {
return "This page is used as testing TimerMiddleware! Do not use it in production.";
2020-03-08 16:40:04 +08:00
}
2020-03-08 17:05:12 +08:00
2020-05-06 17:26:50 +08:00
/**
* 默认示例页面
* @RequestMapping("/index")
*/
public function index() {
return "Hello Zhamao!";
}
2020-03-08 17:05:12 +08:00
/**
* 框架会默认关闭未知的WebSocket链接因为这个绑定的事件你可以根据你自己的需求进行修改
2020-03-08 17:05:12 +08:00
* @SwooleEventAt(type="open",rule="connectType:unknown")
*/
2020-05-02 23:27:26 +08:00
public function closeUnknownConn() {
2020-03-08 17:05:12 +08:00
Console::info("Unknown connection , I will close it.");
2020-05-06 17:26:50 +08:00
context()->getConnection()->close();
2020-03-08 17:05:12 +08:00
}
}