+ /** Handle the command from a local user.
+ * @param user The user who issued the command.
+ * @param parameters The parameters for the command.
+ * @return Returns CMD_FAILURE on failure, CMD_SUCCESS on success, or CMD_INVALID
+ * if the command was malformed.
+ */
+ virtual CmdResult HandleLocal(LocalUser* user, const Params& parameters);
+
+ /** Handle the command from a remote user.
+ * @param user The user who issued the command.
+ * @param parameters The parameters for the command.
+ * @return Returns CMD_FAILURE on failure, CMD_SUCCESS on success, or CMD_INVALID
+ * if the command was malformed.
+ */
+ virtual CmdResult HandleRemote(RemoteUser* user, const Params& parameters);
+
+ /** Handle the command from a server user.
+ * @param user The user who issued the command.
+ * @param parameters The parameters for the command.
+ * @return Returns CMD_FAILURE on failure, CMD_SUCCESS on success, or CMD_INVALID
+ * if the command was malformed.
+ */
+ virtual CmdResult HandleServer(FakeUser* user, const Params& parameters);
+};