私はSmartIRC4Netライブラリ(http://www.meebey.net/projects/smartirc4net/)を使用してC#でボットを作っています。あなたがその図書館に精通していない場合は、私に代替手段を教えてください。SmartIRC4Netはアクティビティを接続/表示しません
これは私が見つけることができる最もサポートされているライブラリなので、私はそれを使用しました。私は "テスト"の例のボットを読んで、クエリとレスポンスの入力を取り除いて基本的なものにしました。
より良いテストが不足しているため、ウェブチャンネルに接続しようとしましたが、接続していないようです。ボットをデバッグするときに私のクライアントに何も表示されません(私は自分のチャンネルにいます)。また、コンソールにはIRCのエラーメッセージや例外は表示されず、最後に入力したポーズだけが表示されます。 コード:
public static IrcClient irc = new IrcClient();
public static void Main(string[] args)
{
//Setup
irc.Encoding = System.Text.Encoding.UTF8;
irc.SendDelay = 200;
irc.ActiveChannelSyncing = true;
//Event Handlers
irc.OnError += new ErrorEventHandler(irc_OnError);
irc.OnConnected += new EventHandler(irc_OnConnected);
irc.OnRawMessage += new IrcEventHandler(irc_OnRawMessage);
try
{
//Connect, log in, join channel
irc.Connect("irc.freenode.org", 6667);
irc.Login("HGPBot", "HGP Bot");
irc.RfcJoin("#smartirc");
}
catch (Exception e)
{
Console.WriteLine("Could not connect, exception:" + Environment.NewLine
+ e.Message + Environment.NewLine
+ e.ToString());
}
//pause
Console.WriteLine("Press any key to continue");
Console.ReadKey(true);
//Disconnect
irc.Disconnect();
//Exit
Environment.Exit(0);
}
static void irc_OnRawMessage(object sender, IrcEventArgs e)
{
Console.WriteLine("irc_OnRawMessage initiated");
}
static void irc_OnConnected(object sender, EventArgs e)
{
Console.WriteLine("Connected");
irc.SendMessage(SendType.Message, "#smartirc", "Connected");
}
static void irc_OnError(object sender, ErrorEventArgs e)
{
Console.WriteLine("IRC Error: " + e.ErrorMessage);
}
[更新:追加irc_OnConnectedイベントイベントが発生し、「接続」のコンソールに記録されている@Russ C.によって示唆されているように。それでも、チャンネルでは何も起こりません。 sendmessage行を追加して何が起こるかを確認します。]
[Update2:SendMessageイベントとOnRawMessageイベントが追加されました。チャネルに出力が表示されず、OnRawMessageイベントの下のテキストはコンソールに書き込まれません。 (私はOnMessageの正しいイベントを使用していますか? "OnMessage"イベントは存在せず、テストボットはOnMessageが "すべてのIRCメッセージを取得します"と言います))
を、それがonConnected/onMessageのは、あなたがに接続することを意図しているイベントを受信していませんか? –
私はそれがOnConnectedイベントを持っていると信じています。それを追加して何が起こるかを見てみましょう。しかし、あなたが「あなたがつけようとしている」とはどういう意味ですか、そしてOnMessageReceivedイベントは何をしますか? –
私はiPadを降りるときに答えを書くつもりです、私に数分を教えてください。 –