问题标签 [dsharp+]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
74 浏览

dsharp+ - 为什么没有“LogLevel”和“UseInternalLoghandler”的定义?

我需要通过编程我自己的 Discord 机器人来获得帮助。我想在代码中写“LogLevel = LogLevel.Debug, UseInternalLoghandler = true”,但 Visulas Studio 犯了两个错误。它说没有 LogLevel 和 UnseInternalLoghandler 的定义。有人可以帮助我吗?也许我忘记了“使用”+ ...,但我不知道

0 投票
2 回答
107 浏览

c# - 将 DiscordUser 转换为 DiscordMember

我有 dsharp+ 的问题,所以基本上当我附加一个事件时 Client.VoiceStateUpdated += OnVoiceState;

并尝试将其转换DiscordUserDiscordMember它会引发异常,我知道我可以从文档中做到这一点
DocsDiscordUser

它有 50% 的时间在工作,当我加入频道或离开它时,它会抛出,但当我的朋友加入频道时它不会。这是怎么回事?

0 投票
0 回答
51 浏览

c# - playerdb.co API 没有返回任何内容,没有错误,只是将变量留空

我一直在尝试访问我的 discord 机器人的 API,以将输入从 discord 命令中的参数转换为用户名。

例如,如果我将 discord 命令输入?bw Tiim到 discord 中,它会返回一个嵌入了我的 bedwars 统计信息,并且我的用户名也会显示在那里。

机器人当前对命令的响应:

机器人当前对命令的响应

机器人对带有变量的命令的响应:

机器人对带有变量的命令的响应

问题是我需要为用户名找到正确的大小写,所以假设我运行命令?bw tiim,其中“t”是小写的,机器人仍然需要检查我的名字,所以我试图从中获取数据https://playerdb.co/api/player/minecraft/<username>,它显示播放器 UUID、具有正确大小写的用户名等,但是当我尝试使用以下代码调用它时,它什么也不返回,根本没有错误。我对 C# 编码比较陌生,所以我花了大约一天的时间试图弄清楚发生了什么,但我什至不知道可能出了什么问题。

部分命令调用API代码

ApiHelper.cs

名称处理器.cs

userInfoGrabber.cs

0 投票
0 回答
56 浏览

c# - DSharp + static void main() 不会加载

我想我的主要方法可能需要帮助,每当我尝试加载我的 Discord 机器人时,它都会给我一个未处理的异常,这就是异常的含义:System.ArgumentNullException: 'Type must be a class, which cannot be abstract or static. Parameter name: t'

这是完整的堆栈跟踪:“在 DSharpPlus.CommandsNext.CommandsNextExtension.RegisterCommands(Type t)\r\n at DSharpPlus.CommandsNext.CommandsNextExtension.RegisterCommandsT\r\n at Arthur_Bot.Bot.RunAsync() in C:\Users\bvgof \OneDrive\Documents\Visual Studio 2017\Projects\Arthur-Bot\Arthur-Bot\Bot.cs:line 54\r\n at Arthur_Bot.Program.Main(String[] args) in C:\Users\bvgof\OneDrive \Documents\Visual Studio 2017\Projects\Arthur-Bot\Arthur-Bot\Program.cs:line 8"

程序.cs:

机器人.cs:

我不知道发生了什么,我可以帮忙吗?

0 投票
0 回答
57 浏览

c# - 如何检查用户是否存在于 Dsharplus (C# discord bot)

基本上我想如果有人键入“whois(提及用户)”,机器人会发送一条消息,如“(第一条消息中提到的用户)是(来自数组的随机消息)”我只需要知道两件事我如何只发送一条消息如果它是实际提到的用户,并且只有在提到某个用户(我的光盘帐户)时,我才如何设置变量

到目前为止,这是我的代码如果您需要任何其他信息,请询问任何帮助将不胜感激

0 投票
0 回答
234 浏览

c# - 如何在 dsharpplus 中创建所有成员的列表?(锐利+)

我想在 dsharpplus 中创建我的不和谐服务器中所有成员的所有用户名/显示名的列表。这是我现在拥有的代码:

但这对我也不起作用:c.Guild.Members 没有显示完整的成员列表,因为我被告知成员并不总是完全缓存。

我将不胜感激任何帮助!

0 投票
0 回答
105 浏览

c# - C# Discord Bot - Docker 容器中的 SQLite 错误

我正在尝试通过 Docker 在带有 DSharp 库的 VPS(Ubuntu 18.04 x64)上部署 .NET-Core Discord-Bot。

我的项目包括一个 SQLite 数据库。使用 Visual Studio 手动运行数据时,我可以毫无问题地访问数据,而且我的机器人也发送命令。

但是,当我在启动机器人并使用 Docker 运行时尝试发送命令时,出现以下异常:

这是我的 docker-compose.yml 文件:

这是我的码头文件:

我正在加载连接字符串以从 App.config 访问我的数据库。

0 投票
1 回答
138 浏览

c# - 如何使用动态名称设置 Discord Bot 命令

所以我正在尝试为我朋友的不和谐服务器制作一个声音机器人。我们之前从另一位朋友那里得到了一个,但由于某种原因它停止了工作,我无法获得源代码。旧机器人必须播放声音的命令只是前缀“?” 然后是声音前的名称。“?youdied”我正在使用 DSharpPlus 库(v3.2.3)在 C# 中编写这个。这是设置命令的外观:

由于旧机器人没有使用静态命令来播放声音,只是可以添加或删除的声音名称,因此不会真正使用命令。但是,我不能只将名称留空并拥有“公共异步任务”。我可以只使用“播放”命令并将声音名称作为“?play youdied”之类的参数传递,但是因为我知道它可能是可能的(尽管可能不是C#)我想尝试一下,如果有办法.

有关我的设置的更多信息:我有一个 Program.cs 文件,其中包含初始化 DiscordClient、CommandsNextModule 和 InteractivityModule 的所有内容。然后是定义方法的 BasicCommands.Modules.cs 文件,这些方法实际上是由机器人完成的。

0 投票
0 回答
161 浏览

c# - 将 MemoryStream 与 .NET 的 System.Speech SpeechRecognitionEngine 类一起使用

我正在尝试使用 .NET 的 System.Speech SpeechRecognitionEngine 对象来识别不和谐用户在语音频道中所说的单词。机器人收到的原始 pcm 音频被写入 MemoryStream,我试图让 SpeechRecognitionEngine 使用这个 Stream 进行识别。获取这些数据并写入它可以正常工作,但是,由于多种原因,将其与 SpeechRecognitionEngine 一起使用似乎不起作用。一方面,流不是无限的,识别器到达流的末端并在单词甚至可以说出之前停止。即使数据不断地添加到流中(即用户不断地说话),识别器仍然会到达流的末尾并拒绝继续。另一个问题是运行识别的方法似乎不能多次运行。我' 已经尝试将流分块提供给识别器,但它似乎没有用。有一个选项可以将输入设置为您的默认音频设备,这正是我想要的,即使用户没有提供任何输入,它也始终运行而不停止。有什么帮助吗?

在另一个程序中,我将 pcm 数据写入“流”,如果有任何语法错误,那是因为手动复制代码而不是复制和粘贴以简化我的代码。谢谢!

0 投票
1 回答
56 浏览

c# - DSharpPlus 编辑频道主题

我正在尝试编辑文本频道的主题。我尝试使用DiscordChannel.ModifyAsync,但我不知道 anAction<ChannelEditModel>是什么。我该如何使用它?