From a02acd2d630a5b00f0b2751e5c1e68fcd03ac32b Mon Sep 17 00:00:00 2001 From: games647 Date: Sun, 18 Sep 2016 10:38:05 +0200 Subject: [PATCH] Remove the nasty UltraAuth fakeplayer workaround --- CHANGELOG.md | 1 + bukkit/lib/UltraAuth v2.0.2.jar | Bin 50285 -> 0 bytes bukkit/lib/UltraAuth v2.1.2.jar | Bin 0 -> 55769 bytes bukkit/pom.xml | 2 +- .../bukkit/hooks/CrazyLoginHook.java | 4 +- .../fastlogin/bukkit/hooks/FakePlayer.java | 1480 ----------------- .../fastlogin/bukkit/hooks/UltraAuthHook.java | 6 +- .../fastlogin/bukkit/hooks/xAuthHook.java | 2 +- .../bukkit/listener/BungeeCordListener.java | 2 +- .../ProtocolSupportListener.java | 2 +- .../bukkit/tasks/ForceLoginTask.java | 2 +- .../listener/PlayerConnectionListener.java | 2 +- .../listener/PluginMessageListener.java | 2 +- 13 files changed, 13 insertions(+), 1492 deletions(-) delete mode 100644 bukkit/lib/UltraAuth v2.0.2.jar create mode 100644 bukkit/lib/UltraAuth v2.1.2.jar delete mode 100644 bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hooks/FakePlayer.java diff --git a/CHANGELOG.md b/CHANGELOG.md index d2989e43..97627535 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,6 @@ ######1.9 +* Remove the nasty UltraAuth fakeplayer workaround by using a new api method. You should UltraAuth if you have it * Upgrade to Java 8 * Drop support for LoginSecurity 1.X since 2.X seems to be stable * Refactored/Cleaned up a lot of code diff --git a/bukkit/lib/UltraAuth v2.0.2.jar b/bukkit/lib/UltraAuth v2.0.2.jar deleted file mode 100644 index 203aaefffc9942ba2fe534adcafdbdd3520b0b2f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 50285 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

GZiO1_g#^_qWvSn(_5j zP|@R}PcOK{CTO4RS$$&3>YYWrsxj@i3vHj?Il%s)jOU@7*KNlM=E2W&D>%15GQHDw zz0loFNw%P-{=m1tIyQasv+m43e0~1Wy|FF@c6BcA_CDz`n6K6*H6dH z-5-*zYtDa;3q54)Jelvlf6$MYb0rdFZsxdsIL#)mJmb)NiRo=hZRg~6Ng7wLFo=-3 zcVvZ0g~YNiJ1XqIm4xm{nOPaVt!cZqNZp&m*1Y$)@>|tg_b>h6-`92aV!igBYWD&I z)tGA8Z+VN?9=N;ZiCo{iWz*j+t$+9U@3Xpl@^TMsAJi>->}U2kRwvZ@rhnPyZkrRQ z_Rp@|*k1ccQS6TGm*g(;hLD?Lo>xwXMj!|C3(@Wizm&rY1R^=_T6-1J^r&p`~7!2|JVPk*6;uKxsjc5%>jF+87cxNqx;sru1q&DTeAG?l*H#rZ)bjK zn0f1kAM*;a8T;JtFF&qhJGZO!`+Gy7K8FiF&t+`q8nB2RJukY%cR|&GEg9CP>zroJ zj8K0*<+|FGg$F)W9P>N+>vQ$@S$=0kpXJ^)G=4dwB=pM$vSX&%u20T? z+xEJ?pT6SoM<1u{Ri(G56sz(q({W1rM2ASeFSTw7+{XS5iCk#u^R9X(37- zY>g9Uf1h?yQM-jTW0GZ-Sj3%xENS`WhtrOmUDo7(7R1ZQ;@pu~$#9w_>Hoe(wZA5W z1_knpC$oAdr+!K4bV`VoY&llEA=T-P8RrKf-pPWKqIZWJPK`MGNm@DW+)2%MZ^nVxU%Yu9di^*Z9~ zi`4AJWhyOSD-s#zKKD7wQj}dGXtqJ2%IIby&x@4F2U>ZBh2{0%`%F{nSk0ow|1?N9 ztc`~wNm)|lYPF8@dC7@3^@dA3)|`B`^G?ArzjeHeW?z}4w{2pQ6OVPrYF4pnRX=x~ zkg9h%em3V-lDo3xk+8<+u3z{0*cq*OZ>;pUZDL=~YjL)XXQO*9g4}|V-XyC}-@W5j z$INBNx4vmuhx=M}Z)zWmk*(nceXW!AYwNz1*&YEt^6`*(Nar=!`YnIyk zZ>^mAXQt1y>mm`$%3`+cxzoTj|9g|mp1C)V&FeXJIIhvsXjxw5lH{T-7H^%IxbMik z+9tTr)n(?CWpo_qDr_+qJhZ!cQ!?yy;DJ`sT&z-|{w=Rz`FD zOFOPz@u6$RA|CTsk?)meok`wvceg?KpYNUNN37zkKA9EwU%j;YxQF#JW2s`vwPq>> z?QP+YO&#|%=H^w_={{LCbdlK<;aB(VRueO&seeDQ~ch>r33?N+V~&I zeP1Q#f8b7#&Aui<{)ftpH8ZxZS#a$`U`>xt!iwxGS1$@4I$jvh(C&TDOLnHs>SYf( z`ii)1LO;2EXXw6rA#e}-^)B%b8iY8sv95+}U&@E3_c|Yn|8O{*+IzC!N|7el1+> zvHGW*UxK%}9zGIkWo4BTZ`(6J`$y}Uhzy5iTOa(^=G}iR^O<`1icr(j7qmZ;)yG3DgD@%wEp7gx&tdpPNOes_!*cjdm2kM_z}IZjPCe`0T^aCQ27ldn&Aho5bl(X?{Q z{9}>EYCCrY3)CJr{Hu|6@AylVGtcfvNil9VaQA$oA5#!>aQ&5QCbGxx6i%ODG{;XS z@#(UiZZnn}_`2Di`^=;hD5YfAG_(Emv^miclioAUd0*Ax+@t*c$MI#)l4sm6;o|-^ z%Rfm`xaeV_iQHjVU*GSK7YS!rwoP4^#IyR{A(8q!yL?|webZsRE5<9VZ9PZ4WgDMq zO`*j*{@sUc{}lvRblbn-jepF)y}kU$;kgg*{@Y+b=Sw^DL&y3Z>N!6Tmsq^!J)RKW zpLl=UGQ&F>&-GSBcWo==Z<5xmdRgn^Xze$73;Rr_nJXBV33V8#cF(+{`lp)l|7L-s zStgf?G}k$CS7~0{$RjrGb7g@c--fL9N4@TJdKZ|7J&cR#nq0HT-evvq3tj3L+Lr%F zv+vz%(X9P}$0}4&Deu-^rBi`(wcbch`#H5jl)H4cR_)bS>4hc@%~!8{T=tnuR@gE?->$K}=An4)!|7ayq>o$f^Y|JnF1>j6$#;pH)*VaBIi&FaUd!5= zTVGbio-LdxeyOY>^Yzyk4;(ADzff*xqNV`w$G+Ce(&6sDY-?LAE>UL=l|IFhwWsM zrRU{8m;~=^DxCLlMOXHblLwc3_R7Wd**`qLU1y0;=51O=}qUfvLebd_uPCPRC&fvw6v*b4X57F z+hJ1S692YEuonm^s~yWQl~~)P;x}ntjw!pZkL$+?NgI|O=jE~BGPXFA@Iuq`y#Ix7 zyj7RGkC{cij;d|2^L}4_{c1fwOJkCV*lgSX4{zVEzw!Ui*Z1=EOcj#%Ju{Ll^3!!D z7vGKw-W2mZ^XeIGLFKhCKQC41Jj=8ET4kfQlxKH#Brcn}WADa= zkzEX1x=sbPiNBok`pNw%*EN=DIUTZI?^5Z=`uvG2IDX+`!(Q>&4DlKIrzSj@cH#Ji-!YrwzD%?EmAb`AZP~S1)6z41SBLEgYHD=& zAmN&E`P1aBsV{hC=AC;`d(cclxkK<&#Gwniey+=Ju_}H2>u`)m=lF$M3%S%K%Q(Fr zDO((2X+LeWj)PBco=??^;`pf_ynKV*x+}fUo~qzoKY40m^i;OXJgFzIlxSzo)H>hi zUD5n7XX;|tQ(va6O`WvrW>;a%WP^hjN+lE}uNO8uE_$N>K}YqUiRwPNygS{VcP1Hx zp1yeT?Delr*-^Juec{49(p%^^6R>X z@)HgFS+jEIonC1b`aei{!T-)vHw!g%PVUeada$i$(xq;Vcb*Y-*WPXYIZaTwW$7G& z)RK#*-=By$s=?dRb8zxhz3&fV_vk;gZQ~AId0ui_+KW?@KAX?=3e204{vu;CeQo@z_v_qET-}3Vo<2QkR zRhw0>CVY7GrMYF6aQmqrPCmD{#jMP%NJ_r>Bx#Z1)?a+#l^xSNlP%5{KQ(;QE46KA z!266x3-?yN=;dPga`{KeMeFmd+h;rxke{_rPO336Yt*{S29D$i8gbrW4q z*eLH`sJ^B7;r!Qks${pHn-uudVr@H{2$5>+o!z z{g0pNz58*@AxuPq@loW&LpZ;9m(fDK1xA zw~u~7I-5n#GM?PY1wvoBPVV-aIPxo=MY`VuQqZ7{pT%X3DKiqCb9(}rSF z$0FABf1Eu3!My!Dn$OP{=oKl+33|VK&VjZ$VcZwy-COo$uj7*Rj;W4&D{8 zD%cA~(5`!wa&c-{b+~Z2!2eh|wH8qU(Lj;#rG_mBq5@Y>O%in7(7++Ky7q?ZPEPI9 zdAoK8zWkjiAHVP~$KTVpxVFu^%zuIZ>gAo~<|n0`rx)<;u1;M0f zKA=(8wXk#H{*3~XmIs#k?-Bd!pn}!cH1q9nxh;pV6#)XN%BUl zRrBjb8oQ_4*zPu4F5Z0kYSt~*!$}sCxV{^2w>f0;3F_VB#HI?s5G z#XHthn_3hD?;S5LTw_qul4~itcCm)zv)uesdXZZ^d&D-LoF2Vxx_Hqnhc?&RlqX%g zUfXSvy|weyhVVCQ0t3!Z>9Snq8TsJe<>J>$draG!4=q?X%PUS>f2UINr7zbu3q^H> zn)|lD-q~BQXuiQ0j>+MrC0?fvY30UE@bGYEo>5SpWq3DX%a-*;no4#vn z^8YCL_1xB@tHYn4tlAdGfBM*er#W-=v-{3$W8YMh^61AbzrA5I-B+Eq-M+$p%az2^ z&gxf_{>$E!&%v9OSYOT z>*?8b*v~ri$+vjsyy}dre68Q!F1so)YstF5tT*QBmi+0n-G6ZtXZ6dS-DZq)Z>Xz2 z+P^xfVzNTZHvPS=e_uX-ar4N-yi(!g^A%O6ou9DI>Xlpffd$X)qTVmhF5X_U>WAKh zi4(U?tg$GtS1@%r9sH&;NI0NeRY8rdB0=$<)9qRRm{&$kz9$fq&2YScYd!n1eoYg{ z=wK zMVE33`*&sD(4d?KOG>tajgM73FcUD_|%#F{#ao&+zMA<1=U;hH}M zFSK<}?DI?sSNbjN?Ylx~-h^%HEA}uOb;;ci*Xa6Q;4W0Qo$<(bWx>fU6-G=S53>o_ zce%)@94TRWbevb=)x-`-Cz(EnGiD7lx?Qetd<-`e*V_w0B3diL9@_fD&_u4Psp zjdf)ItM_hUx%{#WrF5;Je~&gQ-K|DpK*)^idGCCB>fK8XKFmO1|X-dPs5M;4bq zIv35We!ug%&2!7=@8s+Mf0AzSu2`Aqkg(`32lMHy_UP8R=4wRlt8jsrIz zyL*RaAO6Amzr25Sty^JFWQm1X=|d`=Xs2> z&O&?h6D*uAvu)v6%FE;SVoxJW8_Tgj%N|dyIbZzd!dKg8XH%4a89jZ-`1#f8`#1f9 z^`fNg9=UwEb7FP*GR4z2?Mzdoa^B98U-u(-{k_kVc0K1glQ?hJjp)9=zckpzK08g) zk@z7o-(Yj?lY&M1w!G6%{N3^H`|Z5N?^rlv1SRgS%fI2Onz}LI!p4T|pxv)~ZY=+J zbJiCPsfZ)KeG9HG@tJe(XWcsWZM!nXg&$n$TGUf={ebPA^v_QAp9C%DT2>YZ9v2ET z(c$iqw>SQvX(xQ4Y^~ev$a>X+j~X+-_U3wBZ0CuzQR#MKN}ZPV+q!b8W8A5U@mzOe z)h}#pJ8!yXv-okT^ap}+#?Q6wBZB)s9;)Y9khif*eMM%4mch;JuqmsODz7aQmZ)gc zzcJZY-R9PhQ_*$@>!ojAJbbY7*NmtAVa})PVmHpZyM0;s-?9X2?R8Nr*r!dOXmI*v z_s7@f9ZPBqT|9rbP4O*xTX6l=sbdw%ENuVXcW&BY?qQwu?AehTt$qC)=kJg?VEyNM zX5;5A@*k`UEQ^lrw&2xJapr1GnZ($t){(^J$y7KsZ_n&^)xSK1GK=LWr>$$AVtM_b zW%0gdO=Hpb3CDbR%M7YdB+hzzqQ6=ue8yv~V+FlG*DJS5&u|R` zz1}`_`y}?iT&(So3j1i9E1Rl%G{t3y_EDL4Vt!Uhj^i8k^yUTsE>i6-*R(YX_`CsS`eNo0|zGJCSUXq{Ge_Ri%`dDlho7`k3J*%T6+>>)OnB``dr?K96p$Z5A)>NCC1i*}xpeB>HCakciQgDKk`qK~$&`0Vt=FUCCEqXJf( zTDEgZ^ygh`LuW;nu&2(|o*kFA>suDP-(w#MXP(+z7Y~bW$F`0vu~oZHYG0W+NmYAx zchT9sMbD+S@0oG8%Ol5?`H&@d4-ds zA|Hj>xm}i+Y|!AC*z4V~*gwJFYlf5G2dS8C7ArUZ5WAki8gy@;+2fylF$YT|!ZTZr z`>Vzr)@VLbz9T8RCh~>K-P^tCe|Chmt+=_!XN&R@TjM#|GM4#wdlcS8xn_v-dTz@; z(IjB2{ZKA##p885#Qg-BqZjyUzTCF(L*-S;lMlD~axOW*@%6O-d!e<iUT~G~P0I z5B>ba{+oeH-z$;$3EmQ=EBSUSpRk*t+t9W-e!@-X7P*_#dG~R)9qs(c9P=$PvuMBP z9HpNJv;_AnZMyzs|3S$qvY&F8PpgVwE4`!ePQ>@6+SUW^GwtpilRZ?llyh%o`j`KT zZ`bi}cK*75Nuaph{J6NQaUy;0;zT)DB{E8Yc?kJ`_+gTf~WCRHB(D~3~{eyK? zvYXKwch+kxXDV)(&zm#vn(ln%FK;*hpE#{L{lbOCyS92SxOBTN;K0@Nwk=T{SG;wc zb>D8j9JgLEaIuT%Dpo0`st{=}w_{s>FqYm?D7RrWULnPPb;r5=xrw@3f$`mHYl1ce zB~;$K-{B?4bICc$bQWvYp;=q?AHP|8?;H2-({?ugPK~qwY*G8#;vjpI?@2(U|26N2 zLGv|40<`wDvQG-x{_KTAsbBYR$qBb?H#_R4y-YJ%n83`M^xW0Fmih2bQC4Zz8rIt^ zXJ53)`5g<5`|A6m?U{6_vRnMZ9b#)&lppqHcoA9t>O$jLE-Tis_!F9)x-Wz#ls(v~ zvFGTHr)Fm)o-(dDEP7*E!fJ=tM_+g^dQ--pR&-BEv2owQ+jTqsWHL_^liYaa!It@p zZ!3Oeig7*Tm2u>r?>&ckmz2X|`rH0C22B!vl2^hVvhrhxWO{nJ*PaQn87ksc5i`CX z?iJ_MFud%?%Y0q=Vz*u6)HRY@zDVZI-@79{si{nDf4H#6x5hI(@$)k!RMc7bH`%si zm~E`qjOAJ<7!mp^KR?LaDQb^cbzpqExblJryB>vz3Wg;KI3Kb2v^;+6mAz`x!77pF zM(IB*_ty&j{wSnnZYp+pkz%9nJ);LYP6m$!r@GnmdF&B6a${DDSa4@@+8pj;!DltM zPXE|)agwvqYjL|Hy@z{toSndu|Cy^Z{87~_rD-oSxYm5o+xESkm$^L(y<@$)scqRY(SXKv)z7L{9$ft~igo?M ze?bc@Rzyi{4RL-{x?|?673mEUmqaucJ8nGxh*##k?wQYzp1lv-PInB z>Cf2S2R(grW1s7zwK>uL+iE9A9a7SZkXnC7?_*iq%EeO~#MC~u3+vP`Ke9XGom%Dk z%p%dQh?8?e?i70}YHTq5ptD=EyzFp@GxN`|Uyd~q2irR)J_5Wnaj`S;S;}ppwVLejJsVSho?-dY z653vAqp`6;KUiVfP2v94-$W~S_=syN2N!g?b*koDEc>3>x&Bc$-`mgMlUJ8}CNG~S zH|+=8Y;!fQcV_2aDhu5|w0-kq!RyBseO$4l=*A0cq5DtIU7pa>y27OR>H*=q-&M~o zXuT#gNyLX=)G%w4uJ?u(Egw#+e}QXnCi1M>cxKJ@e$Bc+A&=54=G2&J@cOi}Y(JrM z;^*&m@~fon#To81?Vs{Pw9a?;ano1oHpjn;Kiiid)Z3q7u4XFr@sIeV>3eydeylz6 z{zLVyP)~nTA=T?n)0mUrT!`#kKI7+A#j_W5iWVukEYQ*ZHYe&=i*V@ShnGZK3yR&^ zmuoJrQfk-tU$9V>?X01ciTjxpn-w3$LQc3QXN$|Xew}jI>sQB$hS|>xKFFUvG&7yo z;&|zo)sszrtj}XiDv|qSXL2WdcC6F+tRSYaL&@F_`=>qSDWBL9o_gG7TKSwKUF;jw z@^_xGyTdGgZQ?hsYW9~e9tYi?E45~+Y5MxGYSx0e4u@@3mz#^vsgsO)k!zcMY5nP& zVQ-c-{8*zde!+`z3vb@HoL4@JV-R^`UqJ^BmkOBkz9e!126 zd!t$}<23&H2RyjiZIZuuJbb#wLCu_Fj!S{uuHywyK6flDNG|)nq~Y_fhMO0KcVx<~ z_kY|gn%a`Dr(P3n`OsQxg8SCfZrQe~ABqm8GEX%)d-g`h>NW1J2ej$;cSI}6@ zdv|Q#@sfYxo9>zKzVu_)-^a7xd|k{WJ6E%&-#9okeVKUg%s)RkPHPvaZo711KkxO+ z>KApkJr?^_Z~gQYPwkUAM?)>zSF_gdHW5^f-VmI##!nwyA9Z#L|Z`;;WroFr@B>de9tG07#OIKz^Z(n_L>LFpd!=F>Q_7{Bce`sF5 zpzUeBMM?J5j8$2y?5h54vnVRCV;w5v> z9k}3URexl@#t%KFH|Hy6eS5Q1_P>*n`j4$EZ20Z(_4WgvGhg>Vd@m{T zZqeDDX5aq*=lI64N~?c&-}9uWY#d5X_Ujg(-_6iw7!ok$ck#!!=Z{?P|K(F;DQ14e zl1IC&`cL~^mVZCNb6K~yZA*6JU|^6&nafI8;*YXMpNoNk0n+j)NG!>yoe=HKY$(t= zU-S>Z;(OmWlU>VnZ>>x44$s*BOXFtBjb*;-iqn(+@BO$bg5~s{Gm`se7SBlfv(Nkq zgIz|qs_dq0FNUR|QoARun|=IXN8kH(dfb^V9DYZ9#l-h>8T?YdnHi$W8yED+@=xB+ z|4X*qn0&3AXURo9hTE%7^mu5P-<*4P+SS`ncILgC|0?U`{~{^n3XwL=jNs#w{@r9b z9~QVkC~mLLti{ZB!t5JYu{oC&>rJ|tE1y|(`nqC$%lX#x(-~yuN6q{uX+PIiC08VK zjcMbRtJ?g26zrUOHyFGvH zGm}0uzDrrG2VU$^c`}#5V&)@W;hLbd7i&+2^G+xB?O5Ht1Dtr=Yg@b?FfcG& z1cwVFlL&(d0|y5O16xS6$EJFwcc8H#(B@qc1{S0ZA0Vc$Ylx$+r=Od?ucM!*n`>~0 zp0C@#Q=rgAm=d>dN=%%HDj;k!zhaCF{p6Yc4iC{N)>5Yx9f~*V-pL*n&pF?Yzzz{d<+brPC3W~2!70kVGi8C*v)!4`G#6K3j>2CCj)~l z#1JU?LJ-5Opwx8GEe%E3jZ*R05%0jlz_6Qxfk6ps2!vWChQ+Aj)RKV2;^OlBq7>}r zA>S;4>P;(YWb;z7dCq)MK{LO-4Sa)ePcbC@GtU-DKB1LMITT z+kt$RCTiF)XJWSl-tWb7{wuoa$mjEc&f|nSpMinla5i?+A=xwt`{|tM#v>ni20G*q zVf@*A5{$>59+A%uLN)w$5kAAQo}h;Aa^!PfK*tXuT>iEkpW(O;BSJSH`P>cEL^-bt zpZS<)$Do^xd_DxIGC{aJuNK*4j8i<&4U$CKiU_Ka5C$pKV>Jjfn$i|Vc_6Qu2Ca-n z81t_K)fn8n7}1@EyqXBr%sErAnu%rYHM*I|6Y-#RNC5$P+OidPez(Alm7&lE&Ii=?{Yhw8O5%hN_jd{VEG2W#_fx)PcWP6 zxzovd!^BGF2SEp|B(61|zQ#D&)bV7#SHd$Xvr9Z2j<${ed6(_geo*@FPSJzkcfRV^ zf#ZMkB<*#F85kH^P(1F6mcT&qUyxIpo|>nVZu)(KnmPP@wI7$k`t@^*OQ@d%w(&>#qtL~KxwcB3(kePfSvnyJ&PGiHzb!}e0 zA*!zKdpOhN&u`TOopU>M@TmA3f@4xH^tnRg5JZA82nrwIR zb<2yDS1;I~)^HAdR$$*F;Cx^6|EaG==H9;?|AmOiw4KvEY%(Xe?VF3yae-TFMO;PR zzPNOu(XZ{^n#3;tca?Dw^DFl0NF?3#YMfqt$0#M{w?vU2&uqncxo;JGliGBd6Rq4D ztrwjzn0X>>&7^td=g;xDPv<_@S{Lz5{E(OWewT~=jRr|Pm#^=7e&>m5;?1gUK}Ki3 z*DXmDaOSzI`tZ%{ZHLb?&79@0vbp@jC8MJqZPhPQ6GF8Tv+Y&#Z^*lz+#s7My0{}* ztH-lV(v@%irG&g$iH^C;IcH7Vv{~xelKC?de|LXfvMGsq&&H;Izhq0#obWE$|?<B4cOAa>zV#hjuk6bC9e);hN-z4-cS&QR z;+G537it80ZB5EfT89cpC@+cW{^Jz?O6c(Y^(Iz(-|yx9!{KK5?Bns!Kb()wv-~tv zoqucZvHKb4_DkG3EU>UGx*{T|+JnWm$LwQp#J3;(QI!=EUkn^q?6`DTdCfHwqY@jT z+p4xY@kzQGMy^{j{ZnqRUvqi#hBGqBB#3+agle%VvsHKQY`Bx=ptttc!ZjDd0&*Jz zx=+alU0-Et+BF7mDo?m>mVyoXabFEafZkiBayz z@q?BXA$wSCb+uHU+}q7}vZXLgZ8M|&>B$cc@_$%-WZu=u>bn>2TD_v_*Pp8Y3g8N%ek%U8|zHcJZ~mIb|Wd zj`QTnmrWD=X1m8K96Tpbo6-`PIcHz?e66?7V<8 zUlKc_TwhKO4U7E8`Jdr@)U@Yi=O=K^Y>a4mdHegk;&~Z|w=4cexs}J9ohFbJQ8UZG;Oc`kx3|)kYnR4wUgcS>YrVLy;_>5M ztCy|GnKnDqRM3Wh-sPZq**AHv?k){3|85krbsMiyi%?ip_X4g`Bb6%#I$p1ql^r?V zm+{TeE-8cO;*zP4jwx&}{TO$HXJ_)R!vfx64U*|Aww^ikmS^$WlcyfAnHc*@ZJ*eo zo-QL-kbC#c5&tuHv!thOn6hx?k-oHDyR28rnf_S95zBn^YuHxid3hJU3SL>fPRut# zPw`kle3FXcvAZp)5!-rpZ){S!UcX^>V&tYd9x*o}RUgY~h-A+@oq6bQ@7j~m#$x%i zA3HF5?qOT4IkR?|;YyYRvZ@DtpYB+!d0gX_m!ihmN2|6zT2;FJPC$?QQR$XvRg!Bn zl2;V2eK288-rUtf>z&!nylxy=a7VM%$jmWyMe&QZ;l(oZ6qlJyaW<1Uxc9}B4Xufl zsjH2)akT`w759Hw6V|NPlr1hHc98GQqz%PkrYzr5k8GU%ZL6`I`J8z@nKz@FtfwB} zao-^R-SdXK-nk1i83gKXD;hjoG4CaBTpS`~BGsB_YiIH8tDj2|B`wk=dV9lUAYW3A*Gr{Eorp8SXmE;I?3-1uHGthNn`zM10meABnziWh4J9h==`SM@#!@buEo) zLVKJ=gN?nfm{&U;TWsNZ*RQhhm|*h2MjVL{OIw!~~3+syOf zwE+T_s>-}cL0cEjlq^5<{+w--;gP3?FBp^AOs+502)O-r&e<7L{7ue(%Us;|s%@Fv zqWLZ_&6cLl@j9e=~oBWn>Jf4!!aiGZWn94kklsd0OIWoo(<_w=n3P@8 zwFJIRd3uG4 zI_U--%XdCqWV@T~y^&7tLs#xP;i9#%T|egR(SODsI^|Hik)6;|0ZrY;tmFTk0+@Gx zR&aQ;JhI8DYwL;cejvHRq&q&+B`ejLCS6%i?-=*q{(|7!pQo8^9xY6IR z-?O=2%D=cPejql&#otSH8p|o}ZxiOYMDLZ|uT&-Jb^QDa`CVyxt$Dg)m5f$4W{dGMmw@`vRc7IP>M1>T8 z+oIY^n~)pxk9~}==zr)P;o+Y2bB4gWTa%7=ws{%RJ(yk)^)HZJJ+w9qSIVNV(6;J2n=V=}bFIcgxnC*06=Y%DV%Pttj`M>SGzWd!f zD^>nK%yNQ4m9K=ELO2^I+zwdTWPW9SLqI*J)0{|a@#B77N1AP|ji1l?dG4*X|Noy~ zIUBe&G&7Q3=u56UTY2*A(XCF$I@fc!?>K#@@Lgn?TVwyjR^NR`AG4Wn{>)Mca)@{i}9@x z4Gx1jUN4tL=!jlA6!$pO*`Ot8+Ogi!yw^qXwqJHy-c6M7ncHG|@IuziP!68*MJpc* zuH!OReshFVsPjtW_0{Xv&c1o%?61W)+M4v*_BofeynOYptmfu}+lRs~oV`#T^481K z{KZcNzr|}sYb_QloGJJASXC<(5I8C#x{e#OF%`j*2|u$>n=1*7Ep+&Q$Mm<&@Ws zdz!epmPwwI$qzlcT4>=U(RWJv9SnL#TW)VU({_W0b?MDdd27j=yrRGg1561B7_ zYMOC)H`ltr$ueI!EL}cskX;`prX?- zM#-5Qd(PZTGc!u=s{U=wndx{`X`064S!=Gawj0?=-Tk3o>g+0TC`CX!B6x$>)C&yp zOGEfA%jPC7*{E&0h%@t>vZ(xHHs|TngroKq?RQt@`6%^m#mkp$X9R9fICn4PBd48e z(B-qbc`tq!CQ4WwoTYO{^iJ4ENek!YDqH@yr^Y5-3`t2*{63{i@?Dp$#<|?%lP4YA zyI4uPT7Aa#?|;<)73|rzXi|k;wUDkL_hlB#PPfiIJLk@wb|j8{YmxhrdsiExBqJt9 zeXY2@Qa3Di-Ba<3jaF(+tHVxSJ7RiQTE+BmqSvkC0vyJF|Cs!rm9bRP<^S3(-Iq^g zeC@Y&`JnzjYUzKm_W`cEzrW{Pz`Q(TshNAa>&(9l@}5lRkJYSLuJLlUy0A6Mnw-yWv+3`L@4_@t;d1Ut4FWuiUV|hj&;0l85{I53XwKH_5AX zN?lT}Xwzvm_Zj<>#LePUP0s2}_|6r2(O{QBQ(n(PcJYheHCNqZ1&--T#YlcRe3W5Z zMnX*^$G#;jHLg?@SWqlG;z2M5z9p}RqMfL9ZbIS4i zrVl)`PXzZpncm3sa8kUQ&Z#33b&i7Nn!#ps%N!(sN>As=dVlkr;!MNir`P?~2bEpV zzg=a`VPRlk=fqcbNnw^<;7$Rg%vuX==jItD9$I2(z^US>Fjqi<+hD>8rNgr}NStJA zOb`mNHa4HEW_#DUoL`Ztt7FHbbu)H6Y>U2gLCQhbYyO%~;t_Vg-Ym|KnD)G^e3GY; z=ay6L?{3$=w|!poe9rrM)pb9A?~Z18^74TpJe_3gabtK_)L{pYTF^=Wa#LJMF1 z>$z9uc(!JqQZWA;aU#GZa*f@}tQ5NjrzdA!4aI&3IyL$SU%IgT25(#1454>Ngt%@W zwB6l$f9AH9)_JKyUW&mBrn)q7f4?4L=Ia-}Bdd#9Zc>5XDb2}icbRGIKA^kP@#53N zV$=BpPo(N=q#g=sHQ1Uosr6!oPqw4Sx=8_@T5U163&c;pJhf8kq0N%q5iRp+H013TR1xJtv)vE zZanAi0RMl2^W5%k618=T($>h>%-PmD@vhLfg!S5b=O(X}vidmj$YmviT@ETc+81uV z>~ZSjlGM|+r#$tvH%$#-E4le-+nwwgk1I|;DRUB@DjF?kGHKa%-!m$mCJQ&#I$es? zKJ6@!&2*zb&3=}|wA4=x7IU9fa2FOyg&#L>YdvMgDP7o*__D>>{-K5yPsZ^?d%o1Z z-Me+q)*Rn5aoz?~oh$d$7YfIQYzsLZYjYxbRci5M_jJdrsvqR17Wh0kZ)&@dL9XG^ z@n)W-l5ecP>hWgsAO3X4<8pahYfzGfxWnhrZ1J}u2^xQGv;qVs{$}a=*|ltDOedev z$7CC=9rybl3;kMXDB|*~V#$5i`^zG(H6%{zUMLxJriSI4^YjFc;-9PPf-YXkICNQU zMzvED=jqfu>+QLd7VY2Fd8XH*#eWuGt@GYh$DFHQUY%g)yT;E*XQPd5_V246`xo-h zXp@uPZrABWf8frR_9F-R1x{2QzOZA_^G7^~o7}D|R$gg3{I^}zMky=Q!J)ue zS?JS>md{FDtX@@CcS;q@91lI-;Su;MI3~;WwdGuwcXyWh$;_YfVT$v-FD16heg8J| zyiR`oWG70mgU&OQsf?rB>3B~4i*U--^t&f}XmA8NN!{JXB@ z`v*JGlF64RY0TSw`RK~N8E==&2#)3TH=qBpjq8y!XSnOP_Z|h4g@oi^+dPXnch%)+ z_BXzkO&*NOP3Nw31(=8!hiT7Rr0H?Tl*`+(?ORKu>Wf{o=P~kpUeV+JYxdNZ>q)G) zR?c$YvB2uD#na@q7rKoE!m5f^gr8Y7@t0ZE`K9{>dV7w|dG(s3=BZA&kFFh1o~q{j75S~N$bNp)ZJ;Th%3-={rUa^aQq z&c^0PuTT6)**;@We2r_{F}3Qwb5-}fxg~NXG3S%mqrST?7yKSR5%5x%wztjtv&P`v zOWW{C#lroDJPWU0{^a7>$NuEy>>X2DmFHa(53aDRuxwqJIHgfrqCTezt&A^(_gXuH{zyO@$40~w@3W0x#b45RLx}hw$a#R-toG!#sH48+;Yh$8@+34 zTl!fazj!TN<5eRPKR>ahMmT=HFqizQn}Ic*>pP}4Z9aNp^$+gZC-43_bm(@<2eVx- zGexfKdsgskc0G9Pd&BRxhzK?Y22Eak^^+WC{RAJ|h15~K;jfE@Lq-1IH9Of>qPcXb z!zt~hHc?zGTpT71PMHg5O>F&~Jaed7!xW;OMaMwA7 zxpELxS;&Yr3vZqR6QnqMtRNzIT$@Mg}`q?9u)uVzh5$g4QnqWIZn zMpGu!vNVhPVxoq!#u;(zSkv zch5#DJ^NsM{F{f{>@~+l4hNWoI+z|_@<#Z&>J*K)9}@Jsjx7-5W;vri`?6ogi-~90 zbXN(!a{AFJ6)kn$*oWtt5NE-hqe`zfw46{m`q*gyJ=T|Px2Ev)e980@E_!R!_9*PE z`I=n^6Q>v75RJ@e&O6Ldqbpy^hb^9VY6Mo`t>NA3U%qnpxhxl#3(k!G-*4%?{+%+{c&XZ5oocIq7TXT47iU>E zin|_Ja7$s^S03)-BFpvLEvjOU#9g>1)O7R8UD>5AHRm%VKb0h_edF|aqSmB4#jWLU zW#xy5wX|mGY0qt@@Wcyz zREkTQ;ib0PZOW2sZoZM>E0dR6|Fe;rGlBQJ%LyfxLZ>6zHg7AcrUtxEaF|u$d&F~( zU*PQfvHt?^OtsFOSrL3Bx?=VT3nnvZ{mB_SKd|g^J|`2GVIwfEv*LBNdyUNGa>f;!G) zw`X(zZ)x8CCMbdAHgtR7izxy)L+>oOi+1 z*ItY6zFuP6cd32y3m?T)+0ELoB@W%reV8iawmInAnx!q9`PDC(X)<$E%J%JA9l#av z{?o3!1$h}>i!~D&+QK~^IdDDi{45dv-jBDhAVAMymc6aUgVL#I7S;)!=XvmRbw#De z**jc2e`TEhu*oWDp{k|GC#yN7o_nk+mMylARrgkoe$;z$OVJncZ=daX*0fB0C}Mr` z+{Vuqt~rlPes-@?S}?~=xKn0wK;y{>HvMVAhP$PLFLq?!Xpqck<+tu=6-v8g9Kp)F zxu8Ys%;FWteos-=PqNcXX56P}7k6Cgk4Nb(U!9}=Enm399*BiKG7Ec{zeY`OU22}z z60Z&OrUtJx;q}d7Guz~)m5?Qn(!H`IbHS}8f^Tz-w{7w}^}zb#$+AFRfn$1N%gz59 zsFd}@y`B6eY`&|xbvsAo)x&xYiPJZ<*ZQu1^ZmjN-Xk~H8{Ejhas1x_MQxeB&-%Nk zaUo$*L@`pI=ptG_e;((vKB`Toa*Cv#HjS?vxT7fIT_QFi_Zx!iR} zENi$Lbv`|?v0Gg4)xJ@CYt^JZY3t)8Vve#}?c#p?|6mbg=;JUyUH$a`3pw)`d(>E_ zaL!PAu;?m3*N-{=^R;#{m$8S&Z276TsNCUDab@0*Ltb3*|G+~{0sgk953?~aIPei) z9j4|b7gZLN=sP)sC}?#!n>|MK_^*HI&u%)0Ppfrhb=jz_Rkr3v_2IUzt|k#zL6HsJ z8;>7ZxAFU=8;duZzp*V_yfLwV<598bkT3S{8)w|PbLao_^5V*QH*emZd2?p@GwbSe zAAcN|-Q6niG^bLgb&^u~{U1}7oH(&h^RD+%6&F?BH*v$s`sby!h zFnZ;Lb+$>1f|h*93|L?JI?DHU$;#;Ub!!9O`Z`NZd3#AqWlQDVYe6U6f>Ksbo-tvL z(98*!%#8Ns^OU6O1?{-L?y}Yz*V%gCqGw;rK6i7ONXYI?kKMm|qs-r2ve|O;d5}z0 ziKkE3Yqi!_D^3?@%q?|^P2PQD_6=37b>-h@ESWNcahKz|SmnvdO{dB`y?Xi{TEFsm zC^B6@)_8$;K&9Qfwb56d{=Y1myUO+Gan&PBL#8wRJ9^72@ybQ>g#o>C$%a)cFIP^u ze!bD*{gYi0&tg_Gbm{68v-vf?PkUJS`N#Tz^Y;I3L#&+tZrttrCUZ*t1F`mK!d z?_GPNEcg8`(_+abTjun%vtsjY}$hUv3+`q1GzU}Y#&QUYfTn!Uq zS88+gz7T1wUf5cHeAR`k_ZP$-j*Jy7wRiVzkz0RdBi>UU5jICG=Ka5 zFNS{uOM?zazPOq4+e+q6@qPA<|9&o4{50t^=brQXi@2otB83}296x;O(aRMd3T!0q zerJ!-4hnb}*mFKYMwME&e=w*}dE1tZK(op-o%F}-)A!u>nv zPSo$H&fQZdV9$Q{&NJ7fuRk}Qzp(h}qT(G_mW7m`DTsg9e^vLiuIr)T>lGIktSaBQ z_|;}HiC=aJVq*6FA6=i8Zjw*xZx21*VRiF((x1tOaVw_pC=d>EudQYXJzjdRcXns3 ze&QFq{V7+ztlKS+`~B+=zO(1ozv@~b^;h=6=Z|heS?5C!uBdqS+{xl`lIfAq@9obo zzW8}>XF<-~5}w0pzj@pq&S#4|^!oSp`wz|?7rS@EXhUY`nV$VK*^<{E=6e$@xrxipFYLwK^-@$kFadbXg=)Dgdq0zQ}F6;SqKPTqBe5qQHRIztg#C6NF zlDpr}F)Y{{^O)zzuHV*&v^Sh|d-J!@)%uF{tVeyt>teN%fB*a*E@)MdFSSSc)UF4Q zk_shEy;XQ!wzsz0KdRlgRNdg?ZT9@atvQX`S6nlH&YR-$?TgDwvC96WwQH|tP2s)w zhfk7qe~-g!qh{$vyLK2daa(P@-TAolvG~E?r?)lkn5g|uOYchDN2!0#_Ob_N<)!i` z*LY+YJ+cyu?Vo%6w*1kx{@#Z-zMXkoX~z4ebVcR=Cvr3XBo^Cv&9l8PSR8dI?b+(z9M5Npi#CFH1jvRi6L%v_Bn%TKALw zY#utY-{|(zkj%ve|+)8%A9B2zpF|yYn~R%-G457i(^s2 zw@DvfZ{BFkRU&SEG4J--QVkJV6Y=wNwm)~xxFQnYa`#7`DBGLWpGEb`Gybyv39{B} z{FVA!u}7z=?uFIgFJ2WgUtje-JK39^nA|++xS_@IQ^!7JYDT@((|gw0{qAj6!u30c z%L8qaBJFwhPgi=dMY+)U)=!%g?c&CA-(4KGot}3?NOZFN{=EOm+;&s9vp%};V%x=x zz57xu!t~~BiMW3;!A!`_`kTXK$G!3ipN}P#7H(Z%tiV?#s@buX^Zr`*#ZS$H4BvYm zG4uJA>#QTUUg|!3VR2Ed)9n{wA8-6W+!XzRE9m~B^~INyB1GIw3(d=?zFKiH?V3!< z8e4ldTlKqpJ8tG@#TrGD`n=SNeUD!nhRmL6&0h8G#a@ZK`&Srntrfc~*Sz*~)a?zcT9aKv%4Mdq$H)BN zC#<&YT5V66Wqi)zUs~Z>k0QCZ=TuBnpU-ClE2 z!=(6x!xq^ccAUGf)o$gx{`|}N_S2W=_~giZ-`kqKJex)7ir1<31M_OR7PglEvel6( z{p8J)bzi|eXwJGPht{&5J_O7}>YK`2x?CCKVd|I$&vYcJgkG zwr~D)xtE<;aywTmt+}xMT!rDwd-*ed{`qUIb7SLjmQPh--Unt_f314_u=$9*fm(IC zc*zR64T66^|DDBtwpsSx!iY0l-_H2EdcAd9=>JzrQAg!;dk!o+&XzE5=SFtE>a_cf z`FZv-4f*yV*}Z%8RO25Vo&D^z;FD+@iMXlVI}T_6Kftj?YsVeV{1dmD+_UY~9z1NU z*|=l#>U$+M=09F|{Q2N|bn}GA_CFsx-2AfqhV1=^(MPtNx0kvbem*W7xjHv2`SAP2LISpW@2x79+FJLyvOeCX zyzKBfu@yJ>I!A_Z-`FCUDrU2zVeilFdk@|*TNn3Z)9FPwXZ%b17Er?L7u&d9^!T}h zXRK9!AAY<&Gj_t}-KH`(wR?2il)rz9J<{{qTrAn)x9sMN@2;-Me;BNw$yMww_k-pA z->>Npp14hS&ybDS#j6&ZS0TQ)Z0bk%-|qVJ7X5kX&;Rk_|Lq<&l0mwX4||Jaj{SYH zwmjfA&w0lEuS$f!&bxE3Y3b@P`y*F>2>9>$ZTN(z?@C>yw14%RJ3TWdtlGDt)M!8N z^iO;-4Tg(n%O1R|##^OOQE^?&;%@0j?vgnHOYH1=WOs7>?#qen(zoH3b-2^78GJF} z%Jp>_)}@CtEXwaFZ@9MlVa<~lznrhDDOM$cJOs>H|vi7UxGB0 z^v|zpm|A!`{NaSzhwDlV!s-tgTz`Ch!-97U9As96*NGVEm26h5zQ=mJ!1U*<${7oj z{TD?~*JdtU9zA!KMahO5o?jvBOE?eyt75Zx|MevQysMx8cX_^UmVSJ1ZtKy)(kHjf zD+KN=wB9Ef_n9}&Tz3-t{Uf5<{ZaGk@-O)R{ld08?iKqFk?r^NFP~Q~3tU-sWAo{s zh7-(+P4-1xe$8|0kHxJ6J?^gNN+yeobYnE{Jdg{MFQ3W$UyPY+@z%gMsxe+YJDb>} ztMzpy0y-8PL)Cfj)A?#>Qn~&&p3`rCcJN73YMa92 zx3#Q`GgjV{*mildaLzx~cL~4j&bRHT-Vx4da>w1Y;7IKmQ;UCvZ#c6gf8Gh)eDFXj zhy3gb+^M^_)UJNCEQ!fEcU86t8v3v85_p1D3acKf&YM18G$>^Il?{$7|j zHMXI2qhfmDpEm{mUvw<~s+|g*U&S5Dy|e7-_-*$7yyeDRIs?+y; zJT95-VC!@LmoM9*;JLdVT^C+IZ=vtvrJX;Fwm!6$nK3_5WPkYl3F3OZi?R~S9xN9L z@$`x4ot|&3mDF0Q%hWBubpO$u`O&_GrVG=}WaMPB7KLvY5)CwYwtUr&vS<4mpC8>M zdyw;ErlwhV+59ex@AqQ_tt%c@&)GH0iobi=oU)^-=g)a>ob1)>db%&0JMn`#^Y;bu zSG)TIHWoc_oAZG~x+Bpw@BER|2aHrN?)`S_sl}be6`>Kev*#UXIPkpk!r@i1g3-&j z{SoEsF28sA_l6Z>AKqm?Ydik&{yoJV1-Df1>??gB@#@++NjCBBV-Ggne#{aR@z;Ri z;_F?e$EO-G|I(ZBZ7w+&wePW0&cyw{LxaaD?Z zhi2@u`)+?*HgtZtePx~bv3QQTP06pSf^*7ai@B}cZ=5@j?0UWJ#q3Q*jN9rSZe=wO zk1KY|@qB*NB4S&e<(>Bv{15)T`R-$eO?6=6549SThkI>rh_Ab^x4ZFZa@>x?`+tA7 zh`C*rs&Xr|>_^AZ?fz$7Pn^_`TG;BI-uaYI`F`TWTQveV-_6zRvdlj&?)qOUIqRW= zOEA03x`G=$={wneCcj^8Xs)PqYrWIU?3J+(3-b@2*NAwTC=&JF|3BOB@6UDm=i1w4 zcAwn6E#~-Q{*~Q@T4%P)3+0y2y_nJ=(|yWQ@1TTHsfXg(`%CmZvdrqO_k1tC)AE^n zTkV1TTqpJeFAr~@U8q@cqS7S#b)7(Ew9VTdd8PMzk50Nci|wQCN+}_InV+J$`KI?NNt?g+%o6-(Ot*9sMO*>3oQP z_eEum#L0Eav9Vmc_jyWm9QOV_*V$+BU-yf*{=OByGQYr9RD4ow&BZT1n-6P*RXz`0 zb0=^=>op(!BKh6c_YF7vxXb#NDPq%885djGdgsO;mK1klRubjdCe@N`Spvck{vrVIc1OS%j%ka^xBt$zU%YfFFg3m zRPsmet=&6!)c&c$z8>?W_tbx`_0Nv(bDx;K zzj|T*&eQ*XD4IMLy|C>MN6p^FxBPx=fAhZauio_gNnbms-7QFZdqpp!%s$*ZM5{Je zN$XtxebLK*{>^A=Z&rJM{P(M7|Andlf-k<1-?UpNEN7>&2zwXnb@#)s*FF~T{oa;% z@_W_pS@*J?6_51l&16hJ{%7M2i{<;c7rlP#>;C)4>*W)Vzkl)l#g5;;RyDW$S9A(L ze3=gV_`OY~nFii94ryXyRvORsce_T`h@9#s`ttoK~|Z*_8Ry!QP@uv#{-@mmVc2$PtFG)FX#<;(1Nm<40DVzDPZS~`IKRe6bYT?gix77pw#r&0< zFz>b7!)sNC3U!3lJO(olXZc&t4F6GdX&r#{ItJ9W$T52zX;v^v%@IyPr9trv9p6 zh5x@zf^}S;vzv{>*ZuF{)(h8SoXXGg;KP&!c{4t=yWKu3-_`!$Y}1CdD?VqXi|*O+ z;47!A{`J}Iw#M938lLavXDpciX(9i!y2p_c@9SoYbp}U2vpw`r^kU+MvNaany1!+t zANQ?omp)UhoAg0>+SOxck8|FfSbXj3stl{_i+NLIKPX6XfA-byp8b6Jy#qg8pLRc9 zZKwa~&~eqJVzYE~?d96bzJEO2SeL5*(5@rNf=#tFdqDp6}GJ%dA?;`zdax z3G4D*d^Ww4uePfxrN5I;nizQKdRyS+bFznCe`ig59D4Bn?T5QJ{pCu!)y0*1;oA|< zR@3us<*x1f`puLT(=Yh+*iNrux}IJ#x9j0;>A8-V#U|HYcwTT@W=HuC52;gprye#{ zZ9ix6;6V4m;)0ye*E}V$5A`-|{xI+MiV0=!On*fbn&lXTFy{RH_(fpO8}s!RQPm;$ zyXTm`pX0vtYNnvZorJf>Z&o}p=g)sN|5f|H*JAQb@%KA8dj5S(F0QGqKcvbN_4Rm_ z$=~Fw0Trfq?sLBSd;PH@|Cb%z-Tirg8&BHr?LAyRcb&cy@AE^d8}Glo=aiEx7a8{6 zEWg}kx2O5L1*aO9RG)K_YRpsGeWGo`l6!Xrg=Ypx8{QRuEGRqqid3K{^J}Gz`PW7E z>7DT1(Va7A)e|+JhX+?`IKji(|Z}(xXmaEy^$r7@cRX+=dY8L%0Uvqaw z#O3{VEO~P$iA=xX8~-vW-yy{3{gfR?T2kB>?-ODDw`*BoO^wg?6F;In@BaGM<>~RW zX5r$C0bO(c>#Q!jf8)js74gN5frn3KD79uUZmFC2vG8KuM?+3MH`~QC^Y⪚qw3g zKhJIBwwicu^TkUqdf6AJyuWA2c`@k6kLy3*o26e1o|>QWIITr0cWHr_=NTJySHA!C zwO%W|oAWxZ9k~&q88YeJ!8`v~=hWJ*;_;5WJ9%xe(&8$!?l*s*H@KAc`#jP!EqVMy z_$A}7^?m#Fte(l+{=5G+BVRz{I^M4 zN`ABo`}gKl+(c%fw|6D8Rdz^ry1ifX?TXjKZzft{$6ehcCe6NhwBy0Qi~ZV@EjRpI z>MpbS)FpGZ^r&ZolafjjH<{VjS&IGDF}gU>`I;yD)W46bVprE6ckAui`m{mrp;}Q2 z+fNPihnkySRzLbGYUKC7kh$b{>LlgoyH%H~9Ci8T<@sj*j3vhp2Odv3?sin_<*LQX z!Ad(>H*WmZ*>mQypUjWgs$)DQhWpHx?UKCQlfPtx>rr*JBY%o#81KJ$fuFT@=RObd zHOgMwGp5ZpJSTB}rDfhR@nZ(H>(awi_rCRiEpXZRW?lbY!>vDOvqYCX6FoOGK0w9w z+x3k(_P19k^DmgZG30u@wb3p8gLc(_g_8eH68f#?qHZmD|I>BlUp_@CHC^$~42qtf zzT0zBNql+OF3HcmtaGB?rumqsy*U0xcIKQpKaa58UzVOyleArLrs^l=^l!a~=Sv2; zcL+|s`QzQhlXt6MKMVaeJ>vIt&u{l5{f>$K)v0%zzW3_iq)C&$%9I;zd%5zLeEOuM zUq@5t-BM&V?e_M&=9)5hlX>6aqUp0IroFkgclw>}*+tjpoOyZw#rqhb-oJQ5 zz4iG0Yjawr%*ZpeYT=h)e>->b6q&`J{~h0S@x(=oHOp_+`#;|CBO|UmsdsVSF~i3@ z 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.0.2 true system - ${project.basedir}/lib/UltraAuth v2.0.2.jar + ${project.basedir}/lib/UltraAuth v2.1.2.jar diff --git a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hooks/CrazyLoginHook.java b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hooks/CrazyLoginHook.java index 8ba1e1e2..4af9faaf 100644 --- a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hooks/CrazyLoginHook.java +++ b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hooks/CrazyLoginHook.java @@ -25,7 +25,7 @@ import org.bukkit.entity.Player; */ public class CrazyLoginHook implements AuthPlugin { - protected final CrazyLogin crazyLoginPlugin = CrazyLogin.getPlugin(); + private final CrazyLogin crazyLoginPlugin = CrazyLogin.getPlugin(); private final PlayerListener playerListener = getListener(); @Override @@ -83,7 +83,7 @@ public class CrazyLoginHook implements AuthPlugin { } @Override - public boolean forceRegister(final Player player, String password) { + public boolean forceRegister(Player player, String password) { CrazyLoginDataDatabase crazyDatabase = crazyLoginPlugin.getCrazyDatabase(); //this executes a sql query and accesses only thread safe collections so we can run it async diff --git a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hooks/FakePlayer.java b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hooks/FakePlayer.java deleted file mode 100644 index c409372b..00000000 --- a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hooks/FakePlayer.java +++ /dev/null @@ -1,1480 +0,0 @@ -package com.github.games647.fastlogin.bukkit.hooks; - -import java.net.InetSocketAddress; -import java.util.Collection; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.UUID; - -import org.bukkit.Achievement; -import org.bukkit.Effect; -import org.bukkit.EntityEffect; -import org.bukkit.GameMode; -import org.bukkit.Instrument; -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.Note; -import org.bukkit.Particle; -import org.bukkit.Server; -import org.bukkit.Sound; -import org.bukkit.Statistic; -import org.bukkit.WeatherType; -import org.bukkit.World; -import org.bukkit.attribute.Attribute; -import org.bukkit.attribute.AttributeInstance; -import org.bukkit.block.Block; -import org.bukkit.conversations.Conversation; -import org.bukkit.conversations.ConversationAbandonedEvent; -import org.bukkit.entity.Entity; -import org.bukkit.entity.EntityType; -import org.bukkit.entity.Player; -import org.bukkit.entity.Projectile; -import org.bukkit.entity.Villager; -import org.bukkit.event.entity.EntityDamageEvent; -import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; -import org.bukkit.inventory.EntityEquipment; -import org.bukkit.inventory.Inventory; -import org.bukkit.inventory.InventoryView; -import org.bukkit.inventory.InventoryView.Property; -import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.MainHand; -import org.bukkit.inventory.PlayerInventory; -import org.bukkit.map.MapView; -import org.bukkit.metadata.MetadataValue; -import org.bukkit.permissions.Permission; -import org.bukkit.permissions.PermissionAttachment; -import org.bukkit.permissions.PermissionAttachmentInfo; -import org.bukkit.plugin.Plugin; -import org.bukkit.potion.PotionEffect; -import org.bukkit.potion.PotionEffectType; -import org.bukkit.scoreboard.Scoreboard; -import org.bukkit.util.Vector; - -public class FakePlayer implements Player { - - private final String username; - - public FakePlayer(String username) { - this.username = username; - } - - @Override - public String getName() { - return username; - } - - @Override - public String getDisplayName() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setDisplayName(String name) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public String getPlayerListName() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setPlayerListName(String name) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setCompassTarget(Location loc) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Location getCompassTarget() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public InetSocketAddress getAddress() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void sendRawMessage(String message) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void kickPlayer(String message) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void chat(String msg) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean performCommand(String command) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean isSneaking() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setSneaking(boolean sneak) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean isSprinting() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setSprinting(boolean sprinting) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void saveData() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void loadData() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setSleepingIgnored(boolean isSleeping) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean isSleepingIgnored() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - @Deprecated - public void playNote(Location loc, byte instrument, byte note) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void playNote(Location loc, Instrument instrument, Note note) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void playSound(Location location, Sound sound, float volume, float pitch) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void playSound(Location location, String sound, float volume, float pitch) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - @Deprecated - public void playEffect(Location loc, Effect effect, int data) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void playEffect(Location loc, Effect effect, T data) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - @Deprecated - public void sendBlockChange(Location loc, Material material, byte data) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - @Deprecated - public boolean sendChunkChange(Location loc, int sx, int sy, int sz, byte[] data) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - @Deprecated - public void sendBlockChange(Location loc, int material, byte data) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void sendSignChange(Location loc, String[] lines) throws IllegalArgumentException { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void sendMap(MapView map) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void updateInventory() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void awardAchievement(Achievement achievement) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void removeAchievement(Achievement achievement) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean hasAchievement(Achievement achievement) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void incrementStatistic(Statistic statistic) throws IllegalArgumentException { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void decrementStatistic(Statistic statistic) throws IllegalArgumentException { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void incrementStatistic(Statistic statistic, int amount) throws IllegalArgumentException { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void decrementStatistic(Statistic statistic, int amount) throws IllegalArgumentException { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setStatistic(Statistic statistic, int newValue) throws IllegalArgumentException { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public int getStatistic(Statistic statistic) throws IllegalArgumentException { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void incrementStatistic(Statistic statistic, Material material) throws IllegalArgumentException { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void decrementStatistic(Statistic statistic, Material material) throws IllegalArgumentException { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public int getStatistic(Statistic statistic, Material material) throws IllegalArgumentException { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void incrementStatistic(Statistic statistic, Material material, int amount) throws IllegalArgumentException { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void decrementStatistic(Statistic statistic, Material material, int amount) throws IllegalArgumentException { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setStatistic(Statistic statistic, Material material, int newValue) throws IllegalArgumentException { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void incrementStatistic(Statistic statistic, EntityType entityType) throws IllegalArgumentException { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void decrementStatistic(Statistic statistic, EntityType entityType) throws IllegalArgumentException { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public int getStatistic(Statistic statistic, EntityType entityType) throws IllegalArgumentException { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void incrementStatistic(Statistic statistic, EntityType entityType, int amount) throws IllegalArgumentException { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void decrementStatistic(Statistic statistic, EntityType entityType, int amount) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setStatistic(Statistic statistic, EntityType entityType, int newValue) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setPlayerTime(long time, boolean relative) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public long getPlayerTime() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public long getPlayerTimeOffset() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean isPlayerTimeRelative() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void resetPlayerTime() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setPlayerWeather(WeatherType type) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public WeatherType getPlayerWeather() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void resetPlayerWeather() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void giveExp(int amount) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void giveExpLevels(int amount) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public float getExp() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setExp(float exp) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public int getLevel() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setLevel(int level) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public int getTotalExperience() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setTotalExperience(int exp) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public float getExhaustion() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setExhaustion(float value) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public float getSaturation() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setSaturation(float value) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public int getFoodLevel() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setFoodLevel(int value) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Location getBedSpawnLocation() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setBedSpawnLocation(Location location) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setBedSpawnLocation(Location location, boolean force) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean getAllowFlight() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setAllowFlight(boolean flight) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void hidePlayer(Player player) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void showPlayer(Player player) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean canSee(Player player) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - @Deprecated - public boolean isOnGround() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean isFlying() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setFlying(boolean value) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setFlySpeed(float value) throws IllegalArgumentException { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setWalkSpeed(float value) throws IllegalArgumentException { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public float getFlySpeed() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public float getWalkSpeed() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - @Deprecated - public void setTexturePack(String url) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setResourcePack(String url) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Scoreboard getScoreboard() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setScoreboard(Scoreboard scoreboard) throws IllegalArgumentException, IllegalStateException { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean isHealthScaled() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setHealthScaled(boolean scale) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setHealthScale(double scale) throws IllegalArgumentException { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public double getHealthScale() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Entity getSpectatorTarget() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setSpectatorTarget(Entity entity) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - @Deprecated - public void sendTitle(String title, String subtitle) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - @Deprecated - public void resetTitle() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void spawnParticle(Particle particle, Location location, int count) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void spawnParticle(Particle particle, double x, double y, double z, int count) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void spawnParticle(Particle particle, Location location, int count, T data) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void spawnParticle(Particle particle, double x, double y, double z, int count, T data) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void spawnParticle(Particle particle, Location location, int count, double offsetX, double offsetY, double offsetZ) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void spawnParticle(Particle particle, double x, double y, double z, int count, double offsetX, double offsetY, double offsetZ) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void spawnParticle(Particle particle, Location location, int count, double offsetX, double offsetY, double offsetZ, T data) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void spawnParticle(Particle particle, double x, double y, double z, int count, double offsetX, double offsetY, double offsetZ, T data) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void spawnParticle(Particle particle, Location location, int count, double offsetX, double offsetY, double offsetZ, double extra) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void spawnParticle(Particle particle, double x, double y, double z, int count, double offsetX, double offsetY, double offsetZ, double extra) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void spawnParticle(Particle particle, Location location, int count, double offsetX, double offsetY, double offsetZ, double extra, T data) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void spawnParticle(Particle particle, double x, double y, double z, int count, double offsetX, double offsetY, double offsetZ, double extra, T data) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Spigot spigot() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public PlayerInventory getInventory() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Inventory getEnderChest() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean setWindowProperty(Property prop, int value) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public InventoryView getOpenInventory() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public InventoryView openInventory(Inventory inventory) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public InventoryView openWorkbench(Location location, boolean force) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public InventoryView openEnchanting(Location location, boolean force) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void openInventory(InventoryView inventory) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public InventoryView openMerchant(Villager trader, boolean force) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void closeInventory() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - @Deprecated - public ItemStack getItemInHand() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - @Deprecated - public void setItemInHand(ItemStack item) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public ItemStack getItemOnCursor() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setItemOnCursor(ItemStack item) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean isSleeping() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public int getSleepTicks() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public GameMode getGameMode() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setGameMode(GameMode mode) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean isBlocking() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public int getExpToLevel() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public double getEyeHeight() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public double getEyeHeight(boolean ignoreSneaking) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Location getEyeLocation() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - @Deprecated - public List getLineOfSight(HashSet transparent, int maxDistance) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public List getLineOfSight(Set transparent, int maxDistance) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - @Deprecated - public Block getTargetBlock(HashSet transparent, int maxDistance) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Block getTargetBlock(Set transparent, int maxDistance) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - @Deprecated - public List getLastTwoTargetBlocks(HashSet transparent, int maxDistance) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public List getLastTwoTargetBlocks(Set transparent, int maxDistance) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public int getRemainingAir() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setRemainingAir(int ticks) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public int getMaximumAir() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setMaximumAir(int ticks) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public int getMaximumNoDamageTicks() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setMaximumNoDamageTicks(int ticks) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public double getLastDamage() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - @Deprecated - public int _INVALID_getLastDamage() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setLastDamage(double damage) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - @Deprecated - public void _INVALID_setLastDamage(int damage) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public int getNoDamageTicks() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setNoDamageTicks(int ticks) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Player getKiller() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean addPotionEffect(PotionEffect effect) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean addPotionEffect(PotionEffect effect, boolean force) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean addPotionEffects(Collection effects) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean hasPotionEffect(PotionEffectType type) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void removePotionEffect(PotionEffectType type) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Collection getActivePotionEffects() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean hasLineOfSight(Entity other) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean getRemoveWhenFarAway() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setRemoveWhenFarAway(boolean remove) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public EntityEquipment getEquipment() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setCanPickupItems(boolean pickup) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean getCanPickupItems() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean isLeashed() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Entity getLeashHolder() throws IllegalStateException { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean setLeashHolder(Entity holder) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public AttributeInstance getAttribute(Attribute attribute) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Location getLocation() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Location getLocation(Location loc) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setVelocity(Vector velocity) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Vector getVelocity() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public World getWorld() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean teleport(Location location) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean teleport(Location location, TeleportCause cause) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean teleport(Entity destination) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean teleport(Entity destination, TeleportCause cause) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public List getNearbyEntities(double x, double y, double z) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public int getEntityId() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public int getFireTicks() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public int getMaxFireTicks() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setFireTicks(int ticks) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void remove() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean isDead() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean isValid() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Server getServer() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Entity getPassenger() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean setPassenger(Entity passenger) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean isEmpty() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean eject() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public float getFallDistance() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setFallDistance(float distance) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setLastDamageCause(EntityDamageEvent event) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public EntityDamageEvent getLastDamageCause() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public UUID getUniqueId() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public int getTicksLived() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setTicksLived(int value) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void playEffect(EntityEffect type) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public EntityType getType() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean isInsideVehicle() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean leaveVehicle() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Entity getVehicle() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setCustomName(String name) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public String getCustomName() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setCustomNameVisible(boolean flag) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean isCustomNameVisible() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setGlowing(boolean flag) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean isGlowing() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setMetadata(String metadataKey, MetadataValue newMetadataValue) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public List getMetadata(String metadataKey) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean hasMetadata(String metadataKey) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void removeMetadata(String metadataKey, Plugin owningPlugin) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void sendMessage(String message) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void sendMessage(String[] messages) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean isPermissionSet(String name) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean isPermissionSet(Permission perm) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean hasPermission(String name) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean hasPermission(Permission perm) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public PermissionAttachment addAttachment(Plugin plugin, String name, boolean value) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public PermissionAttachment addAttachment(Plugin plugin) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public PermissionAttachment addAttachment(Plugin plugin, String name, boolean value, int ticks) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public PermissionAttachment addAttachment(Plugin plugin, int ticks) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void removeAttachment(PermissionAttachment attachment) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void recalculatePermissions() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Set getEffectivePermissions() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean isOp() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setOp(boolean value) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void damage(double amount) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - @Deprecated - public void _INVALID_damage(int amount) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void damage(double amount, Entity source) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - @Deprecated - public void _INVALID_damage(int amount, Entity source) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public double getHealth() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - @Deprecated - public int _INVALID_getHealth() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setHealth(double health) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - @Deprecated - public void _INVALID_setHealth(int health) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public double getMaxHealth() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - @Deprecated - public int _INVALID_getMaxHealth() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setMaxHealth(double health) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - @Deprecated - public void _INVALID_setMaxHealth(int health) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void resetMaxHealth() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public T launchProjectile(Class projectile) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public T launchProjectile(Class projectile, Vector velocity) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean isConversing() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void acceptConversationInput(String input) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean beginConversation(Conversation conversation) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void abandonConversation(Conversation conversation) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void abandonConversation(Conversation conversation, ConversationAbandonedEvent details) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean isOnline() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean isBanned() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - @Deprecated - public void setBanned(boolean banned) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean isWhitelisted() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setWhitelisted(boolean value) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Player getPlayer() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public long getFirstPlayed() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public long getLastPlayed() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean hasPlayedBefore() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Map serialize() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void sendPluginMessage(Plugin source, String channel, byte[] message) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Set getListeningPluginChannels() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public MainHand getMainHand() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean isGliding() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setGliding(boolean arg0) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setAI(boolean arg0) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean hasAI() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setInvulnerable(boolean arg0) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean isInvulnerable() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setCollidable(boolean arg0) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean isCollidable() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void stopSound(Sound sound) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void stopSound(String sound) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean isSilent() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setSilent(boolean flag) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean hasGravity() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setGravity(boolean gravity) { - throw new UnsupportedOperationException("Not supported yet."); - } -} diff --git a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hooks/UltraAuthHook.java b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hooks/UltraAuthHook.java index c8dd12e3..f2d3c0d8 100644 --- a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hooks/UltraAuthHook.java +++ b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hooks/UltraAuthHook.java @@ -22,10 +22,10 @@ import ultraauth.managers.PlayerManager; */ public class UltraAuthHook implements AuthPlugin { - protected final Plugin ultraAuthPlugin = Main.main; + private final Plugin ultraAuthPlugin = Main.main; @Override - public boolean forceLogin(final Player player) { + public boolean forceLogin(Player player) { //not thread-safe Future future = Bukkit.getScheduler().callSyncMethod(ultraAuthPlugin, () -> { UltraAuthAPI.authenticatedPlayer(player); @@ -42,7 +42,7 @@ public class UltraAuthHook implements AuthPlugin { @Override public boolean isRegistered(String playerName) throws Exception { - return UltraAuthAPI.isRegisterd(new FakePlayer(playerName)); + return UltraAuthAPI.isRegisterd(playerName); } @Override diff --git a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hooks/xAuthHook.java b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hooks/xAuthHook.java index 1ca6e894..5ddc4b1c 100644 --- a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hooks/xAuthHook.java +++ b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hooks/xAuthHook.java @@ -22,7 +22,7 @@ import org.bukkit.entity.Player; */ public class xAuthHook implements AuthPlugin { - protected final xAuth xAuthPlugin = xAuth.getPlugin(); + private final xAuth xAuthPlugin = xAuth.getPlugin(); @Override public boolean forceLogin(Player player) { diff --git a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/BungeeCordListener.java b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/BungeeCordListener.java index f652732c..e417dcd2 100644 --- a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/BungeeCordListener.java +++ b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/BungeeCordListener.java @@ -32,7 +32,7 @@ public class BungeeCordListener implements PluginMessageListener { private static final String FILE_NAME = "proxy-whitelist.txt"; - protected final FastLoginBukkit plugin; + private final FastLoginBukkit plugin; //null if whitelist is empty so bungeecord support is disabled private final Set proxyIds; diff --git a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/protocolsupport/ProtocolSupportListener.java b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/protocolsupport/ProtocolSupportListener.java index d14d58fb..77bb2b71 100644 --- a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/protocolsupport/ProtocolSupportListener.java +++ b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/protocolsupport/ProtocolSupportListener.java @@ -16,7 +16,7 @@ import protocolsupport.api.events.PlayerPropertiesResolveEvent; public class ProtocolSupportListener extends JoinManagement implements Listener { - protected final FastLoginBukkit plugin; + private final FastLoginBukkit plugin; public ProtocolSupportListener(FastLoginBukkit plugin) { super(plugin.getCore(), plugin.getCore().getAuthPluginHook()); diff --git a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/tasks/ForceLoginTask.java b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/tasks/ForceLoginTask.java index c07b40aa..7abfcf97 100644 --- a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/tasks/ForceLoginTask.java +++ b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/tasks/ForceLoginTask.java @@ -18,7 +18,7 @@ import org.bukkit.entity.Player; public class ForceLoginTask implements Runnable { private final FastLoginBukkit plugin; - protected final Player player; + private final Player player; public ForceLoginTask(FastLoginBukkit plugin, Player player) { this.plugin = plugin; diff --git a/bungee/src/main/java/com/github/games647/fastlogin/bungee/listener/PlayerConnectionListener.java b/bungee/src/main/java/com/github/games647/fastlogin/bungee/listener/PlayerConnectionListener.java index 7168a176..c8ad3813 100644 --- a/bungee/src/main/java/com/github/games647/fastlogin/bungee/listener/PlayerConnectionListener.java +++ b/bungee/src/main/java/com/github/games647/fastlogin/bungee/listener/PlayerConnectionListener.java @@ -32,7 +32,7 @@ import net.md_5.bungee.event.EventPriority; */ public class PlayerConnectionListener implements Listener { - protected final FastLoginBungee plugin; + private final FastLoginBungee plugin; public PlayerConnectionListener(FastLoginBungee plugin) { this.plugin = plugin; diff --git a/bungee/src/main/java/com/github/games647/fastlogin/bungee/listener/PluginMessageListener.java b/bungee/src/main/java/com/github/games647/fastlogin/bungee/listener/PluginMessageListener.java index e15d1ae0..0fbfb442 100644 --- a/bungee/src/main/java/com/github/games647/fastlogin/bungee/listener/PluginMessageListener.java +++ b/bungee/src/main/java/com/github/games647/fastlogin/bungee/listener/PluginMessageListener.java @@ -19,7 +19,7 @@ import net.md_5.bungee.event.EventHandler; public class PluginMessageListener implements Listener { - protected final FastLoginBungee plugin; + private final FastLoginBungee plugin; public PluginMessageListener(FastLoginBungee plugin) { this.plugin = plugin;