From 58a5c9909a938571c4b56ea7a3da52c628f9a005 Mon Sep 17 00:00:00 2001 From: NONPLAYT Date: Sun, 19 Mar 2023 18:25:16 +0300 Subject: [PATCH] modify indexes --- patches/server/0001-Divine-Branding.patch | 533 +++++++++++---- patches/server/0049-Fix-MC-93826.patch | 7 +- ...-Optimize-default-values-for-configs.patch | 644 +++++++++--------- 3 files changed, 734 insertions(+), 450 deletions(-) diff --git a/patches/server/0001-Divine-Branding.patch b/patches/server/0001-Divine-Branding.patch index 7ea72ff..438077b 100644 --- a/patches/server/0001-Divine-Branding.patch +++ b/patches/server/0001-Divine-Branding.patch @@ -261,134 +261,411 @@ index 80553face9c70c2a3d897681e7761df85b22d464..60ac52c6e12ee346133930394e9de8bf if (stream != null) { diff --git a/src/main/resources/logo.png b/src/main/resources/logo.png -index a7d785f60c884ee4ee487cc364402d66c3dc2ecc..f54753531b3bf2e8b5377f342465e727c7da98f2 +index a7d785f60c884ee4ee487cc364402d66c3dc2ecc..f54753531b3bf2e8b5377f342465e727c7da98f2 100644 GIT binary patch literal 6677 -zc${^4XH-*L({MtOjl$HX?vY?Pxs>zqKcv*5JLf>RHxMZ900@+j1OolyO(lE; -zfntq7pfv&rgeeArVB~x4UKTt;fTt_go(GQ@8yo5AAGbRW_yU+i7#k}a=VLZ5jxJg% -zsz!QxP#IZW4NX-AMQv48j5)>-Vd&`KXpS~V>gpLH4H0kzQcvH^#7tXD`zYq9zOKHd -zshNtr!U1)Sy}i8&#$VDr1>hKOcOTHP<(aepB1D(tcB)aL>IOVSD8|XnUT9fVUTU8q -z>WaAazx0SGcPx0k>QX5W(TTAKV$KA{1Yt-~K|BCL8KF=Ijg1bXOtHph7$Y+b%G|)n -z2xDaQ`MFi-{}Q+maVGfemH%7dW_Ic{PryG2a60Se27>d(!XQDg4Cr6$f_XOxtOyeP -z&lm)91}pu)u{T)nzdU>(5TES-=l}2J_+P&NKsE0lrXY|!+R4rudwF(!Zq&v;`P1hXF*QI=#nJQHPnsfyWU?#G)e?^HoD&Z%vO^%UjgFOIvwALGrz}Q -zyV(k6e(%Izd6Ngk-Jl-|9|t$iPP=TpEa+dC%3CXP$vXKj$n3kIUHG=kKr~8y?rr&E -zp>l}J#$tg$V-*I@-n<$VV~vczKNP)drY%6p;pVUpo(Nps?NFtZ{r-J5EcVpr*RGs~ -zPtwzj_eCz%ifyb!wJ}KLTH9cv+6d%9d)JN2gv@xoqMMZL(?}DJp`Q%LV;-lBMAA=VycvAZUa8(HW!QbG_59P70dlQZi}jI7s}uug4l$`QUbHA(G;%KZ -z%Us(C_C6OW_pZbsowC@T*>`CP<;$JPPz7>xb3bmrJlv^Ov@M!8ZZo(!BUJS(2k(?E -zi0?W=A262UTv~Jv_nUh$okv-W)BF<9+EiM3xmzo@eq*q}K6$+N_~A|!KQqqYX2ZbK -zg;G0Cv}MZTYqCOVWh3C>VN84UcTgo!WqB}ohLqIUsabRz&bBxBDXrzY$!V2oFh$PB -zu;c?NkJzzg4m!av2xi9AdaE0qe6Vs`-=vItvCPMx8~5I{M89}-rLO_xL5shkXmxcI -zAM^H{7v-kzRMh33iY^?|B6w@7(6`Cs?wY=X{qOPIFmNq#=f(H;GA0$j4fkQcmrfQX -zpZO%^cVwY&Rw^w6Nx*(TpMBP+s8}zj>sn{awUjKm$l4YR!BuT=OwT>;3P8aO -zu90sJ_CZ-(-Pa~@XYmOX30!JjG_&V8jBO=73OiL<;@mj<$gQUIQ}D0*m=}h=W>;99=?A;)BC+8@bmw0?mSp!T}=G2EQovtb`1L9FHPyXvFh$cQF@~GK~~&FzA-H< -zu|=;<_Z8@OM(T{;PVE=v0sn{Ls|v1{M7&z0;RZ(}3T~FmA-6w^dA~4Gci#-_`HElE -zUHzm^k%Cd*^Dh!`$lWjrZ)>Dj0ff5PQ&A^`shVg7UTUDi&d-bbg2) -z&DzacLv6sf&mIV(KhI<6Qgu~-zmoD5or){(*U6b+6voK--OHf&nXPP%xNm;VPcG=G -zl?-9Jrn#dNF4?TS7y=`gg<;H3v*X}QIXq#wYyGuauaBEc|RT -z#;zc_DEJm -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 +zD7IlonkOy3AIJvqJ+^v3B{iHk+09aQ#>kl{ +zmaISJQBQP8%5~(PD4NTU;H% +zN4-1eLAj|t8F9I*tOJKM3*6eu_ik{zyQXVr`+F=q1YAwrdHH=#%BbwO{yyyY;)#O9 +zGoK`Ujx6-fNTj483E1!FGtYVz6zXJkTq}>qH=7wK@z<-uMz+lx_|+jFzKR&rwU*h7 +z-SX~-k+=i6A(lrB*0r`9T8GUNIhfO&-z;_$ZArSIsvPp?xN$s|$dHe^`OM^F>B%4e +z+B+^26JapEmg)E{;0#))&Eg{uHb-Q`84A;T-g<0_D1txOzm@fAkH7Bi)a>I9KNL*w +z8u{ixFO8tyq?{r4KmQm +zSNiE?)c%L{xJxhP4&5oKhr-|T5c1%mU!3b24|v+PPTx7XiKE<3_og)W8hwd4bQ{h> +zw@BZ$Vn;F^AsxsUQYH4)WS37yHJ(jv^McSfJ!KYWI{j#p^1Z|(l4aXFHm%b)_D;p6 +zeK-F2{zQ2YFT{AfE%kmcleZA9 +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 +zKQC*8IZKJ85gXf`D@XmrZ}z0B4$-% +z#5u_aJlT~Rz#nDlIJ6PugYP20>(80*@KTjt2Lvz5mZ0M7$)CcUk@p_s$^h?o_rF$>!zEoV+I-e)}5CY2o9PEjay* +zV>Cj8ZChL}gx7qpb>?}aNx}GS69W2l#$e=$@mq@2rNQ3ZaqlTtH2F0b9YVEg_&cmp +z9vx$cf7u~q1PkZir56Xw60;6fM=X)hnQ`bvgB}QZiFos!aZPc!EHRvJhPYeZiG3_? +zjZbnKVSm#-9*)S}?Zz7Ix5mdiDb3_8pG#x{I61G8qoRfu1(?S9zqVOT5UPa0RFVoy +zxGZG6EN57Ym|95?5w#v3susU+2$|LdW!O*>lhl?!cqW?wb$~FN*e&rbyxv*?dCe5X +zA3X1$($YNfAX74Uu7Tv&Y0zVaUwg5SyFa7>J}6Pc<8{{Dz36a2cWZ@ziU|3oYtGnA +znJD06B5HU9wr-RKbRVXY{N@dMhVhN*V%+a3VjRb0wX;hVazYu=%el;UduXEp%w^7< +zb|+!8yUq+Ya!HO6tIB5eqD~poR2H$D+@pe77pwERgEIA +z0!|y>AQ6FFu;Cr?4;OGC36S8`-RHRs!ojv|9~nbh^^c7~^@OJH?SB5}xeQZzNnGTp +zU${G$vNFg^JlLjxT2*m!{P!2zieBFsmDoj7By5jYgbdVWx_kcpnE-OIb+w^e5#s*~ +DA-Nv< + +literal 14310 +zcmXY21yoy2uugDycPmm{N^yd_Q`}vP7YOd|PH`>8wLo!q*HRn`6f5rV?*HD)IX5{c +zxpy-=`|Zxo_svGBD$Agwkf4A-AaprdNp;|J21vifLD%hMrT$lZeEex|7Xe0mqFAZArC{!qp)zJmbab@utqA`6 +z61Z~|e!k$IbXNT?PvGuuzT7G514$8e!}lsR>%nURMm+~pde``@(!O=ISt0%B93;Ez +za-qRi4n0Q>zQ2#2^_y08QOl3jT*!Ir5@<8VrFx(6f9sP|H8ttjftN;wrX>jP4BcG1;MfU5x^L`zc09u!bDBt#+ll=7@ +zB;}A$BKgu}V?#qfHvm`~pt%wG2y{MOc%B!8I`p|pc +zO#?sq!Zd&j8UPmvY4RQnfo>!6{a}GFV!}g@qu<3Wu$07X(O`vikNW$~q!ngF23Ls2 +z53p8js<-B_Qd?xX6rtq43Mdz(jOg2QXx#Wng_9^1^^~KqFNq{Kvb@Ap9}bf&xFA-C +z5+#cQ`#v$A=kd0O=agATcleBaxXf_(dnqbQz|cL9R&&Ni1omTs+6~YApmk)MCghxj +z1}mq&IU>1nEiF=q=PI`%jQbyRd=hVI83Sm{E-4uTc#w;NNwEW)C(C`xvWzY_%`_MmO +zD&g-sEaE)}6(&g)y-N&rNy;5@+{M`}!{60Y8wMgF5;HmO#B~hG`W$;7xLG*yF((rq +zxP6I#r#o`B3FppK{v(q1!C+YLFSfySDcHyoW!}EfzuCB1B|C5+oP}dtocnwkcNy1EZ6#5JX4=ePl&cu~0tMnt&79+I4%PaK>VqFx;r!QdNmnxlEqdU-QR%Nmu{aWP +zJxwXvt5fFTCOVgB)Zq +z%H0U=9q7Y0lu&1kc4zYT3*lHA@XJfoK>3WFM&WWf2u6^+wCm8##D$x@Gkw+t^HoO( +z4pxDRqg;$5S=t^k22H5^V3V0Qfy%Ogl8I%LD$52=7)J>Ki9Ej1HyEi_ujELlz8$-+?cdD1Zxi02kW0 +zaY=caFq4~s^R?zxcc3Z0X|az}Aww<{P$>6rk+5Di5J7$kWor0{Q&>+DWSBH^Gf`SP +zT{4}IOFh-hB7xwBdewq%de)q6QvxorV(()2>@j8i!kj)=^hN +zl_N{$9xTHHA;V&Zx#tX&1pOO;v^NiOP#_UK@J;;lp+OOhOOO2mlMdxM;Qv-mWG+^vzox|8t`w| +z=gPlM3)y6G*hfV1WwuMe>bO-vP9g`h5BqgO9x{ROBD;aPl>XDmvt(3PUxt|4RFRpK +z5OEtRz{(Oa_W_!Z4XHf#h;Z-~71XM7wlF*L!-#h_Uy2tGuy-rAZ)4{qE~feNkp}qf +zgvBtLkFPI~I7%C=OHZfPZz$j>L9)rb;l +z@J^dxncy52;wmHg=wC3|Xn6jPYCR7xc}~D0wNjoYxmoRh_zh=6@8coM1UQIa_z*1)cZPw4v40qoZQp-uy#DLv=oP +zX9b3vzFA2r8}|_AO8W1(OMG__0{1AUD&Z%&7-(>s+Z-X6Sv}G5QguIbZ3mYa--?09 +z;wNw?n=yAag4%m#w$$-YZ{(ZJUcwHfzu&!gykNjG)e}!=q8xy2_KS=ULsQwv45NK! +zVqqD8#S{vRjg4(Q6HM_F&tihNIQns<%DVjE$cv33ET>Dvc^#{z&#u&&9RgXO?ZLuebczKv#;! +zCS|2lIa37Bp#3RWj0$V3=I2>o40{(J^LD|EUH?!2;Z&HS*>7*V%{v1)wHaUP85mcX +z%q!K}Ntr*IzJD%++btJ;VQO*OjJL1t{GvR3cy@OC-~pe^bV?N`z0QKCr?Tom)4u%A +z3mi2k&eIgh0^rGI#Di+&3lrsy-r+}zwBkDQtswtPbkj!Y^l`{f!# +zLseC0M;DiifDa!({-G4{W$Wxsgv*(NX%HMyXhArVwY105dUHg?+=@6Sy8n@slS76x +zU7%PI8ToKm#qahfR;7kn#|t@9y(0EkooWBDqA1(mpO)>BBz))giBi8xVHlj#dR9U8 +zRo%`iBdlj8%_tRn^qa%T>{nsLLwTNld&WHLyfbPzv2W62m6q=Nsdxnk +z#{P==5!Lidx3bcr_qlUl%BX!xjywA?jv>FU^mJDa0zQT9Kw8RRHq>7B +zb~DXw0(oqBrOQunsm2ghWV2i1VmN{F?)U;0%*j{FEUxazAJ3)KSWomuhklkDi?5h*MTLDS5ma_Nk1sNZYzZ#$maGRyiXBzjG@(G__fuyBl(^A>s&{jF+J%5| +zv#7nD1XK806#_U_4#N2ANAxznk%;U$Y$z#{K*O07mADqx6LjACqwP<`HFV#C6Q*wx +z8JVP_qGF}V7B?^8)f*2F5AON7v$L~Kr?2}oPai_kG!_6MI(U`LS~+Mo*CSyrw>pPE +zllqxy +z^&rnDn4XA@AUY7~`1lwTCrm8KlVRqX&!kZFH&;i9@=R}UDxNSh*)Iq2U+#9}@ag1t +z%KUOEw0DXT)>hQoLTprY^z=BC=8NAyi3pZWT7A`?;rI<3%65Nqb93%pJ=!+dNtB>W +z7f3O-e-S7ZBgBntcyt~wOG_p$AU2zlGH8=%TEm+z8kLYReEMTkIo#2YiA=iKWrH); +zS%uT3xAyyY=!U)0Evpgx{{38MPR2nN<3913M<0O#YCO=TSt^4IzV3^D%2zC>t_OO} +z_h~AVOk+IIi$Ov;-g93a4j@WaekCC#HFm2_Vu9s)8-GbYtr{LgrxnSIN^PW9)!jYX +z?%-yssA~&R3F)C)wj5i|@!atCx?Qy%P1QEGSZm;iUNai`-F(8a%y+_a>CMzx$XEKx +z>sW|JbN36s+Y{4SZsrspH%UH=+Q6J`c&_-JLGL&5|$XUA1vFOC+rgoc&xT{dFT&pMaEBKwyD;plX0>2nla;jTlQ{!fn2M=Ak*=K*g% +zBm0-$ly1~}CT-5gv){jex9)7&b8u!a+vYHXU>=NF2>g3+_rN{(LUMGwRWKk49sS$v +zazyX8zZ1hwZ|U*5{fK@i@hRl*U%Q2cg+!iIfb)6W%S5F{91qinEZE%~4Gl>rBw9S< +zMP5$exl1jESyt}d~jo?hf`z^32b!}UGtJH+w9(0UrI#~Ei*ii&6z(AVE?(}k_A +zE9Z@mj7HF-ch46I0ipe3gapRj{=zk_J1E^b_JwdrhKi4ytBuwP)m>e$@9v`A{1N{h +zwUN6H=_W+h(a?rGaQ%%LP5C4)XiZ*`1uUwgqWvk`LyDD!Ps#Q5oI($KDJ%8n5kBi- +zghsLx`~mf<>WT)6-cJBbp|htk1NfkZ@e#B4@l?UH7!MDMpO?1NETGk_Eg{z!N3!D< +zWg8gtgS%b(0Bg7dw9u35xq)1vNdnM8iu7Eje*u?#sZ~%^q*HDaZC?5z4ZzhSA%ndS +z4&$M&7(|(9nWY%QShCnuN0 +z`n9&UeypypUgx;R+x;XM#8uDM{p`9~j<49)^dotHJVO*A@HL&g7F={FP#trj@{dzm +zeQUiqRWJ&pkKkA1O-|vOf8O1UQ$$0lIExffio|}F@ROV#MXcPH$ +z?$$kxAF@B#KT}u;R@SVyIO>1sw1!i?C(_013w9@?8$bKaLQi34zC$g*^}F&(%NEO6 +zQzD-^6}HQMnGJ{h$J*)HjSxjblWegsW&rLC8Ov_r_20jLjUS$Ptnm|p9fK%r0j+4; +z57^mjL&lISh8>DC;eB$B69$h4XxE3qU4T&zUpDeV@4g>or%D-x@qhie>6mqD959ck74(h?S0BA0}YQ18d?hr6}%}y{%ZNJ^-(?=Op~; +z#2-UNh)jH9>RXmvPJ(Y!8(uhyW|sFpyvv)AaNeljHj^Fx+RC +z!`@c->W1C^FUKHmG2w_atkdsMnzY+l!CV8havQ8-Gu)<8t{#V*2Pwp4h?ayXsi5Z> +zo!guta>TA~iv#iJpQkN>#)QF%As@2WgU&V_Y^qm#E*O}M_ijJfFWq}ts)-l4>D)kCqJJ@MG2$69ph0jzwI8ry1u8D@CyinC$oT?7S*Z}Eg +zYs}PWLqr4u@)w}#!{cMx;KxO6W2H6~3k$laJjAt+C{0mmCRnfs=OJYbh}HMh&e`#> +zj;jrpjqKCh41OK{FOS`@_sPP$iCm46G^EMNk8(l-1f>!gEV+4vMVRZ#8infUenP+k +zL^tBOHF^=)k&U-Tw{gfijqQ&^ +z-RHHII5yp}2|o8pTsf6x7$teW9Em!~iy2DN?D@|U)g%I6VG%JBO$|~;c~1Q^3|x`1 +z6HRbq1#~Ke)wWpALcc&@P;m+*sGavR0{aOx3=IwUE3YPWAwV45pzD$~02inxi7(6X +z$zk683M=_r#M*+6fQ)&FK0y|lm7JLwS)K=t&ZJk!U_-y%_o@fhr{s37MUEQOF*M)3 +zB$;4>Zx;Xk*(hwFjb>1iJ1f*D#nyWL{=>{2|9*^vCNN!%bF8Oe<`xz#s;jFz?;I}4M3lL;!fy_;J-E96Of+;sG%K=fZdR)99pJ}fM( +zq%(s8UrsEL{NrdF`!#RY+VjFyPpE_vtqPMM!MQ+QnE)+_g9Z^{4^;k&Sa^=w*yuxB_*Z!U%!3{_9Qr)Jfz4IeS#io4oj_Kqhq`HCUub|Ke!v$1-$v=kc+O#rlCej?%dhY +zxxKUTsFPG1nfoFp3%7@gh9S?vM0N27#*fpJyaX;Vy{!pt*}!9_mX9uC#J5RyjknW2Dm3dCvZYU +zSW?0kvI9!o2un}*%`AYhr^CQT1aZF=-Nt^atn@Kt%b2!hT(pK!|MclbBv3-<+6{>_ +z8toMfWc9rpOk(8|KW>Z-k>Fr(xc_+q9ocf`8!_n}XYUrW?Ax|*_|=5m*4F0V+46wJ +z1IGS^Z5t=0Zj86J2MfJc +zUq#WKCfhoB<;P2&&`*_G4^_0uqDR20m!>T8ay_rxSzA&9_v5##g6tzXTkx+KRfz32 +z9vvpp?+YxHTxDthCBu7)&Q052y4s9*$M4_2w-OdPyK?F-EBoUuSsIk@@(!gA*A_!0 +z2eu1y;-Q$Ut(M>8FCOtw?vZR-%*ly^x)<95vK@P0tJoZws@+M*NGhg_NU`!}DZnWBHQz%*@6))$BWN;EM0xAF+B4Mph#S??J?K+&viwPmes*n^HGDL9iBf +zCk|mDu46wwughN!isu&G((DO>Ws`(VLY?^#w=RONxUgFGby--Y=5NJ|(>qXOS`;lZhmXyMEyBdVM@jJh71E-})~`?t4w8^Kwy) +z<+KACjs!F^TS-;FT24_iWF+=l(nR}j7U#;Vd +z)IT3=b&}A}1PUKFa6DKfgHkJci!~7u?a%k9h7Rri^{y`|;;xNDoQbV}+oJ=LdApL}|77o@C= +z;~aed)XpbrMtt1x3gHPWxbliQH4nKBCew{9 +z*-_PTyn~`1VrwKcc4ZrhI^!MsZ{D0O0%O2!SHHi^Dfyr9*x*DGFKwc()b;q6nM*M7 +zvA$x_?$BMJJHN5HIn9Ps{_7-sn79~BZegaa5V;s(BA<5BnU?^AeJHXtd)cIj_UCjA +zW|N@MjV~vrJz{sE0Dzv}tXxUDQAXm)1(kX7C_ZVFX%!TlZ850i(P1A0BxaJu)#LcH +zoxMFRzxoxw$bM=B6gpuMD#vcsa^00?%=D+T9-dQqV*=zD|)W!3BLun2&^n)~$ +z2_^{i9~sGXOAsF_S=k&4mWJ@`mD+G%MiPTlhuomboeFNwHb(< +zVpVR!mwf;JmpO3JL|B%L-!;@7TG}+`HZA;-{VIlQGY|T=f|!9!S=!c?sq5|KeEQ*~ +zm!1xeZcJPbSsfjU9e>K|=Ni<+YgrIG!|5@|Z>4bjx+`1j^O-{QK8XARf +zUG$nLRiTEtt;)9F30rvw>nj)@vCF{$d7>o2n>}~Y2^^C79l@s`uXRZOcuy>^%2@t- +zRGv={pKlDXFUgvG_^DWGR==il1rIzn{$p4r(FVOQxZi!_*Ksfl2hR{Aj>01RbFAM= +zpr0wzMwlOwlkt4|JLK)$>VL+{4nv>^`yMa)T;(9f*B(9;{T+)_=M4dN>M&&hS-#(G +z)-sW(WxVkHR)`x#g)25Lu7qnN;~Q-bvKDZ=;^fyLy@okDpvt&ZU{!U)WVtmnp +zAN-CzM{jPFWep9NAKDDq@=kynkGi_GQ@Z2y_Wn)xc_q3-&+9`qdGy_{PF-2c^$)%x +zd0sonEJhtG*2|P*Q-f_3`Akk96HzBz2 +z!5tnJaCcA2hGQrSw*{F)epvfYX?7toP=O0dN +zizY2w`>O@4Vqff!dBhQ^><#TjMP}loM9ProiD-Og@$V=*zQ|Avg0D!+96lr^u(1fl +z3J52PHoJYDdvdiIW?q?JIC*r?88VruLx#bp0lys39v$(c6uC*j}2IFFh +zViOX|K+DH18cd9%Rgjs$*sXuoW<>p^Fv-7CV|zpgTUnj812pyyX-nhA4TZ^UyYY9; +z?}BOarTT1q;0xSTjV_DPWE11?Y2+wSA*ybzebDoy8JwhznKa6SvYxE$WswX7Z6pG$ +zsA2GgHFFL3^zA@XTYK{a+6$Q8di%@1-|q9U15y+~R-L7Kwx8*xr(FP{g*JDPa`e((jSl#~?Rx=3ne(nLfeP9k0grubJK +zU4euzZqt~$Cl%k^{-!e6YQZi|D3#+MUS}VsYZ)0S>y@)kyqRI?A_esvAu-{`1Uq@! +zC+b`wnMK&<_mitl+k@e*$*{&S>vayX*>D>Q5sw2FZ?l(8ff%(8lo<^mBMrwQXOXe+ +z*7sZdWzBTIwZO$y^F)qZL1XbOMY<@M_a56y{({Vg@YN<_y}toq41V%~w=+4ZQvg)X +zVw~l$z-sId^nKU%dlk7W(mG}eS&KV2BdYqNJnX-p=YrG&&`_m0fzA_|iKD${5?oL* +zdS$heR@%Q+(3!!T&k;tIN|v2j=UI))rgkvyC7MTTrKP3g>Fma@_R0`GE5(tL%sS$7 +zG41ag%(Y(xZ5cjlk=R~(3XC+$25r*Fo=G5OhGgR}i!nDoG?^sult?Eo*x$x6CH-3L@LtZ0dfq!Bbbw-S}RwlN%lpH8c=4l2qH +z1wRszHSPh~=esnWvXD8B{D4<}?}6cA+@Ob1760Is6`g!zl@WL(L&={LA}SxAt0>Tw +z%b7i^&yNKM;(vGcNwuxAK{g|S3Y1&pH_6U1G +z3M4zx5FU=O;=l_?VzQ-~bx~xN1axPgYI0am3d25BjYmfSTX7Q}==Vcryl6@Se0(Jv +zxKW_o%H`jdnC7QXlkFbCsACHN1Dx=0gf<~@PW-&<=`1Hd)@#ypH7%OpalDj-P=ts+3^~yWs~TV}BD20HjkW6zc1L +z0#HzMkn3JV%7N-18_@tgE82*YnmEzxirriDSx#_|<|q1vL{k}7>^mRzO(ueTSN2~H +zG}kxp)Qn!&)><3|e>62+GXSpQKcemfqU!&BHZ5Ca;DT<63bBM&uV1BDS?MM$M;x8w>gShAPMxJM^BbMZn}Unm{OC9^4x3%% +zlmX8!km-u$N4fQXQ>jRe`7)3+RFGjhz +z18zf(Fo2<>YV^7LJO^UTZ2Ivd#mpN}o?7pBV&q=f%ID>haV7M8R3jsF*@a%iwIy>| +zsZ!-y{!%&j7`B?W8TcF4NH-RHH1xZ{;7BsA<#APu!;cND)te)FhoXz$BIU}2&^7WP +zT}TX>ZO58$VNPuh6JV7~s(W$vAj`^%AtUamex3YdVl3~4+pqk?G)qUibNMrj0*M25 +zY>5Ac|Dnv6xBQmV#$3JA?&HTN(lYl~J}@$l{*TY^kORrCB)3dDO}^^v!dcLf^CHty +zanjllIQeSLmpuG+h&ae`r*v!C*0A&W^a&q>93?BAXzG7n +z2*3TGPIcN`-_hY9&oaiv#fiv~>}7`T`4=pInEqWX*3e8+yPm^9h-tr&ts55$l+388 +zW)~F}2JH!}VLbQ>?6~H@&k`MnSsTeVj0TRVP4jGbP*!!CwM6`Z11c)yI2w$+R0zxo +zT|obYS1&&`{>>Z9(jnVU&=yI*%PGe*f78ie*_9oap?sd7fx7{r^WT>=XHF +zl`f{=UJEn2?tRw`Fem?eRE6#*nOes(ebRcmaK3~a3{a3EyE1zXSF0p7I_iDJ&%;3V +zU;AS}e?*mH#Yh2P9E3QBigIqu2iXf=@t)2+I~f*_E^JtEP1@IR{CBfTj%T}E3e#n% +zUa{@vU?D$l4DEANwkkK@ruP4ta)E*e^KLGg%$PizyPmHvKNMWtuJQ6sPXY=(1m#>W +z7V?9E!Vj}>a|KfQx5ESpH+q6$@gAp-P#~lbz`aj1_?xinN>3o8b2-Z3w>UZ3QZ}W0 +zWg-!>p>AADDcU^4;0*L4UFgB0QLlXd^y1E&4>txV!T|!`RwjZGl`;-4ZgFf>luHIy +zZ8d8Rh{I3r!g-ht6mAZxMB6VxRqnA0UY`h|mJZy2 +z17BazT$jMKFL3J6Ue_HL1^)4s%$Jj~Qx~1HG#tS@kwL(KP_ZI3dWz0SH(sqj#-*TNGsIWqPj>cj?!GyWvfdEiNOu4$>MIqL=F&Cc0{g*~L5 +zA1wt)=_zMFUkCT5$l!G{1-Y9QtGQ#qm5E(3fYPms_EP*sSVI)bfXN|uNO`BqVuCvd +zv)z8IGRgtM1<_trndVhQ^xA)wn~*W~#d*X@E=W)jcQWI8+?kdzHe;DZ`%+JE%gE}m +z6H=FO8rJxM{N90S=Gi!Mel)TyanxPa;E}C?hJl@e9UWad->;S|v;axgFjrY$z3(rV{MiJ}3M)t;Q?P5wZy0e3G{dcDO7n}3slDXLMrB$;#*W@Qv)D$=?Xs$F(8eTcyGIQ~IWgD%Gn&E>F9y#o>cR-7spE;Rur<_E~Pu)e0I +z#&y1|@8D~8c55<|KMf;&x;hg!A%VOZ38_+uk`jH4#=b9M&xcpxV-7cMN{jXVRnKSe +zlKJJ%=VBV{$DNeI1QkiA;DfdVT?$;O#22z6v6bTK9)fjrfIh!Hq__l~KzuNqT{&kA +zKs@YV6^1ZLGjTgR%(=NHS-DvWnnP)NM#qbHINqmQdCE5??co$3nuikqgm=s7*#Kd*+j_weKrZjMeLeHEoiJm>zuDRU` +zh~ggr^knneWU!Nn}AQt=0Id6Hk; +z4bJqse|V$H`stT?NS0yreYvaZ9YF!fw+N}{3#yXRU!C7?exl35BDC%+!jDMGT^DN# +zN9FGd#5t#;$h}5UgQ?q-Gr15>C6=nLUszle9<+_!!oi_m@_L^-R>_Qty7_g|C%m|5 +z-7^5X5V_ARi?h9_LW%2vByD3X_IvUktqBv{%SYXO1&;e&O#Ll_cfC`Wv1u+l_#RI< +zQ5Kly0;P`%TXaQN(heOg~>V&L{d+ZDA%eq-UKo#1)$rkjSm=nzAE2r +z5--RyKhxfXoGVU3^ab{5XGlyL1+26foG)4HZvN +zG@&I3h0fnK5lIjcrg*XxPy1(gK3_TN`&VYnxP;C|j$~0rT$0f|*#=OzM^NbE-1T5D +z%Csnt)n!sx3N#b(8G&+G3W~Q_B#StA6jZZ=p#wuu`DrAMXm{T@#S;ku4Dme@{Njmk +zCtrh3z6O>o)~o{&Htx+6kn*)$NNBH-biu^aYtWUq +z(G>4rCEKr#tO>!x8A@%W@6g)Xs%2Hq!y#Mbb@9R2@GDWi&!{jhZvzQ1D9nMuPoOS+ +z+cj{9nx5X{jJOIavbFf)Kz5Jnbe5Bu#(XE-z$j&iaP%c9W59OoT0~|N#D*(N2kz={ +zs(|)nH!_+_g1)#ZH2xk>ZTG#6WN#qa3BxZM{NWxq`*#$H255k6Ky?hw*hSA6`c_fl +zT@Ua%E5Ez3;~`kQFmrC#$Nlvc_Uy3#yzhd-6UYuuIwgIBZZC-`dwOBJbfurL(FfhH +z{YkjE+9OrOveY`{t{sGw&51YO1@{iO4)Ki=!Z5#q=m_Hi)_j0`>?;t2j);vv%BUif +z;wpTZdLQLsGvZ()DCdxYudn^Pt;BZ}Rin$4F8h{R`HxT2z`uc&aMXIQOvwgA5%{&) +zFW52MiN!$!EXgx}Px~e1!EMp;#&kY65oDho95j~!qD%YJr`+aK4jCJ4UJ^;q>w@Lf +zvDfg|M`S^@DGxu+7aR3Cx#;%?advj&1~L-m +zJqCP9&TW3migV*`Z$#)Qa>3>Jf)g9D6Ki28P@iX(uso)hic8Dp1F< +zeF;(n8Po8A*~^T{De(J)Z2nqLl@Vv3yoSlGwq0aeOg4ymI(KIkTeur-=J-yp9z?qe)it6gq-wl@I +z0D-_I{|T<5kwD9uH3yf1GWXp5*8eOgJf*q0IRoK|+r{}Fug&0WpNDKMTC@(Xc)9K8 +zy`lByMn!1fnY)1KYP(0Je1)c~WilUuh<&Q8^OE?L9Q^xK*Y@M$`6D6TDCZ^@l8{|} +zxmmNw)mng$hYBii+&ZqedxWT0dnV#LG4zC%+kzcK+-??vEHT>Q-T8zu|s_1IbA#OV)^+1pg1OmmZn` diff --git a/patches/server/0049-Fix-MC-93826.patch b/patches/server/0049-Fix-MC-93826.patch index ec72fe2..a57861c 100644 --- a/patches/server/0049-Fix-MC-93826.patch +++ b/patches/server/0049-Fix-MC-93826.patch @@ -5,9 +5,10 @@ Subject: [PATCH] Fix MC-93826 diff --git a/src/main/java/net/minecraft/world/entity/animal/Animal.java b/src/main/java/net/minecraft/world/entity/animal/Animal.java ---- a/src/main/java/net/minecraft/world/entity/animal/Animal.java (revision 9aebf26656fd4bb0353b2943490fad61763600c4) -+++ b/src/main/java/net/minecraft/world/entity/animal/Animal.java (date 1678823887900) -@@ -69,7 +69,11 @@ +index 3c4d142e982c34a23bdb5da1f51c8dcacc0532c1..9e32d6a089df23ff6edce81df131aeb21218bac5 100644 +--- a/src/main/java/net/minecraft/world/entity/animal/Animal.java ++++ b/src/main/java/net/minecraft/world/entity/animal/Animal.java +@@ -69,7 +69,11 @@ public abstract class Animal extends AgeableMob { double d1 = this.random.nextGaussian() * 0.02D; double d2 = this.random.nextGaussian() * 0.02D; diff --git a/patches/server/0050-Optimize-default-values-for-configs.patch b/patches/server/0050-Optimize-default-values-for-configs.patch index e83273f..1c71b92 100644 --- a/patches/server/0050-Optimize-default-values-for-configs.patch +++ b/patches/server/0050-Optimize-default-values-for-configs.patch @@ -1,13 +1,331 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: NONPLAYT <76615486+NONPLAYT@users.noreply.github.com> -Date: Tue, 15 Mar 2023 16:20:48 +0300 +Date: Wed, 15 Mar 2023 16:20:48 +0300 Subject: [PATCH] Optimize default values for configs +diff --git a/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java b/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java +index e0076044d0a29e33ee297fe6180a041436075297..cf3aecfc34ab4d1f2ddf43bdad4379ec07c89539 100644 +--- a/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java ++++ b/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java +@@ -219,7 +219,7 @@ public class PufferfishConfig { + public static int maxProjectileLoadsPerProjectile; + private static void projectileLoading() { + maxProjectileLoadsPerTick = getInt("projectile.max-loads-per-tick", 10, "Controls how many chunks are allowed", "to be sync loaded by projectiles in a tick."); +- maxProjectileLoadsPerProjectile = getInt("projectile.max-loads-per-projectile", 10, "Controls how many chunks a projectile", "can load in its lifetime before it gets", "automatically removed."); ++ maxProjectileLoadsPerProjectile = getInt("projectile.max-loads-per-projectile", 8, "Controls how many chunks a projectile", "can load in its lifetime before it gets", "automatically removed."); // DivineMC - optimize default values for configs + + setComment("projectile", "Optimizes projectile settings"); + } +diff --git a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java +index 01bdf134fc21220ab7ecca51f2dcd51c0b466bba..83373befc7357094a13c74bf87ac148017cfd45f 100644 +--- a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java ++++ b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java +@@ -55,7 +55,7 @@ public class GlobalConfiguration extends ConfigurationPart { + public boolean enabled = true; + public boolean reallyEnabled = false; + public boolean verbose = true; +- public String url = "https://timings.aikar.co/"; ++ public String url = "https://timin.gs/"; // DivineMC - optimize default values for configs + public boolean serverNamePrivacy = false; + public List hiddenConfigEntries = List.of( + "database", +@@ -291,9 +291,9 @@ public class GlobalConfiguration extends ConfigurationPart { + public boolean fixEntityPositionDesync = true; + public boolean loadPermissionsYmlBeforePlugins = true; + @Constraints.Min(4) +- public int regionFileCacheSize = 256; ++ public int regionFileCacheSize = 512; // DivineMC - optimize default values for configs + @Comment("See https://luckformula.emc.gs") +- public boolean useAlternativeLuckFormula = false; ++ public boolean useAlternativeLuckFormula = true; // DivineMC - optimize default values for configs + public boolean lagCompensateBlockBreaking = true; + public boolean useDimensionTypeForCustomSpawners = false; + public boolean strictAdvancementDimensionCheck = false; +diff --git a/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java b/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java +index 4532f3a0d74feae0a1249b53e1bfbc18a8808b32..dc7a555c8e2ccdf1b0451759efc33e915a416abe 100644 +--- a/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java ++++ b/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java +@@ -115,9 +115,9 @@ public class WorldConfiguration extends ConfigurationPart { + + public ArmorStands armorStands; + +- public class ArmorStands extends ConfigurationPart { +- public boolean doCollisionEntityLookups = true; +- public boolean tick = true; ++ public class ArmorStands extends ConfigurationPart { // DivineMC - optimize default values for configs ++ public boolean doCollisionEntityLookups = false; ++ public boolean tick = false; + } + + public Spawning spawning; +@@ -201,8 +201,8 @@ public class WorldConfiguration extends ConfigurationPart { + public Behavior behavior; + + public class Behavior extends ConfigurationPart { +- public boolean disableChestCatDetection = false; +- public boolean spawnerNerfedMobsShouldJump = false; ++ public boolean disableChestCatDetection = true; // DivineMC - optimize default values for configs ++ public boolean spawnerNerfedMobsShouldJump = true; // DivineMC - optimize default values for configs + public int experienceMergeMaxValue = -1; + public boolean shouldRemoveDragon = false; + public boolean zombiesTargetTurtleEggs = true; +@@ -249,7 +249,7 @@ public class WorldConfiguration extends ConfigurationPart { + public int playerInsomniaStartTicks = 72000; + public int phantomsSpawnAttemptMinSeconds = 60; + public int phantomsSpawnAttemptMaxSeconds = 119; +- public boolean parrotsAreUnaffectedByPlayerMovement = false; ++ public boolean parrotsAreUnaffectedByPlayerMovement = true; // DivineMC - optimize default values for configs + public double zombieVillagerInfectionChance = -1.0; + public MobsCanAlwaysPickUpLoot mobsCanAlwaysPickUpLoot; + +@@ -259,7 +259,7 @@ public class WorldConfiguration extends ConfigurationPart { + } + + public boolean disablePlayerCrits = false; +- public boolean nerfPigmenFromNetherPortals = false; ++ public boolean nerfPigmenFromNetherPortals = true; // DivineMC - optimize default values for configs + public PillagerPatrols pillagerPatrols; + + public class PillagerPatrols extends ConfigurationPart { +@@ -317,7 +317,7 @@ public class WorldConfiguration extends ConfigurationPart { + public class Environment extends ConfigurationPart { + public boolean disableThunder = false; + public boolean disableIceAndSnow = false; +- public boolean optimizeExplosions = false; ++ public boolean optimizeExplosions = true; // DivineMC - optimize default values for configs + public boolean disableExplosionKnockback = false; + public boolean generateFlatBedrock = false; + public FrostedIce frostedIce; +@@ -363,7 +363,7 @@ public class WorldConfiguration extends ConfigurationPart { + + public class Maps extends ConfigurationPart { + public int itemFrameCursorLimit = 128; +- public int itemFrameCursorUpdateInterval = 10; ++ public int itemFrameCursorUpdateInterval = 20; // DivineMC - optimize default values for configs + } + + public Fixes fixes; +@@ -389,7 +389,7 @@ public class WorldConfiguration extends ConfigurationPart { + public class Hopper extends ConfigurationPart { + public boolean cooldownWhenFull = true; + public boolean disableMoveEvent = false; +- public boolean ignoreOccludingBlocks = false; ++ public boolean ignoreOccludingBlocks = true; // DivineMC - optimize default values for configs + } + + public Collisions collisions; +@@ -397,9 +397,9 @@ public class WorldConfiguration extends ConfigurationPart { + public class Collisions extends ConfigurationPart { + public boolean onlyPlayersCollide = false; + public boolean allowVehicleCollisions = true; +- public boolean fixClimbingBypassingCrammingRule = false; ++ public boolean fixClimbingBypassingCrammingRule = true; // DivineMC - optimize default values for configs + @RequiresSpigotInitialization(MaxEntityCollisionsInitializer.class) +- public int maxEntityCollisions = 8; ++ public int maxEntityCollisions = 2; // DivineMC - optimize default values for configs + public boolean allowPlayerCrammingDamage = false; + } + +@@ -407,18 +407,31 @@ public class WorldConfiguration extends ConfigurationPart { + + public class Chunks extends ConfigurationPart { + public AutosavePeriod autoSaveInterval = AutosavePeriod.def(); +- public int maxAutoSaveChunksPerTick = 24; ++ public int maxAutoSaveChunksPerTick = 12; // DivineMC - optimize default values for configs + public int fixedChunkInhabitedTime = -1; +- public boolean preventMovingIntoUnloadedChunks = false; +- public Duration delayChunkUnloadsBy = Duration.of("10s"); ++ public boolean preventMovingIntoUnloadedChunks = true; // DivineMC - optimize default values for configs ++ public Duration delayChunkUnloadsBy = Duration.of("5s"); // DivineMC - optimize default values for configs + public Reference2IntMap> entityPerChunkSaveLimit = Util.make(new Reference2IntOpenHashMap<>(BuiltInRegistries.ENTITY_TYPE.size()), map -> { +- map.defaultReturnValue(-1); +- map.put(EntityType.EXPERIENCE_ORB, -1); +- map.put(EntityType.SNOWBALL, -1); +- map.put(EntityType.ENDER_PEARL, -1); +- map.put(EntityType.ARROW, -1); +- map.put(EntityType.FIREBALL, -1); +- map.put(EntityType.SMALL_FIREBALL, -1); ++ // DivineMC start - optimize default values for configs ++ map.put(EntityType.EXPERIENCE_ORB, 16); ++ map.put(EntityType.SNOWBALL, 8); ++ map.put(EntityType.ENDER_PEARL, 8); ++ map.put(EntityType.ARROW, 16); ++ map.put(EntityType.FIREBALL, 8); ++ map.put(EntityType.SMALL_FIREBALL, 8); ++ map.put(EntityType.DRAGON_FIREBALL, 3); ++ map.put(EntityType.EGG, 8); ++ map.put(EntityType.EYE_OF_ENDER, 8); ++ map.put(EntityType.FIREWORK_ROCKET, 8); ++ map.put(EntityType.POTION, 8); ++ map.put(EntityType.LLAMA_SPIT, 3); ++ map.put(EntityType.SHULKER_BULLET, 8); ++ map.put(EntityType.SPECTRAL_ARROW, 16); ++ map.put(EntityType.EXPERIENCE_BOTTLE, 3); ++ map.put(EntityType.TRIDENT, 16); ++ map.put(EntityType.WITHER_SKULL, 4); ++ map.put(EntityType.AREA_EFFECT_CLOUD, 8); ++ // DivineMC end + }); + } + +@@ -432,11 +445,22 @@ public class WorldConfiguration extends ConfigurationPart { + public TickRates tickRates; + + public class TickRates extends ConfigurationPart { +- public int grassSpread = 1; +- public int containerUpdate = 1; +- public int mobSpawner = 1; +- public Table, String, Integer> sensor = Util.make(HashBasedTable.create(), table -> table.put(EntityType.VILLAGER, "secondarypoisensor", 40)); +- public Table, String, Integer> behavior = Util.make(HashBasedTable.create(), table -> table.put(EntityType.VILLAGER, "validatenearbypoi", -1)); ++ // DivineMC start - optimize default values for configs ++ public int grassSpread = 4; ++ public int containerUpdate = 3; ++ public int mobSpawner = 2; ++ public Table, String, Integer> sensor = Util.make(HashBasedTable.create(), table -> { ++ table.put(EntityType.VILLAGER, "secondarypoisensor", 80); ++ table.put(EntityType.VILLAGER, "nearestbedsensor", 80); ++ table.put(EntityType.VILLAGER, "villagerbabiessensor", 40); ++ table.put(EntityType.VILLAGER, "playersensor", 40); ++ table.put(EntityType.VILLAGER, "nearestlivingentitysensor", 40); ++ }); ++ public Table, String, Integer> behavior = Util.make(HashBasedTable.create(), table -> { ++ table.put(EntityType.VILLAGER, "validatenearbypoi", 60); ++ table.put(EntityType.VILLAGER, "acquirepoi", 120); ++ }); ++ // DivineMC end + } + + @Setting(FeatureSeedsGeneration.FEATURE_SEEDS_KEY) +@@ -444,7 +468,7 @@ public class WorldConfiguration extends ConfigurationPart { + + public class FeatureSeeds extends ConfigurationPart.Post { + @Setting(FeatureSeedsGeneration.GENERATE_KEY) +- public boolean generateRandomSeedsForAll = false; ++ public boolean generateRandomSeedsForAll = true; // DivineMC - optimize default values for configs + @Setting(FeatureSeedsGeneration.FEATURES_KEY) + public Reference2LongMap>> features = new Reference2LongOpenHashMap<>(); + +@@ -458,9 +482,9 @@ public class WorldConfiguration extends ConfigurationPart { + + public class Misc extends ConfigurationPart { + public int lightQueueSize = 20; +- public boolean updatePathfindingOnBlockUpdate = true; ++ public boolean updatePathfindingOnBlockUpdate = false; // DivineMC - optimize default values for configs + public boolean showSignClickCommandFailureMsgsToPlayer = false; +- public RedstoneImplementation redstoneImplementation = RedstoneImplementation.VANILLA; ++ public RedstoneImplementation redstoneImplementation = RedstoneImplementation.ALTERNATE_CURRENT; // DivineMC - optimize default values for configs + public boolean disableEndCredits = false; + public float maxLeashDistance = 10f; + public boolean disableSprintInterruptionOnAttack = false; +diff --git a/src/main/java/org/spigotmc/SpigotWorldConfig.java b/src/main/java/org/spigotmc/SpigotWorldConfig.java +index 7c1efc3b6045b2179139dd419e969569f1af9f6d..5827c8a5b563e6411e02aa4db03e6d8d56ef3a5b 100644 +--- a/src/main/java/org/spigotmc/SpigotWorldConfig.java ++++ b/src/main/java/org/spigotmc/SpigotWorldConfig.java +@@ -146,14 +146,14 @@ public class SpigotWorldConfig + public double itemMerge; + private void itemMerge() + { +- this.itemMerge = this.getDouble("merge-radius.item", 2.5 ); ++ this.itemMerge = this.getDouble("merge-radius.item", 3.5 ); // DivineMC - optimize default values for configs + this.log( "Item Merge Radius: " + this.itemMerge ); + } + + public double expMerge; + private void expMerge() + { +- this.expMerge = this.getDouble("merge-radius.exp", 3.0 ); ++ this.expMerge = this.getDouble("merge-radius.exp", 4.0 ); // DivineMC - optimize default values for configs + this.log( "Experience Merge Radius: " + this.expMerge ); + } + +@@ -192,7 +192,7 @@ public class SpigotWorldConfig + public byte mobSpawnRange; + private void mobSpawnRange() + { +- this.mobSpawnRange = (byte) getInt( "mob-spawn-range", 8 ); // Paper - Vanilla ++ this.mobSpawnRange = (byte) getInt( "mob-spawn-range", 2 ); // Paper - Vanilla // DivineMC - optimize default values for configs + this.log( "Mob Spawn Range: " + this.mobSpawnRange ); + } + +@@ -203,14 +203,14 @@ public class SpigotWorldConfig + this.log( "Item Despawn Rate: " + this.itemDespawnRate ); + } + +- public int animalActivationRange = 32; +- public int monsterActivationRange = 32; ++ public int animalActivationRange = 16; // DivineMC - optimize default values for configs ++ public int monsterActivationRange = 24; // DivineMC - optimize default values for configs + public int raiderActivationRange = 48; +- public int miscActivationRange = 16; ++ public int miscActivationRange = 8; // DivineMC - optimize default values for configs + // Paper start + public int flyingMonsterActivationRange = 32; +- public int waterActivationRange = 16; +- public int villagerActivationRange = 32; ++ public int waterActivationRange = 8; // DivineMC - optimize default values for configs ++ public int villagerActivationRange = 16; // DivineMC - optimize default values for configs + public int wakeUpInactiveAnimals = 4; + public int wakeUpInactiveAnimalsEvery = 60*20; + public int wakeUpInactiveAnimalsFor = 5*20; +@@ -227,7 +227,7 @@ public class SpigotWorldConfig + public int villagersWorkImmunityFor = 20; + public boolean villagersActiveForPanic = true; + // Paper end +- public boolean tickInactiveVillagers = true; ++ public boolean tickInactiveVillagers = false; // DivineMC - optimize default values for configs + public boolean ignoreSpectatorActivation = false; + private void activationRange() + { +@@ -293,7 +293,7 @@ public class SpigotWorldConfig + { + this.set( "ticks-per.hopper-check", 1 ); + } +- this.hopperCheck = this.getInt( "ticks-per.hopper-check", 1 ); ++ this.hopperCheck = this.getInt( "ticks-per.hopper-check", 8 ); // DivineMC - optimize default values for configs + this.hopperAmount = this.getInt( "hopper-amount", 1 ); + this.hopperCanLoadChunks = this.getBoolean( "hopper-can-load-chunks", false ); + this.log( "Hopper Transfer: " + this.hopperTransfer + " Hopper Check: " + this.hopperCheck + " Hopper Amount: " + this.hopperAmount + " Hopper Can Load Chunks: " + this.hopperCanLoadChunks ); +@@ -303,7 +303,7 @@ public class SpigotWorldConfig + public int tridentDespawnRate; + private void arrowDespawnRate() + { +- this.arrowDespawnRate = this.getInt( "arrow-despawn-rate", 1200 ); ++ this.arrowDespawnRate = this.getInt( "arrow-despawn-rate", 300 ); // DivineMC - optimize default values for configs + this.tridentDespawnRate = this.getInt( "trident-despawn-rate", this.arrowDespawnRate ); + this.log( "Arrow Despawn Rate: " + this.arrowDespawnRate + " Trident Respawn Rate:" + this.tridentDespawnRate ); + } +@@ -318,14 +318,14 @@ public class SpigotWorldConfig + public boolean nerfSpawnerMobs; + private void nerfSpawnerMobs() + { +- this.nerfSpawnerMobs = this.getBoolean( "nerf-spawner-mobs", false ); ++ this.nerfSpawnerMobs = this.getBoolean( "nerf-spawner-mobs", true ); // DivineMC - optimize default values for configs + this.log( "Nerfing mobs spawned from spawners: " + this.nerfSpawnerMobs ); + } + + public boolean enableZombiePigmenPortalSpawns; + private void enableZombiePigmenPortalSpawns() + { +- this.enableZombiePigmenPortalSpawns = this.getBoolean( "enable-zombie-pigmen-portal-spawns", true ); ++ this.enableZombiePigmenPortalSpawns = this.getBoolean("enable-zombie-pigmen-portal-spawns", false ); // DivineMC - optimize default values for configs + this.log( "Allow Zombie Pigmen to spawn from portal blocks: " + this.enableZombiePigmenPortalSpawns ); + } + +@@ -439,7 +439,7 @@ public class SpigotWorldConfig + public int hangingTickFrequency; + private void hangingTickFrequency() + { +- this.hangingTickFrequency = this.getInt( "hanging-tick-frequency", 100 ); ++ this.hangingTickFrequency = this.getInt( "hanging-tick-frequency", 200 ); // DivineMC - optimize default values for configs + } + + /* JettPack - remove tick limiter diff --git a/src/main/resources/configurations/bukkit.yml b/src/main/resources/configurations/bukkit.yml ---- a/src/main/resources/configurations/bukkit.yml (revision b5fd247e3b22bca498d9d66aaf69bd1518ac2b2c) -+++ b/src/main/resources/configurations/bukkit.yml (date 1678886349273) -@@ -18,28 +18,28 @@ +index eef7c125b2689f29cae5464659eacdf33f5695b2..c6b04acb5371a0ac454c5e377bccad5b0972aed8 100644 +--- a/src/main/resources/configurations/bukkit.yml ++++ b/src/main/resources/configurations/bukkit.yml +@@ -18,28 +18,28 @@ settings: update-folder: update plugin-profiling: false connection-throttle: 4000 @@ -52,8 +370,9 @@ diff --git a/src/main/resources/configurations/bukkit.yml b/src/main/resources/c autosave: 6000 aliases: now-in-commands.yml diff --git a/src/main/resources/configurations/commands.yml b/src/main/resources/configurations/commands.yml ---- a/src/main/resources/configurations/commands.yml (revision b5fd247e3b22bca498d9d66aaf69bd1518ac2b2c) -+++ b/src/main/resources/configurations/commands.yml (date 1678886358956) +index 18f54571200e2eca09a39b88f170fe7b99d8618f..dd43550118df25f8cad1bbe9f4a4a74d492b4fc4 100644 +--- a/src/main/resources/configurations/commands.yml ++++ b/src/main/resources/configurations/commands.yml @@ -11,6 +11,4 @@ command-block-overrides: [] @@ -63,316 +382,3 @@ diff --git a/src/main/resources/configurations/commands.yml b/src/main/resources - - "version $1-" +aliases: \ No newline at end of file -diff --git a/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java b/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java ---- a/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java (revision b5fd247e3b22bca498d9d66aaf69bd1518ac2b2c) -+++ b/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java (date 1678886076370) -@@ -115,9 +115,9 @@ - - public ArmorStands armorStands; - -- public class ArmorStands extends ConfigurationPart { -- public boolean doCollisionEntityLookups = true; -- public boolean tick = true; -+ public class ArmorStands extends ConfigurationPart { // DivineMC - optimize default values for configs -+ public boolean doCollisionEntityLookups = false; -+ public boolean tick = false; - } - - public Spawning spawning; -@@ -201,8 +201,8 @@ - public Behavior behavior; - - public class Behavior extends ConfigurationPart { -- public boolean disableChestCatDetection = false; -- public boolean spawnerNerfedMobsShouldJump = false; -+ public boolean disableChestCatDetection = true; // DivineMC - optimize default values for configs -+ public boolean spawnerNerfedMobsShouldJump = true; // DivineMC - optimize default values for configs - public int experienceMergeMaxValue = -1; - public boolean shouldRemoveDragon = false; - public boolean zombiesTargetTurtleEggs = true; -@@ -249,7 +249,7 @@ - public int playerInsomniaStartTicks = 72000; - public int phantomsSpawnAttemptMinSeconds = 60; - public int phantomsSpawnAttemptMaxSeconds = 119; -- public boolean parrotsAreUnaffectedByPlayerMovement = false; -+ public boolean parrotsAreUnaffectedByPlayerMovement = true; // DivineMC - optimize default values for configs - public double zombieVillagerInfectionChance = -1.0; - public MobsCanAlwaysPickUpLoot mobsCanAlwaysPickUpLoot; - -@@ -259,7 +259,7 @@ - } - - public boolean disablePlayerCrits = false; -- public boolean nerfPigmenFromNetherPortals = false; -+ public boolean nerfPigmenFromNetherPortals = true; // DivineMC - optimize default values for configs - public PillagerPatrols pillagerPatrols; - - public class PillagerPatrols extends ConfigurationPart { -@@ -317,7 +317,7 @@ - public class Environment extends ConfigurationPart { - public boolean disableThunder = false; - public boolean disableIceAndSnow = false; -- public boolean optimizeExplosions = false; -+ public boolean optimizeExplosions = true; // DivineMC - optimize default values for configs - public boolean disableExplosionKnockback = false; - public boolean generateFlatBedrock = false; - public FrostedIce frostedIce; -@@ -363,7 +363,7 @@ - - public class Maps extends ConfigurationPart { - public int itemFrameCursorLimit = 128; -- public int itemFrameCursorUpdateInterval = 10; -+ public int itemFrameCursorUpdateInterval = 20; // DivineMC - optimize default values for configs - } - - public Fixes fixes; -@@ -389,7 +389,7 @@ - public class Hopper extends ConfigurationPart { - public boolean cooldownWhenFull = true; - public boolean disableMoveEvent = false; -- public boolean ignoreOccludingBlocks = false; -+ public boolean ignoreOccludingBlocks = true; // DivineMC - optimize default values for configs - } - - public Collisions collisions; -@@ -397,9 +397,9 @@ - public class Collisions extends ConfigurationPart { - public boolean onlyPlayersCollide = false; - public boolean allowVehicleCollisions = true; -- public boolean fixClimbingBypassingCrammingRule = false; -+ public boolean fixClimbingBypassingCrammingRule = true; // DivineMC - optimize default values for configs - @RequiresSpigotInitialization(MaxEntityCollisionsInitializer.class) -- public int maxEntityCollisions = 8; -+ public int maxEntityCollisions = 2; // DivineMC - optimize default values for configs - public boolean allowPlayerCrammingDamage = false; - } - -@@ -407,18 +407,31 @@ - - public class Chunks extends ConfigurationPart { - public AutosavePeriod autoSaveInterval = AutosavePeriod.def(); -- public int maxAutoSaveChunksPerTick = 24; -+ public int maxAutoSaveChunksPerTick = 12; // DivineMC - optimize default values for configs - public int fixedChunkInhabitedTime = -1; -- public boolean preventMovingIntoUnloadedChunks = false; -- public Duration delayChunkUnloadsBy = Duration.of("10s"); -+ public boolean preventMovingIntoUnloadedChunks = true; // DivineMC - optimize default values for configs -+ public Duration delayChunkUnloadsBy = Duration.of("5s"); // DivineMC - optimize default values for configs - public Reference2IntMap> entityPerChunkSaveLimit = Util.make(new Reference2IntOpenHashMap<>(BuiltInRegistries.ENTITY_TYPE.size()), map -> { -- map.defaultReturnValue(-1); -- map.put(EntityType.EXPERIENCE_ORB, -1); -- map.put(EntityType.SNOWBALL, -1); -- map.put(EntityType.ENDER_PEARL, -1); -- map.put(EntityType.ARROW, -1); -- map.put(EntityType.FIREBALL, -1); -- map.put(EntityType.SMALL_FIREBALL, -1); -+ // DivineMC start - optimize default values for configs -+ map.put(EntityType.EXPERIENCE_ORB, 16); -+ map.put(EntityType.SNOWBALL, 8); -+ map.put(EntityType.ENDER_PEARL, 8); -+ map.put(EntityType.ARROW, 16); -+ map.put(EntityType.FIREBALL, 8); -+ map.put(EntityType.SMALL_FIREBALL, 8); -+ map.put(EntityType.DRAGON_FIREBALL, 3); -+ map.put(EntityType.EGG, 8); -+ map.put(EntityType.EYE_OF_ENDER, 8); -+ map.put(EntityType.FIREWORK_ROCKET, 8); -+ map.put(EntityType.POTION, 8); -+ map.put(EntityType.LLAMA_SPIT, 3); -+ map.put(EntityType.SHULKER_BULLET, 8); -+ map.put(EntityType.SPECTRAL_ARROW, 16); -+ map.put(EntityType.EXPERIENCE_BOTTLE, 3); -+ map.put(EntityType.TRIDENT, 16); -+ map.put(EntityType.WITHER_SKULL, 4); -+ map.put(EntityType.AREA_EFFECT_CLOUD, 8); -+ // DivineMC end - }); - } - -@@ -432,11 +445,22 @@ - public TickRates tickRates; - - public class TickRates extends ConfigurationPart { -- public int grassSpread = 1; -- public int containerUpdate = 1; -- public int mobSpawner = 1; -- public Table, String, Integer> sensor = Util.make(HashBasedTable.create(), table -> table.put(EntityType.VILLAGER, "secondarypoisensor", 40)); -- public Table, String, Integer> behavior = Util.make(HashBasedTable.create(), table -> table.put(EntityType.VILLAGER, "validatenearbypoi", -1)); -+ // DivineMC start - optimize default values for configs -+ public int grassSpread = 4; -+ public int containerUpdate = 3; -+ public int mobSpawner = 2; -+ public Table, String, Integer> sensor = Util.make(HashBasedTable.create(), table -> { -+ table.put(EntityType.VILLAGER, "secondarypoisensor", 80); -+ table.put(EntityType.VILLAGER, "nearestbedsensor", 80); -+ table.put(EntityType.VILLAGER, "villagerbabiessensor", 40); -+ table.put(EntityType.VILLAGER, "playersensor", 40); -+ table.put(EntityType.VILLAGER, "nearestlivingentitysensor", 40); -+ }); -+ public Table, String, Integer> behavior = Util.make(HashBasedTable.create(), table -> { -+ table.put(EntityType.VILLAGER, "validatenearbypoi", 60); -+ table.put(EntityType.VILLAGER, "acquirepoi", 120); -+ }); -+ // DivineMC end - } - - @Setting(FeatureSeedsGeneration.FEATURE_SEEDS_KEY) -@@ -444,7 +468,7 @@ - - public class FeatureSeeds extends ConfigurationPart.Post { - @Setting(FeatureSeedsGeneration.GENERATE_KEY) -- public boolean generateRandomSeedsForAll = false; -+ public boolean generateRandomSeedsForAll = true; // DivineMC - optimize default values for configs - @Setting(FeatureSeedsGeneration.FEATURES_KEY) - public Reference2LongMap>> features = new Reference2LongOpenHashMap<>(); - -@@ -458,9 +482,9 @@ - - public class Misc extends ConfigurationPart { - public int lightQueueSize = 20; -- public boolean updatePathfindingOnBlockUpdate = true; -+ public boolean updatePathfindingOnBlockUpdate = false; // DivineMC - optimize default values for configs - public boolean showSignClickCommandFailureMsgsToPlayer = false; -- public RedstoneImplementation redstoneImplementation = RedstoneImplementation.VANILLA; -+ public RedstoneImplementation redstoneImplementation = RedstoneImplementation.ALTERNATE_CURRENT; // DivineMC - optimize default values for configs - public boolean disableEndCredits = false; - public float maxLeashDistance = 10f; - public boolean disableSprintInterruptionOnAttack = false; -diff --git a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java ---- a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java (revision b5fd247e3b22bca498d9d66aaf69bd1518ac2b2c) -+++ b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java (date 1678885753520) -@@ -55,7 +55,7 @@ - public boolean enabled = true; - public boolean reallyEnabled = false; - public boolean verbose = true; -- public String url = "https://timings.aikar.co/"; -+ public String url = "https://timin.gs/"; // DivineMC - optimize default values for configs - public boolean serverNamePrivacy = false; - public List hiddenConfigEntries = List.of( - "database", -@@ -291,9 +291,9 @@ - public boolean fixEntityPositionDesync = true; - public boolean loadPermissionsYmlBeforePlugins = true; - @Constraints.Min(4) -- public int regionFileCacheSize = 256; -+ public int regionFileCacheSize = 512; // DivineMC - optimize default values for configs - @Comment("See https://luckformula.emc.gs") -- public boolean useAlternativeLuckFormula = false; -+ public boolean useAlternativeLuckFormula = true; // DivineMC - optimize default values for configs - public boolean lagCompensateBlockBreaking = true; - public boolean useDimensionTypeForCustomSpawners = false; - public boolean strictAdvancementDimensionCheck = false; -diff --git a/src/main/java/org/spigotmc/SpigotWorldConfig.java b/src/main/java/org/spigotmc/SpigotWorldConfig.java ---- a/src/main/java/org/spigotmc/SpigotWorldConfig.java (revision b5fd247e3b22bca498d9d66aaf69bd1518ac2b2c) -+++ b/src/main/java/org/spigotmc/SpigotWorldConfig.java (date 1678886275593) -@@ -146,14 +146,14 @@ - public double itemMerge; - private void itemMerge() - { -- this.itemMerge = this.getDouble("merge-radius.item", 2.5 ); -+ this.itemMerge = this.getDouble("merge-radius.item", 3.5 ); // DivineMC - optimize default values for configs - this.log( "Item Merge Radius: " + this.itemMerge ); - } - - public double expMerge; - private void expMerge() - { -- this.expMerge = this.getDouble("merge-radius.exp", 3.0 ); -+ this.expMerge = this.getDouble("merge-radius.exp", 4.0 ); // DivineMC - optimize default values for configs - this.log( "Experience Merge Radius: " + this.expMerge ); - } - -@@ -192,7 +192,7 @@ - public byte mobSpawnRange; - private void mobSpawnRange() - { -- this.mobSpawnRange = (byte) getInt( "mob-spawn-range", 8 ); // Paper - Vanilla -+ this.mobSpawnRange = (byte) getInt( "mob-spawn-range", 2 ); // Paper - Vanilla // DivineMC - optimize default values for configs - this.log( "Mob Spawn Range: " + this.mobSpawnRange ); - } - -@@ -203,14 +203,14 @@ - this.log( "Item Despawn Rate: " + this.itemDespawnRate ); - } - -- public int animalActivationRange = 32; -- public int monsterActivationRange = 32; -+ public int animalActivationRange = 16; // DivineMC - optimize default values for configs -+ public int monsterActivationRange = 24; // DivineMC - optimize default values for configs - public int raiderActivationRange = 48; -- public int miscActivationRange = 16; -+ public int miscActivationRange = 8; // DivineMC - optimize default values for configs - // Paper start - public int flyingMonsterActivationRange = 32; -- public int waterActivationRange = 16; -- public int villagerActivationRange = 32; -+ public int waterActivationRange = 8; // DivineMC - optimize default values for configs -+ public int villagerActivationRange = 16; // DivineMC - optimize default values for configs - public int wakeUpInactiveAnimals = 4; - public int wakeUpInactiveAnimalsEvery = 60*20; - public int wakeUpInactiveAnimalsFor = 5*20; -@@ -227,7 +227,7 @@ - public int villagersWorkImmunityFor = 20; - public boolean villagersActiveForPanic = true; - // Paper end -- public boolean tickInactiveVillagers = true; -+ public boolean tickInactiveVillagers = false; // DivineMC - optimize default values for configs - public boolean ignoreSpectatorActivation = false; - private void activationRange() - { -@@ -293,7 +293,7 @@ - { - this.set( "ticks-per.hopper-check", 1 ); - } -- this.hopperCheck = this.getInt( "ticks-per.hopper-check", 1 ); -+ this.hopperCheck = this.getInt( "ticks-per.hopper-check", 8 ); // DivineMC - optimize default values for configs - this.hopperAmount = this.getInt( "hopper-amount", 1 ); - this.hopperCanLoadChunks = this.getBoolean( "hopper-can-load-chunks", false ); - this.log( "Hopper Transfer: " + this.hopperTransfer + " Hopper Check: " + this.hopperCheck + " Hopper Amount: " + this.hopperAmount + " Hopper Can Load Chunks: " + this.hopperCanLoadChunks ); -@@ -303,7 +303,7 @@ - public int tridentDespawnRate; - private void arrowDespawnRate() - { -- this.arrowDespawnRate = this.getInt( "arrow-despawn-rate", 1200 ); -+ this.arrowDespawnRate = this.getInt( "arrow-despawn-rate", 300 ); // DivineMC - optimize default values for configs - this.tridentDespawnRate = this.getInt( "trident-despawn-rate", this.arrowDespawnRate ); - this.log( "Arrow Despawn Rate: " + this.arrowDespawnRate + " Trident Respawn Rate:" + this.tridentDespawnRate ); - } -@@ -318,14 +318,14 @@ - public boolean nerfSpawnerMobs; - private void nerfSpawnerMobs() - { -- this.nerfSpawnerMobs = this.getBoolean( "nerf-spawner-mobs", false ); -+ this.nerfSpawnerMobs = this.getBoolean( "nerf-spawner-mobs", true ); // DivineMC - optimize default values for configs - this.log( "Nerfing mobs spawned from spawners: " + this.nerfSpawnerMobs ); - } - - public boolean enableZombiePigmenPortalSpawns; - private void enableZombiePigmenPortalSpawns() - { -- this.enableZombiePigmenPortalSpawns = this.getBoolean( "enable-zombie-pigmen-portal-spawns", true ); -+ this.enableZombiePigmenPortalSpawns = this.getBoolean("enable-zombie-pigmen-portal-spawns", false ); // DivineMC - optimize default values for configs - this.log( "Allow Zombie Pigmen to spawn from portal blocks: " + this.enableZombiePigmenPortalSpawns ); - } - -@@ -439,7 +439,7 @@ - public int hangingTickFrequency; - private void hangingTickFrequency() - { -- this.hangingTickFrequency = this.getInt( "hanging-tick-frequency", 100 ); -+ this.hangingTickFrequency = this.getInt( "hanging-tick-frequency", 200 ); // DivineMC - optimize default values for configs - } - - /* JettPack - remove tick limiter -diff --git a/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java b/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java ---- a/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java (revision b5fd247e3b22bca498d9d66aaf69bd1518ac2b2c) -+++ b/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java (date 1678885682391) -@@ -219,7 +219,7 @@ - public static int maxProjectileLoadsPerProjectile; - private static void projectileLoading() { - maxProjectileLoadsPerTick = getInt("projectile.max-loads-per-tick", 10, "Controls how many chunks are allowed", "to be sync loaded by projectiles in a tick."); -- maxProjectileLoadsPerProjectile = getInt("projectile.max-loads-per-projectile", 10, "Controls how many chunks a projectile", "can load in its lifetime before it gets", "automatically removed."); -+ maxProjectileLoadsPerProjectile = getInt("projectile.max-loads-per-projectile", 8, "Controls how many chunks a projectile", "can load in its lifetime before it gets", "automatically removed."); // DivineMC - optimize default values for configs - - setComment("projectile", "Optimizes projectile settings"); - }