From ca94fc2a12ffe9a33ec45de449d85dde6251dd66 Mon Sep 17 00:00:00 2001 From: gamerforEA Date: Sat, 12 Jan 2019 21:38:15 +0400 Subject: [PATCH] Release 1.9 1) Drop Java 7 support 2) Implement GriefPreventionPlus support 3) Implement new utilities --- build.gradle | 8 +- lib/GriefPreventionPlus-13.3-sources.jar | Bin 0 -> 121816 bytes lib/GriefPreventionPlus-13.3.jar | Bin 0 -> 186270 bytes .../gamerforea/eventhelper/EventHelper.java | 74 +++-- .../eventhelper/config/ClassSet.java | 103 +++++++ .../gamerforea/eventhelper/config/Config.java | 13 + .../eventhelper/config/ConfigBoolean.java | 23 ++ .../eventhelper/config/ConfigClassSet.java | 23 ++ .../eventhelper/config/ConfigEnum.java | 23 ++ .../eventhelper/config/ConfigFloat.java | 27 ++ .../eventhelper/config/ConfigInt.java | 27 ++ .../config/ConfigItemBlockList.java | 23 ++ .../eventhelper/config/ConfigString.java | 23 ++ .../config/ConfigStringCollection.java | 23 ++ .../eventhelper/config/ConfigUtils.java | 276 +++++++++++++++++ .../eventhelper/config/ItemBlockList.java | 143 +++++++++ .../eventhelper/fake/FakePlayerContainer.java | 98 ++++-- .../fake/FakePlayerContainerEntity.java | 18 +- .../fake/FakePlayerContainerTileEntity.java | 13 +- .../fake/FakePlayerContainerWorld.java | 13 +- .../eventhelper/inject/InjectionManager.java | 55 ++++ .../eventhelper/inject/PluginInjection.java | 13 + .../eventhelper/inject/gpp/GPPInjection.java | 52 ++++ .../eventhelper/inject/wg/WGInjection.java | 55 ++++ .../eventhelper/nexus/ModNexus.java | 15 + .../eventhelper/nexus/ModNexusFactory.java | 55 ++++ .../eventhelper/nexus/NexusUtils.java | 90 ++++++ .../eventhelper/util/ConvertUtils.java | 23 +- .../eventhelper/util/CooldownManager.java | 65 ++++ .../eventhelper/util/CraftUtils.java | 4 +- .../eventhelper/util/EventUtils.java | 177 ++++++++--- .../eventhelper/util/ExplosionByPlayer.java | 280 ++++++++++++++++++ .../eventhelper/util/FastUtils.java | 97 ++++-- .../eventhelper/util/InjectionUtils.java | 45 +++ .../util/ItemInventoryValidator.java | 174 +++++++++++ .../util/PlayerCooldownManager.java | 35 +++ .../eventhelper/util/ReflectionUtils.java | 11 + .../util/WorldCooldownManager.java | 34 +++ .../eventhelper/wg/WGReflection.java | 44 --- .../eventhelper/wg/WGRegionChecker.java | 44 --- 40 files changed, 2084 insertions(+), 235 deletions(-) create mode 100644 lib/GriefPreventionPlus-13.3-sources.jar create mode 100644 lib/GriefPreventionPlus-13.3.jar create mode 100644 src/main/java/com/gamerforea/eventhelper/config/ClassSet.java create mode 100644 src/main/java/com/gamerforea/eventhelper/config/Config.java create mode 100644 src/main/java/com/gamerforea/eventhelper/config/ConfigBoolean.java create mode 100644 src/main/java/com/gamerforea/eventhelper/config/ConfigClassSet.java create mode 100644 src/main/java/com/gamerforea/eventhelper/config/ConfigEnum.java create mode 100644 src/main/java/com/gamerforea/eventhelper/config/ConfigFloat.java create mode 100644 src/main/java/com/gamerforea/eventhelper/config/ConfigInt.java create mode 100644 src/main/java/com/gamerforea/eventhelper/config/ConfigItemBlockList.java create mode 100644 src/main/java/com/gamerforea/eventhelper/config/ConfigString.java create mode 100644 src/main/java/com/gamerforea/eventhelper/config/ConfigStringCollection.java create mode 100644 src/main/java/com/gamerforea/eventhelper/config/ConfigUtils.java create mode 100644 src/main/java/com/gamerforea/eventhelper/config/ItemBlockList.java create mode 100644 src/main/java/com/gamerforea/eventhelper/inject/InjectionManager.java create mode 100644 src/main/java/com/gamerforea/eventhelper/inject/PluginInjection.java create mode 100644 src/main/java/com/gamerforea/eventhelper/inject/gpp/GPPInjection.java create mode 100644 src/main/java/com/gamerforea/eventhelper/inject/wg/WGInjection.java create mode 100644 src/main/java/com/gamerforea/eventhelper/nexus/ModNexus.java create mode 100644 src/main/java/com/gamerforea/eventhelper/nexus/ModNexusFactory.java create mode 100644 src/main/java/com/gamerforea/eventhelper/nexus/NexusUtils.java create mode 100644 src/main/java/com/gamerforea/eventhelper/util/CooldownManager.java create mode 100644 src/main/java/com/gamerforea/eventhelper/util/ExplosionByPlayer.java create mode 100644 src/main/java/com/gamerforea/eventhelper/util/InjectionUtils.java create mode 100644 src/main/java/com/gamerforea/eventhelper/util/ItemInventoryValidator.java create mode 100644 src/main/java/com/gamerforea/eventhelper/util/PlayerCooldownManager.java create mode 100644 src/main/java/com/gamerforea/eventhelper/util/ReflectionUtils.java create mode 100644 src/main/java/com/gamerforea/eventhelper/util/WorldCooldownManager.java delete mode 100644 src/main/java/com/gamerforea/eventhelper/wg/WGReflection.java delete mode 100644 src/main/java/com/gamerforea/eventhelper/wg/WGRegionChecker.java diff --git a/build.gradle b/build.gradle index c31de64..977aeac 100644 --- a/build.gradle +++ b/build.gradle @@ -25,10 +25,15 @@ apply plugin: 'forge' [compileJava, compileTestJava]*.options*.encoding = 'UTF-8' -version = "1.8" +version = "1.7.10-1.9" group= "com.gamerforea" archivesBaseName = "EventHelper" +sourceCompatibility = targetCompatibility = '1.8' +compileJava { + sourceCompatibility = targetCompatibility = '1.8' +} + minecraft { version = "1.7.10-10.13.4.1614-1.7.10" runDir = "eclipse" @@ -39,6 +44,7 @@ dependencies { compile name: 'bukkit-1.7.10' compile name: 'worldedit-6.1' compile name: 'worldguard-6.1' + compile name: 'GriefPreventionPlus-13.3' } task devJar(type: Jar) { diff --git a/lib/GriefPreventionPlus-13.3-sources.jar b/lib/GriefPreventionPlus-13.3-sources.jar new file mode 100644 index 0000000000000000000000000000000000000000..facc369c1dcfa12396639ca31fe8937cc4b18c3b GIT binary patch literal 121816 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

Woo4*RIowxuow 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%0D` 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

tl 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ų{aYY*Iiz+Na*n{+`po0Q={(w3?FU@W9}J46jb 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�UIqL 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

`XEfz<2^TP-2~*xh4DqC$NP6|hwK z)Q|$TKPE)pXn%&vo^1q6lHI$FG+&w;d=)<=iW5yguHpx&u8qW*EqN;VMqY{*0IBSv zQE|Hck;UXgFcaZvvMRI@OHg58+-;bf8)jW#NnW7Q*Z?A`5=;a(;EDkqmMdLO7u)Vv z*yaxI-7m8`N_mp40WfGUY!diM{)H!Iil2BKjYL#l^%mKwqJMSp^ZkSS$vjCFh# z#X5uH&UiABSEh%8B3kcj%s6NcnD)NM3V}Jl#w~<i z!vHC9p$(hnB6yE5{Hu6+Wk@e>6(AV#un4y!&VTVT)<6eM{FH}ReTNJi4)Fqhi&1;qN7z+TUnv+bb z*#~965;&jv4$^xw>D(YlC8fLx5v4qUh)R0GvP^`oD80By8QVI(1d(dokclSVrJ$U1 z82k9TCWPbuF92mgn!mdx_V+PhUX9=$&1-znp6yQpKSm`kZQv2xLu=alzIl~qxZ5*9 z;X%9Fm9!>NzK`u8S zdoJ7e*IoLV>-lJ}C+`cxc)qc=DcmmKATbTtHlvdQd+^{ZLap+Jf_N{}h@@UIlm0`h zxOZ6-T%xg37_Im!iBRYHDw=SN7NZUAP;|huT4?~+pv5>z@S)`Q@Wl569fi0q@oO3> z_tg5&KF2avLmt_`hI(RGN2fGe%e+#ju~r!CWDzA%#sr(t>?MOJyKtT`&X>m)z7k(az~^4^ zdC#~|7#GO`e-gYA->b&Pi-mECyt3mq%1b`jaG5YJmse+!8|3XDY`sz#S7B?W+ge-a z3k2~<#JENn*UFnZzLL5?gRc(e3i{+NE#rD&bgO$?H8m9y%?-l1QIQ<1tj3cTbw*;` zER0)J&tOm<9vB;iahs&G*tfu63LdZyP-DaG!q_COVX?2OO5Pzdwg}@6d1tH`h6fbv zPGQ`oy7_%2^5T$jk1+0)M=r&FIqChv*s6y4OM~j(k@0{q9+YPm#erZ+d0eDD!q_hF z93{YUiS`QPVabzfiwpD-VLU3AAqgIr=Wm7aJ1K3|D6dH+Wcq|Ko>a_N_?GyA`Guv5 ztEYvrOI-z%4Z&*3$g{$D&b^2v50{J=gzVq7RYye$lQr%5jk`hAj$KMO-%Xvzf0!a&u$ z#Ol5;40)Sra7s&DfPWLlhc2psT7{2=@pr{PLXrgYsWASbC#ODz8q z#%F55-Jgeg&-g+ZU#eBB4_4v4W$@`!tMipG{v*4CKG)StrXE`daekfFjHri4-9Ta18wVUCb0gn-6kpVSj`KVgni7cnK&T|jfRFbmY^ zYI(!bJW!YiseS;6U-L7^3Ui#g0*c`3pk!pcFefO1Ru>mn_`M@jbCNJ8D;^T?gl?Eq zggG^7SmQ#M#A(7jRPj~~vmj);Fb|g-zofddQt7BUQ<$@q^b{=lI-Xf1%sJkG8g&$G z9x2SZ?sU~?p^E)}+*Ib#!t_ZMb>SuDAQL|tAhSf6rO89e0=4A`FB9fGr4R~U>D`w! z1Hzo2+!FK^7Y8Is6~e4kiU=(MDW7U#)+k1U)isjFpfGFY@KRrJL1VRVfoIUndSNz5 zS*Ena6>*U;7pv=+UbAP`%wvUl95&^qHhGrKJVBU^>UyTvo>-!gFy${Vjp%nhvoTQB z;1AYG!)!JSGb~lD6iiEFalMk#3SqV=X1p=3pD|Aq=1RFdr2$`MwOY?r!j#vgGhA4s zZ;>RgU6?1iw?`Emd`2m318nOMW~Z9LYxDGUwJ_JDws_leoiNucLAoueoAMN4p6cFX zRn3VldAcyqNTIO2S`Il&m}g5(^x(-G^;}_|momuRGZzT+!W6b@KRGRyri}I$>Tfja+GUJ#IQ+ zyh?JnL6|ovLRCX;oxcX*Hwp7*B`*&ycX5TU_)u)VRhS#4ohS|Z=7D8YH)zdY3-flh z!l2qUYU<6x+#+3++vhjJyi@k^SNem#3dzRZ!n{W^=)w{!dY>@wS9d<#7FUqlg!zDE z(_dLrx45y=C#il&m_2eCLDkEFL%-AjiD-u~d!;9Ln=1WPb?Vprv2~{~A4$4e5;w1p z3G=r}@EX4_C{_7!VLl<{>B42khYe2&^Jyu!96tk4XU*VQTNUKHj_YPQAx#_F<0i5naKAk0^!EX({ptUw^_HDSIkRU&Q*-W28^ zrAsRF2a#<*s#XBW1AN%wPr`g#ns!E+h!3iHo#An2Qv;$MXMzSLh22%_=@=SeId z2=i}JR%kELjjOQ7{79G|D}pKlO6fik=BEk^LS#e(dgqtZ{!^I$k|HR>AA&^*$|0W% z^9y%~2aa38e+%;~C53q0VE$K_UrRLe%6+x4(6Dd_{zjPJN?PVsxc=dLVg4XxD-WML5n4Xl_?hiTU^^{WeY1Ojwi`5T7!j^tC+4%+Cx^Ju!bgqU6W`H7goL$ zsRXCkLu;h4_LFNV+v3L1+Fw|s6Z9xcXdNJ|0~7dx7Df9QVU3M*m24fYgM~FdfxW7J z-aLhUqOc|c`gcVe6_4wL>8(=q1!?rqM)u(Ag z!)+}T)*>n500y+KB$o*5Sjm6{CMneM!a6|;M>Tk~E)`ZN3G69UldziQyb_$MP|Jn2 zLNYDe-0;SV2CFoF|(q=YM09^!3oWb39BQ)n5&sx!djic5!cMM z!dfRaQ-YH<^JHP2lEC6>;Az4-Jt3YX4Lnm=XC=_bc|Av1=O(~$O*>y$7bJl_O}j`~ zze*5;F9CVdxkOl(N>ei5hp)~wqR;jRG2pZ=7nXbzDr0_q)jV*|-jJ(=b+rsilHi`5 zw5}D_b&?OaF)q_?VaYq0gOVG(NYT1cST{+Z<+i3K!PYIpx>YJ}g|Ae(CF?d}sf(Hw zzM4R7Vo5g%OJ3Bp72Fl?9l}zVHSt%25pb8VBJS0!dxa&hYi7Ezgw|~pmb|w) z*lS5uya$CPFK}jg%?Xv+E-d->Q;ye^tO*YbYo}t%4+cPj9u<~+2g*_)wV{3|EcphM zKqmdA@zB9~Qdsi+Ctgu4_tGw5$#hCm@0kqDt(RkgE?}YelM&S*VIUaBn141u-;69*ZRR_A^a_2{Yk2x3wIUb9bvtzx(6y2 z#DA~(J?lMT{YAm6i&1|UssfJnS7Ci1c};q8O5*=eSRY9Rs;sW9UEG+O5L$m1)+ci9 z;-;v!x?Xbj4`KaN3OSxiS)U2(bH(i95@mP46xP3`*sCCjf{;y0^FPA+uO!7idht?P z>wm)fMv{`;5Z?md3F~`o%}r@dDD#iP`Y9Q0e2e@dY?9mnLn?4Sn+cmsStS}!R<{J)m1|XnEuI&tA%U{lRYJ5_Q0&-S6OW4`6Z;cNEC1sTDLBbv^ zB~;^6j=~-y>^w;W?5a9x!E5F4VZt6R72JjU7u7*V5RihlM+keQ6ouPZS>1q9PEEkC z<{l;N{pG%L+htv3aU6Gnun$nUs{^&wRn_&iiQ=Dqkg&(dE$w0R3kIaZ*@p{zhGH!ahTXLo z*Gw+KEMd=9v?tnY(MMzB9AO_JtxrvTWzB+sBw((vk5aTM7)lA@K4BM2&Gz8ljTd0s|${+uU#wb zI*B}9fUp~cy-<>_K#gV9(g)g$g}o#hULKHM%05om$0x&qZmcZYjly0kwGL%3CtD`$ zCaIi3-$JjfVuyvj+#S9!sitDL2s;w*>=sn)mBN<)vX8A|sm5uCAhb=`(G(~KHTFru zj-^1+gxa0L?owzK^e_aj5%$_-;B*A87xu}?z{3%Es<2N>2F^g>8Nxm@88{PxXAAqB zWZ*0Wo+s?{lYz4lc%iT_a)I&J2<(f6Ez9{?@gyR?$d?IQ7W8xDO|p6w#1cKWUny)^ z(jS(l-F=_dzDC%xxIZ*)AGrY63tJZX2gSQo_$q5W1UCp<7W{Miw92733tLwGMV}1F z-Y9HY{2v@|fcZ+wJ*2k_dsFI^ZnMO?McDE*AT!>&Frd)hDeSwv`I2kL_C3PB*Ap#d zm&y>`FYK)zp2p;NH|z(5Ee{EXq_iY$mmXnnR}(?j2O)hKI4!A|y~37f1x78zG%`oC z9}%`XCP;_qx5Adk1ZJ(TrouJTPY7Ec4rJ8&eMzC4{j{*<*?=Cm70(L$IW=23q^T10 zg0R)eKy6^29QBg0)yV(?z|zVX!+u5BuPR&%>Sfk$zbvGQ4;6t`)eGYjd@St0 zt9d2V!~dzU|Difp*H<*UZ{XPf61F@V$f~XJmn^_U$_sexFNFQ2!joLMu)h+vIvuF3 zsjiY$2>WYc|4*@06RaQSqx9J-2WFENppbFetgfi;NvA z9C>sw*lkUXj2%rly21*eDt|l!bWGt`N{ViSSB-ES;bbU`$t{gFKB>`8rf}rhLAE@Z zL3bTLU2}4TGstW6-WPHsYA07XLzFtH@}4tPIK!0UxThUXzHrpJfzoZ2;W+yVXH*hY zrB%*o;S{*^BQ%i_IR^^oASHd(;zr@lSmBIIf_rsDXS{GGB*WcY$(baa$;ogxS#qWb zXR2E8x}e%;&NShubA#IYc{22JrVHnAr7Q?(EOCW5Q#k7AAOVhRq*Ejub#zc$Ur|$D zFYz2H9C>u$)Rlt+kFU|u!jUHjyiQiLoD$*4;{sh;H-wZ4M;#PkHdm9B6gUCl$b$k4 z$ggqjol_y4O1HZLf}Ca1(y11XJSxx{RAl1>g(FW2GVs(SY4PiYBhLwJ33rW#vq(7d zcmV%hA4S=*!jY!}LcU3s2>G28gd>jw9Mw<}sF0c(5{~*e7#8}A@q4py!U`jpDmie4 zaAdh(L*+-niNcXpeoO8KS1(oxr%lm^KzC0%?ZS~o{u~#YT!D5vgwvV8<7(b&;jB^g zBQQzv)(L05qF*+6dUuL&PECO0>UFwsR87Cnjy+2_XD7(?C^=U+=OrQWbnyb=Tok4M$=v)z+7k_+gg-Y_o8-Ak11gFX*2K_6YZ5 zv@6zxuc+cbT$A*xrS3mSIt97LGD};VyeZ!y|0N2;d+#VCyXrq?{6Xtm-8}Myd*Tk+TbX$f6zOga=9UgQR6M>44`R(grWU9c#kC= zBt$yN3bKx@ChN%=x#Usu7|c}!vi&Xj z9mx6&l20BdPe89HVay=He#U=4HDHp(COP?gawH&liab4_hO1l?a4Cuk?~PK;}8l3=O4J*h~II$u{!m9`Zqvp0DpBgF&nx=Yym^ zouu`Ue{DsTNvwl`U)3O>>XtGV{${#5QJVTSzS+Ep+Gprkj+)^Y>EL9`Glt zc_S&DoJ(mhUOEJ@(EJT#OA?M7;yAAG zx{ao!$l^2XEhLt2<=MUTAO^w?6gl}$FP#958TroS9y)OYsYXa42!T%9Oo|o3`58TQ zrUsNAnxCP#?V(5HX?a@9`PbhF@{oictpTBnc`hxfjgxzhP4n!0tC#vI+4#!^s8*U( ztFvH_6LL1J-#M^X&xc)m0U1Xwgza@Ptmh@LQ7$F($z`OPTuy30T^h-?pk&v9l3h(z9yT=FJuc9Z=Y0!2Fc|fY@dZi_viqcDIISqhL4X3MJ6&*)g=zO{WRCFS3rWLdjI5>g^X%(#o z6>X$brP>;#la8P@K$!`1pGl9QL1NKtavH6L5jN0q0<8ml4p381>w%*T+5i)RC3E{P z1oMFkKb=^)zkm!3lTed9D>eTmcp6K{Ph<*g0h2EJfmHuQicLC({ySuhU<1&`sw7R6TO(-?(51Ksz|ia>lL~uj6X*zR2mo&)8Ton-ZSIEt za&u^EbI_Kpea*%WkWepJ?VYftA0Z<^PLpA4PlNqC8+LF2=$a3!S4*BJi^vOPF?lh` zY%GbJjU})q5otE+-8FGYjk_k3$rQN~8elA-CxT&8W@9+fej+23@TAzrn&dt5J;?$& ztfZ~Gmz0hafUjX+f{<3Bq}r9FXlJsdl7i!9}4w$Z!Q zR?fF-!7UcqU|Q~zrlp${?xb56=i58z1Ka8LT>5YieZ(8|JJ*c@sE0lYqfj?&S2u3j zx{dDYCQjiF`rHQic$~i6O(rOHLrS;NSJInY80m^4A@kR}Ni$&hV>dZo*k1O~%QsS%Mn72^dm&4s5A{j3RRe9`ca!qTz4S-a zyG7d=n84Xd@`}>-k|~Z zKAq1#q6^sPw1RyBb{_3i57-Z|5uTlbr(PzbR`yTNPO*=f#&nSBk?a9CyqQlaGnfgI zZ6$wU7PGqjyle9`yhfc<|WtKbPbe@C)@APYejIc!ir8_Nbu z8_ROz-U!3%brUD`up#hg82lNrosHT+S|%pG9#AQ*DsD22jI#={H|*JG$V|}VTPF9i zv0%)=P4%(~XkHJ1aF|V&QJo9P#u3o(PzG_W3(ld;(MJ7Ay7gS$dV|EmLvZE+r_6Fo!7n!3plg=rOFl3tH3;&;c{J`l4+8YNk@os5D# zGo8lBOxghpu^!^9lgX7-B_$ITFL7~PE%z!WZdc1a!z8SiwF6!hkwLVXLl4aXi5$en zxDr_l5f?-f$)3=m@tH`ZJNJ@*!Zww{%{?kS;KV% z&(^n)4EYG%ar}f8vrYJ14_MaY=ZY1xZNxTQUokra9!|++XDpkQIV>}moq5g8Btt$d zpOv|j&RPuN$t}ap;r4KVLf5mlvvco{OQj4FC_>MIxbtk1N6#T6>A7GL&Ld;!`Jm<( zl4@s-DfCO>^yPRDC(IU#a zfapJwF`Vmz%wJ$j*wXC4UYW)5KU^7xzhmp>_B}8UZp1m0dfC;GRk7>PR*VE0-uOFq z3t9`Su!n8D8=4``ftX;1CfoD09qf)CcGto@EulX91A&Cz0D`)a45c@b5%gvv4Iw90nm@Kd-<~?e3)g zkOiNF-T|w6A1MRRkuU}2aR$oSqYyDuSI^lG1pf&a{3pH?bi_EP=a75XVl~$zESPNkSlsDcsK9geca4IF|hhf?~6W{RQG7e)mrH!D88I688D9 zPoKYclSw$+E;42(`(!bYgT4OIr`JEhWkN44Uw;TD(~#GP*kkhHnTOa@_~5eo5PLpJ zjn;!A5!yqt=?*f7_JZUeCJX3JQcE8pi|C`^P97so6mOe8N!HV+$XVdY&!@Y@)T` zJZ*psy_bCfy6~8M`VyW#lu!SLC)AyMV*E(vKw$7AIT$?Kj}RxYw-177U>qr6U$Ot} zKHVZ`015a{*cE_g{I?QZ^*0nIwIMiV-*25b8K6H*+RlDT^4KGAbI`v-AoK|s{7=Di z{{w=g&tS)XF2zuw@WmCq0EqoXrjR4u&p=^fvAQQaKh;x(&w{*N-RWPH>roS zT(0+Uvy#tsLvfzb!?TLOtV4X=%Lh{s>)0Y~GCwq5>*2$@iKWfmLNc*!B=GjjpTTt> z19F#$d%0S-WhVF8=6o7_mn6AhI(_pOoeVlKqq=1i32uIoc|Bwv& zKaxqm0TcEuIh=k6-tc=;1m8>P&!n9GLaIO+PGFRDGDg-x!|l(8kb_trnazfhxojATu@Omij*hr&J3zKa z0Y8JtGAT23C&x=Uau85GKUzw3Hu!6`SD%zt9u_l((L0tp0ziU~7pIYr3MI##N(36H zp*MgyN>C<&D)?)Dkw$@Y5K1;`o-FljA=Wm!v`D8#2K1=hpx-cg8?V|-UdC?EPt4c1 z^STY>aZmjlcJd{Q-N7iC;~=No&X@LZh~;kdI<<6@%W%3~p6HL`Up^0F-{ncj?I*~ZsyCO1yZ*S7PMH<0pteH%Y@6FC|`&)7s};pf?#$RYT7 z-X=2MWA4HMCD2W(_L?Q!+S(!cW+CS2$e(slf*%WWbfo!2Md!tv$xvTlMA_xI zv*jv2;I3kiyNbO@t2nS8?<;le#AND@Pea|ZB+YA(>a=-Z=P;7ypx>pLVxbYP zd-!L){NI2P7=f40?4;r->*$U-*5M5hxBNN5M3J4w>aAiS3dbGv%)f>p+s3Ef4k8QHz->ZQ!dq``{&v;O4M8XEe z$KtRi7rudvP(obcp66*Nq6oKujnrBt{_qg(q*XITO0S_}ht?sNI<8!#Wpmcyd$sU` zQx|?KF7*0s+UiXt%Y9t8nLIY|cAlxm_g{7F{ypqO?Ua6N4*LXaS1!U{?Q{r39Jl|B z3~$;^WMUo)GT-Ud&X(u3IZpHKB(E=MhU%1;k)YSqwh)b@W}W9TbkSx$VkaH3c)NB< zk?op|UhPtfGdtU~D>p;@WpC52@6m2pxP??A>}D6XQNd>8^X>SI4_my4JH3Z{yodX} zhX>??hN_`>6Yv081Ob|~9nCW`lfN#Vk%eD(##^(Kzb>7TlP8ebL3x92BnF=`h!zdb z%bbzBh0V#!o-t$#n~3!&oCp}p%RS$n^8CCZ=Wo{@Ey~N!LkON8Yrm5i&%f?wVr-#b z=G(kSd-8YWy`rJ8XcKfS!54M1EkA&(U;pxYa+hu*+%H8#^9IcrwuP3&8Os}%H>6j4 z9!%eGsg%QAr5ubJnV+AJyEDIN@D@4@nk1EYYC7HfqP@6@931}w^k>2sj5Ia?TORli z5Ng9b;#S~dc>d5{?KMWWkVo=|Z`1y$I2wV^Z>#5#`21(}ydOTlubyFh=Z{FRGz3to zuP(k;Xdju{J~Fwz0^0XWZQn1seKNFr3-jKYU+kblF zoLmaR%)0%jr?!HH`4K@u{4L}(H5;HOYB;1ti7BkSL{p>DyrP~T#uQ)Hen;e;!>ADb|Y$Sv7vf|%vBL_(3 z(77`8@dhu>NMNcfbdS>|prMCe*iDYk%goDanURxk^yr4$a>UZS9M__`xNU_yZxFEJ z;w{{v3x&HVlY@=Sl+2gyq>C2AvkvkC-km%_@xSf*;G*pOY;4HWc#l53n+#T8N6N1o zNT!B3^0RyN{Z$b{qV|v!_UH!|W$)0(VTbWO`jjbm%2M9T_!lAa_+l*~vV^b#{*1(6%C73$M&eiB^x_`9Yy-pv2_>5(!xeqr5PiOTc2u}cuh^zn z57C3}v6Nni$5MG&-J}k^IV{*h8Pu0S&qdqxV_m_>wjufnJ^Ipqbt1hPBS0w=J#UA; zJYF5jH}E2!{QJt}pjJzXWLS|3MP=Aezw->34amU2+(Pn_AR}e@eSv2|RG(+uK0D)m zp1Bo#4Mezdc6U;sK{0<~e64?{LKJ<~W?Cn$#WRpAt4MQ*(u?+Z->cQ&4o|a^(8`(g z)mv!0GCA}XFFV4kW!Z}ViIaNtbz9w>WP^K&E!m1nQ{{51n4tjHS5w#;Cl_Vl*2qZS z8UzeOVsEs-pPBBT0_-?#7x}A7n%uoXUR5le?s1SYz}^sr`2zO_*{F2(taJmC)zclI z_{6_K7Nl9tcCI(rPB${65F&P*YKH24!CnQk?kH)Su2jk5z3NWa2KT0t@}|0XE!4X@ zqF;J5IkYfWzrx)f<8Z@X)uUe*Z{O$*-H>p^ef8%iw@Dg8*C(qF*Am|95v~8aKdWpQ zq_w-zkhn@HRd8KPMzV(NjDv-%z?(LafDG9a{zD}BkHWkR?G`dFPr%;=ioZJs@FmKY z6=fz6&p;2?0=8Qkx9q&EyzJY_IECdd*PH>YIoWG$)9)?H?5pbza^>{X^88GyR6Gk+ zJS$1Xzev*Wusn$*?_!JS{cJJqWlQM8 ztdYLLmeMy_hJE7yQ45UB}k4 z8`(N`7dx3f&Q4*w*s1I#b{cz)ozC83XRyDrGua31e115)fETd~d4T@vQZUCvKuSMW2~b-bHh&u?bk{2q1#f0EtEpJg}kKd_tm8|)VTHoKMojcw!~ zvMt&$c89hf`;9h<-KF{1-C7yDN2_7?YW3_sZ3(+yYhqiqX4b34*uz=}drUi-{Z>1R zJ*nNqp3?4PPiqgdUD~7U8SM%7y!Iq}QTqdXNqd96tbNE{(Y|M|YQM18bd$ZV3-*Sd z$KKROu($P*>@WHv_E&u+`#^7Jf792o5B1a7NBZgPQ~ezF5B)0kFa0;{GyPunxqct} zx8B3P(s#1|=uff#>d&#S_2=2Q`U~tA{ZE|eZ*xumfb06F+|)nkmi`kLMh4F^3V4n& zo#z^re27uYhZ=2sxDn<18LRpJ#%X-CaXvrDxR{SIF5%;iYxo4?*L;8Tpp z_%!25eyH&ZKg@W8PdDD;vy9LA9Mj}Sn3?=2^FV&Ixq`9m)dRoN_!o@%07!v9IUX+8gy;eNyaDqUm4%<&xFoD7sL1$Vl4ks%;f(Te*TqM$p0h4{J)}we4; z{o-7HpSVn;;&M$FH)@8sQ!~X~nh=j^nc@#xmUu-QB0kje#Q(IR;umdLrmYRn6k2}f zP;Er!Xl=jD1GQ0^him(1&ecX|`m}<~1=>NGCun0bS7>81Pt?X`c4`wd&(|hpc59O} zZ_^4h@7AVd-lt8??9~p*d_p@k^J(p{%(t}ZnSa#|&-_rEk@>kcJBw;XS&lX*D^oin zYnbNC+FvWqI#4Ug8mEOGINnKlQKt1L?uHil`>r2?^(||&q?oFKKj1i*ZuF`Uc+8{t!EAU zxoh3o@b6<~cl9CdRm$KArpNjFXT+O4X5<5pKryN#4HZfoVN+g|zJ?WFwb_E#>t zgO%Uhp~~;>Fy*SdUb*Ie0RK*N=KjPbH6PY|SC&V;8a(E;;kMVF zJ6;#=dOdhH?{S{j8^rT@uk-xgBwo;)!i#xJd2w$CFX8RxY2F@Q-aEuAcwg|!-dTRT zcZpZ=F7xVs5njWuz-#&yc^$tNuj@C3S#Aig@4vts_#=38e-gjfpUPYKv-o}fY~I>m z$J_Y(`2+rC{!qYq`=B827!=|U2c`I_VR(jQ9dX*&Yum=^XKCl9~zJFVR4%ekLTqh;#K%d@fv(&ye@w^ z-ky(%_u{X_NAR)nQT+AzM4ldhlTQ&Jj7m@Tr1lI zzjLJ=B5jg?gs$ZBE_W%Y42;+*4|^LWz4y^W+X$ zT^S@b=O3^QaBrB@fPV;O)|K~?p@woLnTx@-CJ?$_X#zJu?Ct9+~(|43@WEEwOTe3#@g14enqKUO9}=+E+0{t48$ zWn7gf@ZAtEY?|^2z6Y)%W)67(-wRh!v$))i?}MwDdAr<}?}sbftRc7H2jI#v8_4(Y zgHQt3Y$D$!zXJC>v!z^49t&5#*-uvSbV^`OmQM0d;eF%g*Q_C)w#a6clN!peLcDBN zeOM8Sd)cjaQXJnXhqZ+*;)mc~PHQil!4Jb#F6$_pz(0el+}3F}ihmAQdBRyN!jFhk zF_Ab6C$DO-Q1YsgQa*WQz`ZZv%8cYoU3E=eJ*61QtC^7BQBiA=49G8Wbpqlgu6_uO zOB<5nGaDGo+*ZTYiegYzr(; z*nw>qms;}gL@su9)(UrqJ9a;?lG9*AuARX)V?4)6=UT#soau5IenwcayPhq^{4B3n zGQY6bhPlbB*O`h}mbW8ybx7XA#zRY+{t&w7ual1Rv!bs2{n8G8PSi$FO6tYGhq6S1 z>MV_)7jGWaWkvW8!oq@S>?%Gt8rPD~jm4|5dlOf9!YR(=WRLj~tQqZ^|HKTjdnNP( zo0i22C-?r;)k4h@2X@3!9dUkV1nz6ueTB7TS6Mf&a>*>_Gwr`4iyi49jTP6VDw5a% z^bb*#WE9+?Rs^@Mv!b3?z^i}#x1;si&bLZu3U!9RjIUSW60rOSie zWJ0Hqs#Lwo?#*+JwUngdaHk$TO38%uBIZ^0bQZJ!mxnOMf8oFW(>6ubf6@+9rW zz}v(oTt1y~J_9DC*)aLfVR`vn82sn6a(p2h$QQBEd@)RtE7%gg^18j{OH-QxmqJ-> z+_AbaxnniV=HNgaf+2NEa^r4l3*Zbqn==|m9o13Y8y_i=wu3Q>&4*`8tx~;hEFxr; zG;Mq0kX@2e$EDSH6ZnyBnVM@ZTf0sz&^8UQ&}y}C)4v`dFYT+v66eR0b+49~%tnda zsw(g^Z8EC}QYJ&KAoiOS6W3zHWhg_fA~Ui7J43C8hk3Yyx84!I*Hc!hH50!RRqvX^ zswI5qf9@wQnS-Z6$f{7UZ7gpoh+Gd(Bdd2`fAUVa^HQzzu=o=Jd>wOON$bLrt{~qC zllB&9oo%cK@k63HIhjr$AS$DpV_2&E8U|0$bemYluM(yrU+89=i#`wuo)G_+a(dLz3m&giL4)nBVID7@EwXsHEKmYOqVsdmy* znc7lqb>qK_z}|*Dgom>%l=l86|M52unwDOnw%x|!(Ap1*OJD7f1cYYgJans_>u?|v6^`V zJ(QCAC>HvlI3Wbuex2H_ZAtW$mdsFlNG#WC_3B- zwLQL;_^-X%7glT%ykLWntv&^>T8!P!zr|D3;#I>;zQ#&wYBw0ROTxN0%H}4|s4Nz5 z3)-n9jhd5L{*s>BFL~{k6z*PiK+1<(^}2}3z-Ll{d9F+8Bm#%fZy4BLPUEOKSavlh zE2`#VmDJp);C9?4Eh_HCsW$N=_ zJ<5{SYt&&I)|-t=E>nlElGi$HTQeADS_6(0DD@+J8ACS_zKZxh;W)%OgyRvXB~j`K zs3alu0*0ki)QN~66TXR0?MC=EhVCYuj-mGw&O&^Wa4trkM>rpG4BI>fbv8xThkZp5^;3AZ5LL61Fv7*ObT#Nvb>A?7Ch zM3k{C(OwK}NQgPHPY4eoo*?`j@dDvdk<$R8;T-7AD;5r-01Kzy07G8Tc_NxK8F0O6g86$xu1Rwld)u_$3Z#NLGU5xWpJ zLM%<#R22D6qI7eOg2d;>FGN;p{rQl8pd7`U2n zng|?BG!p}-6VAcn=V$v50-^aLB z2tO2Y2NG=-^bFMk4&H+(Y#Sz|D$;f$)+hWJu^!*Xv?FiwW;RTu9gu@h!q8n6@KfbMc%3bApyp(iyD?!gih4h0`w?MV4DC+%ph!v!BE18~y+-&j;#I;&FsVz}O(dmGr9UR9 zE722}@(SUTh~E=Fg}9G!0AeQLGa@IOXb1-GBzzw64Z_4iatGlE!~=w*5a%aR+K1(D zLZM^Ca~`Bx6B*mBC~PdI+)DU5rhJNU0)~D_I0X6I&xETGej>IsXbWvwpS$xd15K@2QUcvu9| z+^rwMK&sCWu5qQ5?R+WXR-!;$4@>t@;8!BBGtt+A$`PHycR5LT22=JT{9eSR#gYCa z2GSIv2xG9@P~gvk`Vd{jsI=zQFNwgEQC$^89~k-{7?oC4hJ@IfP!VzIvn(W<%+5(+ znjoq!1FeWHA&g)?2BD2e-#msVlG2=H#03>1$|0x-QEowbiSl7Kw9q#SBGQ^f6>CeI zCVZm^7U(s?;ux34F7XFG0ISoR9YxGXp|^>g=v&ArhdC`EtcYp=uD8FBTP6GXrM6?&V)A!(U~C8aBL);2@?qu&V)&X!eL;i z9xMC>cIv6ZU0~BUu_3$#Hmy_*;ViIe0x*QHz^2uuAzTG^2_oSsuxSo8-owYQBuw}Q zRuLwA1N5C}pl?8;&pQQIko1A9h>_W*uSO%`H%K*w@Eh3FZwz!Buy+a3ZNPpcO!x`P z5GMQtGGK-XTOk0e$)z!cSn+K&aqT=&Rf~ ziTU`1=rtfWO-M|rHuY-*eF(HPHWEGrnq-V05Xp&Ppc5gLD>@O_W$Xa4h5U0GP5uSt|2Uj_&H%o#Lwt4 z30Dt|-DbkY@Esw#7$oWjCb}3Tnp;faVz6n|Z=#2Rogow+2AjNgrf@LWWS%C@0W^A< z=w4vssYJN$p@G{(X9F9Ay;W3XF}p1ajk{Z8jk{an?(XjH?oQ+GE`_^GYsqG&E-}Y93MxJS)a@_+jYan$d!1UQ{o1 z6eV+b40!gl+#R1(ivw5K@c<=N5e**_=M;~HrQaXLP>?n7Fc7xf*X1G$u5ZW~UXH$H zM47sigq#&$wVlN7JK>Z7?jt=(C&?;_$ZmMU$-=yx7l{A`rU7h@9ycWq2`_h;@oPqFCH@$!aljoYlvn7$%s`K%?a@%@g|1Eve3 zg{OMvdoZU(?HUB|Vzs!2*9v7h;~s{vKfG}lNVW>#By#(fGi?z(ZE@9T4xCtnZbNg! zcn!UP+8T{-+6Njox}L+#60c!-Al;!zXVA0h!^=9;z*s3%Mye6CgsLfb61GIENp|Aj z5mkmQ!rui{rYu6;p;i7`#JQt6;kL#FA@BJQZ1si1cIJt5r9nL25>#lJdErV>{xC(R>D?jpgkoCD}K;x zAz`6DkT?Q4B0eYpjR%Vd!iUq1#SQMRsfb#MDZ0)JelaFlo~8m5oS`aJl{Q2}#fHXR z=!{lA%~x2L8ij^Xn3sk>%>dYwCOqB@oS`XB(-bmPr=)WX?ya3v{R^dEQKPXOQm5KR z%PZtb3zI4ej7Uov{{<{hMHsIK;&AViu;tP5jT0(m9Pd60BV4l^K)2A>kJtt+A0T;S z%$9XC1ft%N{7riV^N)Qzh7c~;9pY|5As!xewIUXXn%SEbcq8mhtq0Q|6WqxW;<`{{Wi%kS}1cmt~QaQa-8&62RK)jbDjM#r?a z75ZJb<307{-RlhAB9HalVyHh{}eol^f{VTKau4rcLElX#=rSe53XP zVyoW2(jUr4gtz>wTfkzS)oeklpqqZgM@__iJMz2sOeM}-q2L+CT{O>~Wlyw$5nG3}0 z{uN90V)^x$_lf`+n69OnQyljO-S?(KT%%v%4qni!wMkRdRzX|e#p7JQfbv*{@gj83 zgq598AZIrIMeGBRFqUX!AE<~65jOx7jZGSv0Gh@|jpP7TV>?FtW}!ylO*uf{O;Z}N z+;SRM0AN0|0Eb-2_w}cNcCeRb=P5IbPMWNAxc9Z#EN*$wjDJA-hY}kn-jib&mECD3?T^}L~8p#M{-oB@PKSn;z#JSrAI!u5VI&# z`bQ44{6}aQ=gWK+`78qtQ@2MHx3pGer8-8x(ygDdS8LO@Xw8DRbcSpGeF62gD*G>R zUvu;YmgY~5zCd2>XzgF1qRvlx(9E*yGWC~WF5R*i!s&3f$y6)QpayDL#umvcymfdT zxpRo;KRqI9Q@*;pk9YnD;0)0tdf;me&N1H|H{efWKzAX1eW=3!+zOuvy@DO$!>l9f zrP@SoQGWVx(w&7F)F0Fr?h1PiHztBdfki?13Lruw!U^}L<|E-_;KOj!@N)K|0X1E} zFfYnJ4PDoL6<&%@Qn;rSe)N7ke#m#P*H^}%ncZqMqPeNNNVFSLBc>#~q!6@*45>M( z4%k)M5|t8*1IAgNq%t(zV^RiE6bYUnkJ!7&pdPXONW|E$B3#TMIu_cWo0WtW&dtTl z?js5rVx^qppz&h7Oxh&ie853;q`HBp|Gm98nv>VWt^ibV(t}t6^jrv_KQM} zi;s$j@@L?ofZq>v({U5V9Qg$8fwDn7v-fisa|uG8;wa*RF#PE6oIc<0Va*S#!d3f57vQ1kk|{IOh|TEtQ6TYf_UQWXSHbh!=Qq&6MDaKD z$X6k1LS{OfU}9>5VQR$GNYlvO=ncFzr8D`evo*;v-4OaU`Yx&7p@(n?{FjZ``+?W-3;PdVH0`+ZN>t8^_H{lBqH}tg>`k!Mw zaO00~ze>I~<-z$(%@HifdD2rkHT^ttg6E!1$Td;$hIvU+U8}qh5_CD`o+1QED#(`q zgn0jRa?W@8RhRDu{hzqw+&SdQnCa?ia!YuS?lkZ8w^`3Tbp>dUj%78(eqZwfH;4fG zeUkg+tIHR0p8zB|EuPUao1ixw*TMYJm7lZ10H!l5?^TPc?srOfv_L*by7DKb~8+PrQljf+|j%#&KS#dsp8p#@c!q0 zcI!|?(B-jRQtvCAW}OB zp7lXWd^&7+T7SzG6tEL`5csWg<8w0N`H$df;PKGQyx_6now2|_CKws8TV)`O18UI7 z&o^O`*+Jnfu;mQlFrW|EJ9PyiJA8HsCjt?ykw0DwN+%4zFfmF#GITI9vIL}2-vG!+ z1ndD{4%q_c3v?T4gPlznsW-5Iy&|LD5V!8Pqk z@Y$7(lHHs;;~MUD?2GR+_mclAt7yL{fpQQ|!oXK-86z<;WTT3lYC*4fN}A4oTS$=L zLj3aBj8heKpwUjjr?h?JTKnAU$(cG_M)(U*$N&7dnzBuM`@DjciHgKzrFm4zj3a-NE5%efzH&E-lUmkx40f{O+@Kq_~flpJPXSNxyR)8T*l@ zNesd>n73=wM5Qynxf<6J*f?~QbyR4?e}ex{|GQB_DO|`e8*)tuFfeK`Ffa#mHzr$S zYg=0;ds8M$Cnu)=^1qX{HnkNoc2F~Rwf!%f>M+#_hXo-_e$yNPN{Xg6b#QuO8HLBX z&JRx5-ytjELe*u_VxAbDsS0@tq@%*8mJMINLS)K?4Mt-j2_l=$^jMW@^cI)4Up99J zYkdKMpWr)aZT7f`@)Rb52ds$i3;o0jlplX13!*@Ah=a#^gxA(qLnhP(*C?CB&K!51 zFjS3GDX1xN_w4J#H%#7lE~;2pPd;J%3}o zQF{+l+;aUK`C`7^=$ryQtV0Qr!k{^_-RcH})UVf6)NM8K)iJj+#3(~|=fD^k+7u9$P^ndIh;3-+MReyN6Ej54Op`l8NrvQjTw!AB zPXik!THkg8tumArO9lJ44_v%2<*22g*=-LkF0*_e1T42*6+YfxR|LWIhCSi4ai@9p zK!{7sBxTkTdl=6{T7o5vIi{@9-m?KLbujJK&eFvUW?)hm|?$rco^6bZf;4 z!>ovmEaX&rDdkB*5z!iMtmI8UWf_1#^_CwD1)b{DQY>zm^bv|M_!O56V%%orsXb<1 z>6Q?M~G z_$=S@W=T82QHEe8s};g<7>tp%MWa2_#m^XEJ~(CpgAWnsJT2R_qGrbO2Z;W=ge2B` z*C*7O5qW?3wR_T0YM7Z({2(U&o_R-=@3(>)Qo3l4rD}&&|79+bwrjeE2%HJ3?2vVSKNY!k!Vr1s7U`eC29q`25;GzyHxX z>|Ibd4#q?ah(`^p>wUl4Ne^)jughGabubNaSZjH3DCfdAY)_fmrwJ{<-W*B|@x)W$ zI%w!8jv`I_75#WEkTyw};B#^y{5y(6RIa`4ED2kDk~%Yfh{k1`i#8YD3j50=M;yzq z`oJe7N8D4jYHp?CE??JR;H^($sQX$vI`SiB%Nhrd%BT<4FBGT)eg8MJb^-DyAFKFx}}&zcjcaImYz)e zt9oPU9zvybwQ)AoFPBlYzu2Ok9>Ap;qK(x98y7<@g&x9^L2NvGU`se!APP z^vyd0q6soqH!JpMj5~ig`9FUI!ED-M-(-Q?luf@xN?YSRCR!9{9VIWh*Ih+707>|N zB~})$jTAxYCHLQI-yxZUJoJ7`H(4d&D-?2_AI78Rhbbm2&F4y3iVbCt8RiEjzv58^ z4B&+mC;4?E*u&IIlo1ReOTddp+3Us8JF?7*t{{(evOEtdf|8Cb+g}mGeqUv742M7_ zju85(y&<8bvlZ}-S|+(_52~}O>yZCp`IWzr$U|N-l;w=iyYpi$`IR)tURO zJj<}sxT>I^Ibb#r%sfzp5<7@4z;v@P&(?Mx?ti`)ia|xJr_y^R` zmB3YkFSH)=^;LKmbDD0qFAnTUTeyWdOv9P774ckRS9Ey0AubN0Qp+ETDuw&7pIV`6 zss0dxZu=o|i8i6ClUZ(c5hskFT>SyZFduFYovkzy>z#r}C!nXWbGg_kYGiLr0`a&f zAd&!cM+1j-(5|**2ZVZLqa7-O>5EdmiJ5z~ehAHm#?JYa8b65YXY(0%}o*k6{y#;Q1^U!r+Gqbj^^kC+)NG+Xd18!FH1-^Kg5FLkeTND@hL0$^E*d14b)sF~ zCf;`4?_QXUCt_!t&{5fm=gsFR`kUv{4xng!OAaQU#F0FlOkxfQr6FWubCu=GZfNFa zGZ(Cri$&T5r2Lxhr}Ij?x+=;L16o^`ITl8Oy|Db9z3CJhaxp{79nNtp8?8oDKKyp< z>X}T;)B}V&gr9xK69|=C8_|6VGfg7utqK{N{XtZB>*nekA($d{htK_J4v_TdZ!MX0xUgXG-vau~OLwY zNBTIPElXC~ES0+~R!V6PoqJHF^d)~cu6>?>WHGYlFC=PrRn zhANdcjk}Y0ae=zTY#W=)5ve7hG8nnIZJP=5|U%_5iG~~{t;zJ9U6WE^M?M9 zsRq6mxsS9o>DBt}yCYg55+G`O=hyFN7N1+*@qbIZFW%wpsn`aE!#EX({@p+EpqU~+ zcUbh)bOic`Vz&uIT3WJS7e!u+WMU-fhP*N?Bd#TNmVZVk0M7tqbuL%5GQ*Oqb*9bn z7n;gb_kV!#yPt*R*CgZ5wY?*vcTHDvaWpk|b+vY|{O_Gctqy`;%FP@YHX6yo#5&FYYQIICP1(i z8^joTr{pFISjN^Tj`kppb^bN16O+@mT#Mj|&DAzcIsi9KULb*-Fe@P1*wj{M#f-Y4 z_ZK@R+ys`pa(~mFA$ZzJH?{M)Wke)+I{2O8BB|eE4mXb{F&);^fw3-)@4LMN@~_%* zhJFq>E(6oG_r9TN6HhsKX6WLa*hIOb-jAA`m$01ze? zqoKZFSFESDQ90f?w^~q&T@A<=>>sP3bc+nodpWFNP zn4uEL#|R-~7q#eK+!0vcaxg?0cbp1Kp3b_7$`hApzbt%h%Qe^{uz~)Fr76qb<(e(# z11;@SVBGPX|1A;d7$f2F=jFa3l6b1fZ2xPM3RPg5RDv^Nh;TRAux2b+Sva`ohH~bQ zs36zy-okP=;f;uaWa$|^thn((ze7gOOE%aiC*e%%_@eYd`9nm+skB62*1Iml{F zL1=27)ZSg_G8o_0b?I@bA0jMxbV1fN8(n|NUN2=#0O}9yZiI}u>zFKGIju65GT~sP z5)#y*W5#TpSUJgHT^u;YE!zB?5cS|%B#aN|(?81*ZREikX%0(}`2NkTDAc`Zxr0(J zJDZc)A(t{(3HAHl6=F+GHC)St_aDbvCpM9flSTWmt7LVQIv2W48@FFxe2s%d(KFka zN`K5u^_7i7J)KtRLdIsbto%2^69rL`<{yel1~z7PgLcg6465SbAM^>3;XQolG0$z_ zp7)0?k7gM_9^#(ATE{ORT>$idL>KKy|DOS5(Kac zDO@TUiAF}pmZL^1IFe1v7p5~7vKf*`SwaYC- z1%X`?9VS|BYns|wY?8k&h2#Brdo8Qd13Nz#KP}V}=4UcrG6vzv`)3Erq!9_%xC*UZI}1tUt9Af&a&7B14Btm`gJR_3g=Ih%7A5@$H$)$eWrlp8kI-4cIg6a! zXMWMK-?8?ZGVew3WMhy&u{6GJ=7QVwb0C#KhFW@3{`bFPTHzYU{V1?d5b1Gj@_HOuMAn(`i-; zB;VK;BADemj~;V`Hv8Dq3$&5n;ylYK8F|qG{K*UB!8W!bcvf>lCiyJOImz6BfLctgLK;3P3ytB z3l{t^;HPO6{P1+AO?d(*u2q>3EiYWw^d3N$(yO4ksIu&@;l-_wc*tl6!7-eKMApm( zh@}DBNsl_NW$>iJik2)MnC`--nT`@5S-WwFrjE}8NQYZbG*|ewv9YQqEtr~52jDS> zB3-`selPkqKpVd_&U#u+&|BsbF`7l~=ma-f+SHxYHh-&ElLLq7;RdS5l@Q4Np30ce}ZcaW@|DA-hsHI10>n=m}P zdrFh&0yreT+<2X-EVf1MTc``eFCm!onpF(R0t{#$^>%Aq(^tIx;iky0Is2(|cWU@UiFXiR_OEH?#Z{{^BN^q4fi-3U^ z?fHDr{pi%KS*s>L1ai7U-UV!PRFm z8^z^3t=B;N>K2gNPqg>c5W8tEhEXK9OSu1JWs;zvs2a9HXMf}zKdRp8s_va_(_>Sh z=-Oi-Zu>e0R>Z{j2DpTEy^D4_PJ z!xe@u92mSGbT)Fru+89Z{t5{||`U$@xj6NRH z&`K-1$P&A#QApOVXdWkee6mPtyO_~Cr!v|9Q*pUh0;I{l=M~cne4U_`(h$9XA zVKJ)Y7oA1CP>lvk)8J{HiW$1R$=Cp=k1OP@-pEJmm$+@a|8}01iD{kgBOa(N-K$TF zby{Z&^Nj%5kOt|{_}DDdOGHN$r{@99(k}WOTRQtBaiy*!6xtqkRVr1cc)3VvUCA5L z*=Q4ca?7-$cNdi0L)7Xq5#h`3|Bkju#VDRY3ar7NfM2%j_uG%;sZ zvxxPD0!oLnDj#wKO|HDUHK&1DS#EV^^U1uzduy)`dJ;=j1NyXuOq)TktW=c=6QB5|OIe5aYYak}9Y~5#6BkQHP?i6+n$ow|F^Uf7e z6o41hm&m;t+y${^35efiJ)^!&zBBW=Vg}s9cE<`$6-n;6W0X|1#v*@fi2CgWM|i`E zKBZA)SNzjJnqg;#I9iKvrJ@B=0lpO|RyMy`p{G zgh6n-3l>v#ze^G`b#GBBq9^nhu@a<5``CaeAPPyUx_>6YEz&XEMCus3_t}9&0)=^Y z8H>@nXB9b^W-|RLLsuPhX7B>md*GYo1EpH1Y39-Kyiw-iP?EwnqYt1?|%UPsCtIVr|=#C&aV=BOq~THHM^#N4)J1W9#jUUEaxC~jb#oy&X4rBn(4+K zP($*4pH~RMQw)(<+Gb_#c!YQ94Yhl~TBF858S30bnUykr#*n_uly#9TQ;-pinG)uy zLnX*A!R7ziNT1B%%A79WByn#^vW?{Z9w}2!zDU0HZ>n0i*V}!9tKI?6&OOHX{)3kP z-n&Xhu_s0CWNq-IFay&q_4g+;RJNoM4Bp-Lj&w`EG67VN7bhRZ52>5O zur}ILdI4?#Frbl|lg?^kqg=-T6`y4iBS?zkP}ZSbK$5&**V6PDLh1A`_iiWLErs{A|a)8`EIuY*&3eu3$Hh zT_$sXcs$h2Rc>fQN!?|s{To8X@D4m5#Hf-1+khvt=J#r7UTc2i8VlCtzVS@c!aRO5 z)A+Opci2%Cx;PI{w)o=oxQCX|qc4tj-qa9VWm^3H{coVglx$6QIqv{sLm-lF4Rgdt zpgeNOIK^*E0;tA%WA68oPs4r}m-xwgYB1KDGuA`mb-DF_s4k5xq*n}+3zv}1ZAx?( z;b&nTgW-I}bw%O$hCdMF5zTssgK9dk@%UKpy9;NTv$!awe#S=>yNQsdn;qz2N{1$t zm`io7<~78GR@$vu42FosM`mJ2{YbS&N%t^KajT>lEOiQZ=yNf>Wq1)-9Pgm<-AwpS z(wL9}cco%l19wa-<<1!u8nLS4%zVNEHAq+)*m(!$kF_c*RU_iiJ;9!HmaNomM*~+C z;@aMJDq&KFmuW3gHr3yPm*oMm;9zv*bPJA4Qj%9$l4r|uPr8DQbUmsn$o8_2rhhaH zqj)i~?Rwg2hA9ZIdUA|owrH3v97u5)kQfF_Hl~Fz3n^}PcRP!CkGZg-jJ+jvM;Fx> z@vh4#Qm~0eX`|)+3weVVw@g9asJZ0W4kxzoam=dkBQL&PnY2m zkZDs)uj^{eIvfwdwpPrW_r^=B^)0#0uJG7k%+o9$H0p6PU`soaExpyL2+=J%a=_!(pvU@Ta(+O|M2nYPY zS*gdAim0}cfHXpGC=K~QO}&vovGLZ8(1eUtMIL7o*_lPImz056g}N7PO_{?i^|=b# zXJcefJ^YGlh@TuRYoAznUi*(jd)IyvolRPNCMei;R>amJjqu z^Gi#G;4L|^$nVF>tAa|48)-#OsAa>*qaG&cg#9AM+Vc_jM^Wz5Mnt_xD+r4G@g~Ts}*6erDgTvXO?d*r%LAML9ZVZclS-M7V z8}wcLWaC3&(25yiA#Lr_fiqaSv;qXHN~cIYHZhgt)g z-+lqDTIA8Z(~Dv?!C*YN;@C@XX4hjr#!v12og?VGa^J^2abQh}k}VJs4x5aM$yDm3 zh>|+iSU6{QUs%YywR`_tzUh=2Uzh$TKZSB$CVL=fhV$uyn(!Xqhy$_VJG2%Iz7Y#z z11_`{G+ttgMaP2EzT9eIWxWvhf-tqhzZB0s)tS5E0Mbf+h)a%NxR)H7sQha9#tpRfFkRXUhG&s|6z`n)O*O;vF1z*czV%4sKO0_% zmy+S^UA-q_>qhK~LXMeK4Lt-$Wn@Ab4SG9Img^^fnN@q@8i<^xF*Q?)*IWVrmkI$L zB~?8jk5PKSEl+kkb;g{)Z*#u_KgWR+&z}#XHyVxlp&gv1n9=U{5QcPj4fTDBphEq? zg4vXy4*`;t{(vg#R?N6j(Kti~7?^JEbLMVtw|igL{;Rn$$I`nl7}gt3m4ge+@JnEm z1yjq8KqPu^EQkv=kcmjn+jX^^&H^?{g@zKJaRDm@Wy&W>3G$G}5!rMgy{?2ofb%6a zC8#f1+OHz{csG>KbJmFt$!AchGKC%`D%Dv({|`1k(i$nU897K3U6CX8!c=wqK@5$F z-$5`I1EqVue#u-B^ZG~_q9^fq8N5)y4)z{N+B;)ViARG=dy}91)>ruLlndc10__Rx zU?0VZl_wB)=xO=^#VkYGW!6A@4p@nGx}LA35l zb5T7jfEVIpRUjL73VDJlLTniG!=+IkiuC&eD4h}>ed?lc*Yo9 z03t0EKZ=O*L*mU`=DnGQWF$TmcL6j@!Az_#(&oVaXs4JXL!@9676) zw3#DmtK{AMEQ5+~rPKw+y=c}jgD1!cPe#r6^U1NfH=g|_xqQ5zPaFLxhE{3GgQ{dP z;*3i*MXcojTc3vNfJo1$Q?Rg)QCCH&JBY6k23Hq;e11Z@^-o`*;AO_tOy}7m6~w>W znDDnZFO?Ofy$t6kY?@vB`FmbB)prcJVNYY8k1+aY|Ej+N!03OXT0a9zH%=uRkOYI@ zpFGun;Ip7RAmpI^*UdQLB zY+d8?Q!z!9-{*FRUnbB}IRalnklNY~KQ~So3F_(TNcgR#324Aa_wEmjxY{vxW=@I; zQvb}Ed3%_9KT^?O>95BAGT~eE zw@Y!dM*Y%ijnuBw`CY5VkW;l(VXoQdT&&@P(y10h_xaGdKT}N^{Y_gn8oumgrfhI1 z=1+&9@>Th@?Q?)n%@?bWC8y#k&pyk z)4*2CPQ?&GE8`o_G3o-mlJCfFlR<8wK~3%daI|Qw)IN7f53UCyAk{PaV<0@-9a0zy z7rPBWRt>hXhF0VLJj;ahSa{5%M?z-BC$R7U49@Q=kL+S`LK;|RT@y`&C~9;1O@|vp zZNm$#$L>*OG+b?+(%`40eUMZ0kt-ZfFAocl1zm9+HO@AsVOq9(Dq z(2Y)^XMCSlB2}wUVp&R`*Qk&2^D-4|4)qeDZ10)rIFmCR0~;_6deKa13L29Y$N}9l z9aIGEmIUtpeO3aZb2X^fTu2uYv;p0+6;#Ix{7SCyf#@6ya$o`KB7ry|)@_Ag5dTo0 z{e)h$7m7dv1wina2nn(Ri=po#!TBwO6me%25kZ#Fcd_8_gFyl2LQHtGj)))*2%m+Z z07oH5yx9Uo&&Pyz02IrLozxWBOw6(UHD*2GFE8(dpe`IOiKb;dzR6!Fh> z7aQkfL+8NgYUD!hpCGL|@I!nLi$pwp+Z{Z!k!f~dGon>8I2PV4J4Cjz&@t{T0YtW= zPz<6~BX}CVQYm-`;-5URFgHR$$Pf^R+YO#l4|txV5FH|DaIsQ*2UU*3WOlZ6DQKBe zIq9t{L|Ob_0(=wbEJoCb={z_Bd0>?$ysst8%}r~P_X%$if~RPgbdo>$7$&&M^tCo0{b z@4As|c4+aYrD_cYF$ilWdV>UB0(3)5H3YocPzD3JUJ%v4durgXOqaZ3JFfBCAPvoB zZ}g8w6t$5cj*RgpC;n+O(3u@Kc1(`aW)&>W^;u}ltZPGb#d0*+u0GqL=#E?(Ppm1o zh42q+G-a$ooililyyDxMP_5CXrW1r z5!%(BblK&d{D{f)S@l^+p|^R#vSoXZZ_N=f!^!G3VwoD`Y1yq&e!|qz=OSxd@UFEP~>YCf^cVLBCV|0z(vim#ez_C5;k%Q9Ae-yDsIJSM6 zlW-DfK&7*n5Q#cJ$^TFBK&uE-DbF{E-pe%Fg-n z^V|Qtb-(VIa?|;uhPOe3fzkipZrxSQ9nAiVA};@R-)?OAzcG8$)b&*{B{BJ@NXaIE z?Xb9N{Rungq_N-S7u7MeXA>vkjg4<_600nJHOKRAuub1t-Kf4n3FuPL*`(E1j;jVJ zk8iNaGB+q48F#&UZ2Mkzl)p}Y+|P8OfYt5eK=30js8Dx}ZCNZhES*cBu40j#(GhK9 z8f%N8IYx32aUk8XBJ%Ifv|l){HDqw*M`p9mjwWtw>Bp5G;O85G5YQpRokvmdA0#&I zzI1?8I&2mc=3)>fZF-MW7C_|+rK5UjcLLnFwW;6Cojn%R)Ij6VgpXU!rPY@#^g1x* zC-FVRjE3eQhG+LAacC+zMAFg3#(zrz%(?8wI~4|T*&s=cdW9_9pfRUS=Ta}sUz}p? z=^6#DZ{HuQ_}p5z*3Q)vwju{y1QeZVnJ`A?`^kq^4VrEn&z8h9hanX}yWLR;?NTAv zKYlQWYfr5CY7f8lX7e(OBeB$yFkVD$CLPWG>5lqlfg4XN$WPu;^Gy%IS+_$w1XjO7*w;v{-af`WAE)mQX1E(3eC9?4!w-RBxQ~zi zCk`93o(ktRhth50w|(L=1X5wTSxI}%oWAz&PgejX$Cs-O$~J2zWMe;8J+&ZtY?K4; zXFd+c@hjz#vP??7?4vb(dZdnnWVcpFeot?2i;y+;&1^r!Y57kQdA|gTaN%#Vw#!tA zZLK)92=!Y*CV~NCYe7R!FQ{A?33nUBr|h66JuKz^0$GMX(NP5rGUnoU*b}^jUmDX1 z%WoPn6P@}pmRsLGn>CvUsKoR6TgcH%i@a*JkA%zdnz00tZTEt!<8JDZ0Oidl(ck$+ z`^eaj?zn<_^SIxkq%2MYvwcB+sH0YV3h9y_OjA?{j?8MAYlBX^|F9+Cn{{!0)4T$O z_o+#~r5tdJTOCus@P$`Gj9ULn9NA}|1{;$(HXoC*yp-19`DNje?p2cYNvT`F&(J+` zU6ARQ5M{V+6kU_VIX%a|Jd$CrwbA}2)73r95suT|7?)$eDec*7YGpc*#ZB#jAlNOY z@Onzt(-&v1uR%#;n+^LdBeFpp>ag<1srTd@+pim54)$`v{2(1?zN8-{8#J!@Bk;== zsqRfumk6G%MN49h1%m&_JBl?4pOf*G!m;s1z9;#=zN1!-9_DuPj%McnPwqyFt>S_b z?&xQPgY60yuIQ*fs&HE{CgydMbS5Om9&S_`MO=MnUA)LjQk$;G8z2Cjf$7KhsQP!M z5m$xp9gxP-uesaajJ^)<@5is)L0C00AQD{HS|NV+^C8hz^Qx(0GW88dPX^2Ktp>5* zurJ85b%i|P8*0Bc6=HsTj9lBN7!|q1*e0!~;WKPdNZI813|+1x#Q-0B4q@zPs=f=4 z7W27M#Fn>lG&+Y<{`Jf4?#qP2m*9=`l)}(%jBrG-L9=uUjx+dZTw0z@|HbG(X~7AiI?sqB9_?GkUlPhaO|N!n!(r-O8GlFTE%?VAh*H zVs>IClP|Kj+={nU>b)}@!RX55IQfLJHo7+2im>mLKg$wQ(^L+lZFQA2h-Hz`G^ zq}3;lsASnhC@gg+QK%`|jNzHfZZyAZJVH7g@2-3k%dZ3s)=|fCC9t$H+r#)VFlv!4dd2=`9>@*hQ<1(musl5FT90Lbs1V^yo0NFUu4gf zqNG3?@)MaFaTfTyaO*=vn%v!Iro_+J`yH%69Ob=#_lEy-y8G#~J3LXWZU+t_IVJW70oxJaUsHDUvm=3aYnat|kYI~GcMIbl?Z~c8Er&=ny!aPBc z27a5opJq|BCAz{ty9qC;Zb{kwLj&f0B3>rJoJs{z)nIP|Bvuw2A0h2Kai=K`=LlFH zI00Yt7V6>Z`Bcb(*5sFYsjL@(SvNb6UtJUoqVSQ3>YWnN_f#nFbeK2tj!YxbK#EuT zKm#nrDKAnk+Omv#1ygb7V^0t(XI9nvA)(v1ilBn3h7+dgr9RkJjP;F^GbY`^KW&g(Z@!KaG>Tdz?jm~bi@+lI4v7d~Zu8ohdL z&5KQud;Ky@jJ{=KYmU=9>0ps9J&ivWdf@IY^K9bK}_@PV>m)h zZOaHs)h)9r9_uKc6v=RWO$s%Buf8nQGx3oW1o*~vtm8@;)#7I{POEAVVdA%*7kI(B zP?qQ`0}mRo-&NS5U3B9+P(J&4P$!`SVEfujczj9%6jdV`RfpRCKT7Z%|rhT&c*( z2MMwVD4y>K3~ObHn7{m*`lj~{ehO->>UVOu#SadK{sUi7nb>XLN_O&zWNhL)yPI7S zqSc79m9w@JeSbl$Y|Rivk4CbeO4^0?NDZb`=Bn*tzXuEMu^3Bp3_peJ<4y%`34cS_ z8YfT3$XzkIT9f=P5ljqc=9gC6*uM@pC4^|j*C=3MSQP)kq14^V#m&gp%G>D2yCKZ# z|NPgVgRox<-dA-u<@@Uuei!znOm1#dG)0Vff#)z%T_JD09+68^$@k1ax=z~EtTzX}r-tCmHOvfXdrP$y_j&%B%K;uTG2}>*VwO0P3jJ}J8X_`P zZ^Fwk&y}}joLN%y=(>8FYsF7^agb59*@qcyvPTuPk01}z>a0K1I&x&`DooPREudW# zYO?Hvh3TR*H6!kzN3t{QOAtBhkziyvc1aI8AWDjYg1=>op4xxkgK?-Y=EORYoWI#N z@={>E+?i*==L=B2-L=EI4(={|@nmJ4?V$W=zZj)V{u)0mXtfPWrd#R35zGl89FulQGEGSck~u?9(kkxqD=AyOftzcz zHKD-TCr^$^TV+_m<5Yhg>{ZOl^15Q2!Dvf{fdr>qzMZ@K9TzL*QQT}>HB1y@WttOI zez^RsG3;PtSzGS%p^d}-O0|`qsE2G3h6t6N@$ekg0SRS7qiKhXURAW;Xy2KW3BF!4 zRtyv#jD`Xir5s0Y#)hI16+@Po_tJ2 zXW?A!j5@kqZDAYfd*ayAQ1K;;H=_A5v7B~a{*7qr*erPW6m{jtG2He|rm>gy?=z5S*Ua1r-pgjH79Bd2-LjL8z?H z!MHA34ppZeM9=Nk$U&dP^@T4*OBkKB!P7_fsx)ohgj&ZyNFMQ*r#Im*1q{f~QGjICu4tU$ZR(!J$d5F=mi5JTbz(-l+$?(bMWyNyaB; zKjpatV$o;JphTbum~5|OM2Wo@aGSI>&4GRYRK>efCFar=G1RB&419+Y!~O}jqw+@- zSZa?Nvk3nHidua=EuYVOj-R~msNq4?$Wd=16ioJzoWi)L2(Kj3A?|oASeOUvvSen) zIh^3bqvt^N4qub86{*#i(ne39!3Ay^$f@y`oIYR7<8HbyaZk;CT5p-@99GfrkcDO* zA=r|Ht8-D2M>9H=w03(>I;{A;YcY!!cRjoMR+&)7USpbg-{u^-*a9M81bVh5mdw?x zd?#)xtl*I$@Va*2;Wbm+^YaOz#h0Pq;;7c7>L^1HAs|qZ&JLU+CR%weI0;d|S1Pvq zI}@gs-$8t>3k)C|eaYftCP1(>jf!lSMrk}1J7n0?r*lmTox;5nLzQ@E`P@&Vd)J3G z>Cmi(IO7`oD?K!onzf!Y5-QVhzKLsA_YUFLzOFW1nh)%&eQ!6{K@}AdVGcwHUX;s& zMl&xt*UZ=YCQe>M-34!+e1(5`&HOd1E+}Pj2{c_*!lR)RruRC#E9V^kYh2)Ws$_$w zqkYUuJv2Bt(XzWS@Ci8^RdVg&1}=#1wcOjf2s6y_U@12J8gE%ob%cwK9DA^19OIZq z7pFI0v!3$vE@b6qdZmPfnD*^hleYyP!1XuDLfFJOfNb6UkgRrCUaVWfQ6s$Eq3DgZ z(J-{3;lV)_#N585m?r0piDaeIa)^&oe3EgLVhyt#x(a%B(L$T)+ze0BXnvSaXDZi4 zr6a_fEC~s9dN^GkRWqG0Lbuh)%Q)FUk7tQAd?w5a#OQazCw_tOIV`XJNy}UuFBv~{ zo>F(o%^}?vIY%TK2%g*t2hI;?JhIJt_&7=LXPEaf6=Ezsp&?cb94`UyJKGhaIA1P)V(^@GAPR8Xd_I)*PCH`Ur}u?wSq@kp z*G$%hm{1LldZt*~o5&$@+R|n3?Z!IYK;@qV4#aBpFZ3*?trI4+XS(e;8Zu@TgqAI` z5p0G}+&{~LzPK06>h8Nd_FKtUxV-6x<9^ZGDz8nBz-zYjm0zP|T$2L(9Ce@~!KCh6 zM&5<5HZEz0+1n-e{m<-PW{%AVQA>DhG) zlOz`DhaIIP=zo+3&LDc;A9g5&Ft2dmTVE=~$ry8O|U+>YVg{1RM z?}4haE7L~9p5qk;FQXCyK~L0HXR2I!(GaSAHmx&J_bS`3EP9nuGo02&$DxevFu3QU zrn(tsr2=2n1Jx`swfcK;W+})^Gt3Z;77UDJ^`sk$c4+M98c2PupPZSR#&NQREc3z+ z)e3wOZQkx0I&^+pSGmK|Do9Cvf*Um2Ab|C(BJ-d|Km`|Zr`GkQZkpEO;3@W?W7!~< zv`HW95&npm6psN~C^YP?WT&zlMriG%#yqU*M{qUO(8Kgfqvp0mBg;qUSa0AoSQ~I; zm7;8_AJbPO2r&$5`?nG;yn#l9$$?#-jK(r<2wLxO=HLA!pZ=)h<5C@?j2Q;d7wEt3v*cYS>tffZ>i(D+#TV{hS~7-XS&Ze4jaNCLV^73tq(JvV$6MMm&ydQ*jw>y(UO-9 zqleulH(UZtEDF-2Sj7t6&5F-9%D_Q#eu&T5s^Kp&d?Zw6XWoy!az7x2I$8BCPrspR z4B)?7BOrlL^M(jx8HFAL??4*Vih`HD6zAzq#$VWXIdv;^t`>P6lO&fx5Nhii zOrA7y_e`ZJMj1I;8M;A3Srz%y2d%<09&M|GSfztpr2|$_ChfbTXT2^!sv3bj!ol-) z`$wYbRKr9x1pCn+~U0buQ@*dE{%5KvS!5J#m<{&JLf_w&S(SLd{|k7(ltRUs{`Z z@`4`2>Z1?wHTb)byYP=a;~M$9?{B+$hjv?hvbfNAhn>~wNxZ!=a1{q?pg+{Bh+oj! z`@E8%eaII*14m24VSNHdJ3r@T>gZrKa@}om)9D za&CL3SP20q)WE91H?AWvY;}W}T-RN;IBTa1vz3qgdA>NkkcRp)p*c$P&YLc`clr{qR^ELW=T}G*a6_v%N;jW%;@{_qwj#0_omj_{^K6v%#k2cEdg6j&@GpW%V$!DN^1l}d&p%^yh9V|xVzb6CADb24NaW( z7P8L{ym=R9*GzdmhtU@fY>@$RbsLNl$4w~-BOpOKijX&tVWpLVLbM{$C}uU&G+Lex zQWh(odeC6+2s7Uho;AxAU--#cFsmxL@qMwXJR8Vlpr4SHu&d$|K8JDBg(He%ce78O z;}vKfOkf+y;QP8(gIKT97J~Wc$sUJy8u zg;_NGxyrz(VOqqOSXNpFKCDx{QF`d!E({!~G2;H`swFz*dxBq=VtE8dM%p}kqTJsd zhu>ZBdab_8@F}g(ro0M1dR`Vnzj}Rk5o|ql$to(?5X)*J*f8Friyu0}xazE_FxP++ zK1CrgB6Z2Qm|8?_#OCoQl0E!x9Ycltm_<$lRA-%Pip z_nt^XdImnanWnTO>jjbGcp`FZDsq7%qaKJ=K6TA&FNg zB?1b%K_XjlkfAgs{D^Ej?)I(_kWPDmt3<8wSjYaxj2s^bF3k)l|P zm#YJK;ubC`-y~!gh_p>C|E_E#w z%eLH30j7nWAFnm8_t2~OX0YI6x9bApk&*IVwMpk#$%dQm9d}%jc^ER|WTT9ALX z*=XUNDMQLbUZJUDqjcpO#tywsBk%-^>Vw?!g+0scG;@?523`;T@5|;rp*I=$e=TNxheBx(!P;YJfUA4mzU=8j5Q7+U*Tu8 zr-v_K_b7D}95W1woEcO|^(g5dyX5XIyS+2wt6NYYQQP*!u0vbPb6yOf+V)fI3YXKc z*~ip}eSh-wX*<(4lu(X)DFUM+Nf()+Hc;=0yNd^=;;J|V5 zbMSBv=`gtMOcJ7^)%qY1(tNI`>c5s+smS!_TSI?GoZUs3iq7D$OywI3+O#%^DN~tL zebOubjQfDzyKV;Bq(AHv&ev30t|Upfwk)u4SnCE-Jk%R1G3-JTO0f@!<_G;8$dkOG z@tuQK7E?lUE^N0rKigag!lIr^PYcM-k57SUqm}KlsH__O zh_^ijrDWJV;~?ozx1Ls`X+ExH56Sy>woU;*^;OjJ7YxttI%~Mo~FN5U62`|`#3x^UT~}}LaETEFIn6)T~5v4 zOT(t#IPkG5BsBcsW~-={kDbn+%3rF^^Rtp~c{$l6s<5ecf1Cw87WJ z@l}LgER}`Fa>#~`cdiZ1R!SEF7EFKksyk)~WguE1fj6U~M1QVXAe}W*2PO)6JsC?3 zoKdA2njhPdhpT%fU(KG4W8qfgmig%5aMvB1MhJ5SwgBw9I*5VLT<=?Nvv!R1o4DiQ z>f!OouMjc>UI-F9VJ8WaCr;j@{psiiT?|z&qyBjt&+I~)(vh#68NzOP4>ql1xs5uK z^H8~h2tM6a7d}_hUuYIOM0NZ`*VwF#9_1MaC1gmr+>T5TYt6O}Cg8j_ME;?2BjH@* zVu%+(z?o>3A+vLR{$ALI!e<6=u7O_11C|~ja>KtLV#QMwZcGKy==d1@9f344KQY&33Qb(H3?rA2E8< z>NRtV9%0-oJ=IOtCLgjV*+U=Q>RwQj zP87rzNy}!BkoFpvn>Wh5Nj@j5FvM@;a>wEN(7x7Blp5iwy2ES5#Xi@KE>L%xoZA6| zi#;)w-;bjl$;D&Asy%iPv8D7i5V;VJhgvH^a;syu`!nd%(f%_GehQ}ye~bL6BO#*aY_1!EpyGyS-*&Z9EnkQEA?kB& zyn1Ab3Y?dPixrwYUzNVaXf`|0ib?F;^gF@-)s(c*D%1x7W&{@!42OOl$}bNlmrs>D*%R`O^hPJxR8=K?V|o@Gm5`Y@Q^a z^2(E=pF(n2y*~FD_p1Exal*i0;t|7kN+eO3*TUy9a;DhWQ6L&K7v5ftWn(kBkh8(8 zUfp|nA5d5YS z6{{DAuR40arCQAF-3ZG!Z<;&!TLk#DHtWBi&_R&>WRIpZqDHU@7my+>T@Zzk5OWh) zL0TG2YP7+1%+lw)nP6J#sMNCS(^FyIG~LgWEsytttWY?G#rkPVj&wRpj`R!JW(N`` z;k1*<=dtO!^7#9q-7JbIl^rvsDRvHVX@sRbO2rz@Dm$;@325ACq!bJ9pr`V8Vq0cv zt!ffw)^i~F%vp=JXnPGctU!eh3kd1y7B5^Twm~u-Q|3di+=flQmKtA=<}phd7iBny zY_9}+_b~lr*C{k0N1(8($;v>^(hyU&=2elWS2@$6hw2@>YDe;nSV-z7noW@JRD2(++7Pdy5ekf>Hq zNW@g`urd`nx0uDWdUa%2dLc2KmFCR$*3RrJ0(;$SW-pTfX$kEZv`LFd* zT}NY99pes(JwAhUO>t5Q^>G8crF@4vZXX=D0wD(BV__ZdAp+wpIkY4Mk>w}T-@Bsp z7?W$4=8A+axZT{`UWa5t@QDy5`niwaefE2OJ`wQtJM0FZzv^Vyq*>HcdY3xgdAe5f z=1Q)Qp6XWl?>eUQ2lX^O;kFRM4bHtPwN|+52kWXriCFU2?2k>GbtkhU_tG3z{qsV7 zMb8=*ty^rNmRSbNOO2Lz!wQ9FxPtw|G^zN74MpKw9U*3F{D7F7**Z5+jK{ZeS%&XR zmI}t~5Ke`QD3o7p=DCN(zEdKpG>Z7<7<^oA3K+q}`xj69#yJ6hE*eV)p{jN@tUijOj6>1yw2+GEO&AKB|y; zP?<<(D=SgD+9RvVN5P$Go40jr?&-dI1=7tJFidFQh@yCvt?rnT`^m&V{$=FH+hku* z35zMBEt^CMUIj+wMk~W0K0^QKnzwPA8HMJiyEJ}ur?^pCekeNHcUjCP$4pYa%_y&4 zcYzxF$PbTa(~TVJkGK5X`9c|->24gU>FT8H>qg<)U_r;hZ6&g0Vq2Y`iSXw7^uqWr zLpl@(7Uu1+3%U==O;X89%uX1SYX%AU_5uU;YqV80&ggw^fmCDz}5735f_2&MSn~dU>n~jSS*{!XOTyx z;NMIEQ&G#BU=Q-RQG|thvn3%H*5>mm6cjA=iUBEm63e5c&i<%Oa6ib%PK{Hq{Xj#g z_tCo-`b4|OH&*F%d}`0Idkb~zK|GI`M}$KaT4DP4BL^o*97M%9QRKNPZm6sNsmR;Srhp+5hImcJ+A4F>-4*_MAsF{3*2jw8H2HgKsORw8hHMhMNV& zC7k)bA!e0Qp`z3~GCC|}%r{%4X6SP`%1F5!sK@N>fs&^IFAz4Nlf#{+HTwk?*+u8u z`@wfj5=;{*-?9pH#o=ilpBph^$E5qxj(yH8pXteRkf`V`T%cKsz zSx&FnKBrh!t~n?(uF3@~Zq8qvVX8wZ(KY?+K+t9R9O=9dCH!S83^7DN~H#Itku;B(OGU)M70TOa+veSPKOVHGA2~aFgem0gC zZF5Vz)UHsRp!TRL%JKT~{G;|D$GnKjr06G3$%Sbbtx0nh7_5`bNR%&JkQY#og#z4l zj$fpKf#AZ$C4*Q?=go<_B~OThsY>CzO(SzYE>Ltl^-kYMPYd0FqF&5T=(@m9v+oxvy-`8fzPJD>Kw-;w>3fB zirHkSGeyO-LG^qSiwae9QMCFQA~CddvF0URpE2ga5LrDQRGMHXC3Iy)2K>q-X&^^9 z?>ez~O6T5ZH3KroDd^I4%$e??%rW)@MfN?H(0SzmhG2AZXx5;jIsp>*^+u#`F+_p!3Lur<;NEH;R|It(VZ$HpKsOII(@NQX4`RI9OFBOtyr z)MN=1oGgIMqvJ(;5*B3q=J_mq>NR!0GQXn$CqO1JdTPTkX|x(fJR{M7ZC1sJ|1 z(q9l9ZaM;&qZ-(rUtg_KOe*=eX1s37dF*V4`28alO~&VO!gcr;^fn1w3ddKFS-g@h zc&I{Ji6^Fu*g{T7uaMvqlVIN(q>NHs?*{FpNUv>_^IKTk4bVeoF&z>1Gw@{MNEckA zt9HU;u4iL!Lv=*ec+1IRoTi1MP zaPsADL45a^kzTBc^tx*M>m;c~fO=>>wB2g3JYgUPp@u+X zBNc{y$ZYb~#ec+jZ3 z24Hn7-YYBGSBI$KGE(v>^<(LRDMb4c#R|v2nzX1U5ikn_W0K=Nd7ZmE3IigaT(A8o zQPq8(-X2lmlZ#(zLO{U%u{ub1pAspk2<5Qo)e#}KF4)*@^p(ndREtr8pKn(?>(u^y zVau~FCaDaCN1xi`v-3-zUunnt#F_R@an|r?)YdEJ+7v1_)s)2bys2`RA9d@7QS=y~ zna!cs&>BB@Dq8%}jMZicaZepG1F4q)Z%$uhjHr~*xw)zA@%1D`%XjpLU|VG9SU1&N&}>PRqNtzFh}5`cEKJ|OA0Dfd$H zJlU+F8vSU(fA;7JSYB^h@?wb+IG-`fXL5AMHG?~(KuB=;d2dgh7aN6cDK9WgzG+AA z6n%hT4pWoWaJ?hY3U0>ugu#=&QE{_&o+}1181&L!lbKiDD0m(z{o=Ixh-^C}}?V{$}GOQE3 zngvpJSRE4g;Hy!LaRsO`-?;6pmCdYTXckLh2NCpY*GZ_ylUGrvBxh43oTf_a8lwB~ zH)6fl$}V6y6GmJOp}JtZ=nI@j7Y3sZ8Jo?N98je#EYhd080|Y$rXQiv)aXMGmLGiPTxTPJ`d*nf%hoMKOW}s3I1w+J5+5P!)RYG@#_;pGesPxdnZ-KRi z_9G{;%SI{!Yd|Opf-OsQYy$t2eV9~!9K*h$>}+MoC{SF1asIe`7MXR-C9dl8ufpKb zk2bIpJF7l&GlQ|nFSF8ErW!$S`EP$WaynFnH(cZw9#DZxM%X;85v`7@T-sf=pq>(%xX6tv^hAiC8J9w#m8HOxp ze6;zva{WUveDK)_vUga0T~4Dfn2Lqs_qcnVS`59vpg{LDt#|E#e`!bQ_l;-)Gc}hg z$~ffvCjMe#2m_BVVSF#pjK<}>DM@DyKcWBVMmey((vu&>3c`7@?JbLDq9IImxwm{7 zF;%m)ZM{R~q6ySOV4#Yp7~bc(Z*=h@-C#PDEEsO*xLIz+yia){&K-NM?sVt+avqQ02Mk8gk8 zIPzL)N-IH!&ZGpP1!^~3@A?%3nC~CTOnOr2fmNicamLi47B2l>O zwVq{Dey(hY%g5Y$%id^ODzwYJsRqrIt5zFhoy>-LqOSgW^GO3Jroz$COIoqTC$cyZ0K1{FBhd5hbP6luC~R_J7|)OKy7wD#s0H;jkoAz98?vTj=h-7IX&)) z0q|X9K_aaU2B^98HwPB6f@!T#=kTHC&xShB4LAzxe4dXAX+f*GldcvR$XDXINC@tYpM?agv{3t)T^@Ct5Sev(FKllodJ1%x zqcFWfY`Tf);X~P}4T^bw6y4q*JMCiQyn?ZjSmI@`JO$B$1G?h3zKhc*110aGR%9h@ zXQDzi2gli<;2)Na;>M*3C=)G<&~qdkk;oVMwN$L^jTCh6PVUjxNsydNi?_vhJ*sGM z3WzU&AXl4uzA}QCD16tEt{LRcKL|dk8Bs#%Dupkv5m*Yx|tX_R#HILEZbFOj3xP#RSRwP;*w=`QOmx(eVk*0^)SSPxsuTqCD8Y36NXN z+%6-J+>W#{=TVv;mxLWbb9?G-($ZEutsIVzX=Do*sE)2&ro?&V-x+waSZ>;)^-)iH z>*V|N(1PLj>h>EOdWV6HxWUDwWsj-d?4&Owti2&p4V6BUQpxyV(Gc%o;@?!B^5Kuf zU)4R+T|2<9I45$U#t5EOLI`>N4eIBF6aXgVJp z5J!dKdRS1NPWh2|;Oq-=$YV0NQY!0WzX3M;wV#~&A@6ZZZtAdj0qv7a1hbBKx zt}h+P+Sr49iB*1hpyFY<>D%%orv#)_mhFkidpVC=G#7RLxntaqj1^ThdT+ZyB(*vx z4GjvZUQTY8F;xDO-P{3i=>7;C1LDVnC>WSA@Ob*i4}bjy7@EHd3K;0e8T?P1^RpTZ z*pH`LyVy`LE8sso2R<0U=kJmq_#?H>zf6_9u!6LNxQZ&1yu?oe7}%v&tn}YCetZLI zF#ak(1or?x|BLXavHM-+AFty4S$H8TFH@n`m{-_=9>ThJf%x__w$EEd13iuy~{qx)6= zNVxTn5p=&Jaek?e4;+E~xW-@db^WnMx%^g%AFtE>S$X zQ)N^GK!5=B|1nelF8P760PKJ5)E^7!&v|=a*8OGrr>xh&;{E?33s|)ODI_`ZnN+7G z@)aRKCIdeBe@g(q^8;CcG&29z#!MDgu2vTIKn9tAf_`)sUY)$bXA&^5UWq^V@c(Az z2ZlWa60vnKu@V1qS0QC&Z)*GZj{beBTf9uABGA^Cz=z^* zE|v~|otfV!erwyA*9Q7Z7ML}RzYtaF9w3TZnwi*0I5;ahIJ+9zssg7EKmCCIi53A& z*F+1N`zkQiqaFWzjqh)Ie&81%g22BiD{5MgdNecV{<~YEl{e}71=sz)mY(Z|et`vWMJ&etBS@8@9 zu*g811hQYS!zRDSKFr(d>b~9tdOHOe<3G*jj{zBP{vglH$llFS&ECz$%=C{Ib@|aj z6s!-^hmM@#Gy&^}4J<88zi9i`^8ZeMn2o{o*lAl749qC{eoL6RJj8aevjc|yj~q-7 z^R_2~^%Jqcz!ZV~-5*o*?*h!IrU!ZU=2jLDqm)Py-wy$e+5j{vFv|Z`@&i@IA40hS zNuun4_y3G-f#A%41h;sYJN9-r4G!r1YkFT<&VMjFxm|kl3)ffO6nT-=U0%}188yJdCJx6zgs|ElW*VSfGGXO)Lrw16Q*@+T>w2s=HowBrx7+0r!Vr$J<+<|H1~k z((ErbV9$(P{*#%M2+lE10aVWfhV-xMXZio%MLewjJmTAvCjeU&xP)KV9>3@Rg$)cB zGw0v5OpWmQT?v3C2L?AV2>(^`1EGWd8~R75KCEzdBuy+_*@n6`_JnYS! zfmPn##r!|rk`#Pf>&pb_Hh|_o(((LV@&lzK{|o)Ea6v#!lHX__1jNbd05o?6dh*u+ z$PxWt_`o`C<^4N$#X<>1F7O;RsCs`L5R7|({lJ6B!{ekfK)llmXcKBcZ<4pveJ)G@@qf7M@C9wOTsd6_x?Smht?6@6>AwHA9YF#i4fot*`& zApdsL{O1(pxO~S@}!e-}}(} zIXizso%A1o0=VC1@Vt+|pFZp-Ufle@;r}nU5cdP6{p7cWKEVG?*tGka-w*HflWY+2 z5cyuPr~A13adm#;IHMoH{TgNGKJ0$TmY*DT=U z^?#4eai4$x^_QRg(A@ux|KQ6o_r=|JcK<03s_=gk_lxWMeKGgFtAC35TJ*n(dBE5D zzOegVw?Bm`mHuzSe){0vmvP?*@}~^yiU(x;2am{qQXldW`bpKR1^ listeners = Lists.newArrayList(); - public static String craftPackage = "org/bukkit/craftbukkit/v1_7_R4"; - public static boolean debug = false; + public static String craftPackage = "org.bukkit.craftbukkit.v1_7_R4"; + public static boolean explosions = true; + public static boolean debug = true; @EventHandler public final void serverStarted(FMLServerStartedEvent event) { - Configuration cfg = FastUtils.getConfig("EventHelper"); - String[] plugins = cfg.getStringList("plugins", CATEGORY_GENERAL, new String[] { "WorldGuard" }, "Plugins for sending events"); - boolean wgHooking = cfg.getBoolean("wgHooking", CATEGORY_GENERAL, true, "Hooking WorldGuard plugin (allow checking regions)"); - craftPackage = cfg.getString("craftPackage", CATEGORY_GENERAL, craftPackage, "CraftBukkit package (for reflection)"); - debug = cfg.getBoolean("debug", CATEGORY_GENERAL, debug, "Debugging enabled"); + Configuration cfg = ConfigUtils.getConfig("EventHelper"); + String c = CATEGORY_GENERAL; + String[] plugins = cfg.getStringList("plugins", c, new String[] { "WorldGuard", "GriefPreventionPlus" }, "Plugins for sending events"); + boolean pluginHooking = cfg.getBoolean("pluginHooking", c, true, "Hooking plugins (allow checking regions)"); + craftPackage = cfg.getString("craftPackage", c, craftPackage, "CraftBukkit package (for reflection)"); + explosions = cfg.getBoolean("explosions", c, explosions, "Explosions enabled"); + debug = cfg.getBoolean("debug", c, debug, "Debugging enabled"); cfg.save(); PluginManager plManager = Bukkit.getPluginManager(); for (String plName : plugins) - listeners.addAll(HandlerList.getRegisteredListeners(plManager.getPlugin(plName))); - if (wgHooking) - WGReflection.setWG(plManager.getPlugin("WorldGuard")); + { + Plugin plugin = plManager.getPlugin(plName); + if (plugin == null) + LOGGER.warn("Plugin {} not found!", plName); + else + listeners.addAll(HandlerList.getRegisteredListeners(plugin)); + } + if (pluginHooking) + InjectionManager.init(); } - public static final void callEvent(Event event) + public static void callEvent(Event event) { for (RegisteredListener listener : listeners) + { try { listener.callEvent(event); @@ -59,7 +72,16 @@ public static final void callEvent(Event event) catch (Throwable throwable) { if (debug) - throwable.printStackTrace(); + LOGGER.error("Failed event call", throwable); } + } + } + + public static void error(Throwable throwable, String message, Object... args) + { + if (debug) + LOGGER.error(new FormattedMessage(message, args), throwable); + else + LOGGER.error(message, args); } } diff --git a/src/main/java/com/gamerforea/eventhelper/config/ClassSet.java b/src/main/java/com/gamerforea/eventhelper/config/ClassSet.java new file mode 100644 index 0000000..41705b5 --- /dev/null +++ b/src/main/java/com/gamerforea/eventhelper/config/ClassSet.java @@ -0,0 +1,103 @@ +package com.gamerforea.eventhelper.config; + +import com.gamerforea.eventhelper.EventHelper; +import com.google.common.base.Preconditions; + +import javax.annotation.Nonnull; +import javax.annotation.Nullable; +import java.util.Collection; +import java.util.HashSet; +import java.util.Iterator; +import java.util.Set; +import java.util.stream.Collectors; + +public final class ClassSet implements Iterable> +{ + private final Set> classes = new HashSet<>(); + private final Class baseClass; + + public ClassSet(@Nonnull Class baseClass) + { + this.baseClass = baseClass; + Preconditions.checkArgument(baseClass != Class.class, "baseClass must not be java.lang.Class"); + } + + public boolean isEmpty() + { + return this.classes.isEmpty(); + } + + public boolean contains(@Nullable T instance) + { + return instance != null && this.contains((Class) instance.getClass()); + } + + public boolean contains(@Nonnull Class clazz) + { + return this.contains(clazz, true); + } + + public boolean contains(@Nullable T instance, boolean checkHierarchy) + { + return instance != null && this.contains((Class) instance.getClass(), checkHierarchy); + } + + public boolean contains(@Nonnull Class clazz, boolean checkHierarchy) + { + if (this.baseClass.isAssignableFrom(clazz)) + { + if (this.classes.contains(clazz)) + return true; + + if (checkHierarchy) + for (Class aClass : this.classes) + { + if (aClass.isAssignableFrom(clazz)) + return true; + } + } + + return false; + } + + @Override + public Iterator> iterator() + { + return this.classes.iterator(); + } + + public void clear() + { + this.classes.clear(); + } + + public boolean add(@Nonnull Class clazz) + { + return this.baseClass.isAssignableFrom(clazz) && this.classes.add(clazz); + } + + public void addRaw(@Nonnull Collection classNames) + { + for (String className : classNames) + { + try + { + Class clazz = Class.forName(className); + if (this.baseClass.isAssignableFrom(clazz)) + this.add((Class) clazz); + else if (EventHelper.debug) + EventHelper.LOGGER.warn("Class {} is not assignable from {}", className, this.baseClass.getName()); + } + catch (ClassNotFoundException e) + { + if (EventHelper.debug) + EventHelper.LOGGER.warn("Class {} not found", className); + } + } + } + + public Set getRaw() + { + return this.classes.stream().map(Class::getName).collect(Collectors.toSet()); + } +} diff --git a/src/main/java/com/gamerforea/eventhelper/config/Config.java b/src/main/java/com/gamerforea/eventhelper/config/Config.java new file mode 100644 index 0000000..f6aeb70 --- /dev/null +++ b/src/main/java/com/gamerforea/eventhelper/config/Config.java @@ -0,0 +1,13 @@ +package com.gamerforea.eventhelper.config; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.TYPE) +public @interface Config +{ + String name() default ""; +} diff --git a/src/main/java/com/gamerforea/eventhelper/config/ConfigBoolean.java b/src/main/java/com/gamerforea/eventhelper/config/ConfigBoolean.java new file mode 100644 index 0000000..8a66f50 --- /dev/null +++ b/src/main/java/com/gamerforea/eventhelper/config/ConfigBoolean.java @@ -0,0 +1,23 @@ +package com.gamerforea.eventhelper.config; + +import net.minecraftforge.common.config.Configuration; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.FIELD) +public @interface ConfigBoolean +{ + String name() default ""; + + String category() default Configuration.CATEGORY_GENERAL; + + String comment() default ""; + + String oldName() default ""; + + String oldCategory() default ""; +} diff --git a/src/main/java/com/gamerforea/eventhelper/config/ConfigClassSet.java b/src/main/java/com/gamerforea/eventhelper/config/ConfigClassSet.java new file mode 100644 index 0000000..2ea6b78 --- /dev/null +++ b/src/main/java/com/gamerforea/eventhelper/config/ConfigClassSet.java @@ -0,0 +1,23 @@ +package com.gamerforea.eventhelper.config; + +import net.minecraftforge.common.config.Configuration; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.FIELD) +public @interface ConfigClassSet +{ + String name() default ""; + + String category() default Configuration.CATEGORY_GENERAL; + + String comment() default ""; + + String oldName() default ""; + + String oldCategory() default ""; +} diff --git a/src/main/java/com/gamerforea/eventhelper/config/ConfigEnum.java b/src/main/java/com/gamerforea/eventhelper/config/ConfigEnum.java new file mode 100644 index 0000000..a321443 --- /dev/null +++ b/src/main/java/com/gamerforea/eventhelper/config/ConfigEnum.java @@ -0,0 +1,23 @@ +package com.gamerforea.eventhelper.config; + +import net.minecraftforge.common.config.Configuration; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.FIELD) +public @interface ConfigEnum +{ + String name() default ""; + + String category() default Configuration.CATEGORY_GENERAL; + + String comment() default ""; + + String oldName() default ""; + + String oldCategory() default ""; +} diff --git a/src/main/java/com/gamerforea/eventhelper/config/ConfigFloat.java b/src/main/java/com/gamerforea/eventhelper/config/ConfigFloat.java new file mode 100644 index 0000000..36f6778 --- /dev/null +++ b/src/main/java/com/gamerforea/eventhelper/config/ConfigFloat.java @@ -0,0 +1,27 @@ +package com.gamerforea.eventhelper.config; + +import net.minecraftforge.common.config.Configuration; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.FIELD) +public @interface ConfigFloat +{ + String name() default ""; + + String category() default Configuration.CATEGORY_GENERAL; + + String comment() default ""; + + float min() default Float.MIN_VALUE; + + float max() default Float.MAX_VALUE; + + String oldName() default ""; + + String oldCategory() default ""; +} diff --git a/src/main/java/com/gamerforea/eventhelper/config/ConfigInt.java b/src/main/java/com/gamerforea/eventhelper/config/ConfigInt.java new file mode 100644 index 0000000..71a9e0a --- /dev/null +++ b/src/main/java/com/gamerforea/eventhelper/config/ConfigInt.java @@ -0,0 +1,27 @@ +package com.gamerforea.eventhelper.config; + +import net.minecraftforge.common.config.Configuration; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.FIELD) +public @interface ConfigInt +{ + String name() default ""; + + String category() default Configuration.CATEGORY_GENERAL; + + String comment() default ""; + + int min() default Integer.MIN_VALUE; + + int max() default Integer.MAX_VALUE; + + String oldName() default ""; + + String oldCategory() default ""; +} diff --git a/src/main/java/com/gamerforea/eventhelper/config/ConfigItemBlockList.java b/src/main/java/com/gamerforea/eventhelper/config/ConfigItemBlockList.java new file mode 100644 index 0000000..390e553 --- /dev/null +++ b/src/main/java/com/gamerforea/eventhelper/config/ConfigItemBlockList.java @@ -0,0 +1,23 @@ +package com.gamerforea.eventhelper.config; + +import net.minecraftforge.common.config.Configuration; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.FIELD) +public @interface ConfigItemBlockList +{ + String name() default ""; + + String category() default Configuration.CATEGORY_GENERAL; + + String comment() default ""; + + String oldName() default ""; + + String oldCategory() default ""; +} diff --git a/src/main/java/com/gamerforea/eventhelper/config/ConfigString.java b/src/main/java/com/gamerforea/eventhelper/config/ConfigString.java new file mode 100644 index 0000000..ece95d5 --- /dev/null +++ b/src/main/java/com/gamerforea/eventhelper/config/ConfigString.java @@ -0,0 +1,23 @@ +package com.gamerforea.eventhelper.config; + +import net.minecraftforge.common.config.Configuration; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.FIELD) +public @interface ConfigString +{ + String name() default ""; + + String category() default Configuration.CATEGORY_GENERAL; + + String comment() default ""; + + String oldName() default ""; + + String oldCategory() default ""; +} diff --git a/src/main/java/com/gamerforea/eventhelper/config/ConfigStringCollection.java b/src/main/java/com/gamerforea/eventhelper/config/ConfigStringCollection.java new file mode 100644 index 0000000..a05a43a --- /dev/null +++ b/src/main/java/com/gamerforea/eventhelper/config/ConfigStringCollection.java @@ -0,0 +1,23 @@ +package com.gamerforea.eventhelper.config; + +import net.minecraftforge.common.config.Configuration; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.FIELD) +public @interface ConfigStringCollection +{ + String name() default ""; + + String category() default Configuration.CATEGORY_GENERAL; + + String comment() default ""; + + String oldName() default ""; + + String oldCategory() default ""; +} diff --git a/src/main/java/com/gamerforea/eventhelper/config/ConfigUtils.java b/src/main/java/com/gamerforea/eventhelper/config/ConfigUtils.java new file mode 100644 index 0000000..3b23515 --- /dev/null +++ b/src/main/java/com/gamerforea/eventhelper/config/ConfigUtils.java @@ -0,0 +1,276 @@ +package com.gamerforea.eventhelper.config; + +import com.gamerforea.eventhelper.EventHelper; +import com.google.common.base.Preconditions; +import com.google.common.base.Strings; +import net.minecraftforge.common.config.ConfigCategory; +import net.minecraftforge.common.config.Configuration; +import net.minecraftforge.common.config.Property; + +import javax.annotation.Nonnull; +import javax.annotation.Nullable; +import java.io.File; +import java.lang.reflect.Field; +import java.lang.reflect.Modifier; +import java.util.*; + +public final class ConfigUtils +{ + private static final String PACKAGE_DEFAULT = "default"; + private static final Set> LOADED_CONFIG_CLASSES = new HashSet<>(); + + @Nonnull + public static > T readStringCollection( + @Nonnull Configuration cfg, + @Nonnull String name, @Nonnull String category, @Nonnull String comment, @Nonnull T def) + { + String[] temp = cfg.getStringList(name, category, def.toArray(new String[0]), comment); + def.clear(); + Collections.addAll(def, temp); + return def; + } + + @Nonnull + public static Configuration getConfig(@Nonnull Class configClass) + { + return getConfig(getConfigName(configClass)); + } + + @Nonnull + public static Configuration getConfig(@Nonnull String cfgName) + { + Configuration cfg = new Configuration(new File(EventHelper.cfgDir, cfgName + ".cfg")); + cfg.load(); + return cfg; + } + + public static void readConfig(@Nonnull Class configClass) + { + readConfig(configClass, false); + } + + public static void readConfig(@Nonnull Class configClass, @Nonnull String configName) + { + readConfig(configClass, configName, false); + } + + public static void readConfig(@Nonnull Class configClass, boolean reload) + { + readConfig(configClass, getConfigName(configClass), reload); + } + + public static void readConfig(@Nonnull Class configClass, @Nonnull String configName, boolean reload) + { + if (!LOADED_CONFIG_CLASSES.add(configClass) && !reload) + return; + + Configuration cfg = getConfig(configName); + try + { + for (Field field : configClass.getDeclaredFields()) + { + int modifiers = field.getModifiers(); + if (Modifier.isPublic(modifiers) && Modifier.isStatic(modifiers) && !Modifier.isFinal(modifiers)) + { + Class type = field.getType(); + if (type == boolean.class) + { + ConfigBoolean annotation = field.getAnnotation(ConfigBoolean.class); + if (annotation != null) + { + String name = annotation.name().isEmpty() ? field.getName() : annotation.name(); + tryMoveProperty(cfg, name, annotation.category(), annotation.oldName(), annotation.oldCategory()); + + boolean defaultValue = field.getBoolean(null); + boolean value = cfg.getBoolean(name, annotation.category(), defaultValue, annotation.comment()); + field.setBoolean(null, value); + } + } + else if (type == float.class) + { + ConfigFloat annotation = field.getAnnotation(ConfigFloat.class); + if (annotation != null) + { + String name = annotation.name().isEmpty() ? field.getName() : annotation.name(); + tryMoveProperty(cfg, name, annotation.category(), annotation.oldName(), annotation.oldCategory()); + + float defaultValue = field.getFloat(null); + float value = cfg.getFloat(name, annotation.category(), defaultValue, annotation.min(), annotation.max(), annotation.comment()); + field.setFloat(null, value); + } + } + else if (type == int.class) + { + ConfigInt annotation = field.getAnnotation(ConfigInt.class); + if (annotation != null) + { + String name = annotation.name().isEmpty() ? field.getName() : annotation.name(); + tryMoveProperty(cfg, name, annotation.category(), annotation.oldName(), annotation.oldCategory()); + + int defaultValue = field.getInt(null); + int value = cfg.getInt(name, annotation.category(), defaultValue, annotation.min(), annotation.max(), annotation.comment()); + field.setInt(null, value); + } + } + else if (type == String.class) + { + ConfigString annotation = field.getAnnotation(ConfigString.class); + if (annotation != null) + { + String name = annotation.name().isEmpty() ? field.getName() : annotation.name(); + tryMoveProperty(cfg, name, annotation.category(), annotation.oldName(), annotation.oldCategory()); + + String defaultValue = (String) field.get(null); + String value = cfg.getString(name, annotation.category(), defaultValue, annotation.comment()); + field.set(null, value); + } + } + else if (type == ItemBlockList.class) + { + ConfigItemBlockList annotation = field.getAnnotation(ConfigItemBlockList.class); + if (annotation != null) + { + String name = annotation.name().isEmpty() ? field.getName() : annotation.name(); + tryMoveProperty(cfg, name, annotation.category(), annotation.oldName(), annotation.oldCategory()); + + ItemBlockList list = (ItemBlockList) field.get(null); + Objects.requireNonNull(list, "ItemBlockList " + configClass.getName() + '.' + field.getName() + " must not be null"); + Set values = readStringCollection(cfg, name, annotation.category(), annotation.comment(), new HashSet<>(list.getRaw())); + list.clear(); + list.addRaw(values); + } + } + else if (type == ClassSet.class) + { + ConfigClassSet annotation = field.getAnnotation(ConfigClassSet.class); + if (annotation != null) + { + String name = annotation.name().isEmpty() ? field.getName() : annotation.name(); + tryMoveProperty(cfg, name, annotation.category(), annotation.oldName(), annotation.oldCategory()); + + ClassSet classSet = (ClassSet) field.get(null); + Objects.requireNonNull(classSet, "ClassSet " + configClass.getName() + '.' + field.getName() + " must not be null"); + Set values = readStringCollection(cfg, name, annotation.category(), annotation.comment(), new HashSet<>(classSet.getRaw())); + classSet.clear(); + classSet.addRaw(values); + } + } + else if (Enum.class.isAssignableFrom(type)) + { + ConfigEnum annotation = field.getAnnotation(ConfigEnum.class); + if (annotation != null) + { + String name = annotation.name().isEmpty() ? field.getName() : annotation.name(); + tryMoveProperty(cfg, name, annotation.category(), annotation.oldName(), annotation.oldCategory()); + + Enum defaultValue = (Enum) field.get(null); + Objects.requireNonNull(defaultValue, "Enum " + configClass.getName() + '.' + field.getName() + " must not be null"); + String valueName = cfg.getString(name, annotation.category(), defaultValue.name(), annotation.comment()); + try + { + Enum value = Enum.valueOf(defaultValue.getDeclaringClass(), valueName); + field.set(null, value); + } + catch (IllegalArgumentException e) + { + e.printStackTrace(); + } + } + } + else if (Collection.class.isAssignableFrom(type)) + { + // TODO Check generic type + ConfigStringCollection annotation = field.getAnnotation(ConfigStringCollection.class); + if (annotation != null) + { + String name = annotation.name().isEmpty() ? field.getName() : annotation.name(); + tryMoveProperty(cfg, name, annotation.category(), annotation.oldName(), annotation.oldCategory()); + + Collection collection = (Collection) field.get(null); + Objects.requireNonNull(collection, "Collection " + configClass.getName() + '.' + field.getName() + " must not be null"); + readStringCollection(cfg, name, annotation.category(), annotation.comment(), collection); + } + } + } + } + } + catch (Throwable throwable) + { + EventHelper.LOGGER.error("Failed reading config " + cfg.getConfigFile().getName(), throwable); + } + cfg.save(); + } + + private static boolean tryMoveProperty( + @Nonnull Configuration cfg, + @Nonnull String newName, + @Nonnull String newCategory, @Nullable String oldName, @Nullable String oldCategory) + { + if (newName.isEmpty() || newCategory.isEmpty()) + return false; + + if (Strings.isNullOrEmpty(oldCategory)) + oldCategory = newCategory; + if (Strings.isNullOrEmpty(oldName)) + oldName = newName; + + if (newName.equalsIgnoreCase(oldName) && newCategory.equalsIgnoreCase(oldCategory)) + return false; + + if (cfg.hasKey(newCategory, newName) || !cfg.hasKey(oldCategory, oldName)) + return false; + + ConfigCategory prevCategory = cfg.getCategory(oldCategory); + if (prevCategory.containsKey(oldName)) + { + Property property = prevCategory.remove(oldName); + property.setName(newName); + + ConfigCategory category; + if (newCategory.equalsIgnoreCase(oldCategory)) + category = prevCategory; + else + { + category = cfg.getCategory(newCategory); + if (prevCategory.isEmpty()) + cfg.removeCategory(prevCategory); + } + + category.put(newName, property); + + return true; + } + + return false; + } + + @Nonnull + private static String getConfigName(@Nonnull Class configClass) + { + Config annotation = configClass.getAnnotation(Config.class); + Objects.requireNonNull(annotation, "Annotaion " + Config.class.getName() + " not found for class " + configClass.getName()); + String cfgName = annotation.name(); + if (Strings.isNullOrEmpty(cfgName)) + cfgName = getPackageName(configClass.getName()); + Preconditions.checkArgument(!Strings.isNullOrEmpty(cfgName), "Config name for class " + configClass.getName() + " is not determined"); + return cfgName; + } + + @Nonnull + private static String getPackageName(@Nullable String className) + { + if (Strings.isNullOrEmpty(className)) + return PACKAGE_DEFAULT; + int classDelimeterIndex = className.lastIndexOf('.'); + if (classDelimeterIndex == -1) + return PACKAGE_DEFAULT; + String packageName = className.substring(0, classDelimeterIndex); + if (Strings.isNullOrEmpty(packageName)) + return PACKAGE_DEFAULT; + int packageDelimeterIndex = packageName.lastIndexOf('.'); + if (packageDelimeterIndex == -1) + return packageName; + String simplePackageName = packageName.substring(packageDelimeterIndex + 1); + return Strings.isNullOrEmpty(simplePackageName) ? PACKAGE_DEFAULT : simplePackageName; + } +} diff --git a/src/main/java/com/gamerforea/eventhelper/config/ItemBlockList.java b/src/main/java/com/gamerforea/eventhelper/config/ItemBlockList.java new file mode 100644 index 0000000..78534d8 --- /dev/null +++ b/src/main/java/com/gamerforea/eventhelper/config/ItemBlockList.java @@ -0,0 +1,143 @@ +package com.gamerforea.eventhelper.config; + +import com.gamerforea.eventhelper.EventHelper; +import cpw.mods.fml.common.registry.FMLControlledNamespacedRegistry; +import cpw.mods.fml.common.registry.GameData; +import gnu.trove.set.TIntSet; +import gnu.trove.set.hash.TIntHashSet; +import net.minecraft.block.Block; +import net.minecraft.init.Blocks; +import net.minecraft.item.Item; +import net.minecraft.item.ItemBlock; +import net.minecraft.item.ItemStack; +import org.apache.commons.lang3.StringUtils; + +import javax.annotation.Nonnull; +import javax.annotation.Nullable; +import java.util.*; + +public final class ItemBlockList +{ + private static final String[] DEFAULT_VALUES = { "minecraft:bedrock", "modid:block_name@meta" }; + private static final char SEPARATOR = '@'; + private static final int ALL_META = -1; + + private final Set rawSet = new HashSet<>(); + private final Map items = new HashMap<>(); + private final Map blocks = new HashMap<>(); + private boolean loaded = true; + + public ItemBlockList() + { + this(false); + } + + public ItemBlockList(boolean initWithDefaultValues) + { + if (initWithDefaultValues) + this.addRaw(Arrays.asList(DEFAULT_VALUES)); + } + + public void clear() + { + this.loaded = true; + this.items.clear(); + this.blocks.clear(); + this.rawSet.clear(); + } + + public Set getRaw() + { + return Collections.unmodifiableSet(this.rawSet); + } + + public void addRaw(@Nonnull Collection strings) + { + this.loaded = false; + this.items.clear(); + this.blocks.clear(); + this.rawSet.addAll(strings); + } + + public boolean isEmpty() + { + return this.items.isEmpty() && this.blocks.isEmpty(); + } + + public boolean contains(@Nullable ItemStack stack) + { + return stack != null && this.contains(stack.getItem(), stack.getItemDamage()); + } + + public boolean contains(@Nonnull Item item, int meta) + { + this.load(); + return item instanceof ItemBlock && this.contains(((ItemBlock) item).field_150939_a, meta) || contains(this.items, item, meta); + } + + public boolean contains(@Nonnull Block block, int meta) + { + this.load(); + return contains(this.blocks, block, meta); + } + + private void load() + { + if (!this.loaded) + { + this.loaded = true; + + FMLControlledNamespacedRegistry itemRegistry = GameData.getItemRegistry(); + FMLControlledNamespacedRegistry blockRegistry = GameData.getBlockRegistry(); + + for (String s : this.rawSet) + { + s = s.trim(); + if (!s.isEmpty()) + { + String[] parts = StringUtils.split(s, SEPARATOR); + if (parts != null && parts.length > 0) + { + String name = parts[0]; + int meta = parts.length > 1 ? safeParseInt(parts[1]) : ALL_META; + Item item = itemRegistry.getObject(name); + if (item != null) + put(this.items, item, meta); + Block block = blockRegistry.getObject(name); + if (block != null && block != Blocks.air) + put(this.blocks, block, meta); + + if (EventHelper.debug && item == null && (block == null || block == Blocks.air)) + EventHelper.LOGGER.warn("Item/block {} not found", name); + } + } + } + } + } + + private static boolean put(Map map, K key, int value) + { + TIntSet set = map.get(key); + if (set == null) + map.put(key, set = new TIntHashSet()); + return set.add(value); + } + + private static boolean contains(Map map, K key, int value) + { + TIntSet set = map.get(key); + return set != null && (set.contains(value) || set.contains(ALL_META)); + } + + private static int safeParseInt(String s) + { + try + { + return Integer.parseInt(s); + } + catch (Throwable throwable) + { + return ALL_META; + } + } +} diff --git a/src/main/java/com/gamerforea/eventhelper/fake/FakePlayerContainer.java b/src/main/java/com/gamerforea/eventhelper/fake/FakePlayerContainer.java index 6e5a821..59d5823 100644 --- a/src/main/java/com/gamerforea/eventhelper/fake/FakePlayerContainer.java +++ b/src/main/java/com/gamerforea/eventhelper/fake/FakePlayerContainer.java @@ -1,12 +1,10 @@ package com.gamerforea.eventhelper.fake; -import java.lang.ref.WeakReference; -import java.util.UUID; - import com.gamerforea.eventhelper.util.EventUtils; +import com.gamerforea.eventhelper.util.ExplosionByPlayer; import com.gamerforea.eventhelper.util.FastUtils; +import com.google.common.base.Preconditions; import com.mojang.authlib.GameProfile; - import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; @@ -14,24 +12,40 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.FakePlayer; +import javax.annotation.Nonnull; +import javax.annotation.Nullable; +import java.lang.ref.WeakReference; +import java.util.UUID; + public abstract class FakePlayerContainer { + private static final String NBT_OWNER_NAME = "eventhelper_fakeName"; + private static final String NBT_OWNER_UUID = "eventhelper_fakeUUID"; private final GameProfile modFakeProfile; private FakePlayer modFake; + @Nullable public GameProfile profile; private FakePlayer player; private WeakReference realPlayer; - protected FakePlayerContainer(FakePlayer modFake) + protected FakePlayerContainer(@Nonnull FakePlayer modFake) { - this.modFakeProfile = modFake.getGameProfile(); + this(modFake.getGameProfile()); this.modFake = modFake; } - protected FakePlayerContainer(GameProfile modFakeProfile) + protected FakePlayerContainer(@Nonnull FakePlayerContainer fake) { + this(fake.modFakeProfile); + this.modFake = fake.modFake; + this.setParent(fake); + } + + protected FakePlayerContainer(@Nonnull GameProfile modFakeProfile) + { + Preconditions.checkArgument(modFakeProfile.isComplete(), "modFakeProfile is incomplete"); this.modFakeProfile = modFakeProfile; } @@ -55,29 +69,33 @@ public final FakePlayer getPlayer() { if (this.player != null) return FastUtils.getFake(this.getWorld(), this.player); - else if (this.profile != null) + if (this.profile != null) return this.player = FastUtils.getFake(this.getWorld(), this.profile); - else if (this.modFake != null) + if (this.modFake != null) return FastUtils.getFake(this.getWorld(), this.modFake); - else - return this.modFake = FastUtils.getFake(this.getWorld(), this.modFakeProfile); + return this.modFake = FastUtils.getFake(this.getWorld(), this.modFakeProfile); } - public final void setRealPlayer(EntityPlayer player) + public final void setRealPlayer(@Nullable Entity entity) + { + this.setRealPlayer(entity instanceof EntityPlayer ? (EntityPlayer) entity : null); + } + + public final void setRealPlayer(@Nullable EntityPlayer player) { this.reset(); if (player != null) { - this.profile = player.getGameProfile(); - if (!(player instanceof FakePlayer)) - this.realPlayer = new WeakReference(player); + this.setProfile(player); + if (this.profile != null && !(player instanceof FakePlayer)) + this.realPlayer = new WeakReference<>(player); } } - public final void setParent(FakePlayerContainer container) + public final void setParent(@Nullable FakePlayerContainer container) { this.reset(); - if (container.profile != null) + if (container != null && container.profile != null) { this.profile = container.profile; this.player = container.player; @@ -85,15 +103,26 @@ public final void setParent(FakePlayerContainer container) } } + @Nullable public final GameProfile getProfile() { return this.profile; } - public final void setProfile(GameProfile profile) + public final void setProfile(@Nullable Entity entity) + { + this.setProfile(entity instanceof EntityPlayer ? (EntityPlayer) entity : null); + } + + public final void setProfile(@Nullable EntityPlayer player) + { + this.setProfile(player == null ? null : player.getGameProfile()); + } + + public final void setProfile(@Nullable GameProfile profile) { this.reset(); - this.profile = profile; + this.profile = profile == null || !profile.isComplete() ? null : profile; } public final boolean cantBreak(int x, int y, int z) @@ -101,12 +130,31 @@ public final boolean cantBreak(int x, int y, int z) return EventUtils.cantBreak(this.get(), x, y, z); } - public final boolean cantDamage(Entity target) + public final boolean cantBreak(double x, double y, double z) + { + return EventUtils.cantBreak(this.get(), x, y, z); + } + + public final boolean cantDamage(@Nonnull Entity target) { return EventUtils.cantDamage(this.get(), target); } - private final void reset() + @Nonnull + public final ExplosionByPlayer createExplosion( + @Nullable Entity entityIn, double x, double y, double z, float strength, boolean isSmoking) + { + return ExplosionByPlayer.createExplosion(this, this.getWorld(), entityIn, x, y, z, strength, isSmoking); + } + + @Nonnull + public final ExplosionByPlayer newExplosion(@Nullable + Entity entityIn, double x, double y, double z, float strength, boolean isFlaming, boolean isSmoking) + { + return ExplosionByPlayer.newExplosion(this, this.getWorld(), entityIn, x, y, z, strength, isFlaming, isSmoking); + } + + private void reset() { this.profile = null; this.player = null; @@ -117,19 +165,19 @@ public final void writeToNBT(NBTTagCompound nbt) { if (this.profile != null) { - nbt.setString("eventhelper_fakeName", this.profile.getName()); - nbt.setString("eventhelper_fakeUUID", this.profile.getId().toString()); + nbt.setString(NBT_OWNER_NAME, this.profile.getName()); + nbt.setString(NBT_OWNER_UUID, this.profile.getId().toString()); } } public final void readFromNBT(NBTTagCompound nbt) { - this.profile = readProfile(nbt, "eventhelper_fakeName", "eventhelper_fakeUUID"); + this.profile = readProfile(nbt, NBT_OWNER_NAME, NBT_OWNER_UUID); if (this.profile == null) this.profile = readProfile(nbt, "ownerName", "ownerUUID"); } - private static final GameProfile readProfile(NBTTagCompound nbt, String nameKey, String uuidKey) + private static GameProfile readProfile(NBTTagCompound nbt, String nameKey, String uuidKey) { String name = nbt.getString(nameKey); if (!name.isEmpty()) diff --git a/src/main/java/com/gamerforea/eventhelper/fake/FakePlayerContainerEntity.java b/src/main/java/com/gamerforea/eventhelper/fake/FakePlayerContainerEntity.java index 69b084e..c98f414 100644 --- a/src/main/java/com/gamerforea/eventhelper/fake/FakePlayerContainerEntity.java +++ b/src/main/java/com/gamerforea/eventhelper/fake/FakePlayerContainerEntity.java @@ -1,25 +1,37 @@ package com.gamerforea.eventhelper.fake; import com.mojang.authlib.GameProfile; - import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.world.World; import net.minecraftforge.common.util.FakePlayer; +import javax.annotation.Nonnull; + public final class FakePlayerContainerEntity extends FakePlayerContainer { private final Entity entity; - public FakePlayerContainerEntity(FakePlayer modFake, Entity entity) + public FakePlayerContainerEntity(@Nonnull FakePlayer modFake, @Nonnull Entity entity) { super(modFake); this.entity = entity; + this.setRealPlayer(entity); + } + + public FakePlayerContainerEntity(@Nonnull FakePlayerContainer fake, @Nonnull Entity entity) + { + super(fake); + this.entity = entity; + if (entity instanceof EntityPlayer) + this.setRealPlayer(entity); } - public FakePlayerContainerEntity(GameProfile modFakeProfile, Entity entity) + public FakePlayerContainerEntity(@Nonnull GameProfile modFakeProfile, @Nonnull Entity entity) { super(modFakeProfile); this.entity = entity; + this.setRealPlayer(entity); } @Override diff --git a/src/main/java/com/gamerforea/eventhelper/fake/FakePlayerContainerTileEntity.java b/src/main/java/com/gamerforea/eventhelper/fake/FakePlayerContainerTileEntity.java index a67074c..619ed2d 100644 --- a/src/main/java/com/gamerforea/eventhelper/fake/FakePlayerContainerTileEntity.java +++ b/src/main/java/com/gamerforea/eventhelper/fake/FakePlayerContainerTileEntity.java @@ -1,22 +1,29 @@ package com.gamerforea.eventhelper.fake; import com.mojang.authlib.GameProfile; - import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import net.minecraftforge.common.util.FakePlayer; +import javax.annotation.Nonnull; + public final class FakePlayerContainerTileEntity extends FakePlayerContainer { private final TileEntity tile; - public FakePlayerContainerTileEntity(FakePlayer modFake, TileEntity tile) + public FakePlayerContainerTileEntity(@Nonnull FakePlayer modFake, @Nonnull TileEntity tile) { super(modFake); this.tile = tile; } - public FakePlayerContainerTileEntity(GameProfile modFakeProfile, TileEntity tile) + public FakePlayerContainerTileEntity(@Nonnull FakePlayerContainer fake, @Nonnull TileEntity tile) + { + super(fake); + this.tile = tile; + } + + public FakePlayerContainerTileEntity(@Nonnull GameProfile modFakeProfile, @Nonnull TileEntity tile) { super(modFakeProfile); this.tile = tile; diff --git a/src/main/java/com/gamerforea/eventhelper/fake/FakePlayerContainerWorld.java b/src/main/java/com/gamerforea/eventhelper/fake/FakePlayerContainerWorld.java index dc14481..0a1f29a 100644 --- a/src/main/java/com/gamerforea/eventhelper/fake/FakePlayerContainerWorld.java +++ b/src/main/java/com/gamerforea/eventhelper/fake/FakePlayerContainerWorld.java @@ -1,21 +1,28 @@ package com.gamerforea.eventhelper.fake; import com.mojang.authlib.GameProfile; - import net.minecraft.world.World; import net.minecraftforge.common.util.FakePlayer; +import javax.annotation.Nonnull; + public final class FakePlayerContainerWorld extends FakePlayerContainer { private final World world; - public FakePlayerContainerWorld(FakePlayer modFake, World world) + public FakePlayerContainerWorld(@Nonnull FakePlayer modFake, @Nonnull World world) { super(modFake); this.world = world; } - public FakePlayerContainerWorld(GameProfile modFakeProfile, World world) + public FakePlayerContainerWorld(@Nonnull FakePlayerContainer fake, @Nonnull World world) + { + super(fake); + this.world = world; + } + + public FakePlayerContainerWorld(@Nonnull GameProfile modFakeProfile, @Nonnull World world) { super(modFakeProfile); this.world = world; diff --git a/src/main/java/com/gamerforea/eventhelper/inject/InjectionManager.java b/src/main/java/com/gamerforea/eventhelper/inject/InjectionManager.java new file mode 100644 index 0000000..1e3d42b --- /dev/null +++ b/src/main/java/com/gamerforea/eventhelper/inject/InjectionManager.java @@ -0,0 +1,55 @@ +package com.gamerforea.eventhelper.inject; + +import com.gamerforea.eventhelper.inject.gpp.GPPInjection; +import com.gamerforea.eventhelper.inject.wg.WGInjection; +import org.bukkit.World; +import org.bukkit.entity.Player; + +import java.util.ArrayList; +import java.util.List; + +public final class InjectionManager +{ + private static final List injections = new ArrayList<>(); + + public static void init() + { + PluginInjection wgInj = WGInjection.getInjection(); + if (wgInj != null) + injections.add(wgInj); + + PluginInjection gppInj = GPPInjection.getInjection(); + if (gppInj != null) + injections.add(gppInj); + } + + public static boolean isInPrivate(World world, int x, int y, int z) + { + for (PluginInjection inj : injections) + { + if (inj.isInPrivate(world, x, y, z)) + return true; + } + return false; + } + + public static boolean isPrivateMember(Player player, int x, int y, int z) + { + for (PluginInjection inj : injections) + { + if (!inj.isPrivateMember(player, x, y, z)) + return false; + } + return true; + } + + public static boolean isPrivateOwner(Player player, int x, int y, int z) + { + for (PluginInjection inj : injections) + { + if (!inj.isPrivateOwner(player, x, y, z)) + return false; + } + return true; + } +} diff --git a/src/main/java/com/gamerforea/eventhelper/inject/PluginInjection.java b/src/main/java/com/gamerforea/eventhelper/inject/PluginInjection.java new file mode 100644 index 0000000..cf49f08 --- /dev/null +++ b/src/main/java/com/gamerforea/eventhelper/inject/PluginInjection.java @@ -0,0 +1,13 @@ +package com.gamerforea.eventhelper.inject; + +import org.bukkit.World; +import org.bukkit.entity.Player; + +public interface PluginInjection +{ + boolean isInPrivate(World world, int x, int y, int z); + + boolean isPrivateMember(Player player, int x, int y, int z); + + boolean isPrivateOwner(Player player, int x, int y, int z); +} diff --git a/src/main/java/com/gamerforea/eventhelper/inject/gpp/GPPInjection.java b/src/main/java/com/gamerforea/eventhelper/inject/gpp/GPPInjection.java new file mode 100644 index 0000000..fd79715 --- /dev/null +++ b/src/main/java/com/gamerforea/eventhelper/inject/gpp/GPPInjection.java @@ -0,0 +1,52 @@ +package com.gamerforea.eventhelper.inject.gpp; + +import com.gamerforea.eventhelper.inject.PluginInjection; +import com.gamerforea.eventhelper.util.InjectionUtils; +import net.kaikk.mc.gpp.Claim; +import net.kaikk.mc.gpp.GriefPreventionPlus; +import org.bukkit.Location; +import org.bukkit.World; +import org.bukkit.entity.Player; + +public final class GPPInjection +{ + public static PluginInjection getInjection() + { + Class clazz = InjectionUtils.injectClass("GriefPreventionPlus", GPPInjection.class); + if (clazz != null) + try + { + return (PluginInjection) clazz.newInstance(); + } + catch (Throwable throwable) + { + throwable.printStackTrace(); + } + return null; + } + + public static final class Inj implements PluginInjection + { + @Override + public boolean isInPrivate(World world, int x, int y, int z) + { + GriefPreventionPlus plugin = GriefPreventionPlus.getInstance(); + Claim claim = plugin.getDataStore().getClaimAt(new Location(world, x, y, z), false); + return claim != null; + } + + @Override + public boolean isPrivateMember(Player player, int x, int y, int z) + { + return this.isPrivateOwner(player, x, y, z); + } + + @Override + public boolean isPrivateOwner(Player player, int x, int y, int z) + { + GriefPreventionPlus plugin = GriefPreventionPlus.getInstance(); + Claim claim = plugin.getDataStore().getClaimAt(new Location(player.getWorld(), x, y, z), false); + return claim != null && player.getUniqueId().equals(claim.getOwnerID()); + } + } +} diff --git a/src/main/java/com/gamerforea/eventhelper/inject/wg/WGInjection.java b/src/main/java/com/gamerforea/eventhelper/inject/wg/WGInjection.java new file mode 100644 index 0000000..c6b1dc4 --- /dev/null +++ b/src/main/java/com/gamerforea/eventhelper/inject/wg/WGInjection.java @@ -0,0 +1,55 @@ +package com.gamerforea.eventhelper.inject.wg; + +import com.gamerforea.eventhelper.inject.PluginInjection; +import com.gamerforea.eventhelper.util.InjectionUtils; +import com.sk89q.worldedit.Vector; +import com.sk89q.worldguard.bukkit.WorldGuardPlugin; +import com.sk89q.worldguard.protection.regions.ProtectedRegion; +import org.bukkit.World; +import org.bukkit.entity.Player; + +public final class WGInjection +{ + public static PluginInjection getInjection() + { + Class clazz = InjectionUtils.injectClass("WorldGuard", WGInjection.class); + if (clazz != null) + try + { + return (PluginInjection) clazz.newInstance(); + } + catch (Throwable throwable) + { + throwable.printStackTrace(); + } + return null; + } + + public static final class Inj implements PluginInjection + { + @Override + public boolean isInPrivate(World world, int x, int y, int z) + { + for (ProtectedRegion region : WorldGuardPlugin.inst().getRegionManager(world).getApplicableRegions(new Vector(x, y, z))) + { + if (!region.getId().equals(ProtectedRegion.GLOBAL_REGION)) + return true; + } + return false; + } + + @Override + public boolean isPrivateMember(Player player, int x, int y, int z) + { + WorldGuardPlugin wg = WorldGuardPlugin.inst(); + return wg.getRegionManager(player.getWorld()).getApplicableRegions(new Vector(x, y, z)).isMemberOfAll(wg.wrapPlayer(player, true)); + } + + @Override + public boolean isPrivateOwner(Player player, int x, int y, int z) + { + WorldGuardPlugin wg = WorldGuardPlugin.inst(); + return wg.getRegionManager(player.getWorld()).getApplicableRegions(new Vector(x, y, z)).isOwnerOfAll(wg.wrapPlayer(player, true)); + } + } +} diff --git a/src/main/java/com/gamerforea/eventhelper/nexus/ModNexus.java b/src/main/java/com/gamerforea/eventhelper/nexus/ModNexus.java new file mode 100644 index 0000000..9a9d891 --- /dev/null +++ b/src/main/java/com/gamerforea/eventhelper/nexus/ModNexus.java @@ -0,0 +1,15 @@ +package com.gamerforea.eventhelper.nexus; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.TYPE) +public @interface ModNexus +{ + String name(); + + String uuid() default ""; +} diff --git a/src/main/java/com/gamerforea/eventhelper/nexus/ModNexusFactory.java b/src/main/java/com/gamerforea/eventhelper/nexus/ModNexusFactory.java new file mode 100644 index 0000000..408237c --- /dev/null +++ b/src/main/java/com/gamerforea/eventhelper/nexus/ModNexusFactory.java @@ -0,0 +1,55 @@ +package com.gamerforea.eventhelper.nexus; + +import com.gamerforea.eventhelper.fake.FakePlayerContainerEntity; +import com.gamerforea.eventhelper.fake.FakePlayerContainerTileEntity; +import com.gamerforea.eventhelper.fake.FakePlayerContainerWorld; +import com.gamerforea.eventhelper.util.FastUtils; +import com.google.common.base.Preconditions; +import com.mojang.authlib.GameProfile; +import net.minecraft.entity.Entity; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; +import net.minecraftforge.common.util.FakePlayer; + +import javax.annotation.Nonnull; + +public final class ModNexusFactory +{ + private final GameProfile modFakeProfile; + + public ModNexusFactory(@Nonnull GameProfile modFakeProfile) + { + Preconditions.checkArgument(modFakeProfile.isComplete(), "modFakeProfile is incomplete"); + this.modFakeProfile = modFakeProfile; + } + + @Nonnull + public GameProfile getProfile() + { + return this.modFakeProfile; + } + + @Nonnull + public FakePlayer getFake(@Nonnull World world) + { + return FastUtils.getFake(world, this.modFakeProfile); + } + + @Nonnull + public FakePlayerContainerEntity wrapFake(@Nonnull Entity entity) + { + return new FakePlayerContainerEntity(this.modFakeProfile, entity); + } + + @Nonnull + public FakePlayerContainerTileEntity wrapFake(@Nonnull TileEntity tile) + { + return new FakePlayerContainerTileEntity(this.modFakeProfile, tile); + } + + @Nonnull + public FakePlayerContainerWorld wrapFake(@Nonnull World world) + { + return new FakePlayerContainerWorld(this.modFakeProfile, world); + } +} diff --git a/src/main/java/com/gamerforea/eventhelper/nexus/NexusUtils.java b/src/main/java/com/gamerforea/eventhelper/nexus/NexusUtils.java new file mode 100644 index 0000000..db9ed28 --- /dev/null +++ b/src/main/java/com/gamerforea/eventhelper/nexus/NexusUtils.java @@ -0,0 +1,90 @@ +package com.gamerforea.eventhelper.nexus; + +import com.gamerforea.eventhelper.util.ReflectionUtils; +import com.google.common.base.Preconditions; +import com.google.common.hash.Hashing; +import com.mojang.authlib.GameProfile; + +import javax.annotation.Nonnull; +import java.nio.charset.StandardCharsets; +import java.util.HashSet; +import java.util.Set; +import java.util.UUID; + +public final class NexusUtils +{ + @Nonnull + public static ModNexusFactory getFactory() + { + return getFactory(getGameProfile()); + } + + @Nonnull + public static ModNexusFactory getFactory(@Nonnull Class modNexusClass) + { + return getFactory(getGameProfile(modNexusClass)); + } + + @Nonnull + public static ModNexusFactory getFactory(@Nonnull GameProfile profile) + { + return new ModNexusFactory(profile); + } + + @Nonnull + public static GameProfile getGameProfile() + { + Class[] callingClasses = ReflectionUtils.getCallingClasses(); + Set> visitedClasses = new HashSet<>(callingClasses.length); + for (Class callerClass : callingClasses) + { + if (visitedClasses.add(callerClass)) + { + ModNexus annotation = callerClass.getAnnotation(ModNexus.class); + if (annotation != null) + return getGameProfile(callerClass); + } + } + throw new IllegalStateException("Class with ModNexus annotation not found in StackTrace"); + } + + @Nonnull + public static GameProfile getGameProfile(@Nonnull Class modNexusClass) + { + ModNexus annotation = getModNexusAnnotation(modNexusClass); + return annotation.uuid().isEmpty() ? getGameProfile(annotation.name()) : getGameProfile(annotation.name(), UUID.fromString(annotation.uuid())); + } + + @Nonnull + public static GameProfile getGameProfile(@Nonnull String fakeName) + { + Preconditions.checkArgument(!fakeName.isEmpty(), "fakeName must not be empty"); + if (fakeName.charAt(0) != '[') + fakeName = '[' + fakeName + ']'; + return getGameProfile(fakeName, stringToId(fakeName)); + } + + @Nonnull + public static GameProfile getGameProfile(@Nonnull String fakeName, @Nonnull UUID fakeId) + { + Preconditions.checkArgument(!fakeName.isEmpty(), "fakeName must not be empty"); + if (fakeName.charAt(0) != '[') + fakeName = '[' + fakeName + ']'; + return new GameProfile(fakeId, fakeName); + } + + @Nonnull + private static UUID stringToId(@Nonnull String fakeName) + { + return new UUID(Hashing.md5().hashBytes(fakeName.getBytes(StandardCharsets.UTF_8)).asLong(), Hashing.sha1().hashBytes(fakeName.getBytes(StandardCharsets.UTF_8)).asLong()); + } + + @Nonnull + private static ModNexus getModNexusAnnotation(@Nonnull Class modNexusClass) + { + ModNexus annotation = modNexusClass.getAnnotation(ModNexus.class); + Preconditions.checkNotNull(annotation, "ModNexus annotation not found in class " + modNexusClass.getName()); + Preconditions.checkArgument(!annotation.name().isEmpty(), "ModNexus.name() must not be empty"); + return annotation; + } +} diff --git a/src/main/java/com/gamerforea/eventhelper/util/ConvertUtils.java b/src/main/java/com/gamerforea/eventhelper/util/ConvertUtils.java index b5f328d..a3b65af 100644 --- a/src/main/java/com/gamerforea/eventhelper/util/ConvertUtils.java +++ b/src/main/java/com/gamerforea/eventhelper/util/ConvertUtils.java @@ -1,43 +1,42 @@ package com.gamerforea.eventhelper.util; -import java.lang.reflect.Method; - -import org.bukkit.Bukkit; -import org.bukkit.block.BlockFace; -import org.bukkit.entity.Player; - import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; +import org.bukkit.Bukkit; +import org.bukkit.block.BlockFace; +import org.bukkit.entity.Player; + +import java.lang.reflect.Method; public final class ConvertUtils { private static final Method getBukkitEntity; private static final Method asCraftMirror; - public static final org.bukkit.entity.Entity toBukkitEntity(Entity entity) throws Exception + public static org.bukkit.entity.Entity toBukkitEntity(Entity entity) throws Exception { return (org.bukkit.entity.Entity) getBukkitEntity.invoke(entity); } - public static final Player toBukkitEntity(EntityPlayer player) throws Exception + public static Player toBukkitEntity(EntityPlayer player) throws Exception { return (Player) getBukkitEntity.invoke(player); } - public static final org.bukkit.World toBukkitWorld(World world) + public static org.bukkit.World toBukkitWorld(World world) { return Bukkit.getWorld(world.getWorldInfo().getWorldName()); } - public static final org.bukkit.inventory.ItemStack toBukkitItemStackMirror(ItemStack stack) throws Exception + public static org.bukkit.inventory.ItemStack toBukkitItemStackMirror(ItemStack stack) throws Exception { return (org.bukkit.inventory.ItemStack) asCraftMirror.invoke(null, stack); } - public static final BlockFace toBukkitFace(ForgeDirection direction) + public static BlockFace toBukkitFace(ForgeDirection direction) { switch (direction) { @@ -67,7 +66,7 @@ public static final BlockFace toBukkitFace(ForgeDirection direction) getBukkitEntity = Entity.class.getDeclaredMethod("getBukkitEntity"); getBukkitEntity.setAccessible(true); - asCraftMirror = CraftUtils.getCraftClass("inventory/CraftItemStack").getDeclaredMethod("asCraftMirror", ItemStack.class); + asCraftMirror = CraftUtils.getCraftClass("inventory.CraftItemStack").getDeclaredMethod("asCraftMirror", ItemStack.class); asCraftMirror.setAccessible(true); } catch (Throwable throwable) diff --git a/src/main/java/com/gamerforea/eventhelper/util/CooldownManager.java b/src/main/java/com/gamerforea/eventhelper/util/CooldownManager.java new file mode 100644 index 0000000..e1d1833 --- /dev/null +++ b/src/main/java/com/gamerforea/eventhelper/util/CooldownManager.java @@ -0,0 +1,65 @@ +package com.gamerforea.eventhelper.util; + +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import cpw.mods.fml.common.gameevent.TickEvent; +import gnu.trove.iterator.TObjectLongIterator; +import gnu.trove.map.TObjectLongMap; +import gnu.trove.map.hash.TObjectLongHashMap; +import net.minecraftforge.common.MinecraftForge; + +import javax.annotation.Nonnull; +import java.util.concurrent.TimeUnit; + +public class CooldownManager +{ + private final TObjectLongMap cooldowns = new TObjectLongHashMap<>(); + private final long cooldown; + + public CooldownManager(long cooldown, @Nonnull TimeUnit timeUnit) + { + this(cooldown <= 0 ? 0 : timeUnit.toSeconds(cooldown) * 20); + } + + public CooldownManager(long cooldownInTicks) + { + this.cooldown = Math.max(0, cooldownInTicks); + if (this.cooldown > 0) + MinecraftForge.EVENT_BUS.register(this); + } + + public boolean canAdd(@Nonnull T key) + { + return this.cooldown <= 0 || !this.cooldowns.containsKey(key); + } + + public boolean add(@Nonnull T key) + { + if (this.cooldown <= 0) + return true; + if (this.canAdd(key)) + { + this.cooldowns.put(key, this.cooldown); + return true; + } + return false; + } + + public long getCooldown(@Nonnull T key) + { + return this.cooldown <= 0 ? 0 : this.cooldowns.get(key); + } + + @SubscribeEvent + public void onTick(TickEvent.ServerTickEvent event) + { + for (TObjectLongIterator iterator = this.cooldowns.iterator(); iterator.hasNext(); ) + { + iterator.advance(); + long timer = iterator.value() - 1; + if (timer <= 0) + iterator.remove(); + else + iterator.setValue(timer); + } + } +} diff --git a/src/main/java/com/gamerforea/eventhelper/util/CraftUtils.java b/src/main/java/com/gamerforea/eventhelper/util/CraftUtils.java index 75bb18d..a9f5e57 100644 --- a/src/main/java/com/gamerforea/eventhelper/util/CraftUtils.java +++ b/src/main/java/com/gamerforea/eventhelper/util/CraftUtils.java @@ -4,8 +4,8 @@ public final class CraftUtils { - public static final Class getCraftClass(String name) throws ClassNotFoundException + public static Class getCraftClass(String name) throws ClassNotFoundException { - return Class.forName((EventHelper.craftPackage + '/' + name).replace("//", ".").replace('/', '.')); + return Class.forName((EventHelper.craftPackage + '.' + name).replace("//", ".").replace('/', '.')); } } diff --git a/src/main/java/com/gamerforea/eventhelper/util/EventUtils.java b/src/main/java/com/gamerforea/eventhelper/util/EventUtils.java index a1f67dc..fafcf1a 100644 --- a/src/main/java/com/gamerforea/eventhelper/util/EventUtils.java +++ b/src/main/java/com/gamerforea/eventhelper/util/EventUtils.java @@ -1,10 +1,14 @@ package com.gamerforea.eventhelper.util; -import static com.gamerforea.eventhelper.util.ConvertUtils.toBukkitEntity; -import static com.gamerforea.eventhelper.util.ConvertUtils.toBukkitFace; -import static com.gamerforea.eventhelper.util.ConvertUtils.toBukkitItemStackMirror; -import static com.gamerforea.eventhelper.util.ConvertUtils.toBukkitWorld; - +import com.gamerforea.eventhelper.EventHelper; +import com.gamerforea.eventhelper.inject.InjectionManager; +import com.google.common.base.Strings; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; +import org.bukkit.Bukkit; import org.bukkit.entity.Player; import org.bukkit.event.block.Action; import org.bukkit.event.block.BlockBreakEvent; @@ -13,19 +17,16 @@ import org.bukkit.event.entity.EntityDamageEvent.DamageCause; import org.bukkit.event.player.PlayerInteractEvent; -import com.gamerforea.eventhelper.EventHelper; -import com.gamerforea.eventhelper.wg.WGRegionChecker; +import javax.annotation.Nonnull; +import javax.annotation.Nullable; +import java.util.UUID; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.MathHelper; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; +import static com.gamerforea.eventhelper.util.ConvertUtils.*; +import static net.minecraft.util.MathHelper.floor_double; public final class EventUtils { - public static final boolean cantBreak(EntityPlayer player, int x, int y, int z) + public static boolean cantBreak(@Nonnull EntityPlayer player, int x, int y, int z) { try { @@ -36,39 +37,36 @@ public static final boolean cantBreak(EntityPlayer player, int x, int y, int z) } catch (Throwable throwable) { - err("Failed call BlockBreakEvent: [Player: %s, X:%d, Y:%d, Z:%d]", String.valueOf(player), x, y, z); - if (EventHelper.debug) - throwable.printStackTrace(); + EventHelper.error(throwable, "Failed call BlockBreakEvent: [Player: {}, X:{}, Y:{}, Z:{}]", String.valueOf(player), x, y, z); return true; } } - public static final boolean cantBreak(EntityPlayer player, double x, double y, double z) + public static boolean cantBreak(@Nonnull EntityPlayer player, double x, double y, double z) { - int xx = MathHelper.floor_double(x); - int yy = MathHelper.floor_double(y); - int zz = MathHelper.floor_double(z); + int xx = floor_double(x); + int yy = floor_double(y); + int zz = floor_double(z); return cantBreak(player, xx, yy, zz); } - public static final boolean cantDamage(Entity damager, Entity damagee) + public static boolean cantDamage(@Nonnull Entity attacker, @Nonnull Entity victim) { try { - EntityDamageByEntityEvent event = new EntityDamageByEntityEvent(toBukkitEntity(damager), toBukkitEntity(damagee), DamageCause.ENTITY_ATTACK, 0D); + EntityDamageByEntityEvent event = new EntityDamageByEntityEvent(toBukkitEntity(attacker), toBukkitEntity(victim), DamageCause.ENTITY_ATTACK, 0D); EventHelper.callEvent(event); return event.isCancelled(); } catch (Throwable throwable) { - err("Failed call EntityDamageByEntityEvent: [Damager: %s, Damagee: %s]", String.valueOf(damager), String.valueOf(damagee)); - if (EventHelper.debug) - throwable.printStackTrace(); + EventHelper.error(throwable, "Failed call EntityDamageByEntityEvent: [Attacker: {}, Victim: {}]", String.valueOf(attacker), String.valueOf(victim)); return true; } } - public static final boolean cantInteract(EntityPlayer player, ItemStack stack, int x, int y, int z, ForgeDirection side) + public static boolean cantInteract( + @Nonnull EntityPlayer player, @Nullable ItemStack stack, int x, int y, int z, @Nonnull ForgeDirection side) { try { @@ -79,14 +77,12 @@ public static final boolean cantInteract(EntityPlayer player, ItemStack stack, i } catch (Throwable throwable) { - err("Failed call PlayerInteractEvent: [Player: %s, Item: %s, X:%d, Y:%d, Z:%d, Side: %s]", String.valueOf(player), String.valueOf(stack), x, y, z, String.valueOf(side)); - if (EventHelper.debug) - throwable.printStackTrace(); + EventHelper.error(throwable, "Failed call PlayerInteractEvent: [Player: {}, Item: {}, X:{}, Y:{}, Z:{}, Side: {}]", String.valueOf(player), String.valueOf(stack), x, y, z, String.valueOf(side)); return true; } } - public static final boolean cantFromTo(World world, int fromX, int fromY, int fromZ, int toX, int toY, int toZ) + public static boolean cantFromTo(@Nonnull World world, int fromX, int fromY, int fromZ, int toX, int toY, int toZ) { try { @@ -97,14 +93,13 @@ public static final boolean cantFromTo(World world, int fromX, int fromY, int fr } catch (Throwable throwable) { - err("Failed call BlockFromToEvent: [FromX: %d, FromY: %d, FromZ: %d, ToX: %d, ToY: %d, ToZ: %d]", fromX, fromY, fromZ, toX, toY, toZ); - if (EventHelper.debug) - throwable.printStackTrace(); + EventHelper.error(throwable, "Failed call BlockFromToEvent: [FromX: {}, FromY: {}, FromZ: {}, ToX: {}, ToY: {}, ToZ: {}]", fromX, fromY, fromZ, toX, toY, toZ); return true; } } - public static final boolean cantFromTo(World world, int fromX, int fromY, int fromZ, ForgeDirection direction) + public static boolean cantFromTo( + @Nonnull World world, int fromX, int fromY, int fromZ, @Nonnull ForgeDirection direction) { try { @@ -115,38 +110,122 @@ public static final boolean cantFromTo(World world, int fromX, int fromY, int fr } catch (Throwable throwable) { - err("Failed call BlockFromToEvent: [FromX: %d, FromY: %d, FromZ: %d, Direction: %s]", fromX, fromY, fromZ, String.valueOf(direction)); - if (EventHelper.debug) - throwable.printStackTrace(); + EventHelper.error(throwable, "Failed call BlockFromToEvent: [FromX: {}, FromY: {}, FromZ: {}, Direction: {}]", fromX, fromY, fromZ, String.valueOf(direction)); + return true; + } + } + + public static boolean isInPrivate(@Nonnull World world, int x, int y, int z) + { + try + { + return InjectionManager.isInPrivate(toBukkitWorld(world), x, y, z); + } + catch (Throwable throwable) + { + EventHelper.error(throwable, "Failed check private: [World: {}, X: {}, Y: {}, Z: {}]", world.getWorldInfo().getWorldName(), x, y, z); return true; } } - public static final boolean isInPrivate(World world, int x, int y, int z) + public static boolean isPrivateMember(@Nonnull EntityPlayer player, double x, double y, double z) + { + int xx = floor_double(x); + int yy = floor_double(y); + int zz = floor_double(z); + return isPrivateMember(player, xx, yy, zz); + } + + public static boolean isPrivateMember(@Nonnull EntityPlayer player, int x, int y, int z) { try { - return WGRegionChecker.isInPrivate(toBukkitWorld(world), x, y, z); + return InjectionManager.isPrivateMember(toBukkitEntity(player), x, y, z); } catch (Throwable throwable) { - err("Failed check private: [World: %s, X: %d, Y: %d, Z: %d]", world.getWorldInfo().getWorldName(), x, y, z); - if (EventHelper.debug) - throwable.printStackTrace(); + EventHelper.error(throwable, "Failed check private member: [Player: {}, X: {}, Y: {}, Z: {}]", String.valueOf(player), x, y, z); return true; } } - public static final boolean isInPrivate(Entity entity) + public static boolean isPrivateOwner(@Nonnull EntityPlayer player, double x, double y, double z) { - int x = MathHelper.floor_double(entity.posX); - int y = MathHelper.floor_double(entity.posY); - int z = MathHelper.floor_double(entity.posZ); + int xx = floor_double(x); + int yy = floor_double(y); + int zz = floor_double(z); + return isPrivateOwner(player, xx, yy, zz); + } + + public static boolean isPrivateOwner(@Nonnull EntityPlayer player, int x, int y, int z) + { + try + { + return InjectionManager.isPrivateOwner(toBukkitEntity(player), x, y, z); + } + catch (Throwable throwable) + { + EventHelper.error(throwable, "Failed check private owner: [Player: {}, X: {}, Y: {}, Z: {}]", String.valueOf(player), x, y, z); + return true; + } + } + + public static boolean isInPrivate(@Nonnull Entity entity) + { + int x = floor_double(entity.posX); + int y = floor_double(entity.posY); + int z = floor_double(entity.posZ); return isInPrivate(entity.worldObj, x, y, z); } - private static final void err(String format, Object... args) + public static boolean hasPermission(@Nullable EntityPlayer player, @Nonnull String permission) { - System.err.println(String.format(format, args)); + if (player == null) + return false; + + try + { + Player bPlayer = toBukkitEntity(player); + return bPlayer != null && bPlayer.hasPermission(permission); + } + catch (Throwable throwable) + { + EventHelper.error(throwable, "Failed checking permission: [Player: {}, Permission: {}]", player, permission); + return false; + } + } + + public static boolean hasPermission(@Nullable UUID playerId, @Nonnull String permission) + { + if (playerId == null) + return false; + + try + { + Player player = Bukkit.getPlayer(playerId); + return player != null && player.hasPermission(permission); + } + catch (Throwable throwable) + { + EventHelper.error(throwable, "Failed checking permission: [Player name: {}, Permission: {}]", playerId, permission); + return false; + } + } + + public static boolean hasPermission(@Nullable String playerName, @Nonnull String permission) + { + if (Strings.isNullOrEmpty(playerName)) + return false; + + try + { + Player player = Bukkit.getPlayerExact(playerName); + return player != null && player.hasPermission(permission); + } + catch (Throwable throwable) + { + EventHelper.error(throwable, "Failed checking permission: [Player UUID: {}, Permission: {}]", playerName, permission); + return false; + } } } diff --git a/src/main/java/com/gamerforea/eventhelper/util/ExplosionByPlayer.java b/src/main/java/com/gamerforea/eventhelper/util/ExplosionByPlayer.java new file mode 100644 index 0000000..b59afca --- /dev/null +++ b/src/main/java/com/gamerforea/eventhelper/util/ExplosionByPlayer.java @@ -0,0 +1,280 @@ +package com.gamerforea.eventhelper.util; + +import com.gamerforea.eventhelper.EventHelper; +import com.gamerforea.eventhelper.fake.FakePlayerContainer; +import com.mojang.authlib.GameProfile; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.enchantment.EnchantmentProtection; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.network.play.server.S27PacketExplosion; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; +import net.minecraft.util.Vec3; +import net.minecraft.world.ChunkPosition; +import net.minecraft.world.Explosion; +import net.minecraft.world.World; +import net.minecraft.world.WorldServer; +import net.minecraftforge.common.util.FakePlayer; +import net.minecraftforge.event.ForgeEventFactory; + +import javax.annotation.Nonnull; +import javax.annotation.Nullable; +import java.util.*; + +public final class ExplosionByPlayer extends Explosion +{ + private final EntityPlayer player; + private final World world; + private final Map playerKnockbackMap = new HashMap<>(); + + public ExplosionByPlayer( + @Nonnull GameProfile modFakeProfile, + @Nullable EntityPlayer player, + @Nonnull World world, @Nullable Entity exploder, double x, double y, double z, float size) + { + this(player == null ? exploder instanceof EntityPlayer ? (EntityPlayer) exploder : FastUtils.getFake(world, modFakeProfile) : player, world, exploder, x, y, z, size); + } + + public ExplosionByPlayer( + @Nonnull FakePlayer modFake, + @Nullable EntityPlayer player, + @Nonnull World world, @Nullable Entity exploder, double x, double y, double z, float size) + { + this(player == null ? exploder instanceof EntityPlayer ? (EntityPlayer) exploder : modFake : player, world, exploder, x, y, z, size); + } + + public ExplosionByPlayer( + @Nonnull FakePlayerContainer fake, + @Nonnull World world, @Nullable Entity exploder, double x, double y, double z, float size) + { + this(fake.get(), world, exploder, x, y, z, size); + } + + public ExplosionByPlayer( + @Nonnull EntityPlayer player, + @Nonnull World world, @Nullable Entity exploder, double x, double y, double z, float size) + { + super(world, exploder, x, y, z, size); + this.world = world; + this.player = player; + } + + @Override + public final void doExplosionA() + { + if (!EventHelper.explosions) + return; + + this.affectedBlockPositions.addAll(this.getPositions()); + float size = this.explosionSize; + this.explosionSize *= 2; + int minX = MathHelper.floor_double(this.explosionX - this.explosionSize - 1); + int maxX = MathHelper.floor_double(this.explosionX + this.explosionSize + 1); + int minY = MathHelper.floor_double(this.explosionY - this.explosionSize - 1); + int maxY = MathHelper.floor_double(this.explosionY + this.explosionSize + 1); + int minZ = MathHelper.floor_double(this.explosionZ - this.explosionSize - 1); + int maxZ = MathHelper.floor_double(this.explosionZ + this.explosionSize + 1); + List entities = this.world.getEntitiesWithinAABBExcludingEntity(this.exploder, AxisAlignedBB.getBoundingBox(minX, minY, minZ, maxX, maxY, maxZ)); + Vec3 vec3 = Vec3.createVectorHelper(this.explosionX, this.explosionY, this.explosionZ); + + for (Entity entity : entities) + { + double distance = entity.getDistance(this.explosionX, this.explosionY, this.explosionZ) / this.explosionSize; + + if (distance <= 1) + { + double distanceX = entity.posX - this.explosionX; + double distanceY = entity.posY + entity.getEyeHeight() - this.explosionY; + double distanceZ = entity.posZ - this.explosionZ; + double distance1 = MathHelper.sqrt_double(distanceX * distanceX + distanceY * distanceY + distanceZ * distanceZ); + + if (distance1 != 0) + { + if (EventUtils.cantDamage(this.player, entity)) + continue; + + distanceX /= distance1; + distanceY /= distance1; + distanceZ /= distance1; + double density = this.world.getBlockDensity(vec3, entity.boundingBox); + double d5 = (1 - distance) * density; + entity.attackEntityFrom(DamageSource.setExplosionSource(this), (int) ((d5 * d5 + d5) / 2 * 8 * this.explosionSize + 1)); + double d6 = EnchantmentProtection.func_92092_a(entity, d5); + entity.motionX += distanceX * d6; + entity.motionY += distanceY * d6; + entity.motionZ += distanceZ * d6; + + if (entity instanceof EntityPlayer) + { + EntityPlayer player = (EntityPlayer) entity; + this.playerKnockbackMap.put(player, Vec3.createVectorHelper(distanceX * d5, distanceY * d5, distanceZ * d5)); + } + } + } + } + + this.explosionSize = size; + } + + private Set getPositions() + { + Set set = new HashSet<>(); + for (int i = 0; i < 16; ++i) + { + for (int j = 0; j < 16; ++j) + { + for (int k = 0; k < 16; ++k) + { + if (i == 0 || i == 15 || j == 0 || j == 15 || k == 0 || k == 15) + { + double distanceX = i / 30F - 1F; + double distanceY = j / 30F - 1F; + double distanceZ = k / 30F - 1F; + double distance = Math.sqrt(distanceX * distanceX + distanceY * distanceY + distanceZ * distanceZ); + distanceX /= distance; + distanceY /= distance; + distanceZ /= distance; + float size = this.explosionSize * (0.7F + this.world.rand.nextFloat() * 0.6F); + double dX = this.explosionX; + double dY = this.explosionY; + double dZ = this.explosionZ; + + for (float f = 0.3F; size > 0F; size -= f * 0.75F) + { + int x = MathHelper.floor_double(dX); + int y = MathHelper.floor_double(dY); + int z = MathHelper.floor_double(dZ); + Block block = this.world.getBlock(x, y, z); + + if (block.getMaterial() != Material.air) + { + float resistance = this.exploder != null ? this.exploder.func_145772_a(this, this.world, x, y, z, block) : block.getExplosionResistance(this.exploder, this.world, x, y, z, this.explosionX, this.explosionY, this.explosionZ); + size -= (resistance + 0.3F) * f; + } + + if (size > 0 && (this.exploder == null || this.exploder.func_145774_a(this, this.world, x, y, z, block, size))) + if (!EventUtils.cantBreak(this.player, x, y, z)) + set.add(new ChunkPosition(x, y, z)); + + dX += distanceX * f; + dY += distanceY * f; + dZ += distanceZ * f; + } + } + } + } + } + return set; + } + + @Override + public final Map func_77277_b() + { + return this.playerKnockbackMap; + } + + public static ExplosionByPlayer createExplosion( + @Nonnull GameProfile modFakeProfile, + @Nullable EntityPlayer player, + @Nonnull World world, @Nullable Entity exploder, double x, double y, double z, float size, boolean smoke) + { + return newExplosion(modFakeProfile, player, world, exploder, x, y, z, size, false, smoke); + } + + public static ExplosionByPlayer createExplosion( + @Nonnull FakePlayer modFake, + @Nullable EntityPlayer player, + @Nonnull World world, @Nullable Entity exploder, double x, double y, double z, float size, boolean smoke) + { + return newExplosion(modFake, player, world, exploder, x, y, z, size, false, smoke); + } + + @Nonnull + public static ExplosionByPlayer createExplosion( + @Nonnull FakePlayerContainer fake, + @Nonnull World world, @Nullable Entity exploder, double x, double y, double z, float size, boolean smoke) + { + return newExplosion(fake, world, exploder, x, y, z, size, false, smoke); + } + + @Nonnull + public static ExplosionByPlayer createExplosion( + @Nonnull EntityPlayer player, + @Nonnull World world, @Nullable Entity exploder, double x, double y, double z, float size, boolean smoke) + { + return newExplosion(player, world, exploder, x, y, z, size, false, smoke); + } + + public static ExplosionByPlayer newExplosion( + @Nonnull GameProfile modFakeProfile, + @Nullable EntityPlayer player, + @Nonnull World world, + @Nullable Entity exploder, double x, double y, double z, float size, boolean flame, boolean smoke) + { + ExplosionByPlayer explosion = new ExplosionByPlayer(modFakeProfile, player, world, exploder, x, y, z, size); + return newExplosion(explosion, world, x, y, z, size, flame, smoke); + } + + public static ExplosionByPlayer newExplosion( + @Nonnull FakePlayer modFake, + @Nullable EntityPlayer player, + @Nonnull World world, + @Nullable Entity exploder, double x, double y, double z, float size, boolean flame, boolean smoke) + { + ExplosionByPlayer explosion = new ExplosionByPlayer(modFake, player, world, exploder, x, y, z, size); + return newExplosion(explosion, world, x, y, z, size, flame, smoke); + } + + @Nonnull + public static ExplosionByPlayer newExplosion( + @Nonnull FakePlayerContainer fake, + @Nonnull World world, + @Nullable Entity exploder, double x, double y, double z, float size, boolean flame, boolean smoke) + { + ExplosionByPlayer explosion = new ExplosionByPlayer(fake, world, exploder, x, y, z, size); + return newExplosion(explosion, world, x, y, z, size, flame, smoke); + } + + @Nonnull + public static ExplosionByPlayer newExplosion( + @Nonnull EntityPlayer player, + @Nonnull World world, + @Nullable Entity exploder, double x, double y, double z, float size, boolean flame, boolean smoke) + { + ExplosionByPlayer explosion = new ExplosionByPlayer(player, world, exploder, x, y, z, size); + return newExplosion(explosion, world, x, y, z, size, flame, smoke); + } + + private static ExplosionByPlayer newExplosion( + @Nonnull ExplosionByPlayer explosion, + @Nonnull World world, double x, double y, double z, float size, boolean flame, boolean smoke) + { + explosion.isFlaming = flame; + explosion.isSmoking = smoke; + + if (ForgeEventFactory.onExplosionStart(world, explosion)) + return explosion; + + boolean isServerWorld = world instanceof WorldServer; + explosion.doExplosionA(); + explosion.doExplosionB(!isServerWorld); + + if (isServerWorld) + { + if (!smoke) + explosion.affectedBlockPositions.clear(); + + for (EntityPlayer target : (Iterable) world.playerEntities) + { + if (target.getDistanceSq(x, y, z) < 4096) + ((EntityPlayerMP) target).playerNetServerHandler.sendPacket(new S27PacketExplosion(x, y, z, size, explosion.affectedBlockPositions, (Vec3) explosion.func_77277_b().get(target))); + } + } + + return explosion; + } +} diff --git a/src/main/java/com/gamerforea/eventhelper/util/FastUtils.java b/src/main/java/com/gamerforea/eventhelper/util/FastUtils.java index 62f18d4..ab029c5 100644 --- a/src/main/java/com/gamerforea/eventhelper/util/FastUtils.java +++ b/src/main/java/com/gamerforea/eventhelper/util/FastUtils.java @@ -1,91 +1,142 @@ package com.gamerforea.eventhelper.util; -import java.io.File; - -import com.gamerforea.eventhelper.EventHelper; +import com.gamerforea.eventhelper.config.ConfigUtils; +import com.gamerforea.eventhelper.fake.FakePlayerContainer; import com.mojang.authlib.GameProfile; - import cpw.mods.fml.common.FMLCommonHandler; +import cpw.mods.fml.relauncher.ReflectionHelper; +import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.projectile.EntityThrowable; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; import net.minecraft.server.MinecraftServer; +import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import net.minecraft.world.WorldServer; import net.minecraftforge.common.config.Configuration; import net.minecraftforge.common.util.FakePlayer; import net.minecraftforge.common.util.FakePlayerFactory; +import javax.annotation.Nonnull; +import javax.annotation.Nullable; +import java.util.function.Function; + public final class FastUtils { - public static final Configuration getConfig(String cfgName) + @Deprecated + @Nonnull + public static Configuration getConfig(@Nonnull String cfgName) + { + return ConfigUtils.getConfig(cfgName); + } + + public static void stopPotionEffect(@Nonnull EntityLivingBase entity, @Nonnull Potion potion) + { + stopPotionEffect(entity.getActivePotionEffect(potion)); + } + + public static void stopPotionEffect(@Nullable PotionEffect potionEffect) { - Configuration cfg = new Configuration(new File(EventHelper.cfgDir, cfgName + ".cfg")); - cfg.load(); - return cfg; + if (potionEffect != null && potionEffect.getDuration() > 0) + ReflectionHelper.setPrivateValue(PotionEffect.class, potionEffect, 0, "field_76460_b", "duration"); + } + + public static boolean setProfile( + @Nonnull World world, int x, int y, int z, + @Nonnull Entity entity, Class tileClass, Function mapper) + { + if (entity instanceof EntityPlayer && world.blockExists(x, y, z)) + { + TileEntity tile = world.getTileEntity(x, y, z); + if (tile != null && tileClass.isInstance(tile)) + { + FakePlayerContainer fake = mapper.apply((T) tile); + fake.setProfile(entity); + return true; + } + } + return false; } - public static final boolean isOnline(EntityPlayer player) + public static boolean isOnline(@Nonnull EntityPlayer player) { if (player instanceof FakePlayer) return true; for (EntityPlayer playerOnline : (Iterable) getServer().getConfigurationManager().playerEntityList) + { if (playerOnline.equals(player)) return true; + } return false; } - public static final FakePlayer getFake(World world, FakePlayer fake) + @Nonnull + public static FakePlayer getFake(@Nullable World world, @Nonnull FakePlayer fake) { fake.worldObj = world == null ? getEntityWorld() : world; return fake; } - public static final FakePlayer getFake(World world, GameProfile profile) + @Nonnull + public static FakePlayer getFake(@Nullable World world, @Nonnull GameProfile profile) { return getFake(world, FakePlayerFactory.get((WorldServer) (world == null ? getEntityWorld() : world), profile)); } - public static final EntityPlayer getLivingPlayer(EntityLivingBase entity, FakePlayer modFake) + @Nonnull + public static EntityPlayer getLivingPlayer(@Nullable EntityLivingBase entity, @Nonnull FakePlayer modFake) { return entity instanceof EntityPlayer ? (EntityPlayer) entity : getFake(entity == null ? null : entity.worldObj, modFake); } - public static final EntityPlayer getLivingPlayer(EntityLivingBase entity, GameProfile modFakeProfile) + @Nonnull + public static EntityPlayer getLivingPlayer(@Nullable EntityLivingBase entity, @Nonnull GameProfile modFakeProfile) { return entity instanceof EntityPlayer ? (EntityPlayer) entity : getFake(entity == null ? null : entity.worldObj, modFakeProfile); } - public static final EntityPlayer getThrowerPlayer(EntityThrowable entity, FakePlayer modFake) + @Nonnull + public static EntityPlayer getThrowerPlayer(@Nullable EntityThrowable entity, @Nonnull FakePlayer modFake) { - return getLivingPlayer(entity.getThrower(), modFake); + return getLivingPlayer(entity == null ? null : entity.getThrower(), modFake); } - public static final EntityPlayer getThrowerPlayer(EntityThrowable entity, GameProfile modFakeProfile) + @Nonnull + public static EntityPlayer getThrowerPlayer(@Nullable EntityThrowable entity, @Nonnull GameProfile modFakeProfile) { - return getLivingPlayer(entity.getThrower(), modFakeProfile); + return getLivingPlayer(entity == null ? null : entity.getThrower(), modFakeProfile); } - public static final EntityLivingBase getThrower(EntityThrowable entity, FakePlayer modFake) + @Nonnull + public static EntityLivingBase getThrower(@Nullable EntityThrowable entity, @Nonnull FakePlayer modFake) { + if (entity == null) + return getFake(getEntityWorld(), modFake); EntityLivingBase thrower = entity.getThrower(); - return thrower != null ? thrower : getFake(entity == null ? null : entity.worldObj, modFake); + return thrower == null ? getFake(entity.worldObj, modFake) : thrower; } - public static final EntityLivingBase getThrower(EntityThrowable entity, GameProfile modFakeProfile) + @Nonnull + public static EntityLivingBase getThrower(@Nullable EntityThrowable entity, @Nonnull GameProfile modFakeProfile) { + if (entity == null) + return getFake(getEntityWorld(), modFakeProfile); EntityLivingBase thrower = entity.getThrower(); - return thrower != null ? thrower : getFake(entity == null ? null : entity.worldObj, modFakeProfile); + return thrower == null ? getFake(entity.worldObj, modFakeProfile) : thrower; } - private static final MinecraftServer getServer() + @Nonnull + private static MinecraftServer getServer() { return FMLCommonHandler.instance().getMinecraftServerInstance(); } - private static final World getEntityWorld() + @Nonnull + private static World getEntityWorld() { return getServer().getEntityWorld(); } diff --git a/src/main/java/com/gamerforea/eventhelper/util/InjectionUtils.java b/src/main/java/com/gamerforea/eventhelper/util/InjectionUtils.java new file mode 100644 index 0000000..9994bfb --- /dev/null +++ b/src/main/java/com/gamerforea/eventhelper/util/InjectionUtils.java @@ -0,0 +1,45 @@ +package com.gamerforea.eventhelper.util; + +import com.google.common.io.ByteStreams; +import org.bukkit.Bukkit; +import org.bukkit.plugin.Plugin; + +import java.io.InputStream; +import java.lang.reflect.Method; + +public final class InjectionUtils +{ + private static final Method defineClass; + + // Need Inj subclass + public static Class injectClass(String pluginName, Class clazz) + { + Plugin plugin = Bukkit.getPluginManager().getPlugin(pluginName); + if (plugin == null) + return null; + + try (InputStream in = clazz.getClassLoader().getResourceAsStream(clazz.getName().replace('.', '/') + "$Inj.class")) + { + byte[] bytes = ByteStreams.toByteArray(in); + return (Class) defineClass.invoke(plugin.getClass().getClassLoader(), null, bytes, 0, bytes.length); + } + catch (Throwable throwable) + { + throwable.printStackTrace(); + return null; + } + } + + static + { + try + { + defineClass = ClassLoader.class.getDeclaredMethod("defineClass", String.class, byte[].class, int.class, int.class); + defineClass.setAccessible(true); + } + catch (Throwable throwable) + { + throw new RuntimeException("Failed hooking ClassLoader.defineClass(String, byte[], int, int) method!", throwable); + } + } +} diff --git a/src/main/java/com/gamerforea/eventhelper/util/ItemInventoryValidator.java b/src/main/java/com/gamerforea/eventhelper/util/ItemInventoryValidator.java new file mode 100644 index 0000000..91bf2d2 --- /dev/null +++ b/src/main/java/com/gamerforea/eventhelper/util/ItemInventoryValidator.java @@ -0,0 +1,174 @@ +package com.gamerforea.eventhelper.util; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Slot; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import org.apache.commons.lang3.StringUtils; + +import java.util.Random; +import java.util.function.Function; +import java.util.function.Predicate; + +public final class ItemInventoryValidator +{ + public static final String NBT_KEY_ID = "UID"; + private static final Random RANDOM = new Random(); + + private final ItemStack stack; + private final String nbtIdKey; + private final Predicate itemValidator; + private final Function stackGetter; + + private boolean itemInHotbar = true; + private int slotIndex = -1; + private int slotNumber = -1; + + public ItemInventoryValidator(ItemStack stack) + { + this(stack, null, true); + } + + public ItemInventoryValidator(ItemStack stack, Predicate itemValidator) + { + this(stack, null, true, itemValidator); + } + + public ItemInventoryValidator(ItemStack stack, Function stackGetter) + { + this(stack, null, true, stackGetter); + } + + public ItemInventoryValidator(ItemStack stack, Predicate itemValidator, Function stackGetter) + { + this(stack, null, true, itemValidator, stackGetter); + } + + public ItemInventoryValidator(ItemStack stack, String nbtKeyId, boolean generateIdIfAbsent) + { + this(stack, nbtKeyId, generateIdIfAbsent, null, null); + } + + public ItemInventoryValidator(ItemStack stack, String nbtKeyId, boolean generateIdIfAbsent, Predicate itemValidator) + { + this(stack, nbtKeyId, generateIdIfAbsent, itemValidator, null); + } + + public ItemInventoryValidator(ItemStack stack, String nbtKeyId, boolean generateIdIfAbsent, Function stackGetter) + { + this(stack, nbtKeyId, generateIdIfAbsent, null, stackGetter); + } + + public ItemInventoryValidator(ItemStack stack, String nbtKeyId, boolean generateIdIfAbsent, Predicate itemValidator, Function stackGetter) + { + this.stack = stack; + this.nbtIdKey = nbtKeyId = StringUtils.defaultIfBlank(nbtKeyId, NBT_KEY_ID); + this.itemValidator = itemValidator; + this.stackGetter = stackGetter; + + if (generateIdIfAbsent && stack != null && (itemValidator == null || itemValidator.test(stack.getItem()))) + { + NBTTagCompound nbt = stack.getTagCompound(); + if (nbt == null) + { + nbt = new NBTTagCompound(); + stack.setTagCompound(nbt); + } + if (!nbt.hasKey(nbtKeyId)) + nbt.setInteger(nbtKeyId, RANDOM.nextInt()); + } + } + + public boolean isItemInHotbar() + { + return this.itemInHotbar; + } + + public void setItemInHotbar(boolean itemInHotbar) + { + this.itemInHotbar = itemInHotbar; + } + + public int getSlotIndex() + { + return this.slotIndex; + } + + public void setSlotIndex(int slotIndex) + { + this.slotIndex = slotIndex; + } + + public void setSlotIndex(int slotIndex, boolean itemInHotbar) + { + this.setSlotIndex(slotIndex); + this.setItemInHotbar(itemInHotbar); + } + + public int getSlotNumber() + { + return this.slotNumber; + } + + public void setSlotNumber(int slotNumber) + { + this.slotNumber = slotNumber; + } + + public boolean tryGetSlotNumberFromPlayerSlot(Slot slot) + { + if (this.slotIndex >= 0 && slot.inventory instanceof InventoryPlayer && slot.getSlotIndex() == this.slotIndex) + { + this.setSlotNumber(slot.slotNumber); + return true; + } + return false; + } + + public boolean canInteractWith(EntityPlayer player) + { + if (this.itemInHotbar && this.slotIndex >= 0 && this.slotIndex != player.inventory.currentItem) + return false; + if (this.stack != null) + { + ItemStack stackToCheck; + if (this.stackGetter == null) + { + if (this.slotIndex < 0) + return true; + stackToCheck = player.inventory.getStackInSlot(this.slotIndex); + } + else + stackToCheck = this.stackGetter.apply(player); + return stackToCheck != null && (this.itemValidator == null || this.itemValidator.test(stackToCheck.getItem())) && this.isSameItemInventory(this.stack, stackToCheck); + } + return true; + } + + public boolean canSlotClick(int slot, int button, int buttonType, EntityPlayer player) + { + if (this.slotNumber >= 0 && slot == this.slotNumber) + return false; + if (buttonType == 2 && this.itemInHotbar && this.slotIndex >= 0 && button == this.slotIndex) + return false; + return this.canInteractWith(player); + } + + private boolean isSameItemInventory(ItemStack base, ItemStack comparison) + { + if (base == null || comparison == null) + return false; + + if (base.getItem() != comparison.getItem()) + return false; + + if (!base.hasTagCompound() || !comparison.hasTagCompound()) + return false; + + String baseUID = base.getTagCompound().getString(this.nbtIdKey); + String comparisonUID = comparison.getTagCompound().getString(this.nbtIdKey); + return baseUID != null && baseUID.equals(comparisonUID); + } +} diff --git a/src/main/java/com/gamerforea/eventhelper/util/PlayerCooldownManager.java b/src/main/java/com/gamerforea/eventhelper/util/PlayerCooldownManager.java new file mode 100644 index 0000000..543a006 --- /dev/null +++ b/src/main/java/com/gamerforea/eventhelper/util/PlayerCooldownManager.java @@ -0,0 +1,35 @@ +package com.gamerforea.eventhelper.util; + +import net.minecraft.entity.player.EntityPlayer; + +import javax.annotation.Nonnull; +import java.util.UUID; +import java.util.concurrent.TimeUnit; + +public final class PlayerCooldownManager extends CooldownManager +{ + public PlayerCooldownManager(long cooldown, @Nonnull TimeUnit timeUnit) + { + super(cooldown, timeUnit); + } + + public PlayerCooldownManager(long cooldownInTicks) + { + super(cooldownInTicks); + } + + public boolean canAdd(@Nonnull EntityPlayer player) + { + return this.canAdd(player.getUniqueID()); + } + + public boolean add(@Nonnull EntityPlayer player) + { + return this.add(player.getUniqueID()); + } + + public long getCooldown(@Nonnull EntityPlayer player) + { + return this.getCooldown(player.getUniqueID()); + } +} diff --git a/src/main/java/com/gamerforea/eventhelper/util/ReflectionUtils.java b/src/main/java/com/gamerforea/eventhelper/util/ReflectionUtils.java new file mode 100644 index 0000000..c9e5a2a --- /dev/null +++ b/src/main/java/com/gamerforea/eventhelper/util/ReflectionUtils.java @@ -0,0 +1,11 @@ +package com.gamerforea.eventhelper.util; + +public final class ReflectionUtils extends SecurityManager +{ + private static final ReflectionUtils INSTANCE = new ReflectionUtils(); + + public static Class[] getCallingClasses() + { + return INSTANCE.getClassContext(); + } +} diff --git a/src/main/java/com/gamerforea/eventhelper/util/WorldCooldownManager.java b/src/main/java/com/gamerforea/eventhelper/util/WorldCooldownManager.java new file mode 100644 index 0000000..7f54dbf --- /dev/null +++ b/src/main/java/com/gamerforea/eventhelper/util/WorldCooldownManager.java @@ -0,0 +1,34 @@ +package com.gamerforea.eventhelper.util; + +import net.minecraft.world.World; + +import javax.annotation.Nonnull; +import java.util.concurrent.TimeUnit; + +public final class WorldCooldownManager extends CooldownManager +{ + public WorldCooldownManager(long cooldown, @Nonnull TimeUnit timeUnit) + { + super(cooldown, timeUnit); + } + + public WorldCooldownManager(long cooldownInTicks) + { + super(cooldownInTicks); + } + + public boolean canAdd(@Nonnull World world) + { + return this.canAdd(world.provider.dimensionId); + } + + public boolean add(@Nonnull World world) + { + return this.add(world.provider.dimensionId); + } + + public long getCooldown(@Nonnull World world) + { + return this.getCooldown(world.provider.dimensionId); + } +} diff --git a/src/main/java/com/gamerforea/eventhelper/wg/WGReflection.java b/src/main/java/com/gamerforea/eventhelper/wg/WGReflection.java deleted file mode 100644 index e7b84c7..0000000 --- a/src/main/java/com/gamerforea/eventhelper/wg/WGReflection.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.gamerforea.eventhelper.wg; - -import java.lang.reflect.Method; - -import org.bukkit.plugin.Plugin; - -import com.google.common.base.Preconditions; -import com.google.common.io.ByteStreams; - -public final class WGReflection -{ - private static Plugin wgPlugin; - private static ClassLoader wgClassLoader; - - public static final void setWG(Plugin plugin) - { - Preconditions.checkNotNull(plugin, "WorldGuard not installed!"); - wgPlugin = plugin; - wgClassLoader = plugin.getClass().getClassLoader(); - } - - public static final ClassLoader getWGClassLoader() - { - if (wgClassLoader == null) - throw new IllegalStateException("WorldGuard ClassLoader not found!"); - return wgClassLoader; - } - - public static final Plugin getWGPlugin() - { - if (wgPlugin == null) - throw new IllegalStateException("WorldGuard not found!"); - return wgPlugin; - } - - // Need Inj subclass - public static final Class injectIntoWG(Class clazz) throws Throwable - { - byte[] bytes = ByteStreams.toByteArray(clazz.getClassLoader().getResourceAsStream(clazz.getName().replace('.', '/') + "$Inj.class")); - Method m = ClassLoader.class.getDeclaredMethod("defineClass", String.class, byte[].class, int.class, int.class); - m.setAccessible(true); - return (Class) m.invoke(getWGClassLoader(), null, bytes, 0, bytes.length); - } -} diff --git a/src/main/java/com/gamerforea/eventhelper/wg/WGRegionChecker.java b/src/main/java/com/gamerforea/eventhelper/wg/WGRegionChecker.java deleted file mode 100644 index 456dd70..0000000 --- a/src/main/java/com/gamerforea/eventhelper/wg/WGRegionChecker.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.gamerforea.eventhelper.wg; - -import java.lang.reflect.Method; - -import org.bukkit.World; - -import com.sk89q.worldedit.Vector; -import com.sk89q.worldguard.bukkit.WorldGuardPlugin; -import com.sk89q.worldguard.protection.regions.ProtectedRegion; - -public final class WGRegionChecker -{ - private static final Method isInPrivate; - - public static final boolean isInPrivate(World world, int x, int y, int z) throws Throwable - { - return (Boolean) isInPrivate.invoke(null, world, x, y, z); - } - - static - { - try - { - Class clazz = WGReflection.injectIntoWG(WGRegionChecker.class); - isInPrivate = clazz.getDeclaredMethod("isInPrivateInj", World.class, int.class, int.class, int.class); - isInPrivate.setAccessible(true); - } - catch (Throwable throwable) - { - throw new RuntimeException("Failed injecting WGRegionChecker$Inj.isInPrivateInj() method!", throwable); - } - } - - public static final class Inj - { - public static final Boolean isInPrivateInj(World world, int x, int y, int z) - { - for (ProtectedRegion region : WorldGuardPlugin.inst().getRegionManager(world).getApplicableRegions(new Vector(x, y, z))) - if (!region.getId().equals(ProtectedRegion.GLOBAL_REGION)) - return true; - return false; - } - } -}