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; + } +}