我正在制作一个机器人连接到一个irc的踢和笑,我正在让它响应不同的东西,但我希望它回应CTCP ACTION命令,这通常被用户称为/我用于角色播放或显示动作.
根据这个关于ctcp http://www.irchelp.org/irchelp/rfc/ctcpspec.html的精彩网页 ?
格式是地板上的\ 001ACTION barfs.\ 001
所以我设置我的机器人来回应
writer.WriteLine("PRIVMSG " + CHANNEL + " \001ACTION " + message + "\001");
Run Code Online (Sandbox Code Playgroud)
我也在我的控制台中打印出这个结果,所有响应都是"没有要发送的文字"
我真的不知道这是什么意思告诉我,我认为转义字符是在早期打破线,\ 0完全忽略了它之后的另一个01,所以我在控制台中打印机器人打印出来的是什么它和我打字/我跳舞,我在控制台阅读
PRIVMSG CHANNEL :(奇数符号)ACTION消息(奇数符号)我不知道奇怪的符号是什么,但对我来说它们看起来像笑脸.....在与几个人交谈后,我明白格式是正确的但是对于不同的语言,\ 001可能不同
所以我查了一下\ 001对于c#和我的fin\x01和\ 0011意味着什么,\ 0011没有做任何事情,\ x01也给我回复相同的响应......"没有要发送的文字"
我将"PRIVMSG"+ CHANNEL +"\ x01ACTION"+消息+"\ x01"打印到我的控制台,我将\ x01替换为当我输入/我跳舞并打开机器人时显示的同一个笑脸角色它读到控制台的内容......
我的代码很简单
if (type == MessageType.ActionMessage)
{
writer.WriteLine("PRIVMSG " + CHANNEL + " \x01ACTION " + message + "\x01");
Console.WriteLine("PRIVMSG " + CHANNEL + " \x01ACTION " + message + "\x01");
writer.Flush();
}
Run Code Online (Sandbox Code Playgroud)
writer对象不为null,并将其写入我的控制台是我可以看到会发生什么
最终的问题是,这是正确的,如果不是通过c#客户端向客户端协议CTCP显示操作的正确方法是什么
A's*_*ens 11
我终于弄清楚\ x01是\ 001的正确转义字符,但\ x01是十六进制,转义字符是2个字节soooo .....\x01AC是一个有效的转义字符....所以我要么必须它\ 0001或者在它自己的字符串"\ x01"+"ACTION action struff\x01"中有转义字符,编译器或w/e处理它的方式不会将A和C误认为是转义字符的一部分
在C转义字符是1字节所以\ 001或\ x01不会导致A和C成为它的一部分....
| 归档时间: |
|
| 查看次数: |
5115 次 |
| 最近记录: |