Ejemplo n.º 1
0
 public async Task Run(CommandArgs args)
 {
     if (!await args.Source.HasPermission("chatrecord", -1))
     {
         return;
     }
     await args.Callback(RecordDatabaseManager.CountContains(args.Arg).ToString());
 }
Ejemplo n.º 2
0
        public async Task Run(CommandArgs args)
        {
            var splits = args.Arg.Trim().Split(' ');
            var group  = long.Parse(splits[0]);
            var qq     = long.Parse(splits[1]);
            var id     = int.Parse(splits[2]);

            if (!await args.Source.HasPermission("management.antirevoke", group) && qq != args.Source.FromQQ)
            {
                return;
            }
            await args.Callback(RecordDatabaseManager.GetRecords().Where(r => r.qq == qq && r.group == group).SkipLast(id).LastOrDefault()?.message ?? "");
        }
Ejemplo n.º 3
0
        private static void PluginInitialize()
        {
            if (!Directory.Exists("Plugins"))
            {
                Directory.CreateDirectory("Plugins");
            }
            foreach (var type in new [] { Assembly.GetExecutingAssembly() }
                     .Concat(Directory.GetFiles("Plugins").Select(file => Assembly.LoadFrom(file)))
                     .SelectMany(asm => asm.GetTypes()))
            {
                if (type.IsAbstract)
                {
                    continue;
                }

                object o = null;
                if (type.IsAssignableTo(typeof(Configuration)))
                {
                    Configuration.Register((Configuration)(o ??= Activator.CreateInstance(type)));
                    Utils.Log(LoggerLevel.Info, $"registering {o} to configuration");
                }

                if (type.IsAssignableTo(typeof(ICommand)))
                {
                    MessageHandler.Register((ICommand)(o ??= Activator.CreateInstance(type)));
                    Utils.Log(LoggerLevel.Info, $"registering {o} to command");
                }

                if (type.IsAssignableTo(typeof(IMessageHandler)))
                {
                    MessageHandler.Register((IMessageHandler)(o ??= Activator.CreateInstance(type)));
                    Utils.Log(LoggerLevel.Info, $"registering {o} to handler");
                }
            }
            RecordDatabaseManager.InitDatabase();
            Configuration.LoadAll();
            MessageHandler.SortHandler();
            GC.Collect();
        }
Ejemplo n.º 4
0
 private static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
 {
     RecordDatabaseManager.Close();
     Console.WriteLine(e.ExceptionObject);
 }