/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 0 . ĠF orte Sc ar let ĠAll Ġrights Ġreserved . Ċ Ġ* ĠProject Ġ Ġcomponent - jc q Ġ( Code Ġother Ġthan ĠJ CQ ) Ċ Ġ* ĠFile ĠĠĠĠ ĠJ CQ Main . kt Ġ( Code Ġother Ġthan ĠJ CQ ) Ċ Ġ* Ċ Ġ* ĠYou Ġcan Ġcontact Ġthe Ġauthor Ġthrough Ġthe Ġfollowing Ġchannels : Ċ Ġ* Ġgithub Ġhttps :// github . com / F orte Sc ar let Ċ Ġ* Ġg itee Ġ Ġhttps :// g itee . com / F orte Sc ar let Ċ Ġ* Ġemail Ġ ĠF orte Sc ar let @ 1 6 3 . com Ċ Ġ* ĠQQ ĠĠĠĠĠ 1 1 4 9 1 5 9 2 1 8 Ċ Ġ* Ċ Ġ* ĠJ CQ 's Ġcode Ġis Ġcopyright ed Ġby ĠJ CQ Ċ Ġ* Ġyou Ġcan Ġsee Ġat : Ġhttps :// github . com / me ow ya / jc q - cool q Ċ Ġ* Ċ Ġ*/ Ċ Ċ @ file : Suppress (" Member Visibility Can Be Private ") Ċ Ċ package Ġcom . simp ler obot . component . jc q Ċ Ċ import Ġcom . fort e . lang . Language Ċ import Ġcom . fort e . plus utils . console plus . F orte Plus Print Stream Ċ import Ġcom . fort e . qq robot . Msg Processor Ċ import Ġcom . fort e . qq robot . listener . result . Listen Result Ċ import Ġcom . fort e . qq robot . log . LogLevel Ċ import Ġcom . fort e . qq robot . log . QQ Log Ċ import Ġcom . fort e . qq robot . sender . Msg Sender Ċ import Ġcom . fort e . qq robot . utils . CQ Code Util Ċ import Ġcom . simp ler obot . component . jc q . log . J CQ Log Ċ import Ġorg . me owy . c qp . jc q . entity .* Ċ import Ġorg . me owy . c qp . jc q . event . J cq App Abstract Ċ import Ġjava . time . LocalDateTime Ċ Ċ fun ĠListen Result < *> ?. to Result () Ġ= Ġif Ġ( this ?. is To Break Plugin Ġ== Ġtrue ) Ġ{ ĊĠĠĠ ĠI Msg . MSG _ INTER CEPT Ċ } Ġelse Ġ{ ĊĠĠĠ ĠI Msg . MSG _ IGNORE Ċ } Ċ Ċ object ĠLang Ġ{ ĊĠĠĠ Ġprivate Ġfun Ġinit () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! Language . already ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLanguage . init () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġin fix Ġfun Ġby ( tag : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġinit () ĊĠĠĠĠĠĠĠ Ġreturn ĠLanguage . format ( tag ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġin fix Ġfun Ġby ( tag And Formats : ĠArray < *> ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( tag And Formats . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġinit () ĊĠĠĠĠĠĠĠ Ġif Ġ( tag And Formats . size Ġ== Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠLanguage . format ( tag And Formats [ 0 ]. toString ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġtag Ġ= Ġtag And Formats [ 0 ]. toString () ĊĠĠĠĠĠĠĠ Ġval Ġformats Ġ= Ġtag And Formats . filter Indexed Ġ{ Ġi , Ġ_ Ġ-> Ġi Ġ> Ġ 0 Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠLanguage . format ( tag , Ġ* formats . to Typed Array ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġby ( tag : ĠString , Ġvar arg Ġformat : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġinit () ĊĠĠĠĠĠĠĠ Ġreturn ĠLanguage . format ( tag , Ġ* format ) ĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ /** Ċ Ġ* Ġæµ ĭ è¯ķ çĶ¨çļĦ åĲ¯åĬ¨ åĻ¨ ç±» Ċ Ġ*/ Ċ abstract Ġclass ĠDebug J CQ Main Ġ: ĠJ CQ Main ( CQ Debug . getInstance ()){ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ åĲ¯åĬ¨ åĻ¨ åīį ç½® éħįç½® å·¥ä½ľ ï¼Į é»ĺè®¤ ä»¥ å½ĵåīį ä¸» ç±» æīĢåľ¨ ä½įç½® è¿Ľè¡Į æī«æıı ĊĠĠĠĠ Ġ* Ġåı¯ éĩį åĨĻ æŃ¤ æĸ¹æ³ķ ä»¥ å®ŀçİ° èĩªå®ļä¹ī éħįç½® ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġbefore Start ( conf : ĠJ CQ Configuration ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġdebug ä¸Ń æĹ¥å¿Ĺ ä¹Ł è®¾ç½®ä¸º debug ĊĠĠĠĠĠĠĠ Ġconf . logLevel Ġ= ĠLogLevel . DEBUG ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠJ CQ ä¸» åĲ¯åĬ¨ ç±» , Ġ ä½ľä¸º æĬ½ è±¡ ç±» ä½¿çĶ¨ Ċ Ġ* Ċ Ġ* Ġ åħ¶ä¸Ń ï¼Į éĥ¨åĪĨ åı¯ ç»§æī¿ æĸ¹æ³ķ è¢« æĽ¿æį¢ äºĨ ï¼ļ Ċ Ġ* Ġ[ startup ] Ġ-> Ġ[ onStart Up ] Ġ, Ġ[ enable ] Ġ-> Ġ[ on Enable ] Ġ, Ġ[ disable ] Ġ-> Ġ[ on Disable ] Ġ, Ġ[ exit ] Ġ-> Ġ[ on Exit ] Ċ Ġ* ĠJ cq application Ċ Ġ*/ Ċ abstract Ġclass ĠJ CQ Main ( CQ : ĠCool Q ) Ġ: ĠJ cq App Abstract ( CQ ), ĠIC Q Ver , ĠI Msg , ĠI Request , ĠJ CQ Bot App Ġ{ ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ ĠJ CQ Log . cq Ġ= ĠC Q ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** Ġå½ĵåīį ç±»çļĦ ID Ġ*/ ĊĠĠĠ Ġval ĠID : ĠString Ġ= Ġthis . hashCode (). toString () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ åĲ¯åĬ¨ åĻ¨ åīį ç½® éħįç½® å·¥ä½ľ ï¼Į é»ĺè®¤ ä»¥ å½ĵåīį ä¸» ç±» æīĢåľ¨ ä½įç½® è¿Ľè¡Į æī«æıı ĊĠĠĠĠ Ġ* Ġåı¯ éĩį åĨĻ æŃ¤ æĸ¹æ³ķ ä»¥ å®ŀçİ° èĩªå®ļä¹ī éħįç½® ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfinal Ġoverride Ġfun Ġbefore ( conf : ĠJ CQ Configuration ) Ġ{ ĊĠĠĠĠĠĠĠ Ġconf . set Scanner Package ( this :: class . java .` package `. name ) ĊĠĠĠĠĠĠĠ Ġ// Ġj cq ä¸ĭ æ£Ģæµĭ bot æ³¨åĨĮ æĦı ä¹ī ä¸į å¤§ ĊĠĠĠĠĠĠĠ Ġconf . bot Check Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġbefore Start ( conf ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġåı¯ éĩį åĨĻ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġbefore Start ( conf : ĠJ CQ Configuration ){ Ġ/* Ġfor Ġuser Ġoverride Ġ*/ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ åĲ¯åĬ¨ åĻ¨ åĲ¯åĬ¨ åĲİçļĦ æĵįä½ľ ĊĠĠĠĠ Ġ* Ġ æīĵåį° ä¸Ģ åı¥ æĹ¥å¿Ĺ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfinal Ġoverride Ġfun Ġafter ( cq Code Util : ĠC Q Code Util , Ġsender : ĠMsg Sender ) Ġ{ ĊĠĠĠĠĠĠĠ ĠJ CQ Log . info (( Lang Ġby Ġ" run . after ")) ĊĠĠĠĠĠĠĠ Ġafter Start ( cq Code Util , Ġsender ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġfun Ġafter Start ( cq Code Util : ĠC Q Code Util , Ġsender : ĠMsg Sender ){ Ġ/* Ġfor Ġuser Ġoverride Ġ*/ Ġ} ĊĊĠĠĠ Ġ/** Ġ å»¶ è¿ Ł åĪĿå§ĭåĮĸ Ġapp çĽ®å½ķ Ġ*/ ĊĠĠĠ Ġlateinit Ġvar Ġapp Directory : ĠString Ġprivate Ġset ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ å»¶ è¿ Ł åĪĿå§ĭåĮĸ ĠJ CQ Ġcontext ĊĠĠĠĠ Ġ* Ġ[ startup ] åĲİ è¢« åĪĿå§ĭåĮĸ ĊĠĠĠĠ Ġ* Ġ*/ ĊĠĠĠ Ġlateinit Ġvar Ġcontext : ĠJ CQ Context Ġprivate Ġset ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġæ ¶ Ī æģ¯ å¤ĦçĲĨ åĻ¨ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġprocessor : ĠMsg Processor ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġcontext . msg Processor ĊĊĠĠĠ Ġ// Ġapp ID , Ġé»ĺè®¤ ä¸º å½ĵåīį ç±»çļĦ ç±» è·¯å¾Ħ ï¼Ī ç±» åĲį å¼Ģ å¤´ å°ı åĨĻ ĊĠĠĠ Ġopen Ġval Ġapp ID : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ"${ this :: class . java .` package `. name }.${ this :: class . java . simple Name . de capitalize () }" ĊĊĠĠĠ Ġ/** Ġapplication Ġæ ĩĴ åĬłè½½ Ġ*/ ĊĠĠĠ Ġval Ġapplication : ĠJ CQ Application Ġby Ġlazy Ġ{ ĠJ CQ Application ( CQ ) Ġ} ĊĊĠĠĠ Ġ/** Ġsender Ġ*/ ĊĠĠĠ Ġval Ġsender : ĠJ CQ Sender Ġby Ġlazy Ġ{ ĠJ CQ Sender ( CQ ) Ġ} ĊĊĊĠĠĠ Ġ/** ĠåĪĿå§ĭåĮĸ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġinit J CQ Component () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠåĪĿå§ĭåĮĸ ĊĠĠĠĠĠĠĠ Ġif Ġ(! :: context . isInitialized ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext Ġ= Ġapplication . run ( this ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġè¿ĶåĽŀ åºĶçĶ¨ çļĦ Api Ver ãĢģ App id ï¼Į æīĵ åĮħ åĲİ å°Ĩ ä¸įä¼ļ è°ĥçĶ¨ < br ></ br > ĊĠĠĠĠ Ġ* Ġæľ¬ åĩ½æķ° ãĢĲ ç¦ģ æŃ¢ ãĢĳ å¤ĦçĲĨ åħ¶ä»ĸ ä»»ä½ķ ä»£çłģ ï¼Į ä»¥ åħį åıĳçĶŁ å¼Ĥå¸¸ æĥħåĨµ ãĢĤ< br ></ br > ĊĠĠĠĠ Ġ* Ġ å¦Ĥ éľĢ æī§è¡Į åĪĿå§ĭåĮĸ ä»£çłģ è¯· åľ¨ Ġstartup Ġ äºĭä»¶ ä¸Ń æī§è¡Į ï¼Ī Type = 1 0 0 1 ï¼īãĢĤ < br ></ br > ĊĠĠĠĠ Ġ* Ġ åºĶçĶ¨ App ID , è§ĦåĪĻ è§ģ Ġhttp :// d . c qp . me / Pro / å¼Ģåıĳ / åŁºç¡Ģ ä¿¡æģ¯ # appid ĊĠĠĠĠ Ġ* Ġ è®° ä½ı ç¼ĸè¯ĳ åĲİçļĦ æĸĩä»¶ åĴĮ json ä¹Ł è¦ģ ä½¿çĶ¨ appid åģļ æĸĩä»¶ åĲį ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġ åºĶçĶ¨ ä¿¡æģ¯ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġapp Info (): ĠString Ġ= ĠIC Q Ver . CQ API VER . toString () Ġ+ Ġ"," Ġ+ Ġapp ID ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ éħ · Q éĢĢåĩº Ġ( Type =[ 1 0 0 2 ][ I Type . EVENT _ Exit ]) < br ></ br > ĊĠĠĠĠ Ġ* Ġæľ¬ æĸ¹æ³ķ ä¼ļ åľ¨ éħ · Q ãĢĲ ä¸» çº¿ç¨ĭ ãĢĳ ä¸Ń è¢« è°ĥçĶ¨ ãĢĤ< br ></ br > ĊĠĠĠĠ Ġ* Ġ æĹł è®º æľ¬ åºĶçĶ¨ æĺ¯åĲ¦ è¢« åĲ¯çĶ¨ ï¼Į æľ¬ åĩ½æķ° éĥ½ä¼ļ åľ¨ éħ · Q éĢĢåĩº åīį æī§è¡Į ä¸Ģæ¬¡ ï¼Į è¯· åľ¨ è¿ĻéĩĮ æī§è¡Į æıĴä»¶ åħ³éĹŃ ä»£çłģ ãĢĤ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġ è¯· åĽºå®ļ è¿ĶåĽŀ 0 ï¼Į è¿ĶåĽŀ åĲİ éħ · Q å°Ĩ å¾Ī å¿« åħ³éĹŃ ï¼Į è¯· ä¸įè¦ģ åĨį éĢļè¿ĩ çº¿ç¨ĭ çŃī æĸ¹å¼ı æī§è¡Į åħ¶ä»ĸ ä»£çłģ ãĢĤ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġexit (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ ĠJ CQ Log . info (" éħ · Q å·² ç»Ī æŃ¢ ") ĊĠĠĠĠĠĠĠ Ġon Exit () ĊĠĠĠĠĠĠĠ Ġapplication . close () ĊĠĠĠĠĠĠĠ Ġreturn Ġ 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** Ġåı¯ éĩį åĨĻ çļĦ Ġ éħ · Q éĢĢåĩº æĸ¹æ³ķ Ġ*/ ĊĠĠĠ Ġprotected Ġopen Ġfun Ġon Exit () Ġ{} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ åºĶçĶ¨ å·² è¢« åĲ¯çĶ¨ Ġ( Type =[ 1 0 0 3 ][ I Type . EVENT _ Enable ]) < br ></ br > ĊĠĠĠĠ Ġ* Ġå½ĵ åºĶçĶ¨ è¢« åĲ¯çĶ¨ åĲİ ï¼Į å°Ĩ æĶ¶ åĪ° æŃ¤ äºĭä»¶ ãĢĤ< br ></ br > ĊĠĠĠĠ Ġ* Ġå¦Ĥæŀľ éħ · Q è½½ åħ¥ æĹ¶ åºĶçĶ¨ å·² è¢« åĲ¯çĶ¨ ï¼Į åĪĻ åľ¨ Ġ[ startup ][ startup ]( Type = 1 0 0 1 , éħ · Q åĲ¯åĬ¨ ) Ġ è¢« è°ĥçĶ¨ åĲİ ï¼Į æľ¬ åĩ½æķ° ä¹Ł å°Ĩ è¢« è°ĥçĶ¨ ä¸Ģæ¬¡ ãĢĤ< br ></ br > ĊĠĠĠĠ Ġ* Ġ å¦Ĥ éĿŀ å¿ħè¦ģ ï¼Į ä¸į å»ºè®® åľ¨ è¿ĻéĩĮ åĬłè½½ çªĹåı£ ãĢĤ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġ è¯· åĽºå®ļ è¿ĶåĽŀ 0 ãĢĤ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfinal Ġoverride Ġfun Ġenable (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠåĪĿå§ĭåĮĸ ĊĠĠĠĠĠĠĠ Ġinit J CQ Component () ĊĠĠĠĠĠĠĠ Ġon Enable () ĊĠĠĠĠĠĠĠ ĠJ CQ Log . info ( Lang Ġby Ġ" run . enable ") ĊĠĠĠĠĠĠĠ Ġenable Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġreturn Ġ 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** Ġåı¯ éĩį åĨĻ çļĦ enable æĸ¹æ³ķ Ġ*/ ĊĠĠĠ Ġprotected Ġopen Ġfun Ġon Enable () Ġ{} ĊĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ éħ · Q åĲ¯åĬ¨ Ġ( Type =[ 1 0 0 1 ][ I Type . EVENT _ Startup ]) < br ></ br > ĊĠĠĠĠ Ġ* Ġæľ¬ æĸ¹æ³ķ ä¼ļ åľ¨ éħ · Q ãĢĲ ä¸» çº¿ç¨ĭ ãĢĳ ä¸Ń è¢« è°ĥçĶ¨ ãĢĤ< br ></ br > ĊĠĠĠĠ Ġ* Ġ è¯· åľ¨ è¿ĻéĩĮ æī§è¡Į æıĴä»¶ åĪĿå§ĭåĮĸ ä»£çłģ ãĢĤ< br ></ br > ĊĠĠĠĠ Ġ* Ġ è¯· åĬ¡ å¿ħ å°½ å¿« è¿ĶåĽŀ æľ¬ åŃĲ ç¨ĭåºı ï¼Į åĲ¦åĪĻ ä¼ļ åį¡ ä½ı åħ¶ä»ĸ æıĴä»¶ ä»¥åıĬ ä¸» ç¨ĭåºı çļĦ åĬłè½½ ãĢĤ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġ è¯· åĽºå®ļ è¿ĶåĽŀ 0 ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfinal Ġoverride Ġfun Ġstartup (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġèİ·åıĸ åºĶçĶ¨ æķ°æį® çĽ®å½ķ ( æĹł éľĢ åĤ¨ åŃĺ æķ°æį® æĹ¶ ï¼Į è¯· å°Ĩ æŃ¤ è¡Į æ³¨éĩĬ ) ĊĠĠĠĠĠĠĠ Ġ// Ġ ç³»ç»Ł ç±» åĬłè½½ åĻ¨ ä¸İ å½ĵåīį ç±» åĬłè½½ åĻ¨ ä¸įåĲĮ çļĦæĹ¶åĢĻ ï¼Į ä»£è¡¨ æŃ¤ æĹ¶ å¤Ħ äºİ J CQ ç®¡ æİ§ ä¹ĭ ä¸ĭ ï¼Į åĪĻ ä¿®æĶ¹ æĹ¥å¿Ĺ ĊĠĠĠĠĠĠĠ Ġif Ġ( J CQ Application :: class . java . class Loader Ġ!= ĠClassLoader . getSystem ClassLoader ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠQQ Log . set Debug Function Ġ{ Ġ"${ LocalDateTime . now ()} Ġ[ DEBUG Ġ${ Thread . currentThread (). id }] Ġ[ SIM - J CQ ] Ġ$ it " Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠQQ Log . set Info Function Ġ{ Ġ"${ LocalDateTime . now ()} Ġ[ INFO Ġ Ġ${ Thread . currentThread (). id }] Ġ[ SIM - J CQ ] Ġ$ it " Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠQQ Log . set Err Function Ġ{ Ġ"${ LocalDateTime . now ()} Ġ[ ERROR Ġ${ Thread . currentThread (). id }] Ġ[ SIM - J CQ ] Ġ$ it " Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwarning : ĠF orte Plus Print Stream Ġ= ĠQQ Log . warning Ġas ĠF orte Plus Print Stream ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsuccess : ĠF orte Plus Print Stream Ġ= ĠQQ Log . success Ġas ĠF orte Plus Print Stream ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwarning . set Print Function Ġ{ Ġ"${ LocalDateTime . now ()} Ġ[ WARN Ġ Ġ${ Thread . currentThread (). id }] Ġ[ SIM - J CQ ] Ġ$ it " Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuccess . set Print Function Ġ{ Ġ"${ LocalDateTime . now ()} Ġ[ SU CC Ġ Ġ${ Thread . currentThread (). id }] Ġ[ SIM - J CQ ] Ġ$ it " Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠJ CQ Log . info (" éħ · Q å·² åĲ¯åĬ¨ Ġå½ĵåīį Main ĠID : Ġ$ ID ") ĊĠĠĠĠĠĠĠ ĠonStart Up () ĊĠĠĠĠĠĠĠ Ġreturn Ġ 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** Ġåı¯ éĩį åĨĻ çļĦ Ġ éħ · Q åĲ¯åĬ¨ Ġ*/ ĊĠĠĠ Ġprotected Ġopen Ġfun ĠonStart Up () Ġ{} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ åºĶçĶ¨ å°Ĩ è¢« åģľ çĶ¨ Ġ( Type =[ 1 0 0 4 ][ I Type . EVENT _ Disable ]) < br ></ br > ĊĠĠĠĠ Ġ* Ġå½ĵ åºĶçĶ¨ è¢« åģľ çĶ¨ åīį ï¼Į å°Ĩ æĶ¶ åĪ° æŃ¤ äºĭä»¶ ãĢĤ< br ></ br > ĊĠĠĠĠ Ġ* Ġå¦Ĥæŀľ éħ · Q è½½ åħ¥ æĹ¶ åºĶçĶ¨ å·² è¢« åģľ çĶ¨ ï¼Į åĪĻ æľ¬ åĩ½æķ° ãĢĲ ä¸įä¼ļ ãĢĳ è¢« è°ĥçĶ¨ ãĢĤ< br ></ br > ĊĠĠĠĠ Ġ* Ġ æĹł è®º æľ¬ åºĶçĶ¨ æĺ¯åĲ¦ è¢« åĲ¯çĶ¨ ï¼Į éħ · Q åħ³éĹŃ åīį æľ¬ åĩ½æķ° éĥ½ ãĢĲ ä¸įä¼ļ ãĢĳ è¢« è°ĥçĶ¨ ãĢĤ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġ è¯· åĽºå®ļ è¿ĶåĽŀ 0 ãĢĤ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfinal Ġoverride Ġfun Ġdisable (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġon Disable () ĊĠĠĠĠĠĠĠ ĠJ CQ Log . info ( Lang Ġby Ġ" run . disable ") ĊĠĠĠĠĠĠĠ Ġenable Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġreturn Ġ 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġopen Ġfun Ġon Disable () Ġ{} ĊĊĊĠĠĠ Ġ// Ġ************************* ** ĠEVENT Ġ********************************* Ġ// ĊĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ ç§ģ èģ Ĭ æ¶Īæģ¯ Ġ( Type =[ 2 1 ][ I Type . EVENT _ Private Msg ]) < br ></ br > ĊĠĠĠĠ Ġ* Ġæľ¬ æĸ¹æ³ķ ä¼ļ åľ¨ éħ · Q ãĢĲ çº¿ç¨ĭ ãĢĳ ä¸Ń è¢« è°ĥçĶ¨ ãĢĤ< br ></ br > ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġsub Type Ġ åŃĲ ç±»åŀĭ ï¼Į 1 1 / æĿ¥ èĩª å¥½ åıĭ Ġ 1 / æĿ¥ èĩª åľ¨ çº¿ çĬ¶æĢģ Ġ 2 / æĿ¥ èĩª ç¾¤ Ġ 3 / æĿ¥ èĩª è®¨ è®º ç»Ħ ĊĠĠĠĠ Ġ* Ġ@ param Ġmsg Id ĠĠ Ġæ ¶ Ī æģ¯ ID ĊĠĠĠĠ Ġ* Ġ@ param Ġfrom QQ Ġ ĠæĿ¥ æºĲ QQ ĊĠĠĠĠ Ġ* Ġ@ param Ġmsg ĠĠĠĠ Ġæ ¶ Ī æģ¯ åĨħå®¹ ĊĠĠĠĠ Ġ* Ġ@ param Ġfont ĠĠĠ Ġ åŃĹ ä½ĵ ĊĠĠĠĠ Ġ* Ġ@ return Ġè¿ĶåĽŀ åĢ¼ * ä¸įèĥ½ * çĽ´æİ¥ è¿ĶåĽŀ æĸĩæľ¬ Ġå¦Ĥæŀľ è¦ģ åĽŀå¤į æ¶Īæģ¯ ï¼Į è¯· è°ĥçĶ¨ api åıĳéĢģ < br ></ br > ĊĠĠĠĠ Ġ* Ġ è¿ĻéĩĮ Ġè¿ĶåĽŀ Ġ Ġ[ com . so b te . c qp . jc q . entity . IM sg . MSG _ INTER CEPT ] Ġ- Ġ æĪª æĸŃ æľ¬ æĿ¡ æ¶Īæģ¯ ï¼Į ä¸į åĨį ç»§ç»Ń å¤ĦçĲĨ < br ></ br > ĊĠĠĠĠ Ġ* Ġ æ³¨æĦı ï¼ļ åºĶçĶ¨ ä¼ĺåħĪ çº§ è®¾ç½®ä¸º " æľĢ é«ĺ "( 1 0 0 0 0 ) æĹ¶ ï¼Į ä¸į å¾Ĺ ä½¿çĶ¨ æľ¬ è¿ĶåĽŀ åĢ¼ < br ></ br > ĊĠĠĠĠ Ġ* Ġå¦Ĥæŀľ ä¸į åĽŀå¤į æ¶Īæģ¯ ï¼Į äº¤ çĶ± ä¹ĭåĲİ çļĦ åºĶçĶ¨ / è¿ĩæ»¤ åĻ¨ å¤ĦçĲĨ ï¼Į è¿ĻéĩĮ Ġè¿ĶåĽŀ Ġ Ġ[ MSG _ IGNORE ][ com . so b te . c qp . jc q . entity . IM sg . MSG _ IGNORE ] Ġ- Ġ å¿½ çķ¥ æľ¬ æĿ¡ æ¶Īæģ¯ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġprivate Msg ( sub Type : ĠInt , Ġmsg Id : ĠInt , Ġfrom QQ : ĠLong , Ġmsg : ĠString ?, Ġfont : ĠInt ): ĠInt Ġ= Ġprocessor . on Msg Selected ( J CQ Private Msg ( sender , Ġsub Type , Ġmsg Id , Ġfrom QQ , Ġmsg , Ġfont )). to Result () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ ç¾¤ äºĭä»¶ - ç¾¤ ç¦ģ è¨Ģ Ġ( Type ={ @ link ĠI Type # EVENT _ System _ Group Ban Ġ 1 0 4 }) < br > ĊĠĠĠĠ Ġ* Ġæľ¬ æĸ¹æ³ķ ä¼ļ åľ¨ éħ · Q ãĢĲ çº¿ç¨ĭ ãĢĳ ä¸Ń è¢« è°ĥçĶ¨ ãĢĤ< br > ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġsub Type ĠĠĠĠĠĠĠ Ġ åŃĲ ç±»åŀĭ ï¼Į 1 / è¢« è§£ ç¦ģ Ġ 2 / è¢« ç¦ģ è¨Ģ ĊĠĠĠĠ Ġ* Ġ@ param Ġsend Time ĠĠĠĠĠĠ Ġ åıĳéĢģ æĹ¶éĹ´ ( æĹ¶éĹ´ æĪ ³ ) ĊĠĠĠĠ Ġ* Ġ@ param Ġfrom Group ĠĠĠĠĠ ĠæĿ¥ æºĲ ç¾¤ åı· ĊĠĠĠĠ Ġ* Ġ@ param Ġfrom QQ ĠĠĠĠĠĠĠĠ Ġæĵ įä½ľ èĢħ QQ ĊĠĠĠĠ Ġ* Ġ@ param Ġbeing Oper ate QQ Ġ è¢« æĵįä½ľ QQ ( èĭ¥ ä¸º åħ¨ ç¾¤ ç¦ģ è¨Ģ / è§£ ç¦ģ ï¼Į åĪĻ æľ¬ åıĤæķ° ä¸º Ġ 0 ) ĊĠĠĠĠ Ġ* Ġ@ param Ġduration ĠĠĠĠĠĠ Ġ ç¦ģ è¨Ģ æĹ¶ éķ¿ ( åįķä½į Ġ ç§Ĵ ï¼Į ä»ħ åŃĲ ç±»åŀĭ ä¸º 2 æĹ¶ åı¯çĶ¨ ) ĊĠĠĠĠ Ġ* Ġ@ return Ġ åħ³äºİ è¿ĶåĽŀ åĢ¼ è¯´æĺİ , Ġ è§ģ Ġ{@ link Ġ# private Msg Ġ ç§ģ èģ Ĭ æ¶Īæģ¯ } ĠçļĦ æĸ¹æ³ķ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġgroup Ban ( sub Type : ĠInt , Ġsend Time : ĠInt , Ġfrom Group : ĠLong , Ġfrom QQ : ĠLong , Ġbeing Oper ate QQ : ĠLong , Ġduration : ĠLong ): ĠInt Ġ= Ġprocessor . on Msg Selected ( J CQ Group Ban ( sender , Ġsub Type , Ġsend Time . to Long (), Ġfrom Group , Ġfrom QQ , Ġbeing Oper ate QQ , Ġduration )). to Result () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ ç¾¤ æ¶Īæģ¯ Ġ( Type =[ 2 ][ I Type . EVENT _ Group Msg ]) < br ></ br > ĊĠĠĠĠ Ġ* Ġæľ¬ æĸ¹æ³ķ ä¼ļ åľ¨ éħ · Q ãĢĲ çº¿ç¨ĭ ãĢĳ ä¸Ń è¢« è°ĥçĶ¨ ãĢĤ< br ></ br > ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġsub Type ĠĠĠĠĠĠ Ġ åŃĲ ç±»åŀĭ ï¼Į çĽ®åīį åĽºå®ļ ä¸º 1 ĊĠĠĠĠ Ġ* Ġ@ param Ġmsg Id ĠĠĠĠĠĠĠĠ Ġæ ¶ Ī æģ¯ ID ĊĠĠĠĠ Ġ* Ġ@ param Ġfrom Group ĠĠĠĠ ĠæĿ¥ æºĲ ç¾¤ åı· ĊĠĠĠĠ Ġ* Ġ@ param Ġfrom QQ ĠĠĠĠĠĠĠ ĠæĿ¥ æºĲ QQ åı· ĊĠĠĠĠ Ġ* Ġ@ param Ġfrom Anonymous ĠæĿ¥ æºĲ åĮ ¿ åĲį èĢħ ĊĠĠĠĠ Ġ* Ġ@ param Ġmsg ĠĠĠĠĠĠĠĠĠĠ Ġæ ¶ Ī æģ¯ åĨħå®¹ ĊĠĠĠĠ Ġ* Ġ@ param Ġfont ĠĠĠĠĠĠĠĠĠ Ġ åŃĹ ä½ĵ ĊĠĠĠĠ Ġ* Ġ@ return Ġ åħ³äºİ è¿ĶåĽŀ åĢ¼ è¯´æĺİ , Ġ è§ģ Ġ[ ç§ģ èģ Ĭ æ¶Īæģ¯ ][ private Msg ] ĠçļĦ æĸ¹æ³ķ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġgroup Msg ( sub Type : ĠInt , Ġmsg Id : ĠInt , Ġfrom Group : ĠLong , Ġfrom QQ : ĠLong , Ġfrom Anonymous : ĠString ?, Ġmsg : ĠString ?, Ġfont : ĠInt ): ĠInt Ġ= Ġprocessor . on Msg Selected ( J CQ Group Msg ( sender , Ġsub Type , Ġmsg Id , Ġfrom Group , Ġfrom QQ , Ġfrom Anonymous , Ġmsg , Ġfont )). to Result () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ è®¨ è®º ç»Ħ æ¶Īæģ¯ Ġ( Type =[ 4 ][ I Type . EVENT _ Dis cuss Msg ]) < br ></ br > ĊĠĠĠĠ Ġ* Ġæľ¬ æĸ¹æ³ķ ä¼ļ åľ¨ éħ · Q ãĢĲ çº¿ç¨ĭ ãĢĳ ä¸Ń è¢« è°ĥçĶ¨ ãĢĤ< br ></ br > ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġsubtype ĠĠĠĠ Ġ åŃĲ ç±»åŀĭ ï¼Į çĽ®åīį åĽºå®ļ ä¸º 1 ĊĠĠĠĠ Ġ* Ġ@ param Ġmsg Id ĠĠĠĠĠĠ Ġæ ¶ Ī æģ¯ ID ĊĠĠĠĠ Ġ* Ġ@ param Ġfrom Dis cuss ĠæĿ¥ æºĲ è®¨ è®º ç»Ħ ĊĠĠĠĠ Ġ* Ġ@ param Ġfrom QQ ĠĠĠĠĠ ĠæĿ¥ æºĲ QQ åı· ĊĠĠĠĠ Ġ* Ġ@ param Ġmsg ĠĠĠĠĠĠĠĠ Ġæ ¶ Ī æģ¯ åĨħå®¹ ĊĠĠĠĠ Ġ* Ġ@ param Ġfont ĠĠĠĠĠĠĠ Ġ åŃĹ ä½ĵ ĊĠĠĠĠ Ġ* Ġ@ return Ġ åħ³äºİ è¿ĶåĽŀ åĢ¼ è¯´æĺİ , Ġ è§ģ Ġ[ ç§ģ èģ Ĭ æ¶Īæģ¯ ][ private Msg ] ĠçļĦ æĸ¹æ³ķ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġdiscuss Msg ( sub Type : ĠInt , Ġmsg Id : ĠInt , Ġfrom Dis cuss : ĠLong , Ġfrom QQ : ĠLong , Ġmsg : ĠString ?, Ġfont : ĠInt ): ĠInt Ġ= Ġprocessor . on Msg Selected ( J CQ Dis cuss Msg ( sender , Ġsub Type , Ġmsg Id , Ġfrom Dis cuss , Ġfrom QQ , Ġmsg , Ġfont )). to Result () ĊĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġè¯·æ±Ĥ - å¥½ åıĭ æ·»åĬł Ġ( Type =[ 3 0 1 ][ I Type . EVENT _ Request _ Add Friend ]) < br ></ br > ĊĠĠĠĠ Ġ* Ġæľ¬ æĸ¹æ³ķ ä¼ļ åľ¨ éħ · Q ãĢĲ çº¿ç¨ĭ ãĢĳ ä¸Ń è¢« è°ĥçĶ¨ ãĢĤ< br ></ br > ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġsub Type ĠĠĠĠĠ Ġ åŃĲ ç±»åŀĭ ï¼Į çĽ®åīį åĽºå®ļ ä¸º 1 ĊĠĠĠĠ Ġ* Ġ@ param Ġsend Time ĠĠĠĠ Ġ åıĳéĢģ æĹ¶éĹ´ ( æĹ¶éĹ´ æĪ ³ ) ĊĠĠĠĠ Ġ* Ġ@ param Ġfrom QQ ĠĠĠĠĠĠ ĠæĿ¥ æºĲ QQ ĊĠĠĠĠ Ġ* Ġ@ param Ġmsg ĠĠĠĠĠĠĠĠĠ Ġ éĻĦ è¨Ģ ĊĠĠĠĠ Ġ* Ġ@ param Ġresponse Flag Ġ åıį é¦ Ī æłĩè¯Ĩ ( å¤ĦçĲĨ è¯·æ±Ĥ çĶ¨ ) ĊĠĠĠĠ Ġ* Ġ@ return Ġ åħ³äºİ è¿ĶåĽŀ åĢ¼ è¯´æĺİ , Ġ è§ģ Ġ[ ç§ģ èģ Ĭ æ¶Īæģ¯ ][ private Msg ] ĠçļĦ æĸ¹æ³ķ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġrequest Add Friend ( sub Type : ĠInt , Ġsend Time : ĠInt , Ġfrom QQ : ĠLong , Ġmsg : ĠString ?, Ġresponse Flag : ĠString ): ĠInt Ġ= Ġprocessor . on Msg Selected ( J CQ Request Add Friend ( sender , Ġsub Type , Ġsend Time . to Long (), Ġfrom QQ , Ġmsg , Ġresponse Flag )). to Result () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ ç¾¤ æĸĩä»¶ ä¸Ĭä¼ł äºĭä»¶ Ġ( Type =[ 1 1 ][ I Type . EVENT _ Group Upload ]) < br ></ br > ĊĠĠĠĠ Ġ* Ġæľ¬ æĸ¹æ³ķ ä¼ļ åľ¨ éħ · Q ãĢĲ çº¿ç¨ĭ ãĢĳ ä¸Ń è¢« è°ĥçĶ¨ ãĢĤ< br ></ br > ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġsub Type ĠĠ Ġ åŃĲ ç±»åŀĭ ï¼Į çĽ®åīį åĽºå®ļ ä¸º 1 ĊĠĠĠĠ Ġ* Ġ@ param Ġsend Time Ġ Ġ åıĳéĢģ æĹ¶éĹ´ ( æĹ¶éĹ´ æĪ ³ )// Ġ 1 0 ä½į æĹ¶éĹ´ æĪ ³ ĊĠĠĠĠ Ġ* Ġ@ param Ġfrom Group ĠæĿ¥ æºĲ ç¾¤ åı· ĊĠĠĠĠ Ġ* Ġ@ param Ġfrom QQ ĠĠĠ ĠæĿ¥ æºĲ QQ åı· ĊĠĠĠĠ Ġ* Ġ@ param Ġfile ĠĠĠĠĠ Ġ ä¸Ĭä¼ł æĸĩä»¶ ä¿¡æģ¯ ĊĠĠĠĠ Ġ* Ġ@ return Ġ åħ³äºİ è¿ĶåĽŀ åĢ¼ è¯´æĺİ , Ġ è§ģ Ġ[ ç§ģ èģ Ĭ æ¶Īæģ¯ ][ private Msg ] ĠçļĦ æĸ¹æ³ķ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġgroup Upload ( sub Type : ĠInt , Ġsend Time : ĠInt , Ġfrom Group : ĠLong , Ġfrom QQ : ĠLong , Ġfile : ĠString ): ĠInt Ġ= Ġprocessor . on Msg Selected ( J CQ Group Upload ( sender , Ġsub Type , Ġsend Time . to Long (), Ġfrom Group , Ġfrom QQ , Ġfile )). to Result () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ ç¾¤ äºĭä»¶ - ç¾¤ æĪĲåĳĺ åĩı å°ĳ Ġ( Type =[ 1 0 2 ][ I Type . EVENT _ System _ Group Member De crease ]) < br ></ br > ĊĠĠĠĠ Ġ* Ġæľ¬ æĸ¹æ³ķ ä¼ļ åľ¨ éħ · Q ãĢĲ çº¿ç¨ĭ ãĢĳ ä¸Ń è¢« è°ĥçĶ¨ ãĢĤ< br ></ br > ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġsub Type ĠĠĠĠĠĠĠ Ġ åŃĲ ç±»åŀĭ ï¼Į 1 / ç¾¤ åĳĺ ç¦» å¼Ģ Ġ 2 / ç¾¤ åĳĺ è¢« è¸ ¢ ĊĠĠĠĠ Ġ* Ġ@ param Ġsend Time ĠĠĠĠĠĠ Ġ åıĳéĢģ æĹ¶éĹ´ ( æĹ¶éĹ´ æĪ ³ ) ĊĠĠĠĠ Ġ* Ġ@ param Ġfrom Group ĠĠĠĠĠ ĠæĿ¥ æºĲ ç¾¤ åı· ĊĠĠĠĠ Ġ* Ġ@ param Ġfrom QQ ĠĠĠĠĠĠĠĠ Ġæĵ įä½ľ èĢħ QQ ( ä»ħ åŃĲ ç±»åŀĭ ä¸º 2 æĹ¶ åŃĺåľ¨ ) ĊĠĠĠĠ Ġ* Ġ@ param Ġbeing Oper ate QQ Ġ è¢« æĵįä½ľ QQ ĊĠĠĠĠ Ġ* Ġ@ return Ġ åħ³äºİ è¿ĶåĽŀ åĢ¼ è¯´æĺİ , Ġ è§ģ Ġ[ ç§ģ èģ Ĭ æ¶Īæģ¯ ][. private Msg ] ĠçļĦ æĸ¹æ³ķ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġgroup Member De crease ( sub Type : ĠInt , Ġsend Time : ĠInt , Ġfrom Group : ĠLong , Ġfrom QQ : ĠLong , Ġbeing Oper ate QQ : ĠLong ): ĠInt Ġ= Ġprocessor . on Msg Selected ( J CQ Group Member De crease ( sender , Ġsub Type , Ġsend Time . to Long (), Ġfrom Group , Ġfrom QQ , Ġbeing Oper ate QQ )). to Result () ĊĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ ç¾¤ äºĭä»¶ - ç®¡çĲĨåĳĺ åıĺ åĬ¨ Ġ( Type =[ 1 0 1 ][ I Type . EVENT _ System _ Group Admin ]) < br ></ br > ĊĠĠĠĠ Ġ* Ġæľ¬ æĸ¹æ³ķ ä¼ļ åľ¨ éħ · Q ãĢĲ çº¿ç¨ĭ ãĢĳ ä¸Ń è¢« è°ĥçĶ¨ ãĢĤ< br ></ br > ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġsubtype ĠĠĠĠĠĠĠ Ġ åŃĲ ç±»åŀĭ ï¼Į 1 / è¢« åıĸæ¶Ī ç®¡çĲĨåĳĺ Ġ 2 / è¢« è®¾ç½® ç®¡çĲĨåĳĺ ĊĠĠĠĠ Ġ* Ġ@ param Ġsend Time ĠĠĠĠĠĠ Ġ åıĳéĢģ æĹ¶éĹ´ ( æĹ¶éĹ´ æĪ ³ ) ĊĠĠĠĠ Ġ* Ġ@ param Ġfrom Group ĠĠĠĠĠ ĠæĿ¥ æºĲ ç¾¤ åı· ĊĠĠĠĠ Ġ* Ġ@ param Ġbeing Oper ate QQ Ġ è¢« æĵįä½ľ QQ ĊĠĠĠĠ Ġ* Ġ@ return Ġ åħ³äºİ è¿ĶåĽŀ åĢ¼ è¯´æĺİ , Ġ è§ģ Ġ[ ç§ģ èģ Ĭ æ¶Īæģ¯ ][. private Msg ] ĠçļĦ æĸ¹æ³ķ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġgroup Admin ( sub Type : ĠInt , Ġsend Time : ĠInt , Ġfrom Group : ĠLong , Ġbeing Oper ate QQ : ĠLong ): ĠInt Ġ= Ġprocessor . on Msg Selected ( J CQ Group Admin ( sender , Ġsub Type , Ġsend Time . to Long (), Ġfrom Group , Ġbeing Oper ate QQ )). to Result () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ ç¾¤ äºĭä»¶ - ç¾¤ æĪĲåĳĺ å¢ŀåĬł Ġ( Type =[ 1 0 3 ][ I Type . EVENT _ System _ Group Member Increase ]) < br ></ br > ĊĠĠĠĠ Ġ* Ġæľ¬ æĸ¹æ³ķ ä¼ļ åľ¨ éħ · Q ãĢĲ çº¿ç¨ĭ ãĢĳ ä¸Ń è¢« è°ĥçĶ¨ ãĢĤ< br ></ br > ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġsub Type ĠĠĠĠĠĠĠ Ġ åŃĲ ç±»åŀĭ ï¼Į 1 / ç®¡çĲĨåĳĺ å·² åĲĮ æĦı Ġ 2 / ç®¡çĲĨåĳĺ éĤ Ģ è¯· ĊĠĠĠĠ Ġ* Ġ@ param Ġsend Time ĠĠĠĠĠĠ Ġ åıĳéĢģ æĹ¶éĹ´ ( æĹ¶éĹ´ æĪ ³ ) ĊĠĠĠĠ Ġ* Ġ@ param Ġfrom Group ĠĠĠĠĠ ĠæĿ¥ æºĲ ç¾¤ åı· ĊĠĠĠĠ Ġ* Ġ@ param Ġfrom QQ ĠĠĠĠĠĠĠĠ Ġæĵ įä½ľ èĢħ QQ ( åį³ ç®¡çĲĨåĳĺ QQ ) ĊĠĠĠĠ Ġ* Ġ@ param Ġbeing Oper ate QQ Ġ è¢« æĵįä½ľ QQ ( åį³ åĬł ç¾¤ çļĦ QQ ) ĊĠĠĠĠ Ġ* Ġ@ return Ġ åħ³äºİ è¿ĶåĽŀ åĢ¼ è¯´æĺİ , Ġ è§ģ Ġ[ ç§ģ èģ Ĭ æ¶Īæģ¯ ][. private Msg ] ĠçļĦ æĸ¹æ³ķ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġgroup Member Increase ( sub Type : ĠInt , Ġsend Time : ĠInt , Ġfrom Group : ĠLong , Ġfrom QQ : ĠLong , Ġbeing Oper ate QQ : ĠLong ): ĠInt Ġ= Ġprocessor . on Msg Selected ( J CQ Group Member Increase ( sender , Ġsub Type , Ġsend Time . to Long (), Ġfrom Group , Ġfrom QQ , Ġbeing Oper ate QQ )). to Result () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġè¯·æ±Ĥ - ç¾¤ æ·»åĬł Ġ( Type =[ 3 0 2 ][ I Type . EVENT _ Request _ Add Group ]) < br ></ br > ĊĠĠĠĠ Ġ* Ġæľ¬ æĸ¹æ³ķ ä¼ļ åľ¨ éħ · Q ãĢĲ çº¿ç¨ĭ ãĢĳ ä¸Ń è¢« è°ĥçĶ¨ ãĢĤ< br ></ br > ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġsub Type ĠĠĠĠĠ Ġ åŃĲ ç±»åŀĭ ï¼Į 1 / ä»ĸ äºº çĶ³è¯· åħ¥ ç¾¤ Ġ 2 / èĩªå·± ( åį³ çĻ»å½ķ åı· ) åıĹ éĤ Ģ åħ¥ ç¾¤ ĊĠĠĠĠ Ġ* Ġ@ param Ġsend Time ĠĠĠĠ Ġ åıĳéĢģ æĹ¶éĹ´ ( æĹ¶éĹ´ æĪ ³ ) ĊĠĠĠĠ Ġ* Ġ@ param Ġfrom Group ĠĠĠ ĠæĿ¥ æºĲ ç¾¤ åı· ĊĠĠĠĠ Ġ* Ġ@ param Ġfrom QQ ĠĠĠĠĠĠ ĠæĿ¥ æºĲ QQ ĊĠĠĠĠ Ġ* Ġ@ param Ġmsg ĠĠĠĠĠĠĠĠĠ Ġ éĻĦ è¨Ģ ĊĠĠĠĠ Ġ* Ġ@ param Ġresponse Flag Ġ åıį é¦ Ī æłĩè¯Ĩ ( å¤ĦçĲĨ è¯·æ±Ĥ çĶ¨ ) ĊĠĠĠĠ Ġ* Ġ@ return Ġ åħ³äºİ è¿ĶåĽŀ åĢ¼ è¯´æĺİ , Ġ è§ģ Ġ[ ç§ģ èģ Ĭ æ¶Īæģ¯ ][. private Msg ] ĠçļĦ æĸ¹æ³ķ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġrequest Add Group ( sub Type : ĠInt , Ġsend Time : ĠInt , Ġfrom Group : ĠLong , Ġfrom QQ : ĠLong , Ġmsg : ĠString ?, Ġresponse Flag : ĠString ): ĠInt Ġ= Ġprocessor . on Msg Selected ( J CQ Request Add Group ( sender , Ġsub Type , Ġsend Time . to Long (), Ġfrom Group , Ġfrom QQ , Ġmsg , Ġresponse Flag )). to Result () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ å¥½ åıĭ äºĭä»¶ - å¥½ åıĭ å·² æ·»åĬł Ġ( Type =[ 2 0 1 ][ I Type . EVENT _ Friend _ Add ]) < br ></ br > ĊĠĠĠĠ Ġ* Ġæľ¬ æĸ¹æ³ķ ä¼ļ åľ¨ éħ · Q ãĢĲ çº¿ç¨ĭ ãĢĳ ä¸Ń è¢« è°ĥçĶ¨ ãĢĤ< br ></ br > ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġsub Type Ġ Ġ åŃĲ ç±»åŀĭ ï¼Į çĽ®åīį åĽºå®ļ ä¸º 1 ĊĠĠĠĠ Ġ* Ġ@ param Ġsend Time Ġ åıĳéĢģ æĹ¶éĹ´ ( æĹ¶éĹ´ æĪ ³ ) ĊĠĠĠĠ Ġ* Ġ@ param Ġfrom QQ ĠĠ ĠæĿ¥ æºĲ QQ ĊĠĠĠĠ Ġ* Ġ@ return Ġ åħ³äºİ è¿ĶåĽŀ åĢ¼ è¯´æĺİ , Ġ è§ģ Ġ[ ç§ģ èģ Ĭ æ¶Īæģ¯ ][. private Msg ] ĠçļĦ æĸ¹æ³ķ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġfriend Add ( sub Type : ĠInt , Ġsend Time : ĠInt , Ġfrom QQ : ĠLong ): ĠInt Ġ= Ġprocessor . on Msg Selected ( J CQ Friend Add ( sender , Ġsub Type , Ġsend Time . to Long (), Ġfrom QQ )). to Result () Ċ }