我写了一个不和谐机器人。它是用C#开发的。我的命令列表已填充,命令值将接收此列表。但该命令在调用时不执行代码。
我的前缀字符是“!”然后是命令。我的基类如下所示:
public class Bot
{
string token = "#######################"; // my Token
CommandService command; // The commands holder
EventController eventController = new EventController(); // event class
CommandController commandController = new CommandController(); // commands class
public Bot()
{
var client = new DiscordClient(); // my client
client = new DiscordClient(input =>
{
input.LogLevel = LogSeverity.Info;
input.LogHandler = Log;
});
client.UsingCommands(input =>
{
input.PrefixChar = '!'; // the prefix char to call commands
input.AllowMentionPrefix = true;
});
eventController.HandleEvents(client); // reference to events
command = client.GetService<CommandService>();
commandController.HandleCommands(command, client); // reference to commands
client.ExecuteAndWait(async() =>
{
while (true)
{
await client.Connect(token, TokenType.Bot);
break;
}
});
}
private void Log(object sender, LogMessageEventArgs e)
{
Console.WriteLine(e.Message);
}
我将代码分为两类,eventController和commandController。commandController是相关的。
我的命令类如下所示:
private List<Tuple<string, string, string>> commandList = new List<Tuple<string, string, string>>(); // the List holding all commands
public void HandleCommands(CommandService command, DiscordClient client)
{
FillCommandList(); // Fill the List with the commands
foreach (Tuple<string, string, string> tuple in commandList)
{
command.CreateCommand('!' + tuple.Item1).Do(async (e) =>
{
await e.Channel.SendMessage(tuple.Item2); // Create all commands from the List
});
}
}
private void Add(string commandName, string textToReturn, string commandDescription)
{
commandList.Add(new Tuple<string, string, string>(commandName, textToReturn, commandDescription)); // Method to lower the mass of code
}
private void FillCommandList()
{
Add("test0", "success0", "info0"); // commands for testing
Add("test1", "success1", "info1");
Add("test2", "success2", "info2");
Add("test3", "success3", "info3");
Add("help", UseHelp(), "List all Commands"); // call the help
}
private string UseHelp()
{
string commandItems = "";
foreach (Tuple<string, string, string> tuple in commandList)
{
commandItems += "- !" + tuple.Item1 + " - " + tuple.Item3 + "\r\n"; // List all commands
}
return commandItems;
}
因此,当我调用诸如“test0”或“UseHelp()”之类的命令时,该命令将接收字符串内容。所有5个命令都列在bot中。但是当我在Discord中使用命令时,Bot不会响应。
它已连接,“命令”数据已填充。。。
首先,看看这个:
client.UsingCommands(input =>
{
input.PrefixChar = '!'; // the prefix char to call commands
input.AllowMentionPrefix = true;
});
现在,这个:命令。创建命令元组。程序代码
不和。net中,当您已经创建了PrefixChar时,PrefixChar将始终显示在
命令的参数中。默认情况下,CreateCommand()
位于前端。因此,无需再放置一个“!”
内部。如果这样做,您必须使用
调用命令!!test0
。简单地说,将其视为系统已在命令的参数中自动添加前缀。CreateCommand()
自动位于前端。
要解决这个问题:只需删除char参数
!
在命令的前面。创建命令元组。项目1)
。通过调用测试机器人!test0
什么的,应该可以。
我开始写一个Discord机器人,但我已经设法遇到了一个问题。我只是写了他写的东西,做了一些小改动,不会对程序产生太大影响。我有两个类,主类只获取bot的令牌,然后使用 下面是MyBot.cs: 它可以连接,机器人也可以在线。这是我的控制台中的输出: 当我现在打字的时候。一般来说,什么都不会发生。控制台中没有,一般情况下也没有。我已经看过了,但它并没有解决我的问题 编辑:我知道我应该使用Comma
为什么/我的目标: 我有一个由pi组成的小型网状网络,每天大部分时间都在运行脚本。我想取消停机时间,但是代码有时会在连续循环3-4天后停止工作,(有时长达一周,代码才会出现错误并停止)。 每个节点上运行的脚本用“最后签入”字段更新mySQL数据库。 我希望用Java编写一个小型后台程序,它将在我的服务器上无限期运行,时不时地检查每个站点的“最后签入”,如果它注意到一个节点宕机,远程ssh进入该节点
我正在处理我的一个项目。我正在windows机器上使用XAMPP开发该项目。这就是我面临的问题。我需要在服务器上执行shell脚本,并在网页上显示结果。问题是,大多数脚本都按预期运行,但我无法获得以下命令的输出:, ls, cat, pwd 因为这些命令返回给我一个空白数组。 我找不到确切的问题。
问题内容: 我有一个需要使用redis命令行界面执行的redis命令的长文本文件: 例如 等等 我似乎找不到一种比一次输入命令更快的方法。有数十万行,所以我不想只将它们全部堆叠到一个DEL命令中,它们也不需要一次全部运行。 问题答案: 以下代码对我在Mac上的Redis 2.4.7有用 满足您的要求吗?或者,您是否正在寻找是否有办法以编程方式更快地做到这一点?
问题内容: 我想知道是否有一种方法可以在Go中运行一定的时间,然后在从通道接收到值后将其杀死。在似乎不支持命令管道。谢谢。 问题答案: 这是我的管道示例,通过OS Std Pipe归档一个调用文件b,您可以对其进行编辑并添加计时器以执行所需的操作。 文件b:
返回位于给定的基于一的行和列索引处的该矩阵的条目。如果行或列不是1或2,则引发异常。 这是我的方法的代码,但即使我使用参数row=1和col=2调用该方法;它显示了IndexOutOfBoundsException。有没有办法解决这个问题?