# 快速上手

本章会帮助你从创建项目开始写一个 QQ群"复读机"项目。

# 环境要求

在开始之前,需要先检查本地的环境。具体要求如下:

  • 基本要求

    • 如无意外,go-cqhttp 能在哪个平台运行,本框架就能在哪里运行
  • SDK开发环境

    • 操作系统: Windows10 (64bit)
    • 编译环境: Visual Studio 2019 (带有MSBuild 16.5或以上)
    • 运行环境: .NET 5/.NET Framework 4.6.1以上*

*:对于更具体地支持列表请点击这里 (opens new window)跳转查看

# 创建项目

提示

本章节是给不了解或不清楚应该创建什么项目的开发者检视的,如果你已经知道或使用其他模板创建项目请点这里跳过本章节

1.创建项目

打开你的Visual Studio 创建一个你喜欢的项目,这里创建一个 .NET Framework 4.7.2 的控制台项目。

务必留意

请务必确认能够运行本框架,如不确定请点击这里检查运行要求

2.打开项目的 NuGet 管理

打开菜单 “工具” -> “NuGet包管理器” -> "管理解决方案的 NuGet 程序包",打开之后勾选 “包括预发行版本”,在搜索框内搜索 “AuroraNative”。选中之后将其安装到项目中

3.编写代码

创建一个事件类,命名为 EventHook,并继承 Event 类。

using AuroraNative;

namespace TestBot
{
    class EventHook : Event
    {
    }
}

随后打开 Program.cs 添加以下代码,本文使用了正向WebSocket。并且 go-cqhttp 端并没有修改默认配置,默认值是127.0.0.1:6700 如果没变可以不传。

小提示

本框架是支持反向WebSocket的,只要将下面的Client转为Server后,传入port参数即可(Client是传入host参数)

using AuroraNative.WebSockets;

Client client = new Client(new EventHook()) {
                host = "127.0.0.1",
                port = 6700
            };
client.Create();

请注意

代码中所有的Client是可以对应替换成Server的


写到这里其实已经可以运行并连接到 go-cqhttp 了,但是由于事件类没有写东西所以什么都看不见。


4.编写事件代码

打开到刚刚创建好的 EventHook 类,对照事件列表重写你需要的方法。本文以群复读机为例,因此重写群消息事件。

小提示

本框架推荐使用Visual Studio的自动补全,这样只需要知道方法名就可以自动补全整个方法,可以不需要去寻找方法类型

using AuroraNative.EventArgs;

public override void GroupMessage(GroupMessageArgs e)
{
    
}

随后在事件中添加以下代码即可调用API复读,你也可以查看API列表来调用更多的API

API.CurrentApi.SendGroupMessage(e.GroupID,e.Message);

大功告成!现在运行起来就可以看见复读的效果了,如果不清楚添加在哪可以点击下方的箭头查看完整示例。

完整的实例代码

Program.cs

using System;
using AuroraNative.WebSockets;

namespace TestBot
{
    class Program
    {
        static void Main(string[] args)
        {
            Client client = new Client(new Events()) {
                            host = "127.0.0.1",
                            port = 6700
                        };
            client.Create();
            Console.ReadKey();
        }
    }
}

EventHook.cs

using AuroraNative;
using AuroraNative.EventArgs;

namespace TestBot
{
    class EventHook : Event
    {
        public override void GroupMessage(GroupMessageArgs e)
        {
            API.CurrentApi.SendGroupMessage(e.GroupID,e.Message);
        }
    }
}