Skip to content

java——check

殷泽凌 edited this page Mar 29, 2019 · 4 revisions

check是过滤器,用来过滤信息

关于返回类型

关于返回类型,支持字符串,布尔值两种种返回类型

//字符串
//当你在群里发hello bang的时候,机器人会回复你一句hello bang!!!
public class HelloBang{
    public String check(){
        return "hello bang";
    }
    public String operate(){
        return "hello bang!!!";
    }
}

//布尔值
//无论你在群里发什么,机器人会回复你一句hello bang!!!
public class HelloBang{
    public boolean check(){
        return true;
    }
    public String operate(){
        return "hello bang!!!";
    }
}

String返回值即,当群里有人的语句与该语句相同,则通过过滤,进入operate,否则拦截
boolean返回值即,当函数返回true的时候通过过滤,进入operate,否则拦截

关于参数

关于参数,方法支持一下参数类型

//没有参数,正常调用
check();

//传递一个字符串,内容为群里要被处理的消息内容
check(String msg);

//传递一个map,为HttpAPI的原生数据,该data可以转换为fastjson的JSONObject
check(Map<String,Object> data);

//传递两个参数,第一个参数为当前信息的成员的QQ号码,第二个参数为要被处理的消息内容
check(String userID,String msg);

//传递两个参数,第一个参数为当前信息的成员的QQ号码,第二个参数为要被处理的消息内容
check(int userID,String msg);

//传递两个参数,第一个参数为当前信息的成员的QQ号码,第二个参数为要被处理的消息内容
check(long userID,String msg);

注意的是,check传递QQ号与消息内容的参数是不能交换的,因为和参数名无关,只与参数顺序有关

关于check的举例

//当群里传来消息,内容为hello bang的时候,返回一句"hello bang!!!"
public class HelloBang{
    public boolean check(String msg){
        return "hello bang".equals(msg);
    }
    public String operate(){
        return "hello bang!!!";
    }
}

//当群里传来消息,内容为hello bang的时候,返回一句"hello bang!!!"
public class HelloBang{
    public boolean check(Map<String,Object> msg){
        return "hello bang".equals(msg.get("message").toString());
    }
    public String operate(){
        return "hello bang!!!";
    }
}

关于Map参数的参考资料

文档参考httpapi文档

字段参考httpapi群事件字段