Commit b3a227e5 authored by Him188moe's avatar Him188moe

update

parent 75352667
...@@ -4,7 +4,6 @@ import io.netty.bootstrap.Bootstrap ...@@ -4,7 +4,6 @@ import io.netty.bootstrap.Bootstrap
import io.netty.channel.* import io.netty.channel.*
import io.netty.channel.nio.NioEventLoopGroup import io.netty.channel.nio.NioEventLoopGroup
import io.netty.channel.socket.nio.NioDatagramChannel import io.netty.channel.socket.nio.NioDatagramChannel
import io.netty.handler.codec.MessageToMessageEncoder
import io.netty.handler.codec.bytes.ByteArrayDecoder import io.netty.handler.codec.bytes.ByteArrayDecoder
import net.mamoe.mirai.network.packet.client.ClientPacket import net.mamoe.mirai.network.packet.client.ClientPacket
import net.mamoe.mirai.network.packet.client.login.* import net.mamoe.mirai.network.packet.client.login.*
...@@ -124,15 +123,16 @@ class Robot(val number: Int, private val password: String) { ...@@ -124,15 +123,16 @@ class Robot(val number: Int, private val password: String) {
@ExperimentalUnsignedTypes @ExperimentalUnsignedTypes
private fun sendPacket(packet: ClientPacket) { private fun sendPacket(packet: ClientPacket) {
try { try {
MiraiLogger log "Encoding"
packet.encode() packet.encode()
} catch (e: Exception) { } catch (e: Exception) {
e.printStackTrace() e.printStackTrace()
} }
packet.writeHex(Protocol.tail) packet.writeHex(Protocol.tail)
println("Packet sent: $packet")
/*val p = DatagramPacket(packet.toByteArray()); /*val p = DatagramPacket(packet.toByteArray());
p.socketAddress = this.serverAddress*/ p.socketAddress = this.serverAddress*/
channel!!.writeAndFlush(packet.toByteArray()) channel!!.writeAndFlush(DatagramPacket(packet.toByteArray()))
MiraiLogger info "Packet sent: $packet"
} }
private fun DatagramPacket(toByteArray: ByteArray): DatagramPacket = DatagramPacket(toByteArray, toByteArray.size, this.serverAddress) private fun DatagramPacket(toByteArray: ByteArray): DatagramPacket = DatagramPacket(toByteArray, toByteArray.size, this.serverAddress)
...@@ -146,17 +146,18 @@ class Robot(val number: Int, private val password: String) { ...@@ -146,17 +146,18 @@ class Robot(val number: Int, private val password: String) {
try { try {
val b = Bootstrap() val b = Bootstrap()
MiraiLogger.info("Connecting")
b.group(group) b.group(group)
.channel(NioDatagramChannel::class.java) .channel(NioDatagramChannel::class.java)
.option(ChannelOption.SO_BROADCAST, true) .option(ChannelOption.SO_BROADCAST, true)
.handler(object : ChannelInitializer<NioDatagramChannel>() { .handler(object : ChannelInitializer<NioDatagramChannel>() {
@Throws(Exception::class) @Throws(Exception::class)
override fun initChannel(ch: NioDatagramChannel) { override fun initChannel(ch: NioDatagramChannel) {
ch.pipeline().addLast(object : MessageToMessageEncoder<ByteArray>() { /*ch.pipeline().addLast(object : MessageToMessageEncoder<ByteArray>() {
override fun encode(ctx: ChannelHandlerContext?, msg: ByteArray?, out: MutableList<Any>?) { override fun encode(ctx: ChannelHandlerContext?, msg: ByteArray?, out: MutableList<Any>?) {
out!!.add(DatagramPacket(msg!!)) out!!.add(DatagramPacket(msg!!))
} }
}) })*/
ch.pipeline().addLast(ByteArrayDecoder()) ch.pipeline().addLast(ByteArrayDecoder())
ch.pipeline().addLast(object : SimpleChannelInboundHandler<ByteArray>() { ch.pipeline().addLast(object : SimpleChannelInboundHandler<ByteArray>() {
override fun channelRead0(ctx: ChannelHandlerContext, bytes: ByteArray) { override fun channelRead0(ctx: ChannelHandlerContext, bytes: ByteArray) {
...@@ -176,10 +177,11 @@ class Robot(val number: Int, private val password: String) { ...@@ -176,10 +177,11 @@ class Robot(val number: Int, private val password: String) {
channel = b.bind(15345).sync().channel() channel = b.bind(15345).sync().channel()
MiraiLogger info "Succeed"
sendPacket(ClientTouchPacket(this@Robot.number, serverIP)) sendPacket(ClientTouchPacket(this@Robot.number, serverIP))
channel!!.closeFuture().sync() channel!!.closeFuture().sync()
} finally { } finally {
group.shutdownGracefully().sync() group.shutdownGracefully().sync()
} }
} }
} }
\ No newline at end of file
package net.mamoe.mirai.network.packet.client package net.mamoe.mirai.network.packet.client
import lombok.Getter import lombok.Getter
import lombok.ToString
import net.mamoe.mirai.network.Protocol import net.mamoe.mirai.network.Protocol
import net.mamoe.mirai.network.packet.Packet import net.mamoe.mirai.network.packet.Packet
import net.mamoe.mirai.network.packet.PacketId import net.mamoe.mirai.network.packet.PacketId
...@@ -14,7 +13,6 @@ import java.security.MessageDigest ...@@ -14,7 +13,6 @@ import java.security.MessageDigest
/** /**
* @author Him188moe * @author Him188moe
*/ */
@ToString
@ExperimentalUnsignedTypes @ExperimentalUnsignedTypes
abstract class ClientPacket : ByteArrayDataOutputStream(), Packet { abstract class ClientPacket : ByteArrayDataOutputStream(), Packet {
@Getter @Getter
...@@ -53,6 +51,10 @@ abstract class ClientPacket : ByteArrayDataOutputStream(), Packet { ...@@ -53,6 +51,10 @@ abstract class ClientPacket : ByteArrayDataOutputStream(), Packet {
encode() encode()
return toByteArray() return toByteArray()
} }
override fun toString(): String {
return this.javaClass.simpleName + this.javaClass.declaredFields.joinToString(", ", "{", "}") { it.trySetAccessible(); it.name + "=" + it.get(this) }
}
} }
......
...@@ -47,9 +47,6 @@ class ClientTouchPacket(val qq: Int, val serverIp: String) : ClientPacket() { ...@@ -47,9 +47,6 @@ class ClientTouchPacket(val qq: Int, val serverIp: String) : ClientPacket() {
}.toByteArray())) }.toByteArray()))
} }
override fun toString(): String {
return this.javaClass.simpleName + this.javaClass.declaredFields.joinToString(", ", "{", "}") { it.trySetAccessible(); it.name + "=" + it.get(this) }
}
} }
......
...@@ -6,12 +6,20 @@ import java.util.* ...@@ -6,12 +6,20 @@ import java.util.*
/** /**
* used to replace old logger * used to replace old logger
*/ */
object MiraiLogger{ object MiraiLogger {
fun info(o: Any) { infix fun info(o: Any?) {
this.print(o.toString()) this.print(o.toString())
} }
fun catching(e:Throwable){ infix fun log(o: Any?) = MiraiLogger.info(o)
infix fun println(o: Any?) = MiraiLogger.info(o)
infix fun debug(o: Any?) {
this.print(o.toString())
}
infix fun catching(e: Throwable) {
e.printStackTrace() e.printStackTrace()
/* /*
this.print(e.message) this.print(e.message)
...@@ -19,8 +27,11 @@ object MiraiLogger{ ...@@ -19,8 +27,11 @@ object MiraiLogger{
this.print(e.cause.toString())*/ this.print(e.cause.toString())*/
} }
private fun print(value:String?){ private fun print(value: String?) {
val s = SimpleDateFormat("MM-dd HH:mm:ss").format(Date()) val s = SimpleDateFormat("MM-dd HH:mm:ss").format(Date())
println(LoggerTextFormat.BLUE.toString() + "[Mirai] $s : $value") kotlin.io.println(LoggerTextFormat.BLUE.toString() + "[Mirai] $s : $value")
} }
}
\ No newline at end of file }
fun log(any: Any?) = MiraiLogger.info(any)
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment