首先要说明的是机器人版本1.9.9以及以前的版本调用sendAtMsg(msgitem,group,qq)
发送艾特消息都无法正常的艾特,所以我找到了另外一种方法让低版本也可以发送艾特消息.
function onReceiveMsgIsNeedIntercept(msgitem, aiteList, hasAite, hasAiteMe) {
var text = msgitem.getMessage()//获取收到的消息
var qq = msgitem.getSenderuin()//获取发送者QQ
var group=msgitem.getFrienduin();//获取群号,如果是私聊,则依然返回的是qq
if(msgitem.getIstroop()==1&&text.indexOf("TEST")!=-1){//istroop=1一般是群消息,但是可能是群的图片等,具体情况可以用config.isGroupMsg(msgitem)方法判断
log.toast("收到消息"+text)
// log.toast("receive msg from " + qq + ",content:" + text);
var str = "模仿:" + text;
msgitem = msgitem.clone();//if return false and has modify text ,must use clone obj!
msgitem.setMessage("[{'msg':'"+str+"','uin':'"+qq+"','nickname':'@"+msgitem.getNickname()+"','senderuin':'"+qq+"'}]")
msgitem.setExtstr(str);//这似乎需要传递,指定消息内容。
msgitem.setSenderuin(msgitem.getSelfuin())//机器人自己发送消息应该把它改为自己
msgitem.setCode(java.lang.Integer.parseInt("-1002"));//艾特的指令code=-1002 int类型转换
api.sendMsg(msgitem)
//api.sendAtMsg(msgitem,group,qq)//1.9.9以及之前版本有bug,请等待更新吧。
return true//返回true表示不交给机器人软件内部处理。
}else{
return false;
}
}
该js插件表示 如果收到了包含TEST的消息就会发送 模仿 用户说的话,而且艾特这个用户。
我公布一下支持的code吧。
int SUCC = 0;
int FAIL = -1;
int GAG = -1000;
int KICK = -1001;
int AITE = -1002;
int TEST = -1006;
int StrucMSG = -1003;
int UNIVERSAL = -1005;
int PIC = -1010;
int QUIT_GROUP=-1100;
int QUIT_DISCUSSION=QUIT_GROUP+1;//1099
int MODIFY_GROUP_MEMBER_CARD_NAME=QUIT_DISCUSSION+1;//-1098
int MODIFY_GROUP_NAME=MODIFY_GROUP_MEMBER_CARD_NAME+1;//-1097
int ADD_LIKE=MODIFY_GROUP_NAME+1;//-1096
int INVITE_JOIN_GROUP=ADD_LIKE+1;//1095