From 282680167988943484c792069b4308bd89801fc4 Mon Sep 17 00:00:00 2001
From: Miniontoby <tobias.gaarenstroom@gmail.com>
Date: Mon, 17 Jan 2022 17:50:02 +0100
Subject: [PATCH] Release version 1.1.0

---
 .../7.3/executionHistory/executionHistory.bin | Bin 50157 -> 50157 bytes
 .../executionHistory/executionHistory.lock    | Bin 17 -> 17 bytes
 .gradle/7.3/fileHashes/fileHashes.bin         | Bin 19297 -> 19297 bytes
 .gradle/7.3/fileHashes/fileHashes.lock        | Bin 17 -> 17 bytes
 .../7.3/fileHashes/resourceHashesCache.bin    | Bin 22781 -> 23971 bytes
 .../buildOutputCleanup.lock                   | Bin 17 -> 17 bytes
 CHANGELOG                                     |  10 +-
 README.md                                     |  43 ++++-
 .../com/miniontoby/MindustrIRC/IRCBot.class   | Bin 7443 -> 3472 bytes
 .../miniontoby/MindustrIRC/MindustrIRC.class  | Bin 5287 -> 10549 bytes
 build/libs/mindustrircDesktop.jar             | Bin 7252 -> 7960 bytes
 .../compileJava/previous-compilation-data.bin | Bin 30536 -> 30534 bytes
 src/com/miniontoby/MindustrIRC/IRCBot.java    | 105 ++---------
 .../miniontoby/MindustrIRC/MindustrIRC.java   | 176 ++++++++++++++++--
 14 files changed, 224 insertions(+), 110 deletions(-)

diff --git a/.gradle/7.3/executionHistory/executionHistory.bin b/.gradle/7.3/executionHistory/executionHistory.bin
index 3313e6f83482b79990577721f80d47249280895e..aebafa6042a6c3dca0998c4b34f9e428ba1fb472 100644
GIT binary patch
delta 457
zcmaFc&iuBWd4s=)RCb1GTB3PTZb@27X;Fr;aaCeQX-<Bwd3Ne%z7#RG&Gmk>8HM61
zJRe<6zMm+#|COnV)tP9<6_Y>ut4|INNEKSKU4MRsz^ueAt70On4U}6M*G^_!qCWX=
zwvE8d&Xkt^l)|GQ|J^#rcH(FG<adFxo1+5HFiJQJuuEJq75jf%BW7CFRF_$AdZ!<M
zra!}Ovt977U?tp6VgLi??~@lScilXHd4`10?{{*y9?ePMS{Lxh;ppWJe2mM1E>oIp
zeIP`@W6R829Sv^l($qVX?+er<O`d-sKtSc)v+ByAtJV|V8@><fy&f_7K}X)?+=H_9
z=w7@5cG3iC#!0@Jc`2pEB}JY=&U(o?iN(bX0_dJT2Uff_h?zlP|I3EM|KzqFoyMqV
zr|fy~7f{G8UZ#%yjqk}fA4+ugi*vF7g-%_5<onF}@srq3m#!_id+Zjo5CcYVZRT65
l!Z?{fIaHh}@z(WOCnxSVm~nmmb_YF^M_}uYO<sN22>>`y(Z&D(

delta 460
zcmaFc&iuBWd4s=)QfiTTMM1Keu~Ak^c12EJPEl1waax(ViJ1ul1Tb$d^jOI*bV@sE
z^0wdl>%VSm>2zISrpmZt@<)I5$-x1sLbFU(UlWMEsegKU<I=;DCl)fUoy@pIee&OI
z8-WLG#_=m;x14aE7Q5jh6Mx|3cY(5-qXN$`O6-oXukRP1`r&uc&k5hc?=J6r`FG(n
z{VNum?Sg*=6Lb~J#mNhnyKbJpJVQdLgjaj}(e>BfCG7g0<WRBHnQ=MLWlEE+4}=Kl
zUd$4>;a2AS%S2p#+ndx?ljk1@5Xd_B@tD@E2U)*XK7RMuHs5*jgO0q(xd&zI(Y^Tf
z1;|O0tr#cyX6B`o7MB!x207~`=Oh*vGYFu2`Z`$ga!qCifvE{gU1zL6GIv9s<DHmy
zG0H%pHAc7Y8t#9#LA4?8lS<YRb)e9Ww4a|(H+H`gzqH6o?rWz4vk(JDaBb#Ws=_##
iKRHyqBQs{&k20yJ9IvNl`xUIc{vT}JiOH)EI{^Ub!P3b9

diff --git a/.gradle/7.3/executionHistory/executionHistory.lock b/.gradle/7.3/executionHistory/executionHistory.lock
index bd0866557779329f2f2196d4ec4568e67c1cc3c1..f5c0f289b524f71f271e8033e573f9752d4f828b 100644
GIT binary patch
literal 17
VcmZQ(Q2(hkd0N_g1~6a>2LLPi1RVeX

literal 17
VcmZQ(Q2(hkd0N_g1~6c}0RSv`1f2i?

diff --git a/.gradle/7.3/fileHashes/fileHashes.bin b/.gradle/7.3/fileHashes/fileHashes.bin
index 2a6edf6dca28607005cdc9a4f90f210902c52e70..ec995dad2542f5969f4ae9a3ba0211e9d5688308 100644
GIT binary patch
delta 272
zcmaDjjq%|$#toZ26qpikU7vMw;(mh}*Vk`%&@*9RV64k{dh8Jc7?itBzU;B0-dTWM
z;)<!*|Jxcd)2gPr%z`R<15qR|0i^YefrKUyD}u1VR{xZ*wt0PeLHt`ksV7PMLv(Bg
z%7K8?b|8VKW5ss;`4s}Q61S|1iL5qIZiU)$4yck9h&4?&|M%o!3|qBZMA~<TtMYUS
zvAwC+nJmG|Zm3KIDggqnI3R&$a9oAwqpQjH69xCbGF7oU6Ad-^23P|F?*xzz01Hx0
A2><{9

delta 272
zcmaDjjq%|$#toZ26go0vru`_Bddl&7YPMg&+UpDqjCCpYCG`woQ0_7Lvd4=0-4XWn
z{o+$U{4V-A;am9K<xoYP5JfT}Kw8fjNN57FA_xoE=`^mL5i_Zq=RuM)%ajeA5FN==
zfs#PLxf4jB>6m4*`kFxOP5sl;8<!rIJh2dJM>tR=D-eq;-~8W`hcQfAY^JZqL>H|-
zN0Xf_LGR~+m050{4O9XI!oENP&EQkoNt3tz)?fd1TT7?w0y9;p!KGjg46?!?9RP1@
BOj7^=

diff --git a/.gradle/7.3/fileHashes/fileHashes.lock b/.gradle/7.3/fileHashes/fileHashes.lock
index 237395412157d370fe65b09027b0aa438e28ffe5..aa582e805f83ac5fdc90e638d9c368efe544a988 100644
GIT binary patch
literal 17
VcmZR+^(*QCe|Oe%1~6cC002I41tI_d

literal 17
VcmZR+^(*QCe|Oe%1~6ce1OPrq1o{8~

diff --git a/.gradle/7.3/fileHashes/resourceHashesCache.bin b/.gradle/7.3/fileHashes/resourceHashesCache.bin
index a3e1ee7ce92c8cafd0aec565fa3d3c58333e418b..43a75f04ad47787d9463dbbeef2dff52cefcaf35 100644
GIT binary patch
delta 1984
zcmZvd3pCVO9LHyf)TX&vv&|SY#zc(@QQA>??er9xvBY4~Qc}){(;;~@)Ul?p(v>qT
zXOq{)WU|A0l(ZzZWlfe)B2y}laVpuS2bTT+r&@paoO}NN^EsdUy}x_Uz5oA2IX?di
z{_;8!J`dWEqL@ke{vCk>+yLBvjh`@uw$ourmfrm<uc6!@7Lqt1joz3SA|R|qpzjY*
zNn(M_$?n9r?jJG`=ob#DWDdy5P9wf<DzinPk1pI#ri0wc(sbU&RyhKBPO>;M6A!M_
zdfD^luWdo85zI9R1~;lV-!6^YV1q#4LO5YyOdvT1)ZOP?L^CZRks@Zc9{8<jeNwu5
zbfCI^`8eMYFI;Ag2AqV26b|Sd;T+%Ln;C;ZKR2kPsK9V~PPCm@$~UMv2p<`W!I<Wq
zvPsY0W9VE}G68kER85BV#TEPvG?Y()sWdv!!R=(7ivE#+s@<@VW=r4>X@oSKSdUIr
z2|H*kKqNc4Y4dMrqVSze%g7NAOo)nw?1$Sj5$Zhw?dTj}me^k1r38Tp<lDi-X=p|1
zT587LEknn5!WKFmtgY*~^lZ%bCIWq%Wdn482hKgxJ<_ug&k@QihDu`=(@if$cT-i7
zGpahMx5}+?Z&Z&z!vf9y3Q`#y@V%kApsYD%7)?lo`x$iL^~V#DPi>+$3U9->X*1wO
z!#WrJrHu&mIRcv)EXN>{_2zVw(p?DjrK;x&&N{#m7gTnm@;NmR89JBk5z^L$a6fZ6
z&fqW)r;4v{OY6@^Wv*I|a5sDlO|)`R8A7{dmqDyH_Zr1I3$4xP0~}aJH#wencJX%;
zo$-jt8&)T%pEw-BtlU_&w0zA=9huYit3Wt&w#n0d$xH|OIHRcMP)A2=ZEm+RZD{c{
zr2XGGG$Kfd5En>S8`fL35e7A|MwhKX-YTEibg|-4#mgFIHP%Qqvl-D`ex@ZOT~{~~
z=CZ&5tH|T^$2@d+7xFh%xwr=1*@iVr-j__ayg2zN&QmNs6^gUO8V&N8`HO;&h5Ea!
zoKpTpjKCU_r^0XDYD>5FZfv{FD2G!sn>l;E4M{2Q!g-R&Ra@4FtR9)8kW$qf$>F}8
z+sV%13lzbsnaeUOBlYJ6XJbbGp>{BbK4xzny7h%2L^mFnr(-3p^>{rVuqI>lmhSv7
z6x7HyzFQ))p)&iA7DzH|#12>^p(^>2-m`|B$Rbe<|3dpbtbxzmakPe-bYqL3#2(+r
z)y3h2vuo|}e0LMr7V=JaCG<o*CLh6u^wR9}?OgAY+Z15HrpI1@HFiDiE~($Zes7YN
z?SAImc`vN-u}Jl5vO&Vv7BY#&&acDfSdIJ5O3E5{{!ahqMNPy=gGy|O+2XwRQ3A&_
zCS;ZLN&3FGSYuuI>U#6m!C&(0W$Znp9;R4BcyP(R@mC_-?g%9bPQAbTD^^()cF;qs
z-ETRo_6cck*!fFXgDmJ5(ytmiP<YZPd%4NXr)|~==(#eiv5y?d>vugJ<lCoT^U2^(
zzadvIIWc+6n3(*q8q_^_u96#nQa%}VU7|3SMNZbFbtwCdk=q>Sxi^~3m1rcpKMr;t
z6`2yEpp)m<!WBA_-z_Vm?>D}(DE5}@#^!z)r9DvO>|I#KQ8+gJeR+;ce?GFaK6}qk
zR{q|PKPqaNdf1HW;aH)$N-I8=!=AVo^9KLfuvafI_xUZ07OrBjNKezt@~Od}pB1&S
Xy&~&@D1K{M(27%meIRz`A5HrgfeKMW

delta 157
zcmZ3yoAK{P#tkMCjCGSuB`PN0mGGEsD`_yfRnlYfQ%Q-<qEZTslYONVCLfiSocv9?
zfAUrtkIAC4A12GnP1t-?4k-CoUShJYg5l&c1^vx?6)YGh^D22v&IRJLN)ns@DseDQ
zmQ^vBT&v<S`L2q@WL{OEq^iN>r$9PZZN+3+bqSvTP{6>z{cxk=5Alr#7Cf6BJ@yCy
E07<|-fB*mh

diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock
index e3200a2fc0a8feeadb7ea0c212a942b36c459a4d..54bce009663ce12c3d6fbb1bfecd7ff54c729adc 100644
GIT binary patch
literal 17
VcmZQRH>Z2DcId}$1~6d03;;SR1zrFE

literal 17
VcmZQRH>Z2DcId}$1~6b|2LL%<1d;#%

diff --git a/CHANGELOG b/CHANGELOG
index ac576b5..d87c501 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,7 @@
-1.0.0
-- Started the project
-*Will add more later...*
+1.1.0:
+- Got the plugin working
+- Connects to IRC
+- Relays messages, joins, parts, quits, NICK
+- CTCP kind of working
+
+
diff --git a/README.md b/README.md
index daab48a..09c37f2 100644
--- a/README.md
+++ b/README.md
@@ -1 +1,42 @@
-MindustrIRC -> IRC mod
+# MindustrIRC
+
+## What?
+
+MindustrIRC is an IRC Plugin for the game [Mindustry](https://mindustrygame.github.io)
+
+
+## What does it do?
+
+It relays all messages which are send in the game to the IRC channel and the other way round
+
+
+It also relays JOIN, PART, QUIT, NICK and NOTICE
+
+
+It also comes with some IRC sided commands, like `players`. To use them send at IRC: `<YOURBOTNICK>: <command>`
+
+
+## How to install?
+
+To install this mod, go to your `config/mods/` folder and run the following command in shell:
+
+$ wget "https://edugit.org/Miniontoby/mindustrirc/-/raw/main/build/libs/mindustrircDesktop.jar?inline=false"
+
+
+## How to use?
+
+At default it will connect to irc.ircforever.org:6667 #mindustry 
+
+Using the Core.settings I have done that, but I don't know how to change it from commandline atm... Will change it soon
+
+You can change the code to change the server address and then build the .jar with the `./update.sh`
+
+
+## How to stop your server again?
+
+At the moment I dont have it auto stop on the `exit` command, but I am still working on it!
+
+So just execute the `exit` command and then CTRL-C to stop the server
+
+
+
diff --git a/build/classes/java/main/com/miniontoby/MindustrIRC/IRCBot.class b/build/classes/java/main/com/miniontoby/MindustrIRC/IRCBot.class
index eb3627d36095c48ae068a898f25c23ae7da95356..8b7eec9abe03893db59d1a638ac1a58b19aba41d 100644
GIT binary patch
delta 1520
zcmbVMU2_vv7=BKYX1Cidwn>aFEf7&?NmELz!WhOGZCW~U(zGURp@O4JvWAqfsmT^l
z(P--zepK-IK}BfstA2nO#I%AUSB~S2zr#CkongTDY@!6GS6=Knd*1Wz^E~H$pFKQy
ztVQ|l`lTxX?#0!ja@}62d3Y!s^~p#w$iuPl*kF8sR!=h6d_fue7^LXXNI2B*Qy^nP
z#eO&`mdF~0o-jr1fC@vz>hrphjAT=3qfaw61wKrwcnYJ0o71&qByH$2@(hfSrf^Wg
zAr*(=d77bNLOZB+Wi%tz6*qHfBgN-ydpt6pWpE6KqXQ!UITg>Nz&jmxb-u_@GdvU(
zGG`d<_iWoLWW2266^t{~O=QzXXrD&<GBRG{ryX}YUsv%4-sHbJf*WQT8bf9AdeUcR
zec@Q>P6fwsT*5mlxPaKmi)st+t!dgLHr`Y5K0Y9ogqh6fls~BF^IA%0@V4)c{8#(-
zO=A+~7~D5E`VS}cNi&@_YH<=DNjRnAH0JpMrTZZnXBe6Zvo~vQ&P^HZn}WW7(}Ps0
z6Zk~Mr=p5VN;fOa3O>i8gfCQl$*(Hw?F_-=e|mUKJ;ht=n;%d_C!$$1ogj^NLS;~s
z)RXvRCT*HJb=tjxZYs7&;^*tv1?uCbme@b2O^#@LGrELjqK{{%atVD$Izym!6~*F=
z{A5F@P6jmvU(xtA|D(ab1!u`(tKp=v2@W))mR76K0ykP|wFc)b3)Wa!-{3qCHFip5
zE!YU)P~(^lXZi1q-h!2<5-hL-lt=To^f)MTf^v)HFDSB=A|gxnUqovOeMNdF5E>Pl
zfsK&RR)r?7fJQbJ{FFTlyM@M+uE%y-C@$gz{8*0;3?qP@=&VB9wE`Nsv4WN$G@+r5
zv^{tk1LI2wyEJ~zy|&N7UPb%B7OX=z>Flv^z2z?|xb!V9K-A&p>6!4fVBoiTnv_Hd
zkq&xXI`8(ZjaK2_hjyw?7q(frz6w{lmV)&=3s<~dq&M3w4BuBVq;6p-R59F73_)Vp
z{y!K>RC6*7z(%RUq7DoGC8X)eun5&_a|zk;$S=rrxN;?!g8_Sw>zNXcc<0bjUCtLs
zUBJ=9i|*SCfh#p<uz^;tY08|#YCmOqmhh4_yIw8fsOzm|yd7A^yNfqw7jGPmT)>C_
zG-jcE&W~v-Ay&d?Mav4)m?q2Ftz$>Y#=sy6j?&HZ2w5x!FXCkD5h_Jt6k&{!OLoyX
z4h@eYjorv&58Zc<;|QKWfuhsciy0&^58bMppWxQe{t}j{3*yfE!RpKm{V|tt*%Gl(
j@xzZqe+QiMH82TN*U&HFr?$V~?3GAkErYn=ZTR_bojgG3

literal 7443
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
JPRRpU`v0;M;T-?~

diff --git a/build/classes/java/main/com/miniontoby/MindustrIRC/MindustrIRC.class b/build/classes/java/main/com/miniontoby/MindustrIRC/MindustrIRC.class
index 19f5f5df2948e312befccf6c935a2e605c43cdd5..53ae813c75ede17d415d54612693b8dec9afa43c 100644
GIT binary patch
literal 10549
zcmbVS34B!5)jwxuGVdikAWT>U#Baiy41_?Gs0phPG?0Wy0ELJ;OkR?a$xNJ?1W-%W
zy4$)ST5)OBs&QYyh7b{4YTa?ER;#U6tF5iIt#xT#knex)do%O05d1aC%w68OXS-*+
z_vN|ox_1-N5iTQ#T;$fsV^9`(nTEH7qYZ6|WPD?BORS-|HqzD<jxu>?hoj--Tqbux
z;Yy8krctK{+k?fCV6>^YE*TF;n~rG<M;gp{4r%1pX%N$p`f3|j<+6%3et9t1pdmCA
z=z^`SX0(B+sGzDhp7O#zQ#R^yK{3oAALTLW$(ThKJQws`0@x8WQln7@9YUj-j9@%e
z+?EVSimPHxOrCJGF~&5)Nq*_t)6Gz_yl`bUjip018fVa9^nXl~L$Q`(s3jbWCSz+i
z7CWSJ_Mw}#u_V)kssZ4kiDP0(Fqco`HJV`1M4H5uf6x_7gA!0!wV6l+n@pxDPR1=g
zl=o2^MA2vpQ(i{J3pa$!)+8j+sStYzc5IYo{`8|VwN+DPtETnZp_GdHkjm`PSekB7
zG0kAgsfa}rv52V@-b2$i!-XqF4<!a2E=tG|0c&E(aLCkY7Sl*DXAOJtb|f98(b1wh
z5b<T~waJVYR|F#woywWA>f>g^8lC2#JGTDtnJqaqkLGK%z@THOf+;tnlav{0akDiN
z3_-icI<;HT9E{hQXSA8okm=NMkNJKKP^X1VTK)RwaMA=L$61UV*`iY=9H71_Zf?Z%
z64>I{`Wcw5W^&cn>$H@K>oqz7cCC0+Mq3e!L|~lQxIt7)bp|b`6<C=Fp9yy1la+($
zL^?^MRR*o5dZ;BMUS-mZ2iHabr-PGtFd2(Oxha=X*cAxo%LmaKIz^*X4LXg2DJ(re
zAX0NMQDbg^rGxHjSrIa*fq>r=RntA)(KeZEYNBS1!UmmA>ku0<+qN<oPk^^(GuRM;
zc|-cuI<<gKRV>(GHsohhj9N81!=N|`pg3|xEH3gS%w!Ug2eU(}WV+5Cm+REVlpT(T
z>dbh%#H97KL8FZZok?feu^<HtF(6Q{P>?cEaPk9i0z|d3cv7by!VfX135V82gDtSr
zb78lbfGtF$W<==x$e{D-0#I)<lPSxZ?6jv8?mj+LE^+4~gD$2^U?2&_IrgA0oRGQ9
zpdZsu00%OaQEW!P4pu2BuQ2FJx(eIV3K^hYHF>o`TZE1twPg{=YYqCTOll!Z9-X#=
z0mwHUpGN2$x||-1Hwgnb7<41u1nsr90qH^FQ7Uf0;eSpyYjlf2x6&_|hB?eMnlzhC
zn5NbqjI^0c8^uT~oqh!|1p=FUJGQ|Qg>~w{HcUvHR1QSB%b>d@pZQ=TZLP;)v#P?0
zq!~5i33+_4LHEgHBNW5Ng_6r-h&Ezr4;b_yJp{3kp}?Oqs|BsCk#Hy|-dFBJ*4%E;
z!}LqQ#M_V>)2^g);j*@9RJ;wYw1c`d+G$WXJ;F3p?9+irZASu{8|Ac(^lFLRk0SM?
zWh!oh2*nHA&1iD@##VEpNVF8&p=Nx<w8x;w=y5Owg8<|3Z=u-O78P%aCXjNTq+e<D
zltI6yr=c!+susicT`|Zp!O2KPB$!B)_d+2|J&SC0K&DO%M{Rywv`3>Cn8qIvwknn|
zZD6+mzr<8<K;YU)aHAQAmnH2b9$E4#m_Epo#j$YIhsp-fuQN?N2y~ShY&U)6r9C>m
z2~WwFr16$PZ`1D)y%Vs41DJYYeScm$kKQrpUHT(}L85JKLRCrPs6DLO4hK5D&qPA+
z1A{)4;I1PqHCMzM5M}-Xuc%#Cxw5+MIDz=9L4Tu<;rqx+!AS4emGU*ju1^3{vvhf7
z#X_C_35#32w6aF0PtmJguxz<bpP_fcic0jpK(D5<Vu?=wf!t*}eT9jWXUv!>^u96Z
zTZx-FiDWRIOq>`_HtX~qd{6*ZE?ibuxwHlqApm5eZt03;AjmF=&Gu72q6>Qr&Qj3@
zW}AR7!4Fw8SeN9Volf>T=P=U0g~i{TOtvP<ii^z#)S*d<JyLREv8u#U+llBTlyx@1
zg<t0(OoLVaudlcBEa##OnhzpsdQF*~mQm@9WuL)$Qc4U)DuGwo1(7@%Vem*Eg(nDy
zNKUo!aC=LlNnF04{VrUovlN<&LQ#tDScIT7-J%p(oyS327EDoo5m-i@sryfdwVDkW
z<>RRz`|ppKjY*6rz(@V{Izv;uM&~Key?T5`TR186h46TPIN^`R*8A7tE9%Euou^_G
zo6Sh8&PA{w6gP09gw9zyLtJkn))q&t#U)H73)+L>h{P>FO3@Zbn<(?k%4vRk)il4o
zYt#JJI?>M&2G8PB@CwDIOVa{p9I>stuXn7LGP{Y7GWcjNL)3~&)XJ+$?dZm0Ocd9c
zD3y6O&(V0U!Si@N#Owos<d2Yt7$<QYmH~h08In^45KtY%6&fFF@IqdMWfB76m2IIU
zDu*+mtM#yK1YM^9>BUw&&442lXnZ_^E?4#nw~G*S6|E%(S8+9jYY8Hk<QHVZsRHQ-
zqs~hOV=auv8NiQ;#UhOg<uZfocscwfZnnhQ%>|JNVypwP1=$C)&MTo^TSu@kdsE9`
zBPYSMrujuRtL0>MfzBrb{YuM4%ar4uV(_WrxJD=$YCYAq1D#PI&a6{51Y7yOeyVc_
z>RJ)CtkgC({}i1~riD|c`<KTz`lpEHp}#clZ%df|`4+cQaQSDqSSO&l{$$KA2L^x8
z-wL-3CQZNnD4UzOS>v$5r!y+ev3(3CV=8b03pY&0VR~|qs8!BVp3N;B)i`Ewt7yP+
zI?e#WaD=yPdX1ZPhWU8{fdDky1{1R!IN5CaCA4JID+00s$B&e+XCCe4=4{%_XBm99
zijuZCI&Xs0&(`@IY}8z!JrB+=$<wb=VZP4i!vT?b?Xmdfg$7^57sKUY*47cBN0pJW
z=}Mh1#cC-g{4l3D5?((47*_#|(z49y2eu<u_VwhxGwNK&R~USylvr6RYv{Zg-I>#8
zOrN3i7KGI5%-w*$9XgXthcc-O5wNDMWvv-sZXH^DRk2Vof<r=B#`dHq*&K$V3kEuB
zI|!6Rbtbev!oh3$xGN8nxC_V@?_b`GBmnN}lEKir>R_u)4@cQZEG{hK&Vs{mPX{JD
z;X;OnU=mI--0>`}YHUU*)`kie6)r9xq>#w9vWhcydZh4%r}mRxunf)+*Z5AXRFT9H
zi}0{99&1rVRQMKy?x8o-jJ7Njdo7;rVAtN|xzNeTNU&vXLvUh`)Hm@ch>uv-|HC5@
z5DFZAWQXvKzx8vq14{0Yl%L}UTnIn5`RQBFPecYPbkY@9bCk-KE34WLHzKe?Q>tjh
zc?ZP-mcTzU0cb!zX2Bv4%7;{>ij7GJBd;I_BzT0np2-Bbex*oP&5CN^U{o{U1Cl;m
zo%s$(I$hl>q7x5HGy^ywIn*df%LgQvI(R5*6TS!BfW&4pO&x%kM9cKiOHusZzz9LM
z8N=q&=gx_!#`M{th<(MHV<pu^VY#!(b%e3$a$3d|l6(@*A8f5Qlg+V)#85B4oWrm1
zs~Z2t;Me$d)C8G>bvW7{TW1zmDR;(-U}G?ZyPl0mBQ4I+3(jzFFR}<6ud3g~#Hv_q
zU0bX34$O`hjtJ6Yp`28m;NSnDMRMS^&bt8{vt0kxg_CA^E_tDqHzgVV&fw?Bn@giH
z@q3y0gTYVpGr9Z>CjKZB?-~3nekzxr!o&wM@u9(w^AoxJ1SUR`iN6}WoA>1M9!&gQ
zCO$Fv5#E){yD;%DnfTP;PTr9#f1md%AyWr3hnDOqEdEj!|Ht5Myge6x^fBhXk-2XT
zevr<}Rrghuu$8zvlA8(5g@e{12l51@t{&zI!%F!EGF;l(kZ7%_nD%x=Icr9u4ot%l
zG&L6vca!=URDZUixo~(pY+z6nU6vtHJ}zQhxKGh=?!`?zdf9UMrCQursTP-1s>QvO
zv~q$}EecY!BcKbswjkzfFe=6fhiJ+Q>>z#!9T#7VZ#>4gkAI49!vf&zcq>NPa#3wB
zUI<nMZqy^Bt=d7^zMM`n0{C=NZWj&DppzFSM2FHy8s|VcN~$(NDJLQu<s;<5FVV4w
zUQa`|(U_?~=kK6#((Q+edN`&g^`ro_i#iEwK)>iA#atmxqsin}VjTv(5p?LG@iY{d
z;e}M7o)*y*s=)2Oh#SDuA{xop^9|${PHZlvcO&=}fsf^zXdP7bGxW2`Gj#MZ8ciMv
zL2xj)1-TH5W%&eKh?yNUraHyv5#V!LFFx`9C(Y+b>=1!79m*aAZVZ|Zj%O(T{6K5i
z{E1d4r1_g*@u#@b$hE}g2?uqXrzR|wB~t=jR2uM=`DS<0T;H+2MbaGaTP#hLuLe!k
z)E@iiQ+rZ^?<2s+Ebv*Xco}J-vpE=#8u;f*L)lVG+eB}G#$-oJ0*_PeRvH|5jB0n%
zGNyaovjaN`#YOeBorD9_R?0<ZEmO_;%pLnb8GA2QIrr^o>|PlSquG>4bFfcyp_zFQ
zZhl%X0l?qPw<yJz@U8p{V93M!sN3Kftn@ON+{5;f&Kj-xT3mr|Pq_k5#WLC4`?pc!
zR=V34feCG+s4v+`?OUl%x@W8I@zUL-x^tv^j_Q`!u;*>33vJj-x6|b|EM_;`u;^aX
zLB}d^-*ugIy@DP#W>6RX%pPs>-DdaB@!f%*?>Zm_1n~K8118@cz|lo_cF{fJWR{W^
z<0wkB5b`X7(Huud((!n2Q%Tjdm`<W4)QDay)zBtdijYxDn`s%YuIuO~ycoHaR!|3C
zhujUw`)IXNsO9(fTYhhwy89by{D$UdA^PAh*xuoQvH}u+y}z5b5$&W-7YSpmyw39e
zH8hxlScfZSdtHmYZjNtPH{sQ47d_#7rkkF#de3*$i&k%MH@$52Ug@UaSiRS}>9?wv
zA!9jr14x8vI7JX1V{q>zmCy#5%-QhHJ9v~u+Vc_iT8HA!4(#^c;@%K&m-yc3q~BFd
zb(eTL=?~Su_i6&3k}{90G;1^_{&Ww7QE~B->o0v1{Yo1DdI0Szns`MB?Ikp+{xh^;
znmlGH+Kq=8?<_-m^k|Ro&z<zqR$A#U&FY|9jQ_62i##%(kMTd$xHL<~Gcf*_8c+7h
z*pKnQ)p(>P<6MkCS7WbUnl&QpZUpRIpd&vLGA2RilkvF<pC|Ba7CzSoc5An|wgkK-
zzAqu8r=+IH_uo$XdMjO7ROWS+YNNfjghWRHhwI5ZwmgV->fGDTdlK!~(O%y^iwAe9
zCOmk3`z;<krP>HhbhA*_;Uhnz@ew~Nx1(JiGs4|AcH`Uk9=;Hrr**Nng9hhuw$*cY
z@Ml`7cZ4^v`&OD{FGM6a@^}!w10%d8*20?ey@(BOrBM&YG$JYBhT>aRNbKiff!+Eo
zd~=|Shj;K+Q2<}<P{990>X0<4F?~tRvPex2WTmuR=1ntsXnN&g=!v>*E<0$S@J3}l
zc!N$4qy{am2Cau0G8Ftk4kqxO$K&yBDRH8M<fR!NYrL|7|2whC{SqkbM{vo^7F*W-
zbdWm}xvmwvr3(=lE<#$qm`1^$#?WQ-0sREG_LtKabOn7!SMtfUnK#iEq?T*>GQ4No
zK{xQ5bR)lmmues4-Pp%;8-Gc+yT((8tAg%yRnlFqTDsqLGCknhL=U>orERW@XuE4O
zJ?z>|J6xYqm+N!tcI~G}+*9dM_cGe;UO|t!H_+qmv*;-m1y4rYxE!Uy%}60${wmc2
z&Pm(>KE1AM>^aTtO7&={J3?>so$!NE?gqXKa4s6-4yr_ns=$3VlGB}V6Dc50rg8h}
zH1cYExBSsO>klq8RDO)f`_vQ<HOAzBMcJ-zQFwe!1x4TDUpl0nu@5;8oE6O4hY%~B
z!u?W)02#37$aTCG^<4Nb6X=+D5zNirBMAw{Hrj02heQPqV4tc2T1oY^8ds?Y_M@U-
zBXD`1yRvyK+Ewpwc^qM$j;0weEkIj1{EI_XR4mG4)Lw{orS4J>q8Y|;PK+meWbDUy
zx)n*XWSom}u@y<YrJfNU;r9xB<Of=!arhMABec)Y<C#<4U3@r{zKxIU<nk_F(9OpY
zb@JkFu95bHvaGb}t$;+Mv-0@FPF`gRXRlt82B{a(c}<U};OI0PaC{nYEkLXw)8GIW
z`}L><Hy2h*^b9i2vnY?ALwWQ(-gdr7yJ#=%LGF5sUZJn)RoaK^&O`80Z7jXP6Y#cd
zGQGtM>0M=KQg*(DVy=kqK_nl~6Zl?O4UR>4&2gWyAMBfLHTQ#>WM>Qh0hC>0M};(K
zKhk$rUn4RO%b7DSXFvF}j3PHj&PjF_o(Dt{u5$uUlZH+4xHEN^bqsjfQ4Zwbkbs(9
z5zHc&KA(XM2QeF2iH%GTJj{&`b42op^F-l9rSrr5OCqetDbQZuh<%ql62SU1u)Zq2
z2XSbADn5CPdQ8ISHo8X4L3Y8SFhtqRM&$J~p^LK=(^i2R;4a<?I30TJ7OjFNj-vh0
zY(D_a^#jsu1Lk(nT;Gf4qrGV2JZ#ha0eBS)KOAyy6q;zyOdSvM_y=iWe~6x#UVj2x
zRe39jp8>~@qtHnx2K*Lk2>qC1V5%iFU?!^o<bwD(tJ|y`4QSc_L3w;Gbn5A$Q>%1q
zK}{8P7{MT*ep2lm?g09t`OyK;oDMYWdZGEXLW8>n8_hDCn^7qrzW_&uJif$%(yDf?
z-8SI|jW|{|JJ5~-chA};3eiSFT3lw>_~%Ff#Lu`#D1X&9snk)SqcXo{2Vb_G#^A8l
z$(M^wS*5E*<rGjj701`paBz4&jcS8k@l>fwzLUOJ;h)D>ZD)7ds;|b@T9pwtcssAj
zP#&Wg9ga#K|C5K`d}PIG_`kdo)K_kP0UWycMc#{6GSo|$`z^nLkM!Q+xA`5r_b$J0
z_x{9xwtIi!zuCQy`5$)gpZsst`;5Qf|Ek_s{59|6??9o9G}^`c<?S>*gVu%id9-e{
Zd(nE(zJfLj?Q3Yg$Wods+ck(r|37+=k4gXl

literal 5287
zcma)A349b+8UMc=JG+}9Sr$kN6uK!1B%!c{w$!qr1yYW{hAWUtYqgWz$!1|Qv+mBO
z;8Cl1TdkrfRlJXSD*;0qwBA>()}xA6tM$I`+iLCq&CKpjj!oeA%f9cu_r34@f8Tq<
z15b?K58!ICFo-HtE2vRX3!lLJp|p`K<gMJ%=#ZI=?#UEVX+yx*nKsha^#avx?R^UT
z0!@dsVJ(``j8wGO%B79e=0ZA?)N?^7sP>~yp#GK~S627Fu3IB=V~&b?G*FzD&FV%{
zU{zauvYc4^lqFYmOp2JRB8+(ge#><9(&o0QN65PXjS8AnT!MuHs+LPc3syQ4jhiWf
znzS)s3M}xd-`#&mPgt?`z5o{EQUyy?EX8F4%M<2MlwnDmhGq62je5ND(u_^NX$dTg
z&%n<}Y&NZ!)X=Qrax4>25`&sy=ox|V6vydBE0!x*p`s1#0?o6E7O2ZJvORh}ucdT>
z6<!aWfW@Y&kvUx{Ft418Ek_c1)}qUPtfI`)biJL&sLbP)lhRj=-xTrX^ex6(6;}~<
z2zHr9-puHBHYTLOHBzQw9j;aI6cyKDJ>gVFW}lYJ69I#|mdwym0dcb*oeX8%)RKC#
zIe_bNgMy7JHeoXvW$wGo9K+$y>y|~Z@=SePF88|gm>)L^1k$-gubvy$bAD`PLO5N`
zzX6`*+G;bG3Sv9D73@&46LA+-MHxguwm<~T67yo5`ux~Mn<;;fnX`h}gS`s&sp!Ri
zfw|>WbQ_kQ(sN`T)-nZs_kciSTelbTE(d++W3DK0S2}Un(1vtBp2`IeVEwq6u_s5D
z13EvR#`&^RXr+5kSMdzo#$cp$t5{;or-6~z0yk;$c)yASSlT`wr(u(dteD+ySpowp
zQW#`4W*Gox(Ox{H;;^g>zu`I&B<GL{L$;@S=C6>Ar}LI>=()Vy%Bpy#+)@)J%P3*(
zH(6v70eKY`3QP){4FhVYds8->NhdT3>{yr$@OBkPaFjf`0=rz}ghsNjU>I6|Mvv9u
z*?5kE=c>2^&l6~nxbX<G?a$NxCU1~Rr)6zDpIxLB<7kSRiEbIz4Qv0=tlqMX)7^xZ
zy%L7NF%>Vwi)a)hNW*EA)HqNuB#MnZo5D-*QUxzl@p8O^>65$mVWPUqq#w(?hID1L
zd_Fcwgf!}v>?akCx+!hA_Eh1Rf>#S%UXeF$=5?33S~9;@psgbFo{V->&k=r>d!$Al
zc|DDu<;V^*ZG?GAk^3HjmRY#tx;Ctb;lr^2PU4h`H{&hDWY*TsOvgRvb%Xbuw2FQC
zZFswacc^%$grMg#OqH0JZl|=~O{$}#BjU%s1ZE_o4_FavP>;y;N?^WE#ry46M?AXy
zIDiv4<;RBvLXkuCM^Bbc1aKUu<j+S{oVM?UA*YA?afYSQ>Bq;I-Rr6C97|e;JYom1
z*^m2(0p_bTKhL=YRm3E!*bEor6DsbPGJScwxyf7QQ}V+9w7_~VR^00Bp3=gny)&ek
z&#L&GtiIa3rO6tu=`xe-vkh@Nx2rJJujls58j_crnb0!q+-W&?7i+A+G(p=o)0Np%
zeni9=0sRO&ipRdv&BV<)y_S|Z+@ocS;^m`-b(ztI`jcAA#NN@ePN2Qbi-U<}=|IB9
z5#I##P?r_ULcX{o%z*<o36_dBTtnw)wLv1^HlcMk)i!5EWmnr5wg>prIb5ntTVuy;
z8q4ez)m~-ah!xeAx`(Z>rLw{@V?|YKnVuQKS!`;yre&2imG~+uS|hM>21OHEx~=V^
znTc)}uHO5sg^w+NXCmXi!h^kLA(zm%re$S?JQcE9J{!2S*)*-ZmD934x;1Df^9?@y
zDu`d>Hwu2M;&=Ex`+50=kv4|S!+JDsmkCd316sl|bG#SphP<-}y}iOc<S5v#8S*LC
z5;x7mh3qul!c(ym4$2$Q%YN~jj>?(OdY>q+<Ss3f=}lXDECe5;@+aA;|E%IC@P)9D
z3xAUfe^>D%JQl)ZT=<t<__vB5;L#8s<-&jE!v9o!508ZKNCTT67lcsp9b5?E0vBrJ
zLamB#;o%S-=7L`?1XO$t4~6g$-zwdFs^sjOS<fqCj=&|A>VsWv0-A_}B0Tv-E7b&B
zuG6qe1xd4<71<P+Nl!mh!~%iVDfyo+m5OK*SUNK+?-eKSXl7)p_^hgBNcinUDj+W&
zd*n;c9{ISlM}GWptmk`&AD;aEJZDjkf@5vRIf&CFs_+H=%55NoFY;G)81N;0nX`cW
zn&65&yoKD7ujxFLgXa(k2S=fH@NX2MG0ZQElb^icXJI22dPFwKYu6UZTiX?R2dZt}
z))6ckL4?9u?!}^bQNa}yzH$_+Z3Syi+uDPegAN{(b~n;BU<rfK%+<^2Yy>U*>XUvn
zQgA(gAHY}abFHrW2f3%9sz*UbBR9TUip>SrmcbERa}Sc?*cjG~U_-boyk!*IB-Jx_
zQQa7JyR!q~n_TK(_!gJy8pW+~n{^c08R(Kcz_l|-OY)#iM#hjCgDK<XxUr7L1Iua2
z3e=&UAJ!d=)Jm+v6}T3wv5|S(i7U~EHPD!lB;%Lj$6L|OjXWn&Ad@rbCQiCp3-LG^
z{qp_JO_{?EJKTiD2y){X2JXYNsu&q?Uq;kP-E}l*18IH|xaWr4a~r~Uj^hQu7+xH{
zYaFj~sJqAU8izVQj@LQViE+Hap-ztDjW$(Qvy>?SZlH?Im``9W<#$aRdaxFI(TM}0
zpsZw9^=(uw@zm0B7H>L>x0cZHE(aZI_&r4ozE^5+AYISc0{iHEFC(+R6f4TX*YOSR
z`Ee<}DWgVhY$VfY`@po?K3GxPF3Q|ZiF+n#`}QPl>|?IB+i9(|a}|C2u++x!BRxg<
zj}#p|OG4IyT?ZZ~!>HlmZmQkEjO`>`;<oCDBb1JQ*H+!?I7*&~T?JKincdYjLKdTh
zjxRhq29I<H3tI`JZMIaWGx#X=`)n3L*|4Wb7@I~y7bV;{Nx~0p3A_WQNEn|+!bVEi
zG)cmbZ3(<qTnQUU$$v}EqxIkjK0YF=k5v~rhfki7-DS}zK2t`ZgOBxW5HaGQlOg<R
zNz`5&Z_J9USy|F&q&U|9OhsK5?PMj)Ql3Zg^VypgFdsjoZB_U=e!+1&;r~mn{Q-aE
zpQQeRzv3S*^-uiAr5?u<F7<y=<xrwp_*_a6K~YC(>nZI{p^AET>$^BMaJ-vih~sgN
Xb2*;i80L7A<2(e!e9<WQ|8`FT|AAwA

diff --git a/build/libs/mindustrircDesktop.jar b/build/libs/mindustrircDesktop.jar
index 7257f9d6c0463677f51beabe78ff2a7940e671e3..97958b647c6d7d74f5dafe8af6bc1a0d82610f3c 100644
GIT binary patch
delta 7109
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

delta 6387
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

diff --git a/build/tmp/compileJava/previous-compilation-data.bin b/build/tmp/compileJava/previous-compilation-data.bin
index 982d22ff2070f1091c1cc52b2966e388e998527e..3ced466ebd83c127dce7f70ba34e21035ad09e46 100644
GIT binary patch
delta 131
zcmX@{j`7$##tANZaTT7At|s446x{#HRK@B{w1Bf<kdUXaFAE<pFR#Fg?fUa81ZE{}
zSrrpmZJ^vbu_%#|apKh^SpfzHLq<j*DZt3cz`$T0W}zp}Yst`(SX9i&I60KjKn5u1
h6zr_$qNn4^&|X|pRGM7E>&DQWS_ss(c_HKSQUDn0CV>C|

delta 133
zcmX^1j`74h#tANZr?itMZ~Lvk{_D1uPS*uysshe}K|-FwzASvayu1RlOjchLh`p(Q
zdV1s1!;&W!PAp1fVq%zhB}tBffkA+g5l9+>N%JrZJ#k)3hL*&lVn!y0$-#^UGC)bE
hU}rrSJsnqu_TrMF(&Q3eH-_faLZFV#^BI?y0s!}+C_exI

diff --git a/src/com/miniontoby/MindustrIRC/IRCBot.java b/src/com/miniontoby/MindustrIRC/IRCBot.java
index 5411e4e..727b67e 100644
--- a/src/com/miniontoby/MindustrIRC/IRCBot.java
+++ b/src/com/miniontoby/MindustrIRC/IRCBot.java
@@ -44,13 +44,6 @@ public class IRCBot extends Thread {
 		output.flush();
 	}
 
-	private void pingPong(String[] data) throws Exception {
-		if (data[0].equals("PING")) {
-			output.write("PONG " + data[1] + "\n");
-			output.flush();
-		}
-	}
-
 	private void joinChannel(String channel) throws Exception {
 		output.write("JOIN " + channel + "\n");
 		output.flush();
@@ -60,56 +53,24 @@ public class IRCBot extends Thread {
 		output.write("PRIVMSG " + to + " :" + message + "\n");
 		output.flush();
 	}
-
-	private void verifyMOTD(String[] data) throws Exception {
-		if (data.length >= 2) {
-			// 376 is the protocol number (end of MOTD)
-			if (data[1].equals("376")) {
-				joinChannel(defaultChannel);
-				sendMessage(defaultChannel, "[MindustrIRC] Server Started!");
-				MindustrIRC.ConsoleLog("Connected to IRC!");
-			}
-		}
+	public void sendNotice(String to, String message) throws Exception {
+		output.write("NOTICE " + to + " :" + message + "\n");
+		output.flush();
 	}
 
+/*
 	private boolean isCommand(String[] data) {
 		if (data.length >= 4) {
 			if (data[1].equals("PRIVMSG")) {
 				if (data[3].substring(1, 2).equals("!")) {
+					String command = data[3].substring(2);
 					return true;
 				}
 			}
 		}
 		return false;
 	}
-
-	private void verifyCommand(String[] data) throws Exception {
-		if (isCommand(data)) {
-			String from = data[2];
-			String command = data[3].substring(2);
-			switch (command) {
-				case "help":
-					sendMessage(from, "Available commands: help, players");
-					break;
-				case "players":
-					Seq<String> players = Seq.with(Vars.net.getConnections()).map(con -> con.player.name).removeAll(p -> p == null);
-					sendMessage(from, "Connected players: " + players.toString(", "));
-					break;
-				case "avapro":
-					sendMessage(from, String.valueOf(Runtime.getRuntime().availableProcessors()));
-					break;
-				case "freememory":
-					sendMessage(from, String.valueOf(Runtime.getRuntime().freeMemory()));
-					break;
-				case "totalmemory":
-					sendMessage(from, String.valueOf(Runtime.getRuntime().totalMemory()));
-					break;
-				default:
-					sendMessage(from, "exception -> unknown function: \"" + command + "\"");
-					break;
-			}
-		}
-	}
+*/
 
 	public void run() {
 		try {
@@ -120,52 +81,22 @@ public class IRCBot extends Thread {
 				String data = null;
 				while ((data = input.readLine()) != null) {
 					String[] dataSplitted = data.split(" ");
-					pingPong(dataSplitted);
-					verifyMOTD(dataSplitted);
-					sendToChat(dataSplitted);
-					try {
-						verifyCommand(dataSplitted);
-					} catch (Exception ex) {
+					if (dataSplitted[0].equals("PING")) {
+						output.write("PONG " + dataSplitted[1] + "\n");
+						output.flush();
+					}
+					if (dataSplitted.length >= 2) {
+						if (dataSplitted[1].equals("376")) {
+							joinChannel(defaultChannel);
+							sendMessage(defaultChannel, "[MindustrIRC] Server Started!");
+							MindustrIRC.ConsoleLog("Connected to IRC!");
+						}
 					}
+					MindustrIRC.handleIRCMessage(dataSplitted);
 				}
 			}
 		} catch (Exception ex) {
-			System.out.println(ex.getMessage());
-		}
-	}
-
-	private void sendToChat(String[] data){
-		if (data.length >= 4) {
-			if (data[1].equals("PRIVMSG")) {
-				String[] split = data[0].split("!");
-				String user = split[0].substring(1);
-				String message = data[3].split(":")[1];
-				for (int i = 4; i < data.length; i++){
-					message = message + " " + data[i];
-				}
-				Call.sendMessage("[red][[[grey]" + user + "@IRC[red]][white] " + message);
-			} else if (data[1].equals("JOIN")) {
-				String[] split = data[0].split("!");
-				String user = split[0].substring(1);
-				String chn = data[1];
-				Call.sendMessage("[grey]-!- " + user + " joined " + chn);
-			} else if (data[1].equals("PART")) {
-				String[] split = data[0].split("!");
-				String user = split[0].substring(1);
-				String chn = data[2];
-				String reason = data[3];
-				Call.sendMessage("[grey]-!- " + user + " has left " + chn + " [" + reason + "]");
-			} else if (data[1].equals("QUIT")) {
-				String[] split = data[0].split("!");
-				String user = split[0].substring(1);
-				String reason = data[2];
-				Call.sendMessage("[grey]-!- " + user + " has quit [" + reason + "]");
-			} else if (data[1].equals("NICK")) {
-				String[] split = data[0].split("!");
-				String oldUser = split[0].substring(1);
-				String newUser = data[2];
-				Call.sendMessage("[grey]-!- " + oldUser + " is now known as " + newUser);
-			}
+			System.out.println("IRCBot.run(): Exception: " + ex.getMessage());
 		}
 	}
 }
diff --git a/src/com/miniontoby/MindustrIRC/MindustrIRC.java b/src/com/miniontoby/MindustrIRC/MindustrIRC.java
index 1f4c426..40018d4 100644
--- a/src/com/miniontoby/MindustrIRC/MindustrIRC.java
+++ b/src/com/miniontoby/MindustrIRC/MindustrIRC.java
@@ -1,4 +1,5 @@
 package com.miniontoby.MindustrIRC;
+
 import com.miniontoby.MindustrIRC.IRCBot;
 
 import java.net.*;
@@ -6,6 +7,7 @@ import java.io.*;
 import java.util.*;
 import arc.*;
 import arc.util.*;
+import arc.struct.*;
 import mindustry.*;
 import mindustry.content.*;
 import mindustry.game.EventType.*;
@@ -19,68 +21,204 @@ public class MindustrIRC extends Plugin {
 	static public int port = Core.settings.getInt("ircPort");
 	static public String nickname = Core.settings.getString("ircNickname");
 	static public String channel = Core.settings.getString("ircChannel");
+	static public String version = "1.0.0";
+	static public String ctcp_version = "MindustrIRC v" + version;
 
 	static public void ConsoleLog(String message){
 		Log.info("[MindustrIRC] " + message);
 	}
 
-	static public void IRCMessage(String message) {
+	static public void IRCMessage(String message, String to, boolean withThing) {
+		try {
+			if (!withThing){
+				bot.sendMessage(to, message);
+			} else {
+				bot.sendMessage(to, "[MindustrIRC] " + message);
+			}
+		} catch (Exception ex){
+			ConsoleLog("IRCMessage: Exception: " + ex);
+		}
+	}
+	static public void IRCNotice(String message, String to) {
 		try {
-			bot.sendMessage(channel, message);
-//			bot.sendMessage("#mindustry", "[MindustrIRC] " + message);
+			bot.sendNotice(to, message);
 		} catch (Exception ex){
-			ConsoleLog("Exception: " + ex);
+			ConsoleLog("IRCNotice: Exception: " + ex);
 		}
 	}
+	static public void ingameMessage(String message) {
+		Call.sendMessage(message);
+
+		String ColorCoded = message.replace("[red]", "\u001B[31m").replace("[white]", "\u001B[37m").replace("[grey]", "\u001B[0m").replace("[[", "[");
+		Log.info(ColorCoded);
+	}
+
+	public static int Seqsize(Iterable data) {
+		if (data instanceof Collection) {
+			return ((Collection<?>) data).size();
+		}
+		int counter = 0;
+		for (Object i : data) {
+			counter++;
+		}
+		return counter;
+	}
 
 	@Override
 	public void init(){
 		if(Vars.headless){
 			ConsoleLog("Loaded!");
-//			if (empty(server) || empty(port) || empty(nickname) || empty(channel)) {
+			if (Core.settings.has("ircServer") && Core.settings.has("ircPort") && Core.settings.has("ircNickname") && Core.settings.has("ircChannel")) {
+				server = Core.settings.getString("ircServer");
+				port = Core.settings.getInt("ircPort");
+				nickname = Core.settings.getString("ircNickname");
+				channel = Core.settings.getString("ircChannel");
+			} else {
 				Core.settings.put("ircServer", "irc.ircforever.org");
 				Core.settings.put("ircPort", 6667);
 				Core.settings.put("ircNickname", "MindustrIRC");
 				Core.settings.put("ircChannel", "#mindustry");
 
-				String server = Core.settings.getString("ircServer");
-				port = Core.settings.getInt("ircPort");
-				nickname = Core.settings.getString("ircNickname");
-				channel = Core.settings.getString("ircChannel");
-//			}
-			setupListeners();
+				server = "irc.ircforever.org";
+				port = 6667;
+				nickname = "MindustrIRC";
+				channel = "#mindustry";
+			}
+			setupGameListeners();
 			connectToIRC();
 		}
 	}
 
-	static void connectToIRC() {
+	static private void connectToIRC() {
 		Core.app.post(() -> {
 			bot = new IRCBot(server, port, nickname, channel);
 			bot.start();
 		});
 	}
-	static private void setupListeners(){
+
+	static private void setupGameListeners(){
 		Events.on(GameOverEvent.class, event -> {
-			IRCMessage("Game over!");
+			if (Seqsize(Vars.net.getConnections()) != 0){
+				IRCMessage("Game over!", channel, true);
+			}
 		});
 		Events.on(WinEvent.class, event -> {
-			IRCMessage("Win Event!");
+			IRCMessage("Win Event!", channel, true);
 		});
 		Events.on(LoseEvent.class, event -> {
-			IRCMessage("Lose Event!");
+			IRCMessage("Lose Event!", channel, true);
 		});
 		Events.on(PlayerChatEvent.class, event -> {
 			String playername = event.player.name;
 			String message = event.message;
-			IRCMessage("<" + playername + "> " + message);
+			IRCMessage("<" + playername + "> " + message, channel, false);
 		});
 		Events.on(PlayerJoin.class, event -> {
 			String playername = event.player.name;
-			IRCMessage("*** " + playername + " joined the game");
+			IRCMessage("*** " + playername + " joined the game", channel, false);
 		});
 		Events.on(PlayerLeave.class, event -> {
 			String playername = event.player.name;
-			IRCMessage("*** " + playername + " left the game");
+			IRCMessage("*** " + playername + " left the game", channel, false);
 		});
 	}
+
+	static public void handleIRCMessage(String[] data) {
+		// [---------0---------] [--1--] [---2--] [---3--]
+		// :NICK!IDENT@BIND.HOST PRIVMSG #CHN/USR :MESSAGE
+		// :NICK!IDENT@BIND.HOST NOTICE  #CHN/USR :MESSAGE
+		// :NICK!IDENT@BIND.HOST JOIN    :#channel
+		// :NICK!IDENT@BIND.HOST PART    #channel :REASON
+		// :NICK!IDENT@BIND.HOST QUIT    :REASON
+		// :NICK!IDENT@BIND.HOST NICK    NEWNICK
+		if (data.length >= 3) {
+			String[] split = data[0].split("!");
+			String user = split[0].substring(1);
+			String message = "";
+
+			switch (data[1]){
+				case "PRIVMSG":
+					if (data.length >= 4){
+						message = data[3].split(":")[1];
+						if (message.startsWith("\\001")) {
+							switch (message){
+								case "\\001VERSION":
+									IRCNotice("\001VERSION " + version + "", user); break;
+								case "\\001SOURCE":
+									IRCNotice("\001SOURCE https://edugit.org/Miniontoby/mindustrirc\\001", user); break;
+								default:
+									break;
+							}
+						} else {
+							for (int i = 4; i < data.length; i++){ message += " " + data[i]; }
+
+							ingameMessage("[red][[[grey]" + user + "@IRC[red]]:[white] " + message);
+							if (data.length >= 5){
+								handlePrivmsg(data);
+							}
+						}
+					}
+					break;
+				case "NOTICE":
+					if (data.length >= 4){
+						message = data[3].split(":")[1];
+						for (int i = 4; i < data.length; i++){ message += " " + data[i]; }
+
+						ingameMessage("[red]-[grey]" + user + "@IRC[red]-[white] " + message);
+						if (data.length >= 5){
+							handlePrivmsg(data);
+						}
+					}
+					break;
+				case "JOIN":
+					String chan = data[2].split(":")[1];
+					ingameMessage("[grey]-!- " + user + " joined " + chan);
+					break;
+				case "PART":
+					if (data.length >= 4){
+						message = data[3].split(":")[1];
+						for (int i = 4; i < data.length; i++){ message += " " + data[i]; }
+					}
+
+					ingameMessage("[grey]-!- " + user + " has left " + data[2] + " [" + message + "]");
+					break;
+				case "QUIT":
+					message = data[2].split(":")[1];
+					for (int i = 3; i < data.length; i++){ message += " " + data[i]; }
+
+					ingameMessage("[grey]-!- " + user + " has quit [" + message + "]");
+					break;
+				case "NICK":
+					ingameMessage("[grey]-!- " + user + " is now known as " + data[2]);
+					break;
+				default:
+			}
+		}
+	}
+
+	static private void handlePrivmsg(String[] data){
+		if (data[3].startsWith(":" + nickname)){
+			String from = data[2];
+			String command = data[4];
+			switch (command) {
+				case "help":
+					IRCMessage("Available commands: help, players, version, source", from, false);
+					break;
+				case "players":
+					Seq<String> players = Seq.with(Vars.net.getConnections()).map(con -> con.player.name).removeAll(p -> p == null);
+					IRCMessage("Connected players: " + players.toString(", "), from, false);
+					break;
+				case "version":
+					IRCMessage("Version: " + ctcp_version, from, false);
+					break;
+				case "source":
+					IRCMessage("Source: https://edugit.org/Miniontoby/mindustrirc", from, false);
+					break;
+				default:
+					IRCMessage("Unknown command '" + command + "'. Try 'help'. Or use @playername <message> to send a private message", from, false);
+					break;
+			}
+		}
+
+	}
 }
-- 
GitLab