From 9ce18469e6de95b83cc627416ed8633cc1a15196 Mon Sep 17 00:00:00 2001 From: LamGC Date: Thu, 4 Jun 2020 11:25:08 +0800 Subject: [PATCH] =?UTF-8?q?[Add]=20=E5=A2=9E=E5=8A=A0=E6=8E=A7=E5=88=B6?= =?UTF-8?q?=E5=8F=B0=E6=A1=86=E6=9E=B6=E4=BB=A5=E8=BF=9B=E8=A1=8C=E6=9C=AC?= =?UTF-8?q?=E5=9C=B0=E6=B5=8B=E8=AF=95,=20=E6=88=96=E9=9D=9E=E8=81=8A?= =?UTF-8?q?=E5=A4=A9=E6=9C=BA=E5=99=A8=E4=BA=BA=E4=BD=BF=E7=94=A8;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/net/lamgc/cgj/Main.java | 8 +++++ .../cgj/bot/framework/cli/ConsoleMain.java | 30 +++++++++++++++++++ .../framework/cli/ConsoleMessageEvent.java | 23 ++++++++++++++ .../framework/cli/ConsoleMessageSender.java | 13 ++++++++ .../cli/ConsoleMessageSenderFactory.java | 15 ++++++++++ 5 files changed, 89 insertions(+) create mode 100644 src/main/java/net/lamgc/cgj/bot/framework/cli/ConsoleMain.java create mode 100644 src/main/java/net/lamgc/cgj/bot/framework/cli/ConsoleMessageEvent.java create mode 100644 src/main/java/net/lamgc/cgj/bot/framework/cli/ConsoleMessageSender.java create mode 100644 src/main/java/net/lamgc/cgj/bot/framework/cli/ConsoleMessageSenderFactory.java diff --git a/src/main/java/net/lamgc/cgj/Main.java b/src/main/java/net/lamgc/cgj/Main.java index 79df9bb..a1d1c7c 100644 --- a/src/main/java/net/lamgc/cgj/Main.java +++ b/src/main/java/net/lamgc/cgj/Main.java @@ -7,6 +7,9 @@ import com.google.gson.Gson; import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonObject; +import net.lamgc.cgj.bot.boot.ApplicationBoot; +import net.lamgc.cgj.bot.boot.BotGlobal; +import net.lamgc.cgj.bot.framework.cli.ConsoleMain; import net.lamgc.cgj.bot.framework.coolq.CQConfig; import net.lamgc.cgj.bot.framework.mirai.MiraiMain; import net.lamgc.cgj.pixiv.PixivDownload; @@ -104,6 +107,11 @@ public class Main { main.close(); } + @Command + public static void consoleMode() { + ConsoleMain.start(); + } + @Command public static void pluginMode(@Argument(name = "args", force = false) String argsStr) { log.info("酷Q机器人根目录: {}", BotGlobal.getGlobal().getDataStoreDir().getPath()); diff --git a/src/main/java/net/lamgc/cgj/bot/framework/cli/ConsoleMain.java b/src/main/java/net/lamgc/cgj/bot/framework/cli/ConsoleMain.java new file mode 100644 index 0000000..5db7b37 --- /dev/null +++ b/src/main/java/net/lamgc/cgj/bot/framework/cli/ConsoleMain.java @@ -0,0 +1,30 @@ +package net.lamgc.cgj.bot.framework.cli; + +import net.lamgc.cgj.bot.boot.ApplicationBoot; +import net.lamgc.cgj.bot.event.BotEventHandler; +import net.lamgc.cgj.bot.message.MessageSenderBuilder; + +import java.util.Scanner; + +public class ConsoleMain { + + public static void start() { + MessageSenderBuilder.setCurrentMessageSenderFactory(new ConsoleMessageSenderFactory()); + ApplicationBoot.initialBot(); + Scanner scanner = new Scanner(System.in); + boolean isGroup = false; + do { + String input = scanner.nextLine(); + if(input.equalsIgnoreCase("#exit")) { + System.out.println("退出应用..."); + break; + } else if(input.equalsIgnoreCase("#setgroup")) { + isGroup = !isGroup; + System.out.println("System: 群模式状态已变更: " + isGroup); + continue; + } + BotEventHandler.executeMessageEvent(new ConsoleMessageEvent(input, isGroup)); + } while(true); + } + +} diff --git a/src/main/java/net/lamgc/cgj/bot/framework/cli/ConsoleMessageEvent.java b/src/main/java/net/lamgc/cgj/bot/framework/cli/ConsoleMessageEvent.java new file mode 100644 index 0000000..1e56356 --- /dev/null +++ b/src/main/java/net/lamgc/cgj/bot/framework/cli/ConsoleMessageEvent.java @@ -0,0 +1,23 @@ +package net.lamgc.cgj.bot.framework.cli; + +import net.lamgc.cgj.bot.event.MessageEvent; + +import java.util.Date; + +public class ConsoleMessageEvent extends MessageEvent { + + public ConsoleMessageEvent(String message, boolean isGroup) { + super(isGroup ? 1 : 0, 1, message); + } + + @Override + public int sendMessage(String message) { + System.out.println(new Date() + " Bot: " + message); + return 0; + } + + @Override + public String getImageUrl(String image) { + return null; + } +} diff --git a/src/main/java/net/lamgc/cgj/bot/framework/cli/ConsoleMessageSender.java b/src/main/java/net/lamgc/cgj/bot/framework/cli/ConsoleMessageSender.java new file mode 100644 index 0000000..d679318 --- /dev/null +++ b/src/main/java/net/lamgc/cgj/bot/framework/cli/ConsoleMessageSender.java @@ -0,0 +1,13 @@ +package net.lamgc.cgj.bot.framework.cli; + +import net.lamgc.cgj.bot.message.MessageSender; + +import java.util.Date; + +public class ConsoleMessageSender implements MessageSender { + @Override + public synchronized int sendMessage(String message) { + System.out.println(new Date() + " Bot: " + message); + return 0; + } +} diff --git a/src/main/java/net/lamgc/cgj/bot/framework/cli/ConsoleMessageSenderFactory.java b/src/main/java/net/lamgc/cgj/bot/framework/cli/ConsoleMessageSenderFactory.java new file mode 100644 index 0000000..81923a5 --- /dev/null +++ b/src/main/java/net/lamgc/cgj/bot/framework/cli/ConsoleMessageSenderFactory.java @@ -0,0 +1,15 @@ +package net.lamgc.cgj.bot.framework.cli; + +import net.lamgc.cgj.bot.message.MessageSender; +import net.lamgc.cgj.bot.message.MessageSenderFactory; +import net.lamgc.cgj.bot.message.MessageSource; + +public class ConsoleMessageSenderFactory implements MessageSenderFactory { + + private final static ConsoleMessageSender sender = new ConsoleMessageSender(); + + @Override + public MessageSender createMessageSender(MessageSource source, long id) { + return sender; + } +}