Acerca de dotmsn
LumaQQ no proporciona un robot completamente funcional para su uso, por lo que debe confiar en usted mismo para implementar un robot. LumaQQ solo le proporciona un marco simple. Este artículo le indicará cómo insertarlo usted mismo. en LumaQQ de robots.
Paso 1: Implemente su propio bot
De forma predeterminada, LumaQQ proporciona un bot, pero este bot básicamente no hace nada y no está activado de forma predeterminada. El código de este robot está en edu.tsinghua.lumaqq.qq.robot.DummyRobot.java. Es puramente para demostración. Si desea ver el efecto, puede encontrar un archivo robots.xml en el directorio xml de LumaQQ. Este archivo está en el archivo de configuración del robot, puede ver que escribí algunos comentarios en él. Puede simplemente eliminar estos comentarios, guardarlos y luego reiniciar LumaQQ. La forma de utilizar un bot es abrir el menú del sistema. Si el sistema está configurado con al menos un bot, habrá un elemento "Chatbot" en el menú del sistema, que tiene un submenú que enumera todos los bots existentes y un Inicio. / Menú detener, no diré mucho más al respecto, pero creo que lo usarás.
Para implementar un chatbot, se debe implementar la interfaz edu.tsinghua.lumaqq.qq.robot.IRobot, que actualmente es muy simple y contiene un solo método, como se muestra a continuación:
Interfaz pública IRobot {
/**
* Obtener mensajes basados en mensajes.
* Obtener el mensaje de respuesta según el mensaje
*
* @param paquete
* Aceptar el paquete de mensaje
* @return
* El mensaje al que se va a responder, devuelve nulo para indicar que no se debe responder a este mensaje
*/
public String getReply(ReceiveIMPacket paquete);
p>} La implementación de DummyRobot es la siguiente:
la clase pública DummyRobot implementa IRobot {
/* (no Javadoc )
* @see edu .zhd.tsinghua.lumaqq.qq.robot.IRobot#getReply(edu.tsinghua.lumaqq.qq.packets.in.ReceiveIMPacket)
*/
public String getReply(ReceiveIMPacket paquete) {
/*
* Ejemplo:
* 1. Cómo obtener el QQ del remitente número
* paquete. header.sender
*
* 2. Cómo obtener el contenido del mensaje
* paquete.normalIM. messageBytes es el contenido de la matriz de bytes del mensaje, si necesita obtener el contenido de caracteres en forma de cadena
* new String(packet.normalIM.messageBytes, QQ.QQ.MessageBytes, QQ.QQ.MessageBytes, QQ.QQ.MessageBytes, QQ.QQ.MessageBytes, QQ.QQ.MessageBytes )messageBytes, QQ.QQ_CHARSET_ DEFAULT)
* Para conocer el formato del mensaje, consulte edu.tsinghua.lumaqq.qq.beans.NormalIM
*
* 3. ¿Cómo saber si el mensaje es un fragmento de un mensaje más grande?
* if(packet.normalIM.totalFragments gt; 1) {
* // Haz lo que quieras, tú decides, puedes almacenarlo en caché hasta que se complete todo el Fragmento de p>
* }
*
* 4. ¿Cómo sé el número de fragmento de este mensaje?
* paquete.normalIM.fragmentSequence
*
* 5. ¿Cómo saber el id de este mensaje? La identificación del mensaje también se usa en situaciones de fragmentación, es decir, los mismos fragmentos de mensaje del mismo mensaje tienen la misma identificación del mensaje
* paquete.normalIM.messageId
*
* 6. ¿Cómo saber si el mensaje es una respuesta automática?
* if(packet.normalIM.replyType ! = QQ.QQ_IM_AUTO_REPLY) {
* // Haz lo que quieras hacer
* }
*
*
* Más contenido y campos disponibles
*
Ver edu.tingshua.lumaqq.qq.beans.> * Ver edu.tinghua.lumaqq.qq.beans.ReceiveIMHeader
*/
if(packet.normalIM.replyType ! = QQ.QQ_IM_AUTO_REPLY)
Devuelve "Hola, soy un robot";
De lo contrario
devuelve nulo
}< /p; >
}
Entonces, como puedes ver, DummyRobot básicamente no hace nada. Sigue devolviendo el mismo contenido antiguo, pero determina si es una respuesta automática y, si lo es, no lo procesa, evitando así quedarse atascado con una respuesta automática. Como puedes ver, hay muchos comentarios en DummyRobot que deberían ayudarte directamente.
Paso 2: Implementar el programa del robot
Agregar un robot no requiere modificar el código fuente de LumaQQ. Solo necesita empaquetar el programa del robot en un archivo jar y luego copiarlo. al directorio lib de LumaQQ, la ventaja de esto es que puede agregar robots en cualquier momento y no necesariamente necesita tener el código fuente de LumaQQ. Por supuesto, al escribir el programa del robot, debe importar lumaqq.jar al proyecto; de lo contrario, no se encontrará la definición de la interfaz IRobot.
Paso 3: Modificar el archivo de configuración del robot
El archivo de configuración del robot se encuentra en el directorio xml de LumaQQ. Naturalmente, es un archivo nuevo. Si el archivo no existe, entonces. LumaQQ pensará que no hay ningún robot disponible y tampoco habrá ningún elemento de menú Robots en el menú del sistema. El formato de este archivo también es muy simple. Supongamos que quiero configurar DummyRobot, entonces su formato es el siguiente:
lt;?xml version="1.0" encoding="UTF-8"?
lt;Robotsgt;
lt;Robotgt;
lt;Namegt;Dummy Robotlt;/Namegt;
lt;Implementationgt; edu.lumaqq .qq.robot.DummyRobotlt;/Implementationgt;
lt;/Robotgt;
lt;/Robotsgt;
¿Ves? del robot y clase de implementación de IRobot. Si tienes varios robots, puedes agregar tantos elementos de robot como quieras
Resumen
Esto concluye el proceso de agregar robots, te deseo una agradable experiencia.