diff --git a/src/main/java/net/lamgc/cgj/bot/event/SpringCQMessageEvent.java b/src/main/java/net/lamgc/cgj/bot/event/SpringCQMessageEvent.java index 1300066..89f1aa8 100644 --- a/src/main/java/net/lamgc/cgj/bot/event/SpringCQMessageEvent.java +++ b/src/main/java/net/lamgc/cgj/bot/event/SpringCQMessageEvent.java @@ -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;