From 380495a69e0a80df96c594bbcc1251673f3d9738 Mon Sep 17 00:00:00 2001 From: 1004268 <isaac.pedrozaaguirre@student.unimelb.edu.au> Date: Thu, 24 Oct 2019 18:55:27 +1100 Subject: [PATCH] Admin functions --- .idea/workspace.xml | 43 ++++++++--------- .../GUI/ApplicationMain$1.class | Bin 1847 -> 2568 bytes .../infinitymonkeys/GUI/ApplicationMain.class | Bin 5686 -> 5970 bytes .../infinitymonkeys/GUI/StartScreen$1.class | Bin 2097 -> 2097 bytes .../infinitymonkeys/GUI/StartScreen$2.class | Bin 0 -> 771 bytes .../infinitymonkeys/GUI/StartScreen.class | Bin 3753 -> 4452 bytes .../infinitymonkeys/client/Client.class | Bin 5455 -> 5555 bytes .../client/ClientUpdate$1.class | Bin 780 -> 776 bytes .../infinitymonkeys/client/ClientUpdate.class | Bin 3520 -> 3601 bytes .../remote/IClientController$Action.class | Bin 1081 -> 1131 bytes .../remote/IClientController.class | Bin 684 -> 712 bytes .../remote/IClientUpdate$Action.class | Bin 1103 -> 1099 bytes .../remote/IClientUpdate.class | Bin 509 -> 509 bytes .../server/ClientController.class | Bin 5582 -> 5950 bytes src/GUI/ApplicationMain.java | 5 +- src/GUI/StartScreen.java | 45 +++++++++++++++--- src/client/Client.java | 4 ++ src/client/ClientUpdate.java | 9 ++-- src/remote/IClientController.java | 4 +- src/remote/IClientUpdate.java | 4 +- src/server/ClientController.java | 10 ++-- 21 files changed, 80 insertions(+), 44 deletions(-) create mode 100644 out/production/infinitymonkeys/GUI/StartScreen$2.class diff --git a/.idea/workspace.xml b/.idea/workspace.xml index ecbec17..242aaca 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -3,7 +3,22 @@ <component name="ChangeListManager"> <list default="true" id="688d774d-cfc7-4b0d-b00c-5ca931aba600" name="Default Changelist" comment=""> <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/out/production/infinitymonkeys/GUI/ApplicationMain$1.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/infinitymonkeys/GUI/ApplicationMain$1.class" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/out/production/infinitymonkeys/GUI/ApplicationMain.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/infinitymonkeys/GUI/ApplicationMain.class" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/out/production/infinitymonkeys/GUI/StartScreen$1.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/infinitymonkeys/GUI/StartScreen$1.class" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/out/production/infinitymonkeys/GUI/StartScreen.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/infinitymonkeys/GUI/StartScreen.class" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/out/production/infinitymonkeys/client/Client.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/infinitymonkeys/client/Client.class" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/out/production/infinitymonkeys/client/ClientUpdate$1.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/infinitymonkeys/client/ClientUpdate$1.class" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/out/production/infinitymonkeys/client/ClientUpdate.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/infinitymonkeys/client/ClientUpdate.class" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/out/production/infinitymonkeys/remote/IClientUpdate$Action.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/infinitymonkeys/remote/IClientUpdate$Action.class" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/out/production/infinitymonkeys/remote/IClientUpdate.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/infinitymonkeys/remote/IClientUpdate.class" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/out/production/infinitymonkeys/server/ClientController.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/infinitymonkeys/server/ClientController.class" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/GUI/ApplicationMain.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/GUI/ApplicationMain.java" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/src/GUI/StartScreen.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/GUI/StartScreen.java" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/src/client/Client.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/client/Client.java" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/src/client/ClientUpdate.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/client/ClientUpdate.java" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/src/remote/IClientController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/remote/IClientController.java" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/src/remote/IClientUpdate.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/remote/IClientUpdate.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/server/ClientController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/server/ClientController.java" afterDir="false" /> </list> <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" /> @@ -47,7 +62,7 @@ <property name="UI_DESIGNER_EDITOR_MODE.UIDesignerToolWindowManager.WIDTH" value="280" /> <property name="WebServerToolWindowFactoryState" value="false" /> <property name="aspect.path.notification.shown" value="true" /> - <property name="last_opened_file_path" value="$PROJECT_DIR$/out/production/comp90015-dsass2-infinitymonkeys-remaster" /> + <property name="last_opened_file_path" value="$PROJECT_DIR$/../MaxCode/comp90015-dsass2-infinitymonkeys-remaster-mpriymak" /> <property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" /> <property name="nodejs_npm_path_reset_for_default_project" value="true" /> <property name="project.structure.last.edited" value="Project" /> @@ -66,7 +81,7 @@ </list> </option> </component> - <component name="RunManager" selected="Application.Client 3"> + <component name="RunManager" selected="Application.Client2"> <configuration name="Client 3" type="Application" factoryName="Application"> <option name="MAIN_CLASS_NAME" value="client.Client" /> <module name="infinitymonkeys" /> @@ -120,7 +135,7 @@ <workItem from="1571654347656" duration="27259000" /> <workItem from="1571783604151" duration="19947000" /> <workItem from="1571812296671" duration="25759000" /> - <workItem from="1571879738075" duration="3774000" /> + <workItem from="1571879738075" duration="12110000" /> </task> <task id="LOCAL-00001" summary="Changed the join method to send over a reference of the ClientUpdate Interface"> <created>1571646862883</created> @@ -165,21 +180,6 @@ <component name="XDebuggerManager"> <breakpoint-manager> <breakpoints> - <line-breakpoint enabled="true" type="java-line"> - <url>file://$PROJECT_DIR$/src/GUI/StartScreen.java</url> - <line>38</line> - <option name="timeStamp" value="7" /> - </line-breakpoint> - <line-breakpoint enabled="true" type="java-line"> - <url>file://$PROJECT_DIR$/src/GUI/StartScreen.java</url> - <line>33</line> - <option name="timeStamp" value="8" /> - </line-breakpoint> - <line-breakpoint enabled="true" type="java-line"> - <url>file://$PROJECT_DIR$/src/GUI/StartScreen.java</url> - <line>85</line> - <option name="timeStamp" value="9" /> - </line-breakpoint> <line-breakpoint enabled="true" type="java-line"> <url>file://$PROJECT_DIR$/src/client/Client.java</url> <line>47</line> @@ -192,12 +192,7 @@ </line-breakpoint> <line-breakpoint enabled="true" type="java-line"> <url>file://$PROJECT_DIR$/src/GUI/StartScreen.java</url> - <line>40</line> - <option name="timeStamp" value="12" /> - </line-breakpoint> - <line-breakpoint enabled="true" type="java-line"> - <url>file://$PROJECT_DIR$/src/GUI/StartScreen.java</url> - <line>62</line> + <line>59</line> <option name="timeStamp" value="13" /> </line-breakpoint> </breakpoints> diff --git a/out/production/infinitymonkeys/GUI/ApplicationMain$1.class b/out/production/infinitymonkeys/GUI/ApplicationMain$1.class index 7daf4ebca183d7e6b8e4d39d2c016bd7d6e98c54..b1b7ffb50fadd02566fe4a67e2f639737ee986eb 100644 GIT binary patch delta 1429 zcmdna*CA4W>ff$?3=9k=3_Y9-vJ4Jf3~~&PTnu&$PFxJm3@#wTm7Bqh!JUi2gTWId z;RWJ)gIGQw!WTsNfyDelL;y%fAQwXrLogRZ2tz14Ll_r>5XeX&hH#Kb1Q$ajLlg%? zGzUWrJ438I7lR~296Lii7lSlI0y{$@J3|s916xT(X0eI^BZKI~38E95Z$xwCmF9*P zrxq16GBA2FGO!gT=B4E4GBODHWF?j*>X(*e=I953#jF___#v_&^`3btsTGV2Y>9cr z<*7xC3_>NTMY)-Ii6yCy1qF^^!O3ZiiHz}+PcT~4C-X3*Fr@M@$TKMLFerjpX$<M? z3>iEOnG9Jx4A~4h><qa)40#M$><sxl3<V5@JPbt)#XJlp45d5_WgrdZAZ`UnbtOX; z4?{IbqK2WCouQ70p`M|EouQG3p^2fGkwF06;XDii%?vF(46O`p><sNZ3>^$vlf9W@ znL8P}Ca-3aW$R{01%<~%;mr@3vKcwpvon*k9dmLfFJaLU7c0)lFZWBWDDh3qOH5BK z@=Yx+PE1do?8OpO&zqiF;+&CK5}aI=nwrPRAf%z`;~wg%j}WtFWZ**;VPp_aPc8Az zOwI-cqH}(3Qod7u1tWu`h9)?`EA)%YGxO5*y<k$-j0~b64`E0!CNl7(r<Qn@q~<#3 zm*$l)GO*{RR+M;xSS%Wznx2ddoKShk5=I754Nr&-`Z<Yt>H7XjS*gh-*09h*5@TfG zD9H~lDay=CpL~ubLt2(Wj)8%JQ9u9`c?=8;ObiSRiVR8&j10<?16ieQRTvl;*cccY z7#PwRR2di;#K0=J7}OXv7(jpvtdEg_kwKF|3#5yIfvJjtg@J>CfiY_GN><r=Ms}?& z42;_tIBaERF{pvqI~bU^F|fi}EIS!EnHWIaZ46w?8LrB(EMT|*;d0x_&SLO@uz9Rl zKn!%vk}NwJc$pc(vB~XZ;A5(XnJmk)fT0Smihmn}z%~X!GnU;9LXq1UgsoU5Sw&g4 zF^HJ4p{NmM+r}WejX}%`><bLb+3{P>ptVI1<ae&+42FzC;zAP4I~b%U>$6GM^C9_| z!&he;gUm)yC^H5!hA>DoFf*tyFff!c$TBc6<S@uH<T0o-6fkHr6f(Fl6fyWQlrRJ{ zlrls!lrzLLR4`;PR5G+MR58qDsAgEgP{**6p`KwkLj%JRhDL_73{4DA7@8Rw7+M%5 z8Cn??7&;l18M^Bkbs72?4H+gddNE973}l$b7{V}xF_d8{V<f{2a6}g{a5H2u*f3}_ z=rFJ_>}E)1&}GnLU|~4I5W}F)V8Fo2aF!vM!H_|ZfsNq_R2@4*G{aE_BL+PNW(IYJ zpA5zfdJIgAx(q4|CSX=50}F#GgBb%8Lm&fV6f6xfMlqN(STHa$STZm$h%m7KVen)8 x!w|~&lcAbP*NL6MiiLrh!5W-4Z5V7B7#LU>>=^7B)EO8UxEL70VZ^||005*)FfRZA delta 704 zcmeAW+0K`D>ff$?3=9k=3`v{}!VHF73?d9hTnzdQ##{_045lE$jGMun!GepylEDfj zVGSZ|Kw`Ea!Vbi>=U{N)U~pt-aN=U%XK-d`aN%MQWN>9?aARk1XJlY2$;d2LF<@j6 zop?ZW;^rINY>9cr<*7xC42+(WpD`vfx=i+9vheocVen+|;$aYF5aVGG2eG^veApR$ zc^Lc{{COAx7y{WDf_NB$8T{E9LU<TL8NzrN!WklX7$QN^Q4G;M3^5F`JPdIRUX%Hm zW0~U_5+>&}%Q7c2cx~=yZe*Ms%NjLVidAd!Otv&>VFnQf1_nj}0g!bJ3=B*R3=HB7 z5)6zCl9Q#_rR${_7#P?X7#SEC;uxeE7#PIBD!3SA7~~j0fD5dTk%5sxo<RYmi-Cc$ zh=GNHg@J)#i`Etf#vKgI+Zb5jEY_V2Y>W)s7}#erB!UFDF>u(*%wlkZusQueG*}BO zn8gX!t-F(fYjQq^q!Kq114wuq1CI>L0tPN9dpUz4qY$qUAM*|dfywhYr0WsNmNRhp z>TF{W+6eZ-YKC<Tf(*<IAWwNQ2r)1)q%g=cq%o*7q%&wUWH1;rWHR_MWHF>OWHaP3 z<T4a9<S|q+6fo2>6fv|jlrnTPlrt=0s9;#lP|L86p_*YmLk+`bhI(+o*fFp%7&BNi zC^9JJF)%ZzGXygzGpH~yF|;$NFsOoA>ls)W)ELykA-Dw|f?F6g7&I9e8MGJ}7z7yD y{xIY*{$k)}(sg2I&}Ly^X3zo0iY|j50|NsKgFb@+gDe9B0~Z4$gD@xp7#ILAIBXpN diff --git a/out/production/infinitymonkeys/GUI/ApplicationMain.class b/out/production/infinitymonkeys/GUI/ApplicationMain.class index f574ba2a0ddbc65b154bb66511c1bda548cbe2d1..b7c68a450c8b41db7a5ea3ee16997af0e61b8b6a 100644 GIT binary patch delta 2903 zcmdm{b4joM)W2Q(7#J8#7~MD-{269|h?yW_7KoV5!7zt|VJ<tvJT3-yhWQ)}3%D2- zGA!a^5Mfx%#ju27DLcb55WSp>VFklV4u(}6468vZ*KjceFsx-~SO-$Mo}FO>7lRnX zdUl4591NSd7$g`rgNQ94qJAqo!!|AkS%$S-4BHuYfYj~eVAuuX?B-+;Vc5gLuoq<K zK9EWKL97GZ3<ntwfr!H(;s}U13L=hyh~pp=PH-`tWH`meaGK!^JHuHJeU6>sJQss8 z!v!t|Lxzi743`)#vol=bVz^Y#aFw0m8c5(eNYf2=hMQarHVn5w*4^e}xWjOli{T!_ zeRhTiTnvs34?#|T1R@@Th$kT8DTsImBA$bY7n}?)8D4QPyyjwf!|)a)@($$c_v{QG z*cm=DGVplj<)s!m=Oh*vrxr6ZY|dqjWE2-G&d4wKORXsJP0UM7Pc8CIEiO(>Pn~>( zX$oWh=168)Cf*P144>E;KC?4?VQ08GxtX=WKZqfiharR^l!qaVA)JRHf+3QT!P+HX zp)$Wzp*%6KM4=>Kp(M2^H#0A>Bvqj#BUK@>pdcqRIk6-&KTjbozepi5CkHHETAW%` zJh_I=wEio@H%0~rr_{9kqEv;P)WovPymTFf6jVc#GxGC`AtvUfR+K2@LL3dEOA~W) zD(%@BzVk3dF+}q){9yRW&hU$e;WtAXBZELzVp*boPGVlVesD=qW?niE!yksf><s^S z82&S4Gct%fPkzg0E6>Ql$jHM`!cfl0z~>(7sqdVTSQ4CEl$x3c5-pwV$!^J8!pOwK z$jr#X!^q0WHo2c&D&rFmBReAp4<jcd7b62pcxrJ84<k1t4-X?RBOfCJi)$iCfS)0o zhfx5eSCCPNol%&FQG`*Hhfxefh=T|T5FrU7q(Fo;qYOKvEDxg`qdYsqXC6ichP26o z9Fnn$41XCJ1QFix%qvMvPc7nMRANZuVJKl#W@q@q!>Gcj%E-V6R+U&@qVJralV8Nc zsK%&{EE=4VSdhxYsKKbo!>9%Fv&3XY7KwTuMs0?29!4ETU3Nx29!7me19nD39!4WZ zV@3v1P^dT};?g%UGf%}3WUmPiqbZ{q52HDw1rMVoqZJRMH7Ja17;SkN?HI~=7$z~Y zuru28Fgh?gGBQYbDkSDAWacTPR%DhSCk}Q-0Vf_tXHYn~fL!6qP`;U&b0V8Ratu}$ zm!#%0GBD?tmM}7i`hdNenXeyEl$lo&TvC*pm}||*AdE$rk%7Gcq$nqE@+5xMdVhuh z1_lNe1}26ehF}H;1}0FN2Gd~-;b1y~A(DZCft!I5l%^OM8Dbb181xw!85kKD7+AHo zFfeTZD~n}dU|<6a3NyqpFfj0d*{lrl3<(Sj42%qk3`tltXEUSg7R9PNnIQ#>ZWeUS z5?D2-GNgetPhKb>TMu$37XuRm1A`0$7lS-ly%?C!19d7$Hk}~@?88imP6h@B7jPIc zFz_%6aSE}q>|o%qkzND$I7klzgE9jbgBpGl>lv~bvO$hvU|=}Pz`?-6z`)?4wS|Fk z8w1xi2JUSPJT}sM8F+n}?PR4FG05u3BIIPZG4O3;;16zLW?cUN38RpJkRThQjt;ZY z4hEqE47`52puk{e0C`Z3ft`VYL5qQpL7PFCL5D$#L6<>~L5IPFp<bWCjlme~MiT~B z22loih8%_r24;{mp#JA$uwuvs`(K#Blp&8HpMi<Nje&`wfT56qnW2b*fq|ES=^ukA zBRfMe<1Yp|21bSwhEk}X(xAblq_v$vSW9~=1Ebb%29ZeZ?F^z@8JM(o*E5KLIO1Cw zm^Z>hPmF<;fq}t{frY`Gfs?_4L6pIgL6N}<>`F-7C_&xEz@P+9r=ZkV#!wEil<7SK zD+3n;17nQVZU%`+A<69wQd=2VSavW-Yi(g**~TE_qrIC!HgY?I+_riKd2OvN49wdY z6oeGFF(`pJOj{U~g;cgND1j0)B)nC(F{nXU>N^=U7#V!w98E?BKR8E=k->@u&eLXO zumWWW#%&DhI~jBs8LZgga=MHRR_t0^80wj~G3ae$(6{1XHsciK)Y-;hu!zA^l4Cc6 zVWcFBDCaf?qXP`a+ZasRwlkP+V=$BC(1i+`Z)32K<j{fgEVnUOLHwb&jlsHwlX3a~ zEz21=e08=l*n+&VjlpgQgFTeBjllsF5W5*1BkQ%cGdOKya0c-OSvCkV?b*iQ0^%@k zV{ir0%-a~;ptL)P-Ud#dEG*j?JU22hGWan3VffEr!@vSgXH5(W3=9l*47?2X41x>} z43Z3v3@Qvx42BHO40a4I3_c8=43P|83~3DB3?&S{3{4F6ehd>B{2Ask1Tw5*h+x>p z5Xo?XA&TK1Lo~x1h8Tu#3=s@}7!n!&GsH78FeEUtFr+X_Fr+f7Gt6c*VVJ{c!!Vc8 zg<&3}55s)MV1@;Z(F_a0sic5`n_(@3KR7LOGDI>gW~gAOWME=QW0=NJ#Zbw>%uvG6 z!BEXmS<k@2(8N&1P{UBkz{)UzA%~%sp^|}(VID&qLmfjU13SYih9HJ|h6V->Mo_WX z$j}5T92jGu2~d*JnW34Xg@KWw73_01sAX+%%i7_Vb-?ZFgxgi$1-Go5fgPNi%o$kz zGpuFcVrS@KXXs^T=)*w$j0_C_8T=TSAW9e*oY)yAurM$(OoU|thDZh`aCs}giNQ<A zdmDofDDIfIF?fRLZLsv~x3L~A(=B1(U|7l^z_5%#oMAbG9K#B5a6-y%d8nTm879H) z@r2qV4l);%C_qUJlFC7O29c-vz-7v61`dWb3}OsxVa6shFffQi%oX5Zn9MK*l7&$! s6h=@%#sp4akP3wtrW;h_FiZtkC`=5~z+Rco5Xiv5z{SAG;K%?50D$N>cmMzZ delta 2616 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 POk(hbRv!)w3}7n(^Ca~$ diff --git a/out/production/infinitymonkeys/GUI/StartScreen$1.class b/out/production/infinitymonkeys/GUI/StartScreen$1.class index f0ec3f4e26dd97aeef8b7b8b07905b0ca5fef5a5..0e33ae80ec6d5ad317fe34d7a81de97737a9c7ec 100644 GIT binary patch delta 104 zcmdleuu))xI~$|SW)C(Q#!z_%J_bbwNd_eb6$TXsBL+1F3kD4aX9i6MUj{9PSO#r| zECxM>5(a&SItBxVZUz&E=?rEJ^BF7{mNHl|tYxra*vw$Zu#dr>;RJ&N!&L?shFc8o JlXtRL005iZ6cYdd delta 104 zcmdleuu))xI~$|?W)C(Q#!w{&J_Z#ANd{F06$W(%BL+<d3kGclX9gVxUj|)<SOz_Y zECxe{5(XoNItF8gZU%FP=?s<(^BJremNM8ftYxrg*v#O_u#drs;RJ&-!&L@%hFc6? JlXtRL005~P6j%TN diff --git a/out/production/infinitymonkeys/GUI/StartScreen$2.class b/out/production/infinitymonkeys/GUI/StartScreen$2.class new file mode 100644 index 0000000000000000000000000000000000000000..99249c7c0c083b5b04dcfe1b9535dc0a2207753e GIT binary patch literal 771 zcmX^0Z`VEs1_l!bZB7O@1{p2}b_Q841}O$P5FrmD6xbOQ*%_1=8Q4lPGK*CV7#Re8 z+(SL}gG&;NN`jM%Qd9G+85!7YGV?M^>=+qDG%#c}!x$M@obyvs85#I}GV@aXN^_G^ zi$W5Ua#9%?gnaUo6LZ26i!wocs2~f-Dn<q#&%C_UBIlgM;^Nd|Mh0PYlU0nY85wxW zGxJjN%l!*d^HNh78RRv5vJ%S@^%KiW^i#`H^Gfu?!Sb#kwl&BpjH!$aGWZlRGVlhM zBqnG3CKf>5!xfxgT9lmXmI-pP0Fux3Kz1=Q@Vn+E=j0b>=B4|lmSp6ournz0FsLx7 z@-T2PaPly4fmmt`>O2e@AeJVB79)coS{SMrF*3-2Ov7-wV@hH{Noo-z13#J;Mh2$z zd`1Rl4Un(+Gm9My3PMtgax?Q1OF$vPtf3jj$RJdlkzekenVjvIljECOT%4Gm%E%y4 zoLYjWnnfc@GmJrjfsKKkfq{WhKmg=)1_lNu1_lN$25tsM1|9|m20I2Oh=`W<Rt83` z?F>vC!D@IJ7#P?X7#SECVi@=s7#PGLsu=hg1Q|ep3v3!A10#bFgD}*rWT;tET3Z+x zw=po!WDtU|SU?o>HU?IZ*~|<evxOK~7#JAh8Mqh{7z7y-86+8!k?fIz+atvw!XV1P r$RNhRz`)GFD9OOgAP#n*1cM|40|N_#6oWK_0N6{63~V5mF)#oCTE(E0 literal 0 HcmV?d00001 diff --git a/out/production/infinitymonkeys/GUI/StartScreen.class b/out/production/infinitymonkeys/GUI/StartScreen.class index 1d786d989283babc6b573dafa0a7e900807ee030..6226aebe17cfba88b63cd0d2961a3cb076cc4561 100644 GIT binary patch literal 4452 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 delta 2057 zcmaE&v{JVI)W2Q(7#J8#7&dY;h%q>T2uBd%1R|Wd7{nP|*cn{87}yxxKqBrO3?A$Z zo?HxE3|?Fe-V8qM489x;eq0Q^4E`Yb01y!f;s$|;U=R@kB0||2!q^$Y85wvy^YT)Q zoO2S3i&KjkC(c>CIiAssaq>^5>!vCUsyqy`401dSiXcLsL4k)sgTaK6LC`(aQ$M&Q zv8W_CxhOR?PsI=<5y8Wt#-Ki#l|_X+k|BznA)1FFh9P#c35%+t27>_)gA#)>4}&Cw z6c0ljLp%>d0z)DXLlT1t4}&Q~^5*+2CX6;L8c~{Ij10UgDk{aPC8Y(So+>ITJPaue zCR_|+45^F^LRpDri52?A<(YZu`d$Hvd8s+<4C!1984NCy8`+GtvKSfoK}z%!%S-e< z^NLeTirE=*7#Y|#JUu-<HN!y8%;RFnWyqg=k4;`dgQ1X%A)BEHYA{%rbADb)VrE`y z5j#W4WLb6{jxvUFE{0NuiphcOhKyB{o7sIhG#F~Q7^)d+Ctqhb;izY50LeE_7Us}k zYvy8TVQ`u3$RW<w#>LRi;4(RmL*BlVk%7H9wIn39qJ)Q`o527i)5FLh3UVskHy~NZ zqSQoohCVKaeg+pF25ANvQ1nflyoW<Yaxx<WcX4WoYf5HGVp2{j55rW3WG;p&4AUn6 z<jAR?0b=$b`@<zOH#M&~Ge3`=VKyTJs|L*bbGaDiFwA3Q;EK#IEmFu!%uTi8U|7J& zAco->x6IU>6n2J1TnvjDTtJD-g^_{Z%iq&aA>6|=#MQ~)G0263VHqQXRMzAtoYFEY zxENM4^e{4T1*aC3r4}i823T=0tY&0j;9yugS(?kTUW`GU0mNehr2+;91}2aX!L%%c z9GI48Pyo}4U_JvV$$<GP45|zupvIuiz`(%8z{sG%pvl0<pvAzz5XHdCz{J47Af>gP zfmLfa16!n))^>)p?F{T&8921Gw=ytp1e>94!@$5G#K6M9z#z)N!XU>W!XU;V$so?4 z!@$5G1~Gy`mq8C?4}%l~$Vx^AP6mAj1CT|N<+-KIwZWEyEDK=ZU<d;1<Y8cBU|`^6 zFk~=dU|?WmFlI0Tsb^qdsAXUQ%UMq@;I^uVI)Z_LL5_i)fq@~6ftw+mL4qNIL75?v zL7O3p!H6N6!HOXU$y95odl(r^;ij51Fo8|w)Y`%zz_N`&6k#wI*c0[ICahH!!n z;bsuvU@&7a2f1zXd|t77kYCs!CLt+iWv~E+fB*-BC4&`6Edv9CJ_93I9jn$B2IdWr zuw-Chz^B<7t7ax7&Gld-Ik8%8!(fZWYDOg8I5jhY3JZv4rXB`C20jJ`riR@N8Iju= zGJQaaK~Q@)Lv|z^OZ{$!+(>3-X6Ee-1x!pJs(2eiB~+!a4nz@FHQGA68LA_hnORtv z+1S_^85y@T)NNyE+Re}sxt*caPe&Id%>t5U5ny9Ml5daP&d_1SBFQ4uwT+>^S4WZs zq!MJ100%QOGm^^w$n6XhtXQ=qS+_Dwl4NDx#xPxyRcPimhFLn2tRPLSAmiBt*aX-Z zcQee16l9ntV6>fKKHMo_|5~w0vf=bcJwv57NV+-_Vit-|ATDK>WEWbvjiFbPO_CjC zDK?ibj@-_$#EL^pl4C0alO&rY2S_2v^8y?!0&L7M*D)bG&O35D!_s;yPAy5!tqd%Z zoI=aDF|3kgljH>H1-piY4LLL*p5c<@!s!{1U${WJK{jKH6)SE@E=g{<3Kjvjdd!&N zk>n9t1M)AIBo9a_ZvXOXN%C%GV3y<+TDOg1mL!)XFGxMe={UU&%B2hfj121;Hh`1o ZWIaJ~aS3pF!pOh|E^`<d?7*4J9su!ua#sKV diff --git a/out/production/infinitymonkeys/client/Client.class b/out/production/infinitymonkeys/client/Client.class index 7fea52fe06f8c6079c81f2fc781b3f2678e09aa6..3af763b9e570a46a5dd0509c235b098a294c9582 100644 GIT binary patch delta 1429 zcmX@FwOPCV)W2Q(7#J8#7zH>P<QQgxh*=<FHi(!5BIa^2$T7_0Vvu2&58^HW5eq@Y zA`r2di@}>=2?xVc5N8<&!*US4f}LR{7lR<fDiCKiJHr|-1`!BnEjz<HE(UQ3XFWSZ z{RS=uDTY<-3>!fftYT-_1hQ>2h}go;u$6;h8%TaTh}Z!lc7l}c;$qm%um{B2$;Ggj zVIPRt57Ke~WZyv$>kvrnFo<;or0ysu!!d^A><lNk7>q!!Jqe;uaWNQ$Go0pPIKyz3 zgW()EgA>Df4u%ULO&3ALB`$``3|BZ9u5vS6W4O-FaD#*4COg9|4u;$840k|IxXZzC zkBi|x!vl~N54ji~F+ApCc*5|Mo#EN$P{tq3DtzgwCBY?$MJ2(>MX9NIj10mWnm+EK zp880Flf76~7@tqhXDwmeI{69fUyekEBp!xFhW^P<*sPcv8D30QWcQg|#IC{7$WXw; z(8tg}c@ev@?@JKp6+=G{!)p-nhM}LG;VlotI}rVzhv5T51`oqWhEF^Uc_3CWLkJH; zI*9d|;R_E#A&B*r;Tt={cOHfx3_m9;ap=|mV))I&@P{FTo#8JJ!#{=sMh33X;?yFA zyu{p8D;|dbj0}tn!p`}5d8x@IsVNF2`3l9UMP;c)JPi3Dw-hlHuro69FfuVRGcxcw zXC#(5=jW9a<>%z27O^w3@G!D6vN1A<6{Y6pm!#@@qAFly5SV<PBUYK6k%N(eft`_) zhmi|pXemP(J0mv_BM&1lJ0l+tBR@m`W`E8~W<g#CAqIa2Uj{}7KL!Q{CI<e=H+eD{ zMK?S19%WK%U|?j(WME*>X8^gGfq_+P3j_BCu(~V;1_m|;Mg|6k@W~(fMI#y+3K*Ec zidQkPFfcJNFa&9BXW-Ei;@!%?rzOO{l|evDdn*Hz)@}yDNUiM*LR%SxwRSUzfY_p2 z8N{@9Gl+xO5?dK0wRST|f!NYp8Mr6M3CO6%Ft9KPGH@{nF$gfkGKez7F(@*`Gw3oT zFjz7qGPp7%F$6LsPo6IzF4_e4N;3lk0}BHqLkj~ZLn}ku<kJEU^_dLZ3|S2P4EYQ~ z3^@$K40#L^3<V6?3=9kk49pDN3@i-o47s3~VPIwGVCV#UO_HIDp__q$p@)Hift`UV zh@GLAm4OkIbf5ua1`QYvP{3?sP}v9%8!m7dlrpe0lz}aod`?h6d;&v1HjR@v3JSAU zGO#mLO^z25XY8N+P|#4Zo`IdAfkBX=5v-jD>>iNIa~T*I7#Sup^iMVxQfF;pU}tEZ z94{owJegt2<Z>Y`M*hi*gt9rsw6-t^Yi(hWoGd0h2Z^^^*sXp70~f<Y27ZRg43Z2} z7-SfxGw3tSV6bAC$>7W|iy@w2HbXVT9ERx(a~b9{%wt%{uz+DP!%~J749ghSGAw5} z#;}s%9K$Mx2MntjJ~6CeWMNpxsKBs+(S~6oqYJ|(MmL5nj2;X-7(E$wfnBb}z{2Rs zzyuCcW(EdE@5v1!(o&!h<!4~y=lRXh!uXqEks~`pF9RdPREGY^TSfF`_cQP_8~|&F jcwB%XhXLa8X$<|78AWv!4>RyG96?gS2Ujs290xN1R~j`X delta 1262 zcmdn2eO{~n)W2Q(7#J8#82LCE<QS%dh#4SaCWx2?B4%?j$T7^}Vvu2&3*ycL5%WRB z0xkw`hJ_pqi$I*k91Kf9^ip<)Wn2sb49h{B73>Tvxfp~YoK@@$tGO7&Ae=Sq3~RX< zBpK?#>ejI{tOr@JoSk6<$hM6jViP;VW)6leAXQsI#5NGI9i(gr7sF15T_DzWE{5F< zdqBiqkd}QQOZS6V2S8#6L99a{b%!|_jxZc$XE?^iU<7jVaS(lii@_+I;UpKsDTdP= z3}?6*oEXk>Fq{KvIu9Z)a4}qDxWvJ5nVaDX!&P>MYa9&M*%@wdFx+HkxCL^;Z4QPz zTnu*^?t!eh&&BY7;UO2pBZkN93{N(PGX7wmT*9iz_;m6#))L0eleyXcGS@ToP8MLd zVy<U+Hrbcmhn0sRks)dFOm+>9dWHfXh8~9A$tT&31D=C8FBp1x7+!*iR}8)E46k_@ z-hk-0JPhv`GI$u?GkoA-$OEy08A5m%(m||`44-%y3PG&T3}4t8zVa}9WBAU<AU^p% zm-ysl4iTjv3_p1oelcXQGyLXZ_`^`Z$iNj^oLZ!imzbMs#l!HI;osz$9E$7=|9Kc0 z7#SxY<Pc_K;$dWFWSM-6qf(ibk&Tgoft`_^hmiy1!cvAZc1BJfMlMEfc19i^MqY;A z&1IaG%z``&LJa;4z6^{Eehdr@ObmRJcrzJAHfQl3WvVY=U}DH*U|?9qz{0@9z`zis zwVi=mONeJH1Fx14-&O{GE$yugOj^4c1R}MzGYD>F5YpPsAPi!QY-JGD+RY#aVvBEO zkkH!AAPHhiZDo+w+RY#XV#{u2VA%+^GmC+NL5qQlfq@}{frUYkfr~+iL4YCBg+Y`d zib0Vfnn9N#hQX2{mcf-Fjv<gCo*|oofk6!7B!(P@Tm}#bVrT$+qmhAufrWvQp^1T$ zp_!p&vc8~$Un&DPLmC4=LpFmDLk5E|Ll%PsLk`#!1qNmYZUz>HR)$;#Mh0O9R)#i) zb_PZU1_nun4u(z!28J#M1_pKprXY5PZdL|HaJ(}L2{TGhz9=ZnTFAi8P&7G_UzE9z zp?5N)kT8q%HU`znR|K_~`x$yCy9ya{Rx_|O)G!D#)K0D!5@ntMQ8sy%kO*r713N<_ zSo1`NNt162X)*FmW)sfl6xG_oAf&a0L1J>1@Ejzbyog(U4+9rNF9SbAKZ7L01O^#~ z$qf1oQy8omrZPA)Ok;>=n9fkmFoR(_!%T+x46_&(GR$FE%&?GQ1;ZkSwG4|Hjxj7{ zILEMz;Q_;PhEEJD7+DxrF)A>uVYFdb%jm+ej?s-_1EUAS7Di8oZQ#(+VqjtPWMBe^ z2{Qu&qxa+|BGOWz5aDNF<LCL!(8BneVUZ&{LpK8>!(@iu$&#Y_vb!1h8TNp+^MC_V h02)P%3{x0-C#Q<)D(+|CWjKJOf)B1@DmXn%0|2~A4m$t< diff --git a/out/production/infinitymonkeys/client/ClientUpdate$1.class b/out/production/infinitymonkeys/client/ClientUpdate$1.class index 1b1e4c50ab7b86ddfde6170006a51b4f94794531..e1872428e89b4af9c22e38f5a2aaf1a8f3fb5bd3 100644 GIT binary patch delta 26 hcmeBS>tNd;%EZC$?dk08=;Je4k!e0-#N>la-T+(Z2SES; delta 30 lcmeBR>tWj<%EZI%>*(j`?iv&r>KQUwmT5j?<mA0f-T-^=2!#Lu diff --git a/out/production/infinitymonkeys/client/ClientUpdate.class b/out/production/infinitymonkeys/client/ClientUpdate.class index 11926f3376c5f6523f889328cbc88369ea2c2a5a..2901f95ac1e068187f468f14edf6ba575cb7dd31 100644 GIT binary patch delta 1290 zcmX>gJyAyJ)W2Q(7#J8#7>;l;Xfs4}GH6W{vS-wq802N9$I!^d5X{iT#gNF*%)!vY z#n8&o#=+3e#SqKT!Nt(Y(8a|N&(O`z(8JEq%g)fp&d|@!Fk#|}C5#g%=Q1ASa$#iP zD=kP#EJ>Ywk5OTAER!jF4?Dvoc81B5XENC{PMLg@$(Au}vN*HZ<Y;C^10#k29tHyj zLw1I#JPgwqrn585;9;1_FpHgGHV?xbhPmtvlXw{BG0bOYSir-ukYUl}HOvZ}i+LE9 zFf3(c5T7i-E?&>Wu#90jBLkxX55o$El{^fqKt?(+I5IM@hPVcY7=lEW@-VDsm<ts# z;$c|B5CG*EGcqtc=Hx(mCOiyl8CJ40Oy*%&$FQD<VFSZPc7{zn44Xj)Z(&%<!>|=( z`Zf@;onZ$L!%haaT|5lC8TL#rWYJ>V3v$cS$qQMe1okoPXJ<IT!*Gz{5D&v)hJelc zSa@0L`O;HMf=d#MN`jM%Qd9F78H6=7ecVGm^^pXv85#J|gcunFic?D*3kpI~i*hsb z5=&B37#UbJqBO%88TeBxGC@)~naPPInfZAPiVRu|+6+t#It;oDj0{Ym&}Cp?U}s=t zFsf%TW?*74VPIfzV_;%nVqjq4(%R0zsHMG?foUTH0|OI-DFXuo9|JQ31A`y~3xf~? zCxbA983O}@7(_LLIfDfQ2ylUoWn{2qU|?WjU}UgjU}Ugnuz{K$%D@CRLs)AI1JgDJ z=4}it+Zb4NwoR_(<n#nt!38!>oI#L55^THzL^<4eVFp_UI|fDu1_ogUdj>lOCM1iP z7#tWJ85kK%CZFdFNdlQB#lXhEz#z}S!Jxn(!=S`q#-PAp!=S?8#Gnc{U4}u5!HL0+ zft7)Q!5MCkGlMgO3j-sAD+2=qF9Xv*1_5>kH%7)E4B8Bg4DJjbApcBm<=W3^I@y)m zzaA74CJd|$sSJ)_!`K-Z7}miJTL(2vnqe}7CxaIQ6N4H<2ZJ|*7Xvfc0(Az~{|w;_ z?CcCa><n(~48CCG#>mLP@P|Q(oxxA$7X#l92391$GBWrx1b`gDz`$V1Fgb-sz(yVs zQIJsdW8h-&2m6x;9Aey12O&pIAVUB+#Nv5mqCp`B(HYFZ#Snr;CnG};11JhX3FR3B zGdOM<HZdsbY-3Q;TLp@K28MD52C!|Qq$0z>z+lh7z>qZg8jljA_2i#CO7#+us8?s% z#-IUVGH+wh1i76VoXC_II2afhA{bN{q8MBlq8Z#7Vj0pI;ux|R5*SJu5*g|llEE&6 zq>KirpBNY#7{Z__qk$ouA%cMk9JFi<EGkM$B8ZSvVqjv31gGdI27Lww1|bF}20f6= O1vnUj8FUyz93%mIg3<y2 delta 1142 zcmbOzb3j_?)W2Q(7#J8#81`^6Xfi}|GH6T`vS-wo804j+!_dgZ5XjKP#gNF*%)!vY z#n8&o#=+3e#SqWX!Oqah&d|lq(9O=!!_Lq<@zN5;zRBf`#~7U^+cCwlcd|3|volPX zyqL+JapL61Oty@klNFiGc-ZqxOOo?*QyCc;Jtv1UD;pRv`0+64G3c{1OyXgf%rJ$W zVJZ*9G=}Ny3^RBbW-`oTXXxi)n9VSUonbBy!#sxhlUFb+ur1(WSjezw@;PQ1)5Q!+ z7#SE9co>#4EaPEV4l>P-!Jd(UHN-VI#1JI1h=*YX!z`$X5f8&k2EWPjED~m`7?!a! zOyFTy&9H`tVJ*Wtc82vl3>!eEY-Cu(!>|ct)MgN|g<&fX!#0NPJPbP+c23S^(PG=h z!?2iP(d4--Qp~#<wr@Vp!pmYQR-BPv?wgpGn4Ve`SejYln_66)n4Zd@$e_WX$-u;* z#h}f=$iM{hD+2=qI|Czw0fQj}6NAy@NKR>IV+IBWJ_cq61_nU}76u^(P6lBH69xtb zF$N|E1_mw$QwB2z5a0sqXJjyEU|?WjU}UghU}UglumYR2om0gVWDXZtk2r%MgCy7t z1+cloa5ID%tQl+=7#SECgc)oZY#5l3Ok-lOW3XpnWH6en!WF`3Jh_rf-U;LmkQp)z zQVb3ZHVmu`3=Gb2)0`O`8Jrjx8Jrmy7<d_&{xJx!Gq^A^{s4Q|mB9_{v|C*J8I32; z;`Xlx8D_%3%8<(72sVtJfq`Ki+^}^}!=xD|Gq^K&FfcKwF?29^GI%gBgDp^JVExY! z&cM#j;Kk11!p`6gMlOtu3=Dr5l-L=3WPUO5{a|24@)0A0FM}V*5ey6rmJIcbV2^Wa zZDC;A#vr_nL4G3x0|OHSBHa8KxETDw;l=||3UwTEi2F16fx-xEBD#SJ=mrKea503y z40K^&VBm(D$jA`D5DazMD+Xo;76t}}a%Q_t42nA27?ku@f#N%xfdT9aP|A>EU|_Ii zU|>j??8hs{tFn!OXBz|GHU`z@42F~ac$Mn;Af960#-MH|yM}>*ff?*AB?b-#28IX* zCWc4`6^3XA7ls%HcZN8IbcT3_EQUmeQif!(>$D&afI5zWp`0NEnoP<WLK(ssm>8HC zN*Tf#BA{`>$-wf5L4{FCi3<|iYT)DuvIP{NQ4G2a3=BdHObj|8e+Y0e1Tttb1UX0o E03B$q#{d8T diff --git a/out/production/infinitymonkeys/remote/IClientController$Action.class b/out/production/infinitymonkeys/remote/IClientController$Action.class index 035ddf1381adff501a6e806d89ed427882488ad0..b4c2cef704873af62401e4a1eb634a818a4d812d 100644 GIT binary patch delta 499 zcmdnV@tVWs)W2Q(7#J8#7%Vs$SQs?97_=C)*%`#x8FaZA_!#s+ggyrYKNkZFgFZ-w z0SALHh&JS45CPFf><q>eZNk~TJ)ONBeS9`f=x5{;1?d;#VK8AZWoIy(tjnY#F3n)h z!=S*R$iu+TAjHEU3?f7rgeE65b=31QFfgz<NP=V-7#t))l3-edL5P7tK#D<>K@6mV zfs;X;L4tviL6U)iL5YEp0R*@<F)(gpU^>9Syn%s%fssLqfq{VyEXTpX$so-j166Or zzyucM5@ONX!N7Wefd!<V38cOru0fW8fq@62j6se;o`HdZ3FKx5Ca{%;49pD73=9nH zTG}$(8Q3<0rIGDJXlG|o0=b<*8LUQyfrCMnK?UlPNCp;=!x<cRGq6Mou`_SaX5iS& zzzODYv1|u%xWODARxpQ`Z7%~$B=aT)&frLvO$^+@k*u2-c!M`HFoIlw>SJc8jcN?) XV4F1<1Q{3@xEL52SQvB|1RNv*a4|6` delta 451 zcmaFOv6I8*)W2Q(7#J8#7)&@BSQyl}7}Oaw*cpV`8ML?<co?)ngboJ-FBby~gAPcA zE(e1kh}L6g(4XiMzHw;}BcBjRy)X}h0fQksgVAJrCKVwG24fxuSq3>C23`gM9tJ@M zfyq@&9rZj63=GT;k|03_1_w!yI0J)#6oU|hFarYv3j-&E2!kjCBZC+N1A`I+BLfI< zZDL^D#=vxdfq4T10|O(2I0FL%8(5Bmfs;XkK@zIogn<bx$|c02wS$5600Rq1JrlC} zdIl*51_mC8G6rb|83qOhCXh23n7~#VGB7hRGcYi)YiY}DXJFe1mPWP@p`D#Uo<V?t zfk6SRMv;MoL5V>T>Jm2w7Ldak^ma3_L<+GpZ)f1x%)q&ufh8bPh>Hcx<7VB<z!J&4 viGedXl4TPEckpHgMv!%=-eZOuugstVwnmkKpMimai-D1Wg+Y^n&p{FZt*0p= diff --git a/out/production/infinitymonkeys/remote/IClientController.class b/out/production/infinitymonkeys/remote/IClientController.class index d438a291276cb8f60071c2bb1916a305991156c4..c3a87022f98ebf44dd8f90e2565327e5e9452c87 100644 GIT binary patch delta 112 zcmZ3(dV*E#)W2Q(7#J8#7-ZNP#Mv1n*cl|*8KfqPwKGajoVT5WJv%cw+c76+axmj1 zM)t{SO!1aH42%q%3=9k`42%q1EQ}1o3?j%P3``873=9lR3}Osy3=9lh42)ovtPYX@ D_&N{1 delta 85 zcmX@Xx`tKk)W2Q(7#J8#7^K-5#Ml|c*%>6*86+o)wKGahoVR^)JmUpMw#f!e@#?}1 mj0~I%3=Av`j0{{1Obj9n3=B*Rq6};d3=CWhj9_tA2T1_@_zbTA diff --git a/out/production/infinitymonkeys/remote/IClientUpdate$Action.class b/out/production/infinitymonkeys/remote/IClientUpdate$Action.class index 92cdbe3fe1704265461317700f5d956ea36eb145..dd382481d4ab540e1f2e62b16ff37ddabd2cb284 100644 GIT binary patch delta 19 bcmX@lahhYoG!AxePiJpOAD@kj)-nSCMKcE8 delta 23 fcmX@jah_wsG#+kWM?Xh**Py^q&ybDt)-nSCVLJ#V diff --git a/out/production/infinitymonkeys/remote/IClientUpdate.class b/out/production/infinitymonkeys/remote/IClientUpdate.class index cf1adf4c123b7ac99404efbeece8fb67c6d819de..7d8923621a39f42b6628c674a2a110f8b54dd03d 100644 GIT binary patch delta 12 Tcmey%{Fiyc8OE@UXAKwuCt3w# delta 12 Tcmey%{Fiyc8Ai{IXAKwuCm97+ diff --git a/out/production/infinitymonkeys/server/ClientController.class b/out/production/infinitymonkeys/server/ClientController.class index 11839990a93f1c085e7afdc6628bb834a5e92355..2315795d340fb1296adc56bf6a7e5860ba62bebf 100644 GIT binary patch delta 2411 zcmX@7y-%<H)W2Q(7#J8#7}>ZOtQlH38LSvuIT_j*+Bq0HxEMMay0{pu7`izbdKh}S z82T9c*%>BqF>o?W1c^-IVwlV@1w>2*iA`f?n9jw(&(H!QW^gdf1ktlV`e%dG%mEQ| zL59rZV3-dwdjS_i{bYuP+zg8t7K4Z-AXAotWR`){E(dW}a57XetOOad3dCK_&9H`H zEl6w~7lS&(dUl2lAi0ek44XhQn>iS^a4>A;VA#gVV8^hXi=m2P2PeZ$hFu`Z-5d;i zI2iVV`1?To{TvJjWI()wAlnXcFdSxQIKs|wl%3%iJHv5yh7*%{8CNi#+`NrZiIH)_ z<eN<1jHf26GS6o}!p^XPo#FK4)64~oC6jGfyco|+Zf9xbV9(A>&UVbnnastiUhl*Z z$HU;j;K<H!mWSaS!+Ayq9#4hDT!qX$g{=I{Ja&c)JPa2ZqIekc81mT}F7Ys2X1K!6 zaFvJQ8pCx)2JYh2qO#N?{m|mnA|3`Oh8sK#HyLiRGu-B3xWjOlhv6Q>eIAAf3=bI@ z#Iq9167_Qu^V0Q$ONuh{(w#~(b5c^Rig*|vF+65ukWeT}P0uVYNi9lEQ7A4=PEIW@ zPAkpHspMgJ!cfk`Py}-4Q-)_e49^)}@G!h&xIXz6t3v%Nkkei>ykTcJ#l!FxB=e5p zJrBbNkd})eEgwNzK7k}YGc@opR5H}?FnnS7%FghOhv7R&!4Ht|PlmgU3<Bs*<Y9<q zh+|~nS4c|D%u83u%P+}H%S=t-Vfe-Hn~{NCPfu@hC!4<LABMj?4F4GJvorkXVfeww zz{AMM$TayZo1WWe5QiCLhKNFDu|i2kszP3Bxk7GYUSfJ`ksc2t3rGPgNP&1{eyKuY zQ7Xt5utKOJMh5Z8{p{kKP1s+uxP~z@@D`_*gk=_ICS~SimQ*q_uzPztdpr90Ffy<v z=cFbUF(@)vF<3J&G1xHJGB7eQf#Q~dfq|QWg~5rznSqJHWpV(Iw6iM%0|OreGXn#I z5CaQ?Fasxp2!k5~1A`a?69WSS7lS*42LlLjf%P*ocrq|BurM$(crh?Ccr*Bb%~{7& z%jh~;hu63sq|=UpjX{gSfx(x-kAanefguNOMh=5NLjVIKSS*ks2y8<RLoh=K*!~=b zP=+uD7KU)JE1CW<c(XG^{9=$pu`-e&3S=b%1H&{1Ca^XWE$wX#Y_>A98FaKJ-{aL| zbe+u0r|b%Hi2_6c+<p_N{cH?+4ABfR3`}6V*ccf9Fc>5Ij0qIo42%pelS}!$8C@qI z<dZi8nFk6JH3lw*cm_YP+pVA`!(A-Q&XDknL7st;A(0^o<j%=r{JD&-lUw+;qd*3j zfCD53s*Qmmh9MamATbOn3;_&G3~UTx45<t;49pC?4E_vh3^C9EVP|0c%Mitg>`F$4 zbf_hq0t*;jC$AE)2Zukzl6tr$^$ZzMOX?Xip_WvF{SUIFh#?DZi6jH_e}-5FR(6JL zc7_~wh8#vl21a&<Tv=3W^BD3$fy2PSu!4b!frWvA!JNsK*-ln#%j66}Q%2Xx^8}T> zK;G42U}0ckFk~nIdx(L-9PTD_XiP9Mm@*W?V}hH3`7Z+tBcs+Y237_}P)-MjA-B*x zkoSa)<6wpgFlc}cWnze8&<95cC;|6Ejpt*iXDDVUVPFJDuP6h{Uj_kohEm2~4C;Rv z_`p%*f|97p7|OvGSqnQex=yYamIsF;DD@~Z@W72Xf*Q}vpwCbN4pC6N^Ml;X2M(?T zxnB%SC<a$D)PM|TU|?Lqz|6qLz`*c$69co5?luO=O$>TE+ZgoqR)aDZ1H(lI25^!B zWeynzSqP_8YYPL@76$HZ3{qAsk}NwJq!}4zGAK>95|LqE{{PnGC=q3wc&utPK&oXJ z84fUTTCqy9ZevjP)79R@V6v0JkeNYuCxa;?!}9-EChro_s0S4QZVZA93=C@-I2blC z=rC+z@MGA*5W=vPA&y}iLn6ZthD?T?3{4EX7+M+jGAw7<&#;!^0K;~MgA98a4lx{H zIKps(;V8pHhLhle!-IjH!H+=z9Bix%Aq>0>wcrfCoIwmKww6H{D#pO@7?DmNGt_}Y zm4V?gLp?(SG<Qleu<QI~;AUWFNchR1p$up0DWHUOBdlCt<Yi!HU}s=p$c2;((BP5T z#vp%yfpZ&!!b}EVs2C_%S?eWPq2a0pVnM@<O_B{1W*}15ibYqFWfOxrIP8}HzXaE9 zv7CV$6rGma7+5zlFfcGPfWlIXfs28G;XDHy!(|33hN}!V4A(*RA%iEwO@<JLTMXe0 zw;56x?lI&rJOqVTJp-t`v|*3{2M!y96N4x;a6B3Kz##(4V7UyiayS>7o7ouB!8sRF zhDkB7{AW;OV1wjbMg~xDF);jKFyLWF3MM9oCU7!qX0T^qV31;9X0T%rWnf?s;9#g? QuwkfnkYw1&um(f}0Qb$+6951J delta 1928 zcmdm|cTT(h)W2Q(7#J8#82)lGSTHnjGMF<oaxyeAG;=Vta51zpv~e+*GqiIubTD*s zF?2C>vorK?F>o^Uf<*eb82T9|fQX48u}SO<lerl985%&u6b^=|AbJ`||8$U=86aXN z$dFka46{LI&*5UI?`N3H%`lH)K8RQVGG!r1W)Vp3Vi0!;Cqp^IQjj6bK-}fr3@aE` zg2YyFF{m@FW@lIfl3UBcunr`%o`Ycn2g61VhE1Fd)(o4u7|I#8a58LV*ani^&cU#Q zgJCC#zYE0Q&B3sTpPgYZJHtM9hW+de2iO@7PL^U^!F`C4fh8+HGmnuWZ1MsY*~zaM ze>3(>e#Yd@czCiA^L+Nb><nwz8IDZ8!Cb&tIN6iMi}C2>DJ-p%m04BO>=~kY7;G8r z*cp!TFdSz%!N|blsgRhfkeR0dGLoI)BoD(WhHxH+Y=#_mhSNL@XBf`1Go0gLIL~l_ zk%7B7wWut$NI$eVwTOqop5Y=7!zG5x><m|U7_Ks0<6*eYaD#{8Cc~}C>sV!&Z!_GP ze3n&K{4PTY4?{l4-g^x9c^DorJmg_`#BgCUBb!3~V~|x(7@o2-9Ohwo29kNs@Pdco zB}mIDkd{{<Ew4cmZy0KM7|Iwbc^KX@yklp0&%^Kmq~Ie+_!Gl5Mh1bb#Ii*FoW#6z z{os<K%)E3ShA4(;Mh1R`q}0s3bcMY9lFYQs)D#|u&kSD}8QAso^d>K0(--~9@QsJz zJHrijh95i(9~pk~F#KZpJ^2Znp8OjS=MTsX5rxcRg_4X^g}l^qh1|rv#Prl6z0INQ z%&f+qj10WRsU=~V#hFQ&IhiGu42lfq3>FMb43-R542%p+px|a;VBlh4VX$X#U|?c! zoIICD+S!SLfq{>KnSp^ph=GMcn1Pc)gu$7CfkBLc39Q<M!Ic37xWM`u8Qd5c7+4q> z8Qd8d89W#~!RGwtsbzGUT*+%(57KGJz{a4(;K1O;;LX6wz`&5h05c<p!H2<@fe|d` z$KVgPA%`J=ArNeT4nq(_Farxi2m=EHHv`ij25)wT&|eI4C{~6sgoCVPU|^WWzy#K2 zqNTl!fz4KCHiM4VWNkh@MyJV9e9EpMmnc9K!0k7I+Rw(I#}L5~$-o4*i;aQt4}&qX z&zL|l#=ywnIQbBtH>1;JK7M&Kka?gmQDfj@h+*&syWI+EGTg<&><qEL7~~lk8R8h? zLGGNK%%98XH2EUGb`;0}6L5gUK(#S2#4sd410;qak-?XNiGhtFj3J33l7X3lm%*PQ znIRGyAnXi`e;J|}kzL8ikOH+NOke?{)8y|0_Tcb`SW*wSq@E!aYDqmq8q|_Xu>V1p z6fva3Es<nk{?8E0z{<{$!OoD$&XCE-$iT?XkR^+1Z8k#=C~z1U7*;SaF|aT&Fqkvh zGTX^&ZJE4P(3H_>@@qk5FOYY&7+4rs7z`P5!5(5@Fo(Oz92yf$45kcu@R;CcVE)U% z!pNxgi-DDa5tLcMVHhDa59B=|<2ab10t^~pLqQRx4~`B{0`7$x&&N>DP{2^gzzB|B zQ3jU33<B&7MU1}~)c-K>fuqO;B~cYKlz=Vj5O!vCntVoB9vqIK)T7A212^6XYCJQ8 zK0_%uL_zV+4{|dfIJjcvelaki7+l6s2{M?0fpHZBGXom~1H;oz49r5h+ZZG_G3e=R zW6;-I4a!^$43`-gz)1>}Ib;~vA)K<wg(9Mi%99_6h;bS0WH4lA2w(pH=Hz7}%8UtM zDb2|bL}a+ab$2qDGBPaxe|a*is0O3cWIa*o`gn$I3`q<-7_u04GBh*nVrXO7%dmoB zKf^kP0}MME4l?X#IK*&>;RwSihNBFR8BT)pyaxk2gCBz+*vG64Aq;#BRp7k2f<YWA zwvIsrD#pO@6dE2NRy8<0K&%>uT2Q_UWME*BWMJ3%%fQXR&Jg>PK~ovd)K@?XBqoMB ku-EGuY#10Aq!^ePtU)0nz`;<?V98M7Ajz<mVFic=0P+iV>i_@% diff --git a/src/GUI/ApplicationMain.java b/src/GUI/ApplicationMain.java index 58707ca..7aec01f 100644 --- a/src/GUI/ApplicationMain.java +++ b/src/GUI/ApplicationMain.java @@ -108,8 +108,10 @@ public class ApplicationMain extends JPanel { if (client.getUserName().equals(client.getClientController().getAdmin())) { int terminateAppAnswer = showManagerQuitMessage(); + // If the manager terminates the application if (terminateAppAnswer == 0) { - + client.getClientController().kickAll(client.getUserName()); + exitApplication(); } else if (terminateAppAnswer == 1) { int answer = showNextManagerMessage(); @@ -159,6 +161,7 @@ public class ApplicationMain extends JPanel { } public void exitApplication(){ + System.out.println("I am in exit application"); frame.setVisible(false); frame.dispose(); client.setVisibleStartScreen(); diff --git a/src/GUI/StartScreen.java b/src/GUI/StartScreen.java index 8d44b48..8b09ec3 100644 --- a/src/GUI/StartScreen.java +++ b/src/GUI/StartScreen.java @@ -3,8 +3,7 @@ package GUI; import client.Client; import javax.swing.*; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; +import java.awt.event.*; public class StartScreen { @@ -13,6 +12,9 @@ public class StartScreen { private JTextField textField1; private JButton joinButton; private JTextField textField2; + private boolean kickedOut; + private boolean appTerminated; + JFrame frame; private Client client; @@ -22,11 +24,6 @@ public class StartScreen { this.client = client; } -// public static void main(String[] args) { -// new StartScreen().go(); -// } - - ActionListener actionListener = new ActionListener() { public void actionPerformed(ActionEvent e) @@ -75,6 +72,8 @@ public class StartScreen { }; + + public static void showErrorMessage(String message) { JOptionPane.showMessageDialog(null, @@ -89,9 +88,41 @@ public class StartScreen { frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.pack(); frame.setVisible(true); + + frame.addWindowListener(new WindowAdapter() { + @Override + public void windowOpened(WindowEvent e) { + if (isAppTerminated()){ + showKickAllMessage(); + setAppTerminated(false); + } + } + }); } public void setVisible(){ frame.setVisible(true); } + + public void setKickedOut(boolean kickedOut) { + this.kickedOut = kickedOut; + } + + public void setAppTerminated(boolean appTerminated) { + this.appTerminated = appTerminated; + } + + public boolean isKickedOut() { + return kickedOut; + } + + public boolean isAppTerminated() { + return appTerminated; + } + + public void showKickAllMessage() { + JOptionPane.showMessageDialog(null, + "The manager terminated the application", "Application terminated", + JOptionPane.ERROR_MESSAGE); + } } diff --git a/src/client/Client.java b/src/client/Client.java index 1f7b285..a3b23c6 100644 --- a/src/client/Client.java +++ b/src/client/Client.java @@ -83,6 +83,10 @@ public class Client public IDrawingController getDrawingController() { return drawingController; } + public StartScreen getStartScreen() { + return startScreen; + } + public Client(String username) throws RemoteException { diff --git a/src/client/ClientUpdate.java b/src/client/ClientUpdate.java index 32d91da..89c77fe 100644 --- a/src/client/ClientUpdate.java +++ b/src/client/ClientUpdate.java @@ -84,8 +84,7 @@ public class ClientUpdate extends UnicastRemoteObject implements IClientUpdate, } @Override - public int notifyManagerActions(String toClient, Action action) throws RemoteException { - int outcome = 0; + public void notifyManagerActions(String toClient, Action action) throws RemoteException { switch (action) { case KICKOUT: client.getChatScreen().getChatDisplayBox().append(toClient + " has been kicked out by the manager.\n"); @@ -93,9 +92,9 @@ public class ClientUpdate extends UnicastRemoteObject implements IClientUpdate, case ASSIGNADMIN: client.getChatScreen().getChatDisplayBox().append(toClient + " is the new manager.\n"); break; - case MANAGERQUIT: - outcome = client.getApplicationMain().showManagerQuitMessage(); + case KICKALL: + client.getStartScreen().setAppTerminated(true); + client.getApplicationMain().exitApplication(); } - return outcome; } } diff --git a/src/remote/IClientController.java b/src/remote/IClientController.java index 349297d..27fc06b 100644 --- a/src/remote/IClientController.java +++ b/src/remote/IClientController.java @@ -5,7 +5,7 @@ import java.rmi.RemoteException; public interface IClientController extends Remote { - enum Action {KICKOUT, ASSIGNADMIN}; + enum Action {KICKOUT, ASSIGNADMIN, KICKALL}; boolean join(String username, IChatUpdate clientChat, IClientUpdate clientUpdate, IDrawingUpdate clientDrawing) throws RemoteException; @@ -17,5 +17,7 @@ public interface IClientController extends Remote boolean broadcastManagerMessage(String toClient, Action action) throws RemoteException; + void kickAll(String manager) throws RemoteException; + String getAdmin() throws RemoteException; } diff --git a/src/remote/IClientUpdate.java b/src/remote/IClientUpdate.java index 853ce09..3788bd2 100644 --- a/src/remote/IClientUpdate.java +++ b/src/remote/IClientUpdate.java @@ -6,10 +6,10 @@ import java.rmi.RemoteException; public interface IClientUpdate extends Remote, Serializable { - enum Action {KICKOUT, ASSIGNADMIN, MANAGERQUIT}; + enum Action {KICKOUT, ASSIGNADMIN, KICKALL}; boolean updateUserList(String[] users) throws RemoteException; void terminateChat() throws RemoteException; - int notifyManagerActions(String toClient, Action action) throws RemoteException; + void notifyManagerActions(String toClient, Action action) throws RemoteException; void setVisibility() throws RemoteException; } diff --git a/src/server/ClientController.java b/src/server/ClientController.java index 2ebfe48..392e6a7 100644 --- a/src/server/ClientController.java +++ b/src/server/ClientController.java @@ -201,20 +201,22 @@ public class ClientController extends UnicastRemoteObject implements IClientCont return true; } - public void kickAllUsers (String manager) { + @Override + public void kickAll (String manager) throws RemoteException { int adminIndex = getUserIndex(manager); IClientUpdate client; + String toClient; if ( server.users.get(adminIndex).isAdmin() ) { - for( User u : server.users ) { client = u.getIClientUpdate(); - client.notifyManagerActions(toClient, remote.IClientUpdate.Action.ASSIGNADMIN); - client.setVisibility(); + toClient = u.getUserName(); + client.notifyManagerActions(toClient, remote.IClientUpdate.Action.KICKALL); } + server.users.clear(); } else { System.out.println("You are not the manager"); -- GitLab