33 #include <QtCore/qobject.h>
34 #include <QtCore/qmetatype.h>
35 #include <QtCore/qstringlist.h>
42 class IrcCommandPrivate;
49 Q_PROPERTY(QStringList parameters READ parameters WRITE setParameters)
50 Q_PROPERTY(QByteArray encoding READ encoding WRITE setEncoding)
51 Q_PROPERTY(
Type type READ type WRITE setType)
92 explicit IrcCommand(QObject* parent =
nullptr);
99 void setType(Type type);
101 QStringList parameters()
const;
102 void setParameters(
const QStringList& parameters);
104 QByteArray encoding()
const;
105 void setEncoding(
const QByteArray& encoding);
107 virtual QString toString()
const;
111 Q_INVOKABLE
static IrcCommand* createAdmin(
const QString& server = QString());
112 Q_INVOKABLE
static IrcCommand* createAway(
const QString& reason = QString());
113 Q_INVOKABLE
static IrcCommand* createCapability(
const QString& subCommand,
const QString& capability);
114 Q_INVOKABLE
static IrcCommand* createCapability(
const QString& subCommand,
const QStringList& capabilities = QStringList());
115 Q_INVOKABLE
static IrcCommand* createCtcpAction(
const QString& target,
const QString& action);
116 Q_INVOKABLE
static IrcCommand* createCtcpReply(
const QString& target,
const QString& reply);
117 Q_INVOKABLE
static IrcCommand* createCtcpRequest(
const QString& target,
const QString& request);
118 Q_INVOKABLE
static IrcCommand* createInfo(
const QString& server = QString());
119 Q_INVOKABLE
static IrcCommand* createInvite(
const QString& user,
const QString& channel);
120 Q_INVOKABLE
static IrcCommand* createJoin(
const QString& channel,
const QString& key = QString());
121 Q_INVOKABLE
static IrcCommand* createJoin(
const QStringList& channels,
const QStringList& keys = QStringList());
122 Q_INVOKABLE
static IrcCommand* createKick(
const QString& channel,
const QString& user,
const QString& reason = QString());
123 Q_INVOKABLE
static IrcCommand* createKnock(
const QString& channel,
const QString& message = QString());
124 Q_INVOKABLE
static IrcCommand* createList(
const QStringList& channels = QStringList(),
const QString& server = QString());
125 Q_INVOKABLE
static IrcCommand* createMessage(
const QString& target,
const QString& message);
126 Q_INVOKABLE
static IrcCommand* createMode(
const QString& target,
const QString& mode = QString(),
const QString& arg = QString());
127 Q_INVOKABLE
static IrcCommand* createMonitor(
const QString& command,
const QString& target = QString());
128 Q_INVOKABLE
static IrcCommand* createMonitor(
const QString& command,
const QStringList& targets);
129 Q_INVOKABLE
static IrcCommand* createMotd(
const QString& server = QString());
130 Q_INVOKABLE
static IrcCommand* createNames(
const QString& channel = QString(),
const QString& server = QString());
131 Q_INVOKABLE
static IrcCommand* createNames(
const QStringList& channels,
const QString& server = QString());
132 Q_INVOKABLE
static IrcCommand* createNick(
const QString& nick);
133 Q_INVOKABLE
static IrcCommand* createNotice(
const QString& target,
const QString& notice);
134 Q_INVOKABLE
static IrcCommand* createPart(
const QString& channel,
const QString& reason = QString());
135 Q_INVOKABLE
static IrcCommand* createPart(
const QStringList& channels,
const QString& reason = QString());
136 Q_INVOKABLE
static IrcCommand* createPing(
const QString& argument);
137 Q_INVOKABLE
static IrcCommand* createPong(
const QString& argument);
138 Q_INVOKABLE
static IrcCommand* createQuit(
const QString& reason = QString());
139 Q_INVOKABLE
static IrcCommand* createQuote(
const QString& raw);
140 Q_INVOKABLE
static IrcCommand* createQuote(
const QStringList& parameters);
141 Q_INVOKABLE
static IrcCommand* createStats(
const QString& query,
const QString& server = QString());
142 Q_INVOKABLE
static IrcCommand* createTime(
const QString& server = QString());
143 Q_INVOKABLE
static IrcCommand* createTopic(
const QString& channel,
const QString& topic = QString());
144 Q_INVOKABLE
static IrcCommand* createTrace(
const QString& target = QString());
145 Q_INVOKABLE
static IrcCommand* createUsers(
const QString& server = QString());
146 Q_INVOKABLE
static IrcCommand* createVersion(
const QString& user = QString());
147 Q_INVOKABLE
static IrcCommand* createWho(
const QString& mask,
bool operators =
false);
148 Q_INVOKABLE
static IrcCommand* createWhois(
const QString& user);
149 Q_INVOKABLE
static IrcCommand* createWhowas(
const QString& user,
int count = 1);
152 QScopedPointer<IrcCommandPrivate> d_ptr;
157 #ifndef QT_NO_DEBUG_STREAM
159 IRC_CORE_EXPORT QDebug operator<<(QDebug debug,
const IrcCommand* command);
164 Q_DECLARE_METATYPE(IRC_PREPEND_NAMESPACE(
IrcCommand*))
Provides the most common commands.
Definition: irccommand.h:45
Type
Definition: irccommand.h:55
@ Away
An away command (AWAY) is used to set the away status.
Definition: irccommand.h:57
@ Nick
A nick command (NICK) is used to give user a nickname or change the previous one.
Definition: irccommand.h:73
@ Stats
A stats command (STATS) is used to query server statistics.
Definition: irccommand.h:80
@ Custom
A custom command.
Definition: irccommand.h:62
@ Kick
A kick command (KICK) is used to forcibly remove a user from a channel.
Definition: irccommand.h:66
@ Part
A part command (PART) causes the client to be removed from the channel.
Definition: irccommand.h:75
@ Whois
A whois command (WHOIS) is used to query information about a particular user.
Definition: irccommand.h:87
@ Whowas
A whowas command (WHOWAS) is used to query information about a user that no longer exists.
Definition: irccommand.h:88
@ Time
A time command (TIME) is used to query local server time.
Definition: irccommand.h:81
@ Names
A names command (NAMES) is used to list all nicknames on a channel.
Definition: irccommand.h:72
@ Message
A message command (PRIVMSG) is used to send private messages to channels and users.
Definition: irccommand.h:69
@ Trace
A trace command (TRACE) is used to trace the connection path to a target.
Definition: irccommand.h:83
@ Version
A version command (VERSION) is used to query user or server version.
Definition: irccommand.h:85
@ Knock
A knock command (KNOCK) is used to request channel invitation.
Definition: irccommand.h:67
@ Invite
An invite command (INVITE) is used to invite users to a channel.
Definition: irccommand.h:64
@ Mode
A mode command (MODE) is used to change the mode of users and channels.
Definition: irccommand.h:70
@ CtcpRequest
A CTCP request command is used to send a request.
Definition: irccommand.h:61
@ Users
A users command (USERS) is used to query server users.
Definition: irccommand.h:84
@ Join
A join command (JOIN) is used to start listening a specific channel.
Definition: irccommand.h:65
@ Quote
A quote command is used to send a raw message to the server.
Definition: irccommand.h:79
@ Notice
A notice command (NOTICE) is used to send notice messages to channels and users.
Definition: irccommand.h:74
@ Topic
A topic command (TOPIC) is used to change or view the topic of a channel.
Definition: irccommand.h:82
@ CtcpAction
A CTCP action command is used to send an action message to channels and users.
Definition: irccommand.h:59
@ Motd
A message of the day command (MOTD) is used to query the message of the day.
Definition: irccommand.h:71
@ Capability
A capability command (CAP) is used to manage connection capabilities.
Definition: irccommand.h:58
@ Info
An info command (INFO) is used to query server info.
Definition: irccommand.h:63
@ List
A list command (LIST) is used to list channels and their topics.
Definition: irccommand.h:68
@ CtcpReply
A CTCP reply command is used to send a reply to a request.
Definition: irccommand.h:60
@ Admin
An admin command (ADMIN) is used to query server admin info.
Definition: irccommand.h:56
@ Quit
A quit command (QUIT) is used to end a client connection.
Definition: irccommand.h:78
@ Who
A who command (WHO) is used to generate a query which returns a list of matching users.
Definition: irccommand.h:86
Provides means to establish a connection to an IRC server.
Definition: ircconnection.h:49
The base class of all messages.
Definition: ircmessage.h:48
Provides network information and capability management.
Definition: ircnetwork.h:44