From ba7b933bdba86e646ab253752a7e83e1255cf022 Mon Sep 17 00:00:00 2001 From: Yutousama <583819556@qq.com> Date: Sun, 2 Jan 2022 10:47:48 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=A4=A7=E5=A4=B4=E8=8F=9C?= =?UTF-8?q?=E5=AF=B9=E7=BE=A4=E7=9A=84=E6=94=AF=E6=8C=81=20Model=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E8=AF=86=E5=88=AB=E7=BE=A4=E5=B9=B6@=E5=8F=91?= =?UTF-8?q?=E9=80=81=E4=BA=BA=E7=9A=84=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/yutou/qqbot/QQBotApplication.java | 2 +- .../qqbot/models/Animal/TurnipProphet.java | 49 +++++++++++-------- .../java/com/yutou/qqbot/models/Model.java | 21 ++++++-- 3 files changed, 48 insertions(+), 24 deletions(-) diff --git a/src/main/java/com/yutou/qqbot/QQBotApplication.java b/src/main/java/com/yutou/qqbot/QQBotApplication.java index 4350c0e..7469f12 100644 --- a/src/main/java/com/yutou/qqbot/QQBotApplication.java +++ b/src/main/java/com/yutou/qqbot/QQBotApplication.java @@ -6,7 +6,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class QQBotApplication { - public static final String version="QQBot v.1.2.5"; + public static final String version="QQBot v.1.2.6"; public static void main(String[] args) { System.out.println("version = " + version); SpringApplication.run(QQBotApplication.class, args); diff --git a/src/main/java/com/yutou/qqbot/models/Animal/TurnipProphet.java b/src/main/java/com/yutou/qqbot/models/Animal/TurnipProphet.java index 7a27219..47f5a50 100644 --- a/src/main/java/com/yutou/qqbot/models/Animal/TurnipProphet.java +++ b/src/main/java/com/yutou/qqbot/models/Animal/TurnipProphet.java @@ -54,29 +54,39 @@ public class TurnipProphet extends Model { }; } + Long user, sendQQ; + @Override public void onMessage(Long qq, MessageEvent event, boolean isGroup) { super.onMessage(qq, event, isGroup); + user = qq; + sendQQ = qq; if (isGroup) { - return; + if (!event.getMessage().serializeToMiraiCode().contains("[mirai:at:3620756944]")) { + return; + } + user = event.getSource().getFromId(); } int money = -1; try { + if (isGroup) { + msg = msg.replace("@3620756944", ""); + } money = Integer.parseInt(msg.trim()); } catch (Exception e) { if (msg.equals(QQFromCommands.TURNIP_PROPHET)) { - showData(event.getSource().getFromId()); + showData(); } return; } - setData(money, event.getSource().getFromId()); + setData(money); } - private void showData(long qq) { - String redisKey = qq + "_turnip"; + private void showData() { + String redisKey = user + "_turnip"; String data = RedisTools.get(redisKey); if (StringUtils.isEmpty(data)) { - QQBotManager.getInstance().sendMessage(qq, "没有本周数据,无法预测"); + QQBotManager.getInstance().sendMessage(sendQQ, getMessage("没有本周数据,无法预测")); return; } JSONObject json = JSONObject.parseObject(data); @@ -99,16 +109,16 @@ public class TurnipProphet extends Model { Map map = null; try { map = openTurnip(prices, pattern); - sendQQ(map, prices, pattern, qq); + sendQQ(map, prices, pattern); } catch (Exception e) { e.printStackTrace(); - showData(qq); + showData(); } } - private void setData(int money, long qq) { - String redisKey = qq + "_turnip"; + private void setData(int money) { + String redisKey = user + "_turnip"; String data = RedisTools.get(redisKey); String pattern = null; JSONObject json; @@ -137,7 +147,7 @@ public class TurnipProphet extends Model { array = json.getJSONArray("turnip"); } if (array.getInteger(0) == -1 && getDay() != 0) { - QQBotManager.getInstance().sendMessage(qq, "没有周日买入信息,本周不收录 :("); + QQBotManager.getInstance().sendMessage(sendQQ, getMessage("没有周日买入信息,本周不收录 :(")); return; } if (json.containsKey("old_pattern")) { @@ -186,13 +196,13 @@ public class TurnipProphet extends Model { case "小幅上涨(四期型)" -> pattern = "3"; } } - QQBotManager.getInstance().sendMessage(qq, "已记录,正在预测本周走势..."); + QQBotManager.getInstance().sendMessage(sendQQ, getMessage("已记录,正在预测本周走势...")); Map map = openTurnip(prices, pattern); if (map == null) { map = openTurnip(prices, pattern); } - String tmp_pattern = sendQQ(map, prices, pattern, qq); + String tmp_pattern = sendQQ(map, prices, pattern); if (!StringUtils.isEmpty(tmp_pattern)) { json.put("pattern", tmp_pattern); } @@ -200,19 +210,19 @@ public class TurnipProphet extends Model { } catch (Exception e) { e.printStackTrace(); - setData(money, qq); + setData(money); } } - private String sendQQ(Map map, String prices, String pattern, long qq) { + private String sendQQ(Map map, String prices, String pattern) { String url = String.format("https://turnipprophet.io?prices=%s%s", prices, pattern == null ? "" : "&pattern=" + pattern ); if (map == null) { - QQBotManager.getInstance().sendMessage(qq, "没有结果,请检查数据是否有误。 \n网页预览:\n" + url); + QQBotManager.getInstance().sendMessage(sendQQ, getMessage("没有结果,请检查数据是否有误。 \n网页预览:\n" + url)); return null; } @@ -223,8 +233,8 @@ public class TurnipProphet extends Model { out.append(TurnipData.MODEL).append(prArray.getJSONObject(0).getString(TurnipData.MODEL)).append("\n"); out.append(TurnipData.PR).append(prArray.getJSONObject(0).getString(TurnipData.PR)).append("\n"); out.append("购入价:").append(prices.split("\\.")[0]).append("\n"); - if(getDay()==0){ - out.append("满背包(4行)购入价:").append(4000*Integer.parseInt(prices.split("\\.")[0])).append("\n"); + if (getDay() == 0) { + out.append("满背包(4行)购入价:").append(4000 * Integer.parseInt(prices.split("\\.")[0])).append("\n"); } out.append(TurnipData.MIX).append(map.get(TurnipData.MIX)).append("\n") .append(TurnipData.MAX).append(map.get(TurnipData.MAX)).append("\n") @@ -255,7 +265,7 @@ public class TurnipProphet extends Model { out.append("祝好运 :)"); Log.i("TurnipProphet", out.toString()); - QQBotManager.getInstance().sendMessage(qq, out.toString()); + QQBotManager.getInstance().sendMessage(sendQQ, getMessage(out.toString())); return prArray.getJSONObject(0).getString(TurnipData.MODEL); } @@ -278,7 +288,6 @@ public class TurnipProphet extends Model { public static void main(String[] args) throws Exception { TurnipProphet prophet = new TurnipProphet(); - prophet.setData(92, 583819556); } diff --git a/src/main/java/com/yutou/qqbot/models/Model.java b/src/main/java/com/yutou/qqbot/models/Model.java index 610da01..137861a 100644 --- a/src/main/java/com/yutou/qqbot/models/Model.java +++ b/src/main/java/com/yutou/qqbot/models/Model.java @@ -4,6 +4,8 @@ import com.yutou.qqbot.QQNumberManager; import com.yutou.qqbot.interfaces.ModelInterface; import net.mamoe.mirai.event.events.GroupMessageEvent; import net.mamoe.mirai.event.events.MessageEvent; +import net.mamoe.mirai.message.data.At; +import net.mamoe.mirai.message.data.MessageChainBuilder; import java.lang.reflect.Field; import java.util.ArrayList; @@ -39,8 +41,8 @@ public abstract class Model implements ModelInterface { public static final String TSDM_PAY = "!tsdm"; public static final String TSDM_SIGN = "!tsdm签到"; public static final String BAIDU_DOWN = "!bd"; - public static final String ROUTER_ADD="!添加设备"; - public static final String ROUTER_DEL="!删除设备"; + public static final String ROUTER_ADD = "!添加设备"; + public static final String ROUTER_DEL = "!删除设备"; } @@ -56,11 +58,15 @@ public abstract class Model implements ModelInterface { public String msg; protected boolean isGroupPower = false; + private boolean isGroup; + private Long user; public void onMessage(Long qq, MessageEvent event, boolean isGroup) { msg = event.getMessage().contentToString(); msg = msg.replace("!", "!"); - if(isGroup) { + this.isGroup = isGroup; + if (isGroup) { + user=event.getSource().getFromId(); GroupMessageEvent groupEvent = (GroupMessageEvent) event; group = groupEvent.getGroup().getId(); if (QQNumberManager.getManager().isExistsPower(group, msg.split(" ")[0])) { @@ -85,4 +91,13 @@ public abstract class Model implements ModelInterface { return builder; } + public MessageChainBuilder getMessage(String text) { + MessageChainBuilder chain = new MessageChainBuilder(); + if (isGroup) { + chain.add(new At(user)); + chain.add("\n"); + } + chain.add(text); + return chain; + } }