# 快速回复 有时候,你想要通过返回值来快速回复一个消息而不是通过`MsgSender`送信器来写一串昂长的代码。 mirai组件支持快捷回复响应,你可以通过返回一个`Map<String, Object>`类型的返回值,并在其中指定一些特殊的参数,即可实现快速响应。 ## **特殊参数** 当返回值为`Map` 类型的时候,组件会对其中的部分内容进行解析: ### **消息类型响应** 当你监听的是一个消息类型的事件的时候(例如私聊消息、群消息),组件会解析返回值`Map`中的以下参数: * **reply** 对消息发送者的回复消息内容。 * **quote** 是否引用消息发送者的消息。**只有在群消息响应的时候才生效。** * **at** 是否at消息发送者。**只有在群消息响应的时候才生效。** ### **请求类型响应** 当你监听的是一个请求类型的事件的时候(例如申请加群、被邀请入群、新好友申请),组件会解析返回值`Map`中的以下参数: * **reply** 对请求的处理方式。 如果为`true`、`"agree"`、`"accept"`,则代表同意此申请。 如果为`false`、`"reject"`、`"refuse"`,则代表拒绝此申请。 如果为`"ignore"`,则代表忽略此次申请。 ## **Reply 响应消息类** mirai组件中针对于上述的解析提供了一个简易的封装类`Reply`,你可以通过此类的`builder`或者其他静态方法来快速响应一个事件。 ```java // 消息类型的响应 Reply r1 = Reply.getBuilder() .reply("reply") // 响应消息 .at() // at当事人 .quote() // 引用当事人的消息 .build(); // 构建Reply // 请求类型的响应 // 同意某申请 Reply agree = Reply.getAgreeReply(); // 拒绝某申请 Reply reject = Reply.getRejectReply(); // 忽略某申请 Reply ignore = Reply.getIgnoreReply(); // 快捷回复消息,群聊中默认会at当事人并引用当事人的消息 Reply reply1 = Reply.getMessageReply("reply"); // 快捷回复消息,不引用当事人消息,但是会at当事人 Reply reply2 = Reply.getMessageReply("reply", false); // 快捷回复消息,不引用当事人消息,也不at当事人 Reply reply3 = Reply.getMessageReply("reply", false, false); ``` `Reply`实现Map接口,在构建后不可修改其参数。