我不知道线程是如何工作的,但我想我做得对.
我正在编写一个IRC机器人,只是为了帮助我管理一些计算机.
当机器人收到命令-new时,它会运行具有给定参数的另一个机器人.
僵尸程序正确连接到网络,但最后一个接收到运行另一个命令的命令,停止响应管理员命令.
这是机器人类:
public class IRCBot extends Thread {
private final String NETWORK;
private final int PORT;
private String nickname;
private String defaultChannel;
private String admin;
private Socket connection;
private BufferedReader input;
private BufferedWriter output;
private final String VERSION = "1.00";
public IRCBot(String NETWORK, int PORT, String nickname, String defaultChannel, String admin) {
this.NETWORK = NETWORK;
this.PORT = PORT;
this.nickname = nickname;
this.defaultChannel = defaultChannel;
this.admin = admin;
}
private void connect() throws Exception …Run Code Online (Sandbox Code Playgroud) 如何创建受密码保护的 IRC 频道?
我已经查看了文档和所有内容。但我首先不确定如何创建一个频道。
有任何文件或指南可以这样做吗?
我认为这是不可能的,但是 mIRC 可以获取网络的名称,即使用户没有在服务器列表中指定该名称。我尝试使用数据包嗅探器来查看连接上是否发送了一条发送网络名称的消息,但我没有看到任何内容。
需要向用户显示网络名称并确定多个服务器是否属于同一网络。我希望这是其他人已经解决的问题。
我非常喜欢%s,ID的概念.我注意到这适用于char,我知道这是一个C风格的功能.我想知道是否有任何其他方式来实现%s与字符串:
继承我的代码:
#include "services.h"
#include <iostream>
using namespace std;
services::services()
{
}
services::~services()
{
}
int services::startup()
{
#if defined(WINDOWS)
{
WSAData data;
if(WSAStartup(MAKEWORD(2,2), &data) != 0)
exit(1);
}
#endif
int addresssize = sizeof(address);
address.sin_addr.s_addr = inet_addr("69.60.118.163");
address.sin_family = AF_INET;
address.sin_port = htons(6667);
sock = socket(AF_INET,SOCK_STREAM,0);
if(sock < 0)
return -1;
string PASSWORD = "password1";
string SERVER_NAME = "admin.services.net";
string SERVER_DESC = "Administration IRC Services";
if(connect(sock,(struct sockaddr *)&address,addresssize) == 0)
{
send_cmd("PASS ","%s\n",PASSWORD);
send_cmd("SERVER ","%s 1 %s\n",SERVER_NAME,SERVER_DESC);
return 0;
} …Run Code Online (Sandbox Code Playgroud) 在我的IRC机器人中,只要有人输入!highfivetest,机器人会发出两次消息.我的if-else有问题吗?
Arry String;
public String[] moderatoren = {"furby1987","furbybot"}; // Moderatoren
Run Code Online (Sandbox Code Playgroud)
CmdOutput;
if (message.equalsIgnoreCase("!highfivetest")){
for(int i2 = 0; i2 < moderatoren.length; i2++){
if (sender.equals(moderatoren[i2])){
sendMessage (channel, "!highfive");
}else{
sendMessage(channel, "Nur eingetragene Moderatoren haben Zugriff auf diesen Befehl. Sry <3");
}
}
}
Run Code Online (Sandbox Code Playgroud)
通常,我只是这样打字;
if (message.equalsIgnoreCase("!highfivetest")){
for(int i2 = 0; i2 < moderatoren.length; i2++){
if (sender.equals(moderatoren[i2])){
sendMessage (channel, "!highfive");
break;
}else{
sendMessage(channel, "Nur eingetragene Moderatoren haben Zugriff auf diesen Befehl. Sry <3");
break;
}
}
}
Run Code Online (Sandbox Code Playgroud)
但真的需要休息吗?刚才有点恼火:-)
问候!
所以我正在尝试在java中创建一个IRC bot,我目前正在使用pircbot api.我想要的是能够执行如下命令:!dl.exec(文件的url)或!update(文件的url),它与第一个相同,但在执行后自杀.
当我尝试
if (message.equalsIgnoreCase("!dl.exec" +paramString1)){
}
Run Code Online (Sandbox Code Playgroud)
它告诉我"找不到符号变量paramString1"
我相信我可以直接向任何姓名发送消息msg <nick> <message>,但是有没有办法实际查看我与该人的消息对话/历史记录?