From a5b1c318123538054e58465f9a729cb055957c66 Mon Sep 17 00:00:00 2001 From: Eicy Date: Thu, 19 Dec 2024 21:30:57 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=97=A0=E7=94=A8=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Command/Commands.cs | 156 -------------------------------------------- 1 file changed, 156 deletions(-) delete mode 100644 Command/Commands.cs diff --git a/Command/Commands.cs b/Command/Commands.cs deleted file mode 100644 index 0ea6d45..0000000 --- a/Command/Commands.cs +++ /dev/null @@ -1,156 +0,0 @@ -using System.Text.Json; -using System.Xml; -using Lagrange.Core; -using Lagrange.Core.Common.Interface.Api; -using Lagrange.Core.Message; -using Shrink.Login; - -namespace Shrink.Command; - -public class Commands -{ - private static Commands? _instance; - private static readonly object Lock = new(); - private Commands() { } - - public static Commands Instance - { - get - { - if (_instance != null) return _instance; - lock (Lock) - { - _instance ??= new Commands(); - } - return _instance; - } - } - - // 使用字典存储命令和群消息 - private Dictionary _commandDict = new(); - private List _corpus = new(); - private Dictionary _messageDict = new(); - private HashSet _adminSet = new(); - - // 文件初始化 - public async Task Init() - { - // 读取Admins.json - if (File.Exists("Admins.json")) - { - _adminSet = new HashSet(JsonSerializer.Deserialize>(await File.ReadAllTextAsync("Admins.json"))); - } - else - { - _adminSet.Add(3048536893); // 默认管理员 - await File.WriteAllTextAsync("Admins.json", JsonSerializer.Serialize(_adminSet.ToList())); - } - - // 读取JoinMessage.json - if (File.Exists("JoinMessage.json")) - { - _messageDict = JsonSerializer.Deserialize>>(await File.ReadAllTextAsync("JoinMessage.json")) - .ToDictionary(msg => msg.Key, msg => msg.Value); - } - else - { - _messageDict.Add(620902312, "欢迎"); - await File.WriteAllTextAsync("JoinMessage.json", JsonSerializer.Serialize(_messageDict.Select(kv => new KeyValuePair(kv.Key, kv.Value)).ToList())); - } - - // 读取Commands.json - if (File.Exists("Commands.json")) - { - _commandDict = JsonSerializer.Deserialize>>(await File.ReadAllTextAsync("Commands.json")) - .ToDictionary(cmd => cmd.Key, cmd => cmd.Value); - } - else - { - _commandDict.Add("/ping", "Pong!"); - await File.WriteAllTextAsync("Commands.json", JsonSerializer.Serialize(_commandDict.Select(kv => new KeyValuePair(kv.Key, kv.Value)).ToList())); - } - } - - private async Task SaveAdmin() - { - await File.WriteAllTextAsync("Admins.json", JsonSerializer.Serialize(_adminSet.ToList())); - await Init(); - } - - // bot管理员权限检查 - private void NoEnoughPermission(BotContext ctx, uint groupID) - { - var chain = MessageBuilder.Group(groupID).Text("权限不足"); - ctx.SendMessage(chain.Build()); - } - - // 先Init后再运行 - public Task Run() - { - QrCode.Instance.Client.Invoker.OnGroupMemberIncreaseEvent += (context, @event) => - { - var groupid = @event.GroupUin; - if (_messageDict.ContainsKey(groupid)) - { - var message = _messageDict[groupid]; - var chain = MessageBuilder.Group(groupid).Text(message); - context.SendMessage(chain.Build()); - } - }; - - QrCode.Instance.Client.Invoker.OnGroupMessageReceived += (content, @event) => - { - var groupId = @event.Chain.GroupUin.Value; - var senderId = @event.Chain.FriendUin; - var text = @event.Chain.ToPreviewText(); - - // 执行命令 - if (_commandDict.ContainsKey(text)) - { - var chain = MessageBuilder.Group(groupId).Text(_commandDict[text]); - content.SendMessage(chain.Build()); - } - - var today = DateTime.Today; - var seed = today.Year ^ today.Month ^ today.Day ^ senderId; - var random = new Random((int)seed); - - switch (text) - { - case "/reload": - _ = Init(); - var chain3 = MessageBuilder.Group(groupId).Text("重载完成!"); - content.SendMessage(chain3.Build()); - break; - } - - - if (text.Contains("/addadmin") && text.StartsWith("/addadmin")) - { - if (_adminSet.Contains(senderId)) - { - var temp = uint.Parse(text.Remove(0, 9)); - if (_adminSet.Contains(temp)) - { - var chain = MessageBuilder.Group(groupId).Text("已存在管理员: " + temp); - content.SendMessage(chain.Build()); - } - else - { - _adminSet.Add(temp); - var chain = MessageBuilder.Group(groupId).Text("已添加管理员: " + temp); - SaveAdmin(); - content.SendMessage(chain.Build()); - } - } - else - { - NoEnoughPermission(content, groupId); - } - } - - }; - - return Task.CompletedTask; - } -}