[Update] SpringCQMessageEvent 适配 getImageUrl 方法;

This commit is contained in:
LamGC 2020-04-16 20:20:29 +08:00
parent 0e182be31c
commit 9f58e186d5

View File

@ -5,6 +5,7 @@ import net.lz1998.cq.event.message.CQGroupMessageEvent;
import net.lz1998.cq.event.message.CQMessageEvent;
import net.lz1998.cq.robot.CoolQ;
import java.net.InetSocketAddress;
import java.util.Objects;
public class SpringCQMessageEvent extends MessageEvent {
@ -47,6 +48,22 @@ public class SpringCQMessageEvent extends MessageEvent {
}
}
/**
* 该功能在CQ上需要CQHttp插件启用http接口调用和serve_data_files为true.
* 如使用本方法, 则对方需开启5700端口, 且可能会影响多机器人处理.
* @param imageFileName 图片文件名
* @return 图片下载链接
*/
@Override
public String getImageUrl(String imageFileName) {
InetSocketAddress remoteAddress = cq.getBotSession().getRemoteAddress();
if(remoteAddress == null) {
throw new IllegalStateException("remoteAddress failed to get");
}
String file = cq.getImage(imageFileName).getData().getFile().replaceAll("\\\\", "/");
return "http://" + remoteAddress.getHostString() + ":5700/data" + file.substring(file.lastIndexOf("/data") + 5);
}
@Override
public Object getRawMessage() {
return messageEvent;