我正在使用Visual Studio和Discord.Net v2.1.1。
我已经搜索了所有内容,但是没有发现任何可以显示修改角色颜色(或IRole
)的方法。
还有其他方法吗?我在做什么错了?
Context.Guild.GetRole(roleid).ModifyAsync(???);
编辑:这对我有用:await Context.Guild.GetRole(roleid).ModifyAsync(x => x.Color = new Color(1, 4, 150));
答案 0 :(得分:2)
在Discord.Net中,大多数ModifyAsync
(如果不是全部)都将Action<T>
作为其参数,并且其文档及其用法在相应的XProperties
文档中。在这种情况下,RoleProperties。
由于这些方法都采用Action<T>
,因此我们可以看看Action上的Microsoft .NET API Documentation是什么。从文档中,我们了解到它是一个委托,而最简单的委托方式是使用lambda expression(另请参见Func vs. Action vs. Predicate)。
由此,我们可以得出以下结论,
var role = guild.GetRole(id);
await role.ModifyAsync(role =>
{
// Assign the color to a new Discord.Color struct of color [123, 123, 123]
role.Color = new Color(123, 123, 123);
});
所有ModifyAsync
的工作大致相同。