C# Discord.NET基于日志的审核邀请跟踪器未发送所需消息

C# Discord.NET基于日志的审核邀请跟踪器未发送所需消息,c#,discord.net,C#,Discord.net,我向看到我上一篇帖子的人道歉。我知道这太模糊了,我只是不在合适的空间,但希望这篇文章能提供足够的信息。我一直在尝试调试这个基于auditlog的邀请跟踪器,这段时间太长了,我已经失去了理智。这背后的想法是,使用onmemberjoin事件,bot可以使用审核日志获取用户用于加入帮会的邀请,并将包含相关信息的日志发送到指定的日志通道。我可以在调试中看到正在收集auditlog,但没有发送消息。从我试着调试时获得的信息来看,它似乎不知何故在foreach和if语句之间停止了,而它下面的那行不知何故我

我向看到我上一篇帖子的人道歉。我知道这太模糊了,我只是不在合适的空间,但希望这篇文章能提供足够的信息。我一直在尝试调试这个基于auditlog的邀请跟踪器,这段时间太长了,我已经失去了理智。这背后的想法是,使用
onmemberjoin
事件,bot可以使用审核日志获取用户用于加入帮会的邀请,并将包含相关信息的日志发送到指定的日志通道。我可以在调试中看到正在收集auditlog,但没有发送消息。从我试着调试时获得的信息来看,它似乎不知何故在
foreach
if
语句之间停止了,而它下面的那行不知何故我不知道这是怎么可能的。如果有人能帮我找到这个问题,我将不胜感激

OnMemberJoin上的私有异步任务(SocketGuildUser arg)
{
var g=arg.Guild;
var channelId=await_servers.GetLogsAsync(g.Id);
var chnlIdInt=Convert.ToInt64(channelId);
如果(chnlIdInt==0)返回;
if(!g.CurrentUser.GuidPermissions.ViewAuditLog)
{
wait_serverHelper.SendLogAsync(g,“Bot没有足够的权限”,
“事件记录器任务失败,因为我没有\n“查看审核日志”权限。若要解决此错误,请\n给我该权限”);
返回;
}
var auditlogs=await g.GetAuditLogsAsync(1,null,null,null,ActionType.InviteUpdated)
.flattasync();
foreach(审计日志中的var审计)
if(audit.User为IUser&&audit.Data为InviteUpdateAuditLogData d1)
{
var inv3=\u client.Guilds
第()类
.FirstOrDefault(x=>x.After.Code.ToString().IndexOf(
d1.在代码之后,
StringComparison.Ordinalingorecase)=
-1);
如果(inv3==null)返回;
如果(inv3为IInvite IInvite)
{
var uses=d1.Before.MaxUses.Value-d1.After.MaxUses.Value;
wait_serverHelper.SendLogAsync(g,“使用邀请”,
$“已使用邀请。\n邀请:{iInvite.Url}\n总邀请使用:{uses.ToString()}`\n邀请创建人:{iInvite.Inviter.notice}”);
返回;
}
}

假设在
foreach
if
之间停止意味着它实际上没有到达
if
,那么
auditlogs
变量是否包含任何数据?auditlogs应该有数据Yes应该有和does*有是两件不同的事情。您应该确认它有和没有假设。调试您的代码可以准确地看到它在哪里没有做它应该做的事情,然后您可以尝试确定原因。