mirror of
https://github.com/mamoe/mirai.git
synced 2025-03-03 15:10:14 +08:00
update
This commit is contained in:
parent
bbc1f717a6
commit
52857fad71
6
mirai-core/src/main/java/module-info.java
Normal file
6
mirai-core/src/main/java/module-info.java
Normal file
@ -0,0 +1,6 @@
|
||||
module mirai_core {
|
||||
requires kotlin.stdlib;
|
||||
requires lombok;
|
||||
|
||||
exports net.mamoe.mirai;
|
||||
}
|
@ -22,20 +22,21 @@ import java.net.InetSocketAddress
|
||||
* @author Him188moe @ Mirai Project
|
||||
*/
|
||||
class Robot(val number: Long) {
|
||||
private lateinit var ctx: ChannelHandlerContext;
|
||||
|
||||
internal fun onPacketReceived(packet: Packet) {
|
||||
if (packet !is ServerPacket) {
|
||||
return;
|
||||
return
|
||||
}
|
||||
|
||||
packet.decode()
|
||||
if (packet is Server0825Packet) {//todo 检查是否需要修改 UDP 连接???
|
||||
sendPacket(Client0825ResponsePacket(packet.serverIP, number));
|
||||
sendPacket(Client0825ResponsePacket(packet.serverIP, number))
|
||||
}
|
||||
}
|
||||
|
||||
private fun sendPacket(packet: Packet) {
|
||||
TODO()
|
||||
|
||||
}
|
||||
|
||||
@Throws(InterruptedException::class)
|
||||
@ -53,8 +54,9 @@ class Robot(val number: Long) {
|
||||
ch.pipeline().addLast(ByteArrayEncoder())
|
||||
ch.pipeline().addLast(ByteArrayDecoder())
|
||||
ch.pipeline().addLast(object : SimpleChannelInboundHandler<ByteArray>() {
|
||||
override fun channelRead0(ctx: ChannelHandlerContext?, bytes: ByteArray) {
|
||||
override fun channelRead0(ctx: ChannelHandlerContext, bytes: ByteArray) {
|
||||
try {
|
||||
this@Robot.ctx = ctx;
|
||||
/*val remaining = Reader.read(bytes);
|
||||
if (Reader.isPacketAvailable()) {
|
||||
robot.onPacketReceived(Reader.toServerPacket())
|
||||
|
@ -3,6 +3,7 @@ package net.mamoe.mirai.network.packet.client
|
||||
import net.mamoe.mirai.network.Protocol
|
||||
import net.mamoe.mirai.network.packet.PacketId
|
||||
import net.mamoe.mirai.util.TEAEncryption
|
||||
import net.mamoe.mirai.util.hexToBytes
|
||||
import java.io.IOException
|
||||
|
||||
/**
|
||||
@ -27,6 +28,6 @@ class Client0825ResponsePacket(private val serverIP: String, private val qq: Lon
|
||||
this.writeHex("01 6F A1 58 22 01 00 36 00 12 00 02 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 14 00 1D 01 03 00 19")
|
||||
this.writeHex(Protocol.publicKey)
|
||||
}
|
||||
}.encodeToByteArray(), Protocol.hexToBytes(Protocol.redirectionKey)))
|
||||
}.encodeToByteArray(), Protocol.redirectionKey.hexToBytes()))
|
||||
}
|
||||
}
|
@ -5,8 +5,10 @@ import lombok.EqualsAndHashCode;
|
||||
import net.mamoe.mirai.network.Protocol;
|
||||
import net.mamoe.mirai.network.packet.PacketId;
|
||||
import net.mamoe.mirai.util.TEAEncryption;
|
||||
import net.mamoe.mirai.util.Utils;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* @author Him188moe @ Mirai Project
|
||||
@ -32,10 +34,25 @@ public class ClientLoginPacket extends ClientPacket {
|
||||
this.writeHex(Protocol._0825data2);
|
||||
this.writeQQ(qq);
|
||||
this.writeHex("00 00 00 00 03 09 00 08 00 01");
|
||||
this.writeIp(Protocol.SERVER_IP.get(2));
|
||||
//this.writeIp(Protocol.SERVER_IP.get(2));
|
||||
this.writeIp("123456789");
|
||||
this.writeHex("00 02 00 36 00 12 00 02 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 14 00 1D 01 02 00 19");
|
||||
this.writeHex(Protocol.publicKey);
|
||||
}
|
||||
}.encodeToByteArray(), Protocol.hexToBytes(Protocol._0825key)));
|
||||
}
|
||||
|
||||
|
||||
public static void main(String[] args) throws IOException {
|
||||
try {
|
||||
var pk = new ClientLoginPacket();
|
||||
pk.qq = 1994701021;
|
||||
pk.encode();
|
||||
pk.writeHex(Protocol.tail);
|
||||
System.out.println("pk.toByteArray() = " + Arrays.toString(pk.toByteArray()));
|
||||
System.out.println(Utils.INSTANCE.toHexString(pk.toByteArray()));
|
||||
} catch (Throwable e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -13,14 +13,12 @@ import java.io.IOException;
|
||||
* @author Him188moe @ Mirai Project
|
||||
*/
|
||||
public abstract class ClientPacket extends DataOutputStream implements Packet {
|
||||
public ClientPacket() {
|
||||
super(new ByteArrayOutputStream());
|
||||
}
|
||||
|
||||
@Getter
|
||||
private final int packageId;
|
||||
|
||||
{
|
||||
public ClientPacket() {
|
||||
super(new ByteArrayOutputStream());
|
||||
var annotation = this.getClass().getAnnotation(PacketId.class);
|
||||
packageId = annotation.value();
|
||||
|
||||
|
16
mirai-core/src/main/java/net/mamoe/mirai/util/Utils.kt
Normal file
16
mirai-core/src/main/java/net/mamoe/mirai/util/Utils.kt
Normal file
@ -0,0 +1,16 @@
|
||||
package net.mamoe.mirai.util
|
||||
|
||||
import net.mamoe.mirai.network.Protocol
|
||||
|
||||
/**
|
||||
* @author Him188moe @ Mirai Project
|
||||
*/
|
||||
object Utils {
|
||||
fun toHexString(byteArray: ByteArray): String = byteArray.joinToString(" ") { it.toString(16) }
|
||||
}
|
||||
|
||||
fun ByteArray.toHexString(): String = Utils.toHexString(this)
|
||||
|
||||
fun Byte.toHexString(): String = this.toString(16)
|
||||
|
||||
fun String.hexToBytes(): ByteArray = Protocol.hexToBytes(this)
|
Loading…
Reference in New Issue
Block a user