From aac8b08f00c993ffba1264c3885696db7a82bdcd Mon Sep 17 00:00:00 2001 From: Him188moe <Him188> Date: Sun, 8 Sep 2019 19:58:47 +0800 Subject: [PATCH] Updated message --- .README_images/68f8fec9.png | Bin 0 -> 5541 bytes .github/A}YWVE860U(%YQD$R1GB1[P.png | Bin 0 -> 4424 bytes .github/J]CE)IK4BU08(EO~UVLJ{[F.png | Bin 0 -> 7463 bytes README.md | 28 +++++++++++------- .../mamoe/mirai/event/MiraiEventManagerKt.kt | 2 +- .../mirai/network/RobotNetworkHandler.kt | 13 ++++++-- 6 files changed, 29 insertions(+), 14 deletions(-) create mode 100644 .README_images/68f8fec9.png create mode 100644 .github/A}YWVE860U(%YQD$R1GB1[P.png create mode 100644 .github/J]CE)IK4BU08(EO~UVLJ{[F.png diff --git a/.README_images/68f8fec9.png b/.README_images/68f8fec9.png new file mode 100644 index 0000000000000000000000000000000000000000..d5d314dfa83fe95e944a3ef415c779748772bacf GIT binary patch literal 5541 zcma)AS6CC=vPDYNC`#{5T4+M(hN^TBf^?J`I#LyoCLo}cNJn}Ar9}w6_ZmtlQl*2^ zf)s(!Lg#Y+bI*M^Pj@}+Z$Hd8^X*x)XU|@dFQBTVKn5TI0RgGHnvyO70TJcRp6w3d z&5D()Od}wmc2-w<rtf3^*UUtZ5tAS%j}(cHyAwzHaVXRBV+T#Gv$H4+3~(k=0b90P z4!R4oxf0!p!_qpVdwS#$b(eRW%FZj#%gN8ng&6$<(eDhsp9i3}X$XgZ>skD{WngEJ zFS51&Ge4tkestu25fRqrLn-zjP>l?#EB+fCd}1DB|1km%A^u~MqaX?*{Wqe&|F`)G zOM9^L$)&fBDKYx(@(ByqPINAZ&c7V44Bx-;5%`oYiZd>Tt+vyAl#L$@Cg_%RsG;H; zQx&^Pj)bv-w8#F5zta1`4k}5A2Be;H{}@JZxBui;-VVHN0m7LN^4AONyB)BS#FmwN znX1{X*mK%)uUbk_Z#~EAFF&Q>db=(@&@AGi5Ve$8Y)s!VJ4Y4a)PZ+9Wnf^CXF1XN zk`l&_fWY>X#LJquzLtr%xU;tj+BO%}0gV$sev94vt7b}rR)-F@bf_>Clg}wZui9}E zZdrZp(*#sDkGc)i^qJ_IuPJ`ObIR|@-sLCBu$)WpRIXtA5z{?MA+rUxH!Tjp&XbVe zb2NH0>Q0g|6#46#yj#m5N?+k<?;K8{^|tDX`K&?Z_;Y_X9()>2=A0V&QRX0KRk1a@ z?KY8t2ojJg{q<>(pI@{94Nh(wu$>(Ft;zhS{GH&@iII^L;SbZ+xbS%HG6Bt3y#E|0 zhXPwIuCVp@`0m!0iyhQ>oOnPL`;d2-b%6dXc&ZZtzB^;~CZ6^{zrbja5XbT!LfhT! zGo#<XWdpSh{hR`xR~U1GL6hd*j}P9hc+NzBVNJVpJB8*Ce@aMaXJz4MqNL4~w8RqA z9Jz8HlbCOM3t5zrRweabyl_xlDL$e!N*>~&t4wJf4Hf~t?O|Wn-M$9qK8#+=;V>dC zP_aB{Hzn-YCYzMb!w4eGgL9kfWoU2zvOJ@fI5CZ`0Vh?3)o7eOnDlBtgg=p@{p8Vi z33NN}kPtu@DKTmWhUJRBNuzD>5=OkeVrQX4^=65^H>R*B=`z|INg|h)_lZeR#@&;m zQHUD)sknwAb1TP{0D86~%BrmJY6uJXI0w!aAhl%*l-wYtK9Qi`B<;bD{7H=AQ*mx- z9vbcN;ApGv_dC5Qi~Wdx1iFD7DP$ZDZdMLr<gH7Gw4CvQYDImrdu*8H{(Qnn_LOnx zL_(r#{Hg+IEqCv04VvWkIOstIgpq}Uvv$o>ceAzo`sV#_Hx+eLy9J%dwbNRBU+e_Q z6MYBJ1p!EsAta~paCKM9-<xOo{!lA7?WnrhFAmy$3%rSd!c@IKy_nT<CpZw(;+;_9 z)Ir*f(jZo$jCO@o?V7IA4Je(gy=j>7hTdr~dSy6GC;XhPpx$iH&&OkWMf<|BQD5P( zH5BJM-Qb?IO&0<|y>5a{B~}pZHnR8RRKH824;U=;?rCE49L#L~SFY55Fv4zfr6P^@ zTXAOD9#6|SR$==mLyLBDXUWhPQ73-B8T^D+l1u|{L{cFQc~iPV^6-6KKz!QxWHOKW zQ>jQ4NkzpoB19+zb}nkXK)p`#CXn3_RMAi?&`B(l{c#A<XOZ9;@Zc=dgtu61G^$L# z^EkL3Y{(a0E=Brxjhe`6%vig9F`nm3CO@3fed<SPIk2KzCWPF={OsI54MLyiZ)b)u z8)0|c*KriHFIFfHFWU)glHEM1(68j#d8*22Q<Bha)8?NQ(J{~K@<`63EShN$qv6}C zu(rOQ14c5|q)kkSR)_#`EYryL$eBQ?<D$R8UF?^8ccntmF~U!Vq&b{su+w+$A0{2x zCD_YjKGr-Ia~)mQINE(dgO>%Jr++z$XL{a^knxAgkTJr>c~;39bL=7`+I^Px05jJT zM022JXIhqbOY1~W<iqMF^L|vbCz#jB&(09#sBe%8ar!TYdx}o<R5%$U`pTHcICGCm zO?8zAdaT5P7dYaO)bTzxl2xU3dmE2yB^8=)g-zMKs2!<z1dpU*qEdpX3aou+^8VG) zXqbA!`2ZTl$`ymR^cyj?h<9)f*N`>~zoO9;v)oMbS+E`!Ll{K7p?gV*${j(pD^Wss zbs_6(F@r>mQcK<U=(1AUx_c30_r6^Hb+L4e8sfBFVFV_D6q`GGjA;D5P{pzfN8Tfg zAMv7=UreV%3ij?Kh!vZ+%8FXf+SE(>WX$~e1+$`hRW@t)Ja~gwTqT+0Nh_IsI9Sp# z>OkMi(I_&d@+hn)!gKoODv3l4A|@-{Ur>!x#tB7i#6qzj&03Gp8x+$fuTQqCoXo%B zq;4}G+nU!<RR9)sJk7=uZPjME9=iGMCxpoAiW<VKM*2_q9BI~+(jX1oA4Jv0yYDR) zISAxgjwl6TY9GYA>X-^$YDzD(tWQi6ZTa?J4ZREmdo(&`s6Te#F7WiCQac;}@^#0L zK(@wCOxbm;xy)XW1VLZ2Er_Ms=BG&GuoL6<L@ESK$%1-=Gi#)|lFB|o=-VsI_zoUt zV$3-RS8PR)x>dBaw03utVAPv&ZptF()aSWLX5?C$57f1H6gF8VC#_$rF=^cEWr-6z zz9V?w@xknl0+z&+6NZ)Kd*9e=pe7Kbm6@8vwDx4{i5{wJM)CFHZqx6sTehA%UncU| z)|Yp3e1P-}VuL?vZJD4;g8-MV^+`6xl;1X9@x>y+EiWrKtytK1GZr7!^}%L_5rZTK zu3Fofk>iRd7q?y&moiv+7{B)gXRWr7Q~cs9Dcbswzi$ZVVd{K=y!1!yt2p>SP`1pt ze*mx-<^7&3RE4rePnrlm>a){W_tPM4odMF(7n^ZG`==Nga^JptN41vEr(_2;$&C{? z%&|wGh`bGbE&_tDmCi$q>Cgp!#Z9pXs)s-2Hbb^~0~WHou>fc1PaXI@EK)bmmzSHh zYn9AXET<zx+A&|DUx?ABCAyre4VqtGddqygwAh$g01vD&m=+T-QNJ~2PMcVbMnGGi z8d2;Plw5Z4I!#y?za=bqz`M|^z=Ly^Ew>qql;zslHTeMe<-y1F)S|(h+Jk*mYgY4h zu&6L2Ng<i4@3P=Kqu?D;W`%yOzQGdxZpX}iBhJdSxb>*0lW1ODFp}r&s*d6dPl~E1 z=^$^FW<%w}mXJ*{CZR-#S+T;@orae37+JTx>u8AfJAN<zq5}C>HT*g1zHPpBEE}SU z?1jo~$x9ocvlX$=id*{ox~HWqRzPUJOAn#~NB(Mgt&?>~r?dsHGF8D4<cs7CdkN{V z*m+t&N%=-<Jm_fTOj+EqK}EixNqQ|ZZIXa9+A_)PIYr89g@5hvu>rDS`#5l(qbUJ$ zsYwlyU-r2*Bu?Q}C6E~D7GZz@y>#2dl}r{j3L5kOvZtnn;3^+$5O-~^&3b${&;`|N z?JwS`d&wM-AR=tFRpX^EQ6<YIN3bq3wf@NYdvC8O_eymtCI8wMSG<%8bT5}j$l#HP zM}JGGYTJmezy1AlJKk;^C~28YRm7>Vn@OU=>#;y96kCip>`In_(%tdJN<Kgp`tb9q z!L;nhi~JcwG$*sssPHclW;{I6%=lH9;wk<t&g(<xt4~Kl0=!M@#JdjuUFEkXZCVcU zRSK&6@5X#e)#g3ZC{Ri~XVp4WF~(PUAyt>R1P&#nem=o^CQ9h}{ni{*=@^T|w+CM~ zVb5CH((R!@i}=2l@YQA%Reg(oe5=zi=3tiaywtlri_#x2<K8qta6HiQW2wUFnR~M) z)<(&~wSO$DZJRfzUTAhLR<|za^;xcgH04l%YWc;G6z`QS)#R#dEXFl$AU&xfz!-t} zy!OoBP*7e-kHMGs()poENe#V(3{4w7@tfZH)#D*9X2XHOV?Zj^fU)-iv~3K|K6A@r zcw<YIHru+GT|BBQ!)r|Df@GU<TnB5Wt0#;^6ZvEX_Yn6a?!8}}rKL|m1x?!N{$3t< zNxh5#yMb{f{e0HtXP$iU6f5>me;rfjlI@rx&C~r*`+&JDU(|MI=p1L{#0{5ek#dY2 zt>(|4!93KoH*%hDdD5eL_1`VrTF*DU3-`-cqvrtqYuYO!OM@_LD!4ER!oj04v1{Z_ z7{oScSBAA>zxm=Iopl*4;EesPu<zM8ik;@wQ7c@q9~f*jt!!C|ju!g3nre84k@B1s zNUZ@@FdyfCo|^WD?psC_d=%P8Ioo_QOlq%)`<n2W*<<Z*eTz;0`3~gt*+VU2VPr;a z+8B|&l>{&udJqSmVgfKD$|c4IxIDG`J6s>WYKE~Fb{cV7rN%YjDKjCbhq8D?|AyV8 z{ZDCu*j4!>k9<_>c+#Zew>vQ@;Sl<uC#iZ4{Ecsesy!!0Jqev=J7nY}jIPBmd(vx~ z`BeriW;@@+oajCd!`zO;^p7ve$Rv9p-GW_TdZi~Jrqi#{n*DAGko585i~X!5kw&fl zfngpeV$`3CGMoiw7=+sUx}0KEn3_nLe_kt*XzB9cvrs6Rw#uH$-Nh3_Yl9){dNKGb zqOH;FS0|jlVGTigpCogt*Iy9Vs%OXaG9rdb5m$ezg!i#tQ(I~e%OQEl>Xt;(Bf7>R zp87OO{>QWwrb4tFM*r6`!}TVXw-R4`o)j0`sxBpcOY#=idC$2RdC+$*8^^owrMTmp ztubA%J|pLfaW<g`L$YC*T1h4*Bvqp;l-t>#kF(-&>;y-KXX+U@X&UmReEd|7f00i& z&K~7yv98FlI|=guVpAR|YxC@xKAI?^DD6@BQYXs}1`&ZlLh^s@g<pOq)xzpgOS*{W z-~NIArt{q~<j6zU_*H?RPT#XSr;~OSUuXU1k2u$;-twi^1CmHSi}(nb0ypy8&?DbU zn(7MlmUL=jfW*4L?r;|ZvHNM?VSn&$&pV!!-TPTmxuf1uB+FNPp2SfNG9fG7qR4VX zeXXD`QkxFk=P;SjXs_uJxL)PDdFf2u;pSkApz$d^1I6@#;Rt5{FaT?Y@#}N#xXs~4 zXzgXGCX_dX{qC|Dfe&!T>VH14KRmKx9CJxkvwRMei^`EDU1@H1+<Ok#w4R>kUxkIA zjL^TP=0%&hKg-hF6*3K$Sa_683<gPEWtmC_3eA7Ez7V`G*cV4H8tp5ZSpyMhz27NA zk0s@9{b~H^;hMprOjJHt=d)HzIY&@gv*U~C8=mcN{sHR1sGFJQ^oC?0Dy8a%U`~<A z$*K2%t<9wk#8!1o%KlNM@LL6Oc>3>rK7BNz*lx)NdRTKFiZ3;N1R6A1tjKO}cEBcN zJ)NDGwaXWqsn5eM7&QIuanGV5Oa9Ko>OOsSf5Yx`bzw<@L0zYm__LJGt1miy!_+<~ zL_NbjURfCN@RmlTh%ALi=Ph8gZR%1YEmmXA&ZXe+Yg+2qPo22tm#vJ;J~Yd3;)c=i z(BcCwM8r_}TJ1cn>gJW>TQFfjdK-yo_T>psZ=|H@@h=Q{F1m<FBKjNVhku>c74DP| z-o*(zQxRsLe+|$(&^+~iwQ=^Dl=xZ>Nrpw&=J1{8zErRji%yQ+T1&89@)h2$r=F7o zr0gV2g%^VsGXf=qi0bn|sC*;}apy@}{W;q7R#RnLT^XGuDe#=EL-17Z6d-JE;6m#> z4h*L_Kpw(5W&$rRM<4EwRZemCJ1v~`r`D;M<_r%H43nT-uq!6ygfbYP&}cVtL!At! zBe@#3AClj?vq*~eZYCAOV7J6(Nt<^yL$FcrPXC<#$$>dd;AWOW^XqiiT>pHo$!@h7 zKSgVsnF1DN#r*rFp%D6b$AR{J34|HEvtimKbV)8^uHUQVNd?>6HjMXI=Ex&opNp@i zR6;I6cTK_%tx7|+e8%lPiI5gxajl0>&5dt*+OFYXVM-mG%1R3?bz9{p$>{^!sj!2H zk=-NH;JTuZsH(W%b+by=&{VW!HhQU$#}wY>2A*)u|5ZK2hs}#2lxRutKk>zBQmpyZ zoqC43xAl|k9xX3R#tV%|6XEL|Pyc)YoWjR4Q{Vt+?!zXGv%|USJ`2Wf757s4tY}<{ z52;ioGl=mXY9@|>c(o#x4Mv(&8~_0=>_75*-}PPsgTIGC;tA*AMcc7?xp2DyO5=Gd zB&`bLhY~J22b@IJ&Xkq)FTVk+<0M}x#SN8b%%SDg>Qhcp8V|kE+dMp3EcjtOV9)%a z%@i63@%kS6IF;$+S$bu)?T6B^RiW;UVB^48{DO1=A4=a|w)N`I?O}x4H!jkHt!3j@ z2)OQ+8|$}T%<GKP6BX5R5cMJ(IpeR_#hvMZ_oq7BEF&4<SdZlcs(1CV*`=G&Jbxi% z-&_*#VfruTm}o93E`+T%No&$PCuBbr%od8np6~_T8K>{-FM96p{Myl><$aU@^AQgN zpDo!B#1*2wvHDp{H%><EC#)DiiFbEM3p-b6cfJ0ru%XotHV&*wQeo3?tt?}D9J2DV zVgJY_5%gFi{-9bgz4dxV>Su4Ga_ORbW3C;P&M7$h-qp|d(>&P}W)&>3bD}qoFLkK3 zZX~N{{tv9mzPzy}1Be76qGKGKMA%w(-X8_K#Fq{*|AG40GPn|-^?&6Ez8*s>ZA``= zSm}8N*bNsFgG}CLU7nKnA^rsM+2RXjQP)U{N$<{0H&2Vaeb=DB^`%#IbpM3V=!nf} z7Ne?5hQLUVV<O6$mNj=)nAgy=GB$st!i<jI5&Cmm254OOp75OD-YXl4W!ZHX?O*#? z7vGKn9!7LYPvO>BKRIp3%A1Rci;1<$|D*9N*NT8hqucE1G)b}^D4KLpe~%2ifr|Kl z3vmAy>>~a@dR>kP2%VK|alN~7`fG4FF*m5*1fwV$f#21-np;`94tyeNVxr#j;=4wv z@BUOmO%Ld3IhZ3cEUc#_ylB_SVV=noHD0eL>(Ln&t)De^-jg*tm0p*5`|t>J5yJ29 zT)VDWuzsCCgNwx!g%{b}h<}8^Po`V#YgR$0*IKL>s=qenYmf0i=l9tDY(G<JAqu~q z!5@{CXlHj9mC{xmbQtlSj)ud^w!_1Ub}eYh!ljQ3FBY>oF3V!uB-th>YRldUTsd8L zT;IPqwg|AeYWRz3*TU!W1;<`FK7|_p(DuWI8fi!G&Tq2+D6hMBv~s<3HyC%i(QtHa gd_|@&C3h`<oDU>4*Ph$CkzWbam7z+d3YH=N1F#zQcmMzZ literal 0 HcmV?d00001 diff --git a/.github/A}YWVE860U(%YQD$R1GB1[P.png b/.github/A}YWVE860U(%YQD$R1GB1[P.png new file mode 100644 index 0000000000000000000000000000000000000000..416067a606e93d51b631fb393975a359563d84ad GIT binary patch literal 4424 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 O09`F3%_{XLq5lVKGS}Py literal 0 HcmV?d00001 diff --git a/.github/J]CE)IK4BU08(EO~UVLJ{[F.png b/.github/J]CE)IK4BU08(EO~UVLJ{[F.png new file mode 100644 index 0000000000000000000000000000000000000000..119f87dd2dee7e255899a424d51b866c5bb39406 GIT binary patch literal 7463 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 literal 0 HcmV?d00001 diff --git a/README.md b/README.md index bdfe16c1b..d9f4bfd91 100644 --- a/README.md +++ b/README.md @@ -5,13 +5,7 @@ 项目处于快速开发阶段 协议来自网络上开源项目 -一切开发旨在学习, 请勿用于非法用途 - -<br> - -A JAVA(+Kotlin) powered open-source project under GPL license<br> -It use protocols from <i>TIM QQ</i>, that is, it won't be affected by the close of <i>Smart QQ</i><br> -The project is all for <b>learning proposes</b> and still in <b>developing stage</b><br> +一切开发旨在学习, 请勿用于非法用途 ### 代码结构 Network部分使用 Kotlin 完成(因为kt有对 unsigned byte 的支持). @@ -20,15 +14,21 @@ Network部分使用 Kotlin 完成(因为kt有对 unsigned byte 的支持). 即使你完全不了解 Kotlin, 你也可以正常开发. ### 抢先体验 -现在你可以使用 Mirai 内置的一些测试qq号体验 Mirai. +现在你可以使用 Mirai 内置的一些测试qq号体验 Mirai, 但我们现在还不建议你使用自己的 qq 号登录 1. Clone 2. Import as Maven project 3. Run [MiraiMain](mirai-core/src/main/java/net/mamoe/mirai/MiraiMain.java#L7) -简略阅读源码便可测试接收和发送消息 - -Hook 一个事件(Kotlin): +#### 事件 Hook (Kotlin)  + + +#### 图片测试 +**现在可以接受图片消息**(并解析为消息链): + + + +不过我们还正在努力做发送图片 ### TODO - [x] 事件(Event)模块 @@ -59,6 +59,12 @@ Hook 一个事件(Kotlin): ``` +<br> + +A JAVA(+Kotlin) powered open-source project under GPL license<br> +It use protocols from <i>TIM QQ</i>, that is, it won't be affected by the close of <i>Smart QQ</i><br> +The project is all for <b>learning proposes</b> and still in <b>developing stage</b><br> + ## Usage ### Requirements - Java 11 or higher diff --git a/mirai-core/src/main/java/net/mamoe/mirai/event/MiraiEventManagerKt.kt b/mirai-core/src/main/java/net/mamoe/mirai/event/MiraiEventManagerKt.kt index e3cd769a1..8b1a364f5 100644 --- a/mirai-core/src/main/java/net/mamoe/mirai/event/MiraiEventManagerKt.kt +++ b/mirai-core/src/main/java/net/mamoe/mirai/event/MiraiEventManagerKt.kt @@ -62,6 +62,6 @@ fun <C : KClass<E>, E : MiraiEvent> C.hookWhile(hook: (E) -> Boolean) { private class MiraiEventHookSimple<E : MiraiEvent>(clazz: Class<E>, val hook: (E) -> Boolean) : MiraiEventHook<E>(clazz) { override fun accept(event: MiraiEvent?): Boolean { @Suppress("UNCHECKED_CAST") - return hook.invoke(event as E) + return !hook.invoke(event as E) } } \ No newline at end of file diff --git a/mirai-core/src/main/java/net/mamoe/mirai/network/RobotNetworkHandler.kt b/mirai-core/src/main/java/net/mamoe/mirai/network/RobotNetworkHandler.kt index 680de7dd4..1e18db8d0 100644 --- a/mirai-core/src/main/java/net/mamoe/mirai/network/RobotNetworkHandler.kt +++ b/mirai-core/src/main/java/net/mamoe/mirai/network/RobotNetworkHandler.kt @@ -12,7 +12,6 @@ import net.mamoe.mirai.event.events.network.PacketSentEvent import net.mamoe.mirai.event.events.network.ServerPacketReceivedEvent import net.mamoe.mirai.event.events.qq.FriendMessageEvent import net.mamoe.mirai.event.events.robot.RobotLoginSucceedEvent -import net.mamoe.mirai.event.hookAlways import net.mamoe.mirai.event.hookWhile import net.mamoe.mirai.message.Message import net.mamoe.mirai.message.defaults.MessageChain @@ -261,6 +260,10 @@ class RobotNetworkHandler(private val robot: Robot) : Closeable { this.loginFuture = null } } + + fun isClosed(): Boolean { + return this.socket?.isClosed ?: true + } } @@ -485,12 +488,18 @@ class RobotNetworkHandler(private val robot: Robot) : Closeable { internal var ignoreMessage: Boolean = false init { - FriendMessageEvent::class.hookAlways { + //todo for test + FriendMessageEvent::class.hookWhile { + if (socketHandler.isClosed()) { + return@hookWhile false + } if (it.message() valueEquals "你好") { it.qq.sendMessage("你好!") } else if (it.message().toString().startsWith("复读")) { it.qq.sendMessage(it.message()) } + + return@hookWhile true } }