-
Notifications
You must be signed in to change notification settings - Fork 41
/
ExamplePlugin.Disconnected.cs
34 lines (33 loc) · 1.08 KB
/
ExamplePlugin.Disconnected.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
using System;
using System.Threading.Tasks;
using Mirai.CSharp.HttpApi.Handlers;
using Mirai.CSharp.HttpApi.Models.EventArgs;
using Mirai.CSharp.HttpApi.Session;
namespace Mirai.CSharp.Example
{
// IDisconnectedEventArgs 和 IUnknownMessageEventArgs 不需要标定 RegisterMiraiHttpParserAttribute
public partial class ExamplePlugin : IMiraiHttpMessageHandler<IDisconnectedEventArgs>
{
public async Task HandleMessageAsync(IMiraiHttpSession session, IDisconnectedEventArgs e)
{
// e.Exception: 引发掉线的响应异常, 按需处理
while (true)
{
try
{
await session.ConnectAsync(e.LastConnectedQQNumber);
e.BlockRemainingHandlers = true;
break;
}
catch (ObjectDisposedException) // session 已被释放
{
break;
}
catch (Exception)
{
await Task.Delay(1000);
}
}
}
}
}