From 71af224eab1683a1ae6f7a3c3d456a12ff5b74d4 Mon Sep 17 00:00:00 2001 From: PinkGoosik Date: Wed, 22 Mar 2023 21:43:41 +0500 Subject: [PATCH] fixes #6 --- build.gradle | 3 +- gradle.properties | 4 +-- libs/fantasy-0.4.10+1.19.4-sources.jar | Bin 22249 -> 0 bytes libs/fantasy-0.4.10+1.19.4.jar | Bin 43408 -> 0 bytes .../java/skylands/command/BanCommands.java | 5 +-- .../java/skylands/command/CreateCommand.java | 1 - .../java/skylands/command/HubCommands.java | 4 +-- .../java/skylands/command/KickCommand.java | 5 +-- .../skylands/event/PlayerConnectEvent.java | 9 +++-- .../java/skylands/event/ServerStartEvent.java | 1 - src/main/java/skylands/logic/Hub.java | 7 ++++ src/main/java/skylands/logic/Island.java | 27 +++++++++------ src/main/java/skylands/logic/IslandStuck.java | 9 +++++ .../mixin/entity/ServerPlayerEntityMixin.java | 31 +++++++++++++++++- .../world/protection/LivingEntityMixin.java | 10 ------ .../skylands/structures/nether_island.nbt | Bin 14851 -> 14571 bytes .../data/skylands/structures/start_island.nbt | Bin 15974 -> 15825 bytes 17 files changed, 74 insertions(+), 42 deletions(-) delete mode 100644 libs/fantasy-0.4.10+1.19.4-sources.jar delete mode 100644 libs/fantasy-0.4.10+1.19.4.jar diff --git a/build.gradle b/build.gradle index ae91433..f3408db 100644 --- a/build.gradle +++ b/build.gradle @@ -16,6 +16,7 @@ repositories { maven { url "https://maven.nucleoid.xyz" } maven { url "https://oss.sonatype.org/content/repositories/snapshots" } maven { url "https://ladysnake.jfrog.io/artifactory/mods" } + maven { url "https://jitpack.io" } } dependencies { @@ -29,7 +30,7 @@ dependencies { include "dev.onyxstudios.cardinal-components-api:cardinal-components-world:${project.cca}" include "dev.onyxstudios.cardinal-components-api:cardinal-components-entity:${project.cca}" - modImplementation(files("libs/fantasy-${project.fantasy}.jar")) + modImplementation include("com.github.tyap-lyap:fantasy:${project.fantasy}") // modImplementation include("xyz.nucleoid:fantasy:${project.fantasy}") modImplementation include("eu.pb4:placeholder-api:${project.placeholder_api}") modImplementation include("xyz.nucleoid:server-translations-api:${project.server_translations_api}") diff --git a/gradle.properties b/gradle.properties index edc6cbf..7c9cb0f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -5,7 +5,7 @@ org.gradle.parallel = true # Mod Properties maven_group = ru.pinkgoosik archives_base_name = skylands -mod_version = 0.3.2 +mod_version = 0.3.4 # Dependencies | Check these on https://fabricmc.net/develop minecraft_version = 1.19.4 @@ -16,7 +16,7 @@ fabric_api = 0.76.0+1.19.4 # https://github.com/OnyxStudios/Cardinal-Components-API/releases cca = 5.1.0 # https://github.com/NucleoidMC/fantasy/releases -fantasy = 0.4.10+1.19.4 +fantasy = 15b00d289f # https://github.com/Patbox/TextPlaceholderAPI/releases placeholder_api = 2.0.0-rc.1+1.19.3 # https://github.com/NucleoidMC/Server-Translations/releases diff --git a/libs/fantasy-0.4.10+1.19.4-sources.jar b/libs/fantasy-0.4.10+1.19.4-sources.jar deleted file mode 100644 index 0faa7f1e3dbaf4999a3c379b830abf3ef9c268c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22249 zcmbt61yESot`v87_u}sE?(P(d7c1^9Ufd~Kpt!rcySqbiC{o-CAG*7*U3S~Q`(7Bx z+!-c0H_6ROa*`t_2?UG`01gfg5LaNY0`LPM0}um93oG$ci_3`6O7qKziwG+!(MXFx z0^oo9uV(=007tYd%1BzX&z@rKP<|*cK6u|lulrWl&*6G1I_V7t{_hT=Lg`0_X!1Sp zZYuDnDfB}W3qp50|Y-KEAkt88Z$iyy&nZ}1giX-K|I0x>Y7$q)rcOfEBAc$e5HNz ztaVqY^8&$Y;vpQRVVM=%QT+QhBqI5l0yc*Eh4-%h?;8*MEXM)2R>46VG=`wJ&Ih4$ zQO;4FL`K#&Sy=-c!|8VGpM?^mCXO#AFXGf`(bGh9#~uWis*7nkX_fUP>+>&Y%5b4x zDJh@^j7KL(u!e3&)-|Q#OZTXajTny8c0{!`5W;p9iBV5NQk#Trneu!|C-Y_1>kcFE_SF49C9gHD!9W2{CI93cP#26688)g!dZQ zRJT~%w}wy6AGzc*Ld1}fmMaWALUa_Zp{uVYKXEi&R0WbbyHgk@8fxgvW&)&o^~~wg zTNB5vvwYQh&TSMID?RixBYu&{B^rtDWsejh&pz+(eG{i>73$_kNIDt} z0H=f0970DGL8o-D>H}2*3!r9rYMpV4#D>2rVub~j8Q&cbuY%LT{}S5Fq>*V$~Y z{Mr1eUxlDJp`(!}U0Ye7y z^@hKib-OApm@9R_Di=icy+y@g6hL>{f>otm+p7&WZNVkdxy)L;RwxrD6pnNcax`<) zz)vRVt zU+OB*ajQ^ z@ph^8agc0$LcD&a%7I2>S5)Hse7-E+9m%4afdigol?MNv>e&R`2H$L9A4(^wFlBLk zlA@j~fr*k>`B<5BfvpniD^v{(+W_tqMR5-$#p3mV3DR++7yB>vo%YRZ8x3~Bv!{$}i{=YZUD?87^9 z5%r4qBvc~_nHN)O9DEU`eXm+HgZbf0i=_J0FD@@%tW>0O@nXx@oE;!vPM}hsql0t4&3Pl`@osYGU9caEI?DZo5Z{# z1jk~7BlNwr2!4>#t1>eIbEDXpJuV8@Wbwx*UftT~~64*vcR=-;K%tKH*}PJ--RcGt*lmWMwems*|Jl zEIuT&YdmdKU_Tu;JDyli(Fr2mqCgq|FIr!hTo@gMo(sMONK;WaM63)u_Bv8=61UN$ zp~4K!Iy}3qsSLioNjK7DR+dtX_5vh58dPB(+`WmF@9Y9{rgw0^awUz2NN13S;F z(UgcnQJCS@6Bc1yMvNFEkg5HhZu8Bo-DQAynd7+&M}^A!MKVZbknTuoWgzdhdD2R! z;Z(MFM6#3JO1BKC36k=x*CatmU}A-7hS7qC$7Gvo5dMlEyuv6PSD^N;!}XebyY8op zn&s7bjWYTdumcUa4W|I*Jrg`p1-K*TrCACVLPj zHal&8KASf?`J@z^DP6jR`n>t>%Sw-Ul|>9GcE2%cU7wm_(I>-U6Gx?2S4e~e6G4$B zyA_6DB-wJ)P?cZjIRqJSQ8^StFz#PIqruQ&=gAezcqV_E>L9WW|NlVbF0=rA@HcLa7KDN9;y}_)k4s z!8(4yaP8!3>-hTO6$#8~Z-9_43N~|hCPK5#`(M+IXs7j3VtRehxsAM1T~Vhh$vf)WFic4N13mfRfuwp(G@G=F7-7_fxQAh zNSsZQRCJ8b5-}mACDWl|fcFyrw0MkVHmn!~M`Jrr%QkP$8tw$`o@-K_uS|gKO%4n# z$6@s%N3^_3SN~K;nR-2U^~lBYdos|)^p~kUOG0_qKK67ltJCKu9lXMN0 zzEh^@Yig&7mam<^Y}9OhR6jY(^(u+HC5@ZWTwjo?H;koNh)uwoMs?B2zct^t`P#LE zTQ$n_!G#CH$oAS0frhB+y3aRw8ZInxnPX80ujGxLTiLR8{rFM7y5%`Y)XJgkV+d*n z$^McU0s!Ee;I|O;@53_s|0gUHGPN+Yv^BM|l(n{d_-p%@FpVz#w=nG~whyD1ZKs3x zy%4*CW3?**Yfvgdrch>ziPMnp(9m9xwC^lUzr>b@zfaBxFB`#HcD-I|1l`BN1z(cI z>w3ONcC@6l4YFn$YwX-*kEG#AUSOGsW`t1h>xtdqyiFmjjI3hi%RGK!bYqPSg>l!b0HBRI! z&yY=P;=L7AtuZI+xFS(tGP+HpfO=6m6|QgRI1hXk?L+55%x8aMN{fg4mk-GD_a1)R?n_~bq#e6#nUc(J;O`Ycc2zuV@+Yj1~G)NT*r~H@9)&)D@1;X{C_Awo%s9;Fw zufPqpwMlyIaoKNGSSv9r<8A{^*5P3#gD}Q-u#(=O7cs~BaUI&EfLF%&}>#Z?+F8CAnJs7tH6yM6y+2%17W8tSWBH@^VPIUCE2i|MeJoa++ zA)tWKw5u%{QZzP(ijmw*s$Es5B##bQ*Ni3}Y9S{vnsA`-k+SUH!$`(fR(y|0xa$<9*yjIv+L>SXR1!j1xgr$R5h?wxpIMXukz~A^7CfnCt+`4YrU1hxT89&OCQe`p8RS>lh zy5X<1BTPqsb=)QxVeBkYSWfjqu5IE)?=@MTdBp|X`^0?dFS#XJl!pbmqqArR1<~jG zmum-F_s<(yPZw4TzS3`5xLD-~uk|K0M#;HDH-wZ-V$)}8Z^iGy!oluUT>3mfL6af!Gn4lDvMSpAabay-ct>9nqj9JavN5sCb6Y;VJ=uX{vS%_cxrn3? zYP-n4rb0u-Ddu)uUmvX;z0JZvgB0fKB-ce`=|%)5f%r-sXycc%4gIllv$p7EZX0_# zd1q-xf<~U!DDcS+A|c6_@~_yu3}=Z3H=Z9VsKQqCL*J)ndC8H|>jhI%ihtsDjtn#3l+@O)Sy>h*lXA?kGM)+s-S zRgcDvR9%muV7S4L=wyXK{KP#{t7HTUO(DCI!o~iYDpmSgz6`-0gL6 zSX(8-HprpTad7n9W+%{IV2n^qk27X^*quB6ZSm zy4>BrrA1&V={yA5uCwiZok<&h0&nZZO?jb1!*C{U}ZWm!*Z}_^5@1A zTNEf#?6Pm^n2>If)O4-vcPHLbPl^(2@R^S(hJQGy1t2hiKB%I~7}|#oJ#2HZh37yM z$qJKqMiENg1+K14)676s`ec-^ukEx_GL5T|D94|G`|`b_RSST%pBJK2kVjJ0X`JNS zK41A1F_V@%W#Pnrvi+6eIBy;a~S*3PNMm+t;44vMRr{ zP-4AMdosE3BM4-h?+PU+!bsFJHCYJ7VhP?*9~U8lZKInyV-1b-1hhBT3GF4UEF;)x z%OXZ9Qci-x{@i7< z{`%wmZ5I?YvA29Bt!JrcY-scM-{o6q!*Ac^Qyilp{R)sCz7guqU&*D%3wTa}YzDQk zaKhVP#Wc)tV5lyaUi~<&D)YW^wxH~tfIYYYsWW4gGcCvw`#^X>b5s1W)<;zGem?dR zU2}pd0sDjyBS9)i3vBuAwlo1teA{5jlJm9Q<4<)bc%QOFOc-BQjhOlQ>ZG+sdul5c z&hU|ick_!TR^vRw*$UsCe65zo6Tz8=vRA9f=r_vA9ONB6o(i~Um6X(X7~*12#9g716G>>w0?8ZW6@?y2pFon}aWLryOmPc@bkZYR&hKSU zxyizhoP7*M6uS~WaUH3A;EHC_fdW!xZJ##D`E#{RJL(kPqxSjz5X|i#T(jMS z1^it5bpJ&A-(u3gSNjo;(Kod}#g!@+vh!l_ccC3`;(}yi+$C_pM}YX*$+~w4`{ZMg zc|L}4i&vRDxYzGxnD)PEp4EO{1;oBBZY=zzpXX#?p7GTdRiiPH5A8{D0F{DgpmA@w zc>e%b{1L4duBD~9<&k(%1xTi7KyM7TUXf7_y<}WGu$qm!mo7jfZn@N;j^9_}t7VWT z=>833DQZ;)_DWu}(Gyi(voi$7qI+-cJ|A?sov8BTkI(({2%XEY-uRppjuCQ7D>7v* zB@CPQMYh>QG;C#|%AUEY^{m_`D*(nf&>U-7PoSuL%oHQZN`SG5gftq^c061eY$kH3 zn|B>1JWmm{s~^U9sH^8$Mxw3A(T9EOWJ^Q~>XqFB+GQ52aWuS&d4^nBoKOvHLul#>NIID zJ~DQn%$-#5MfJ<*t*C{efDW_bqssFktHr9}=Q)s?>@Yyen1xEMy{kES$MnG?9`NR& zb3$MG$?|wO*UDcL9MZ;TSO`vI6y*#g7|*Q4MS8t2#j5z~vOD^bF2t)N2)Cv^v{rm- zs?b9h^+*pxHg4O*%b|clpc=bj64YpCbA3Xjkat-2ja8?GSiF=xI19X*1Cb?5i}C6} zdd%!IMit*48hG3H81K_rCPXn6mc)!Btm$k?hgPq#o8S1S+%mB0WTcsY(d+E-hgUX- zF_xVwo`9__q^uRW1R#TUS+egc)@>ivoN-yF+7Kr*Bx>`Y?BXJip2Wzt3B22aG^_Bn zgpVAYtHWuZ${SPZZrI7ib=&ESn(hww(oEHD)SzJnqlOS@nqOL6nkP-&Yatq>T@sZq zrysdon_(|sk>Dc=)8b%s)8RUkSjACm3hY{<%J{2>p4(i{!RU(V^%bHu26*(te#dU1 zNmpMMwYe?v8jBnq7tv-M!J{P;y=)*>DVsU!77!~wBv%Ng7bqjAg1DGajFEZ(@XcBF zb^3I+ck?h3Nr>Shq1OyxSqK?rumcu}38HuF@1}ADeO6Dc@Kw94tMwuz4?Q`x_3(?G zYRoTRgNJpkh8qAfO86+TzYc>G*M-1EX!Exl*k5d;caLhwy*vi4tA%Fg$80>~q9$R%RYnk`aU9jO_y()Zg6fg>5#h)eedA(oJ{z=$jB5ToDmu=EO^URQzRC}G%EdS7D|8? zOF9Rgf;Q&amJUs^B~9RR!2F(-&xS@*8Z8DBJA}}b_jFY;o(A{f-bz*M_-o3P9wMYT zCR0Jv3PcWErBu0rlG0ah2J-_YQ$x0n)ir2%ri9nb$^KP_b_W=7Op`Q;zzW4VDm6*# zoL$0>B%kufG`#t|suO0@8l8GwuWVnNNEDRxgO%5yyT3qGKYv-^hTQAF`eDEEqg?6u zRq)`w?zOL)H^e1tsiQ)7t3R>m(TY~mO6Vr%r@cGH&;r5b?ge~9?>>mv`{!;#*Ezb6 z`ayGLt0a7I=O@36v`K&F&K2w}?H+1o-#qzWG$ZG1`ptBgbP{HQabxSt^ABJW+Fyd14KMv?ugHl{-YfWw zv60w6`=DT6J$5@nv6&zeohia_8hwKEaI6$?;A`)_FT}Cp`4FW zX|NQPw_33mP?7MMBFC37p~)JluB||r2`Z92$rMG}bP|4naQKBb?sLVh2|Dcv+l@!n zi)r&%>JDJ)TS|<|`wNp@1aUx_QkB71B!K?B%xxlig2IY&DoZHr9~sfv+JWi&Gs#ty zef!4;;9L>k`4xkPJf{QC>%j zQ?h?@E%J5S8zfp>*g)jfl>Gt zBQM5Lg=L8kaAiTMLkukq#_)3u8iVdGNbKc5l5v{CD1pBSz=myRXFH*Pg}4-fKEj*$ zhF-EAm@VYUi%xib^V4GrSu~|ZhJ1_?${vQ)a&6y<@c{|qGU#o1`8$ff_=cPe46=rg z&;tCZkp2)6HZ15eGLB+NaKlxS(6YnboWw(qkHLQ4+K5r34gtNh>Tl{hcCJd0{DEJ? z0luLEvn;ow925?|2W3X{VF-YDsTDEMda0N|Z1CZ2%vmQ)b|C2`wR)>`LQCN%z%n@= zUJec}KGAIn(I{$@q(CX^Kt4aOA@ZQnNM3v|p+02oXD%y*0pVK5O7{b;R8bNcXTww^+!|0#plLZCF{U*_LWGsT$fnFvyV7MLlSVMzWLjCDVLMy+4u?DG38@51 zMe;AC`Sghr0-7TMwxunjFq}M`N@TVmU`D+dB2x#(w@JZn{9CUzjnJ-TCHIV}x4Grt zA{J4P*Abo~#+OWPnaebkK-ihSmStYQC>f=M!oR#eOUy6E%PQY<#4{dmZfZEEV1gJc z9I5YEuR04{3g3Cb8EHF&gkJ#O8|~+)h?M=_gdcGyZ*YL6=>Hw98Ap`H*!PTROzL zG*vHwjL59}i7XhW#+T9dR7xCIgz$Hjod%^1al?#5QHF@8y}o2QWBID2 zADp9kaBIXkPHgqEfpe5fq&}j5JTI+8E^kA!%~=p%Ic6zo!I<~#tcpM4j?Pj3li1B z&+}pK>yq*}K>Y`hHcYrMBD8MlUnT9p64&xHmZONzgvxdq>RR&fH6tYNuqWC9D@_S_ zpM5FZN#ReAa*1r7GRSwVwno;TTt#9r&0pGyxYRjiz52l4=vcj~X^;tBS5TuRm{&5I z_Uwjl+d51epStrhVlX>q7|1`(DNur&hgm!&e|H>a^{c++cu{w&N8U-93l^GBL8-6> zb7ER7ZZ`XUdnR@xsQZ2FxhEQdr z>aaN*E2qnhZ@4>x)07z{+~xT{B_v)6}WAV-rRhIv2OvWnPNFRK+VS&ijm9KCZbO$5bLzwps` zTb0*1-|DOo<#h@Ybp(yo*AG6_Y-%Bi_N2{{tr`aX!|7E?qco6pyuZSUbqT?7X*(WFa** z(K@d<*=)4(8$@3&M_(N}Gs+KU~lL!_@6CH|#kCidtMsF}1U0c-k)jKHa zbGh;37SRn=W0f+!cdna`+$QIkp}TT~=H>J?oZgp66Yhq!5XF$ZFzu%2g0-$CVpd*< ztPpwGOzCZlrqmJSsRysZS}fk}5#X|kzG{>ym|oF_8Mw)MsYM_`Y)2b0NVj_GGrNFn0SK$O3s?cIG7`QmTWn{>v&QoTFnDrruBmZSiPW?}UxZjI0f6qG?6QitG^64$2M2k9-W6rEq!iE9)Pm31%?c z`=#D{v%u3vf&}4zg-eqZc>$vp)q@dkpUCB<<$bHzLx$a{pe&+J2kV)kDDCx*;%oue z?%JRER_6Y5iAXmusg*AF)HX)UOU$igBFsgd!xE7se)3yjWfNE7kk}5-6IVVv2IT8w--}IB+ch)w;O#L$ZR$ z!DmNC3_6)L-%{TIZDidOU*DVp$6JxlCYbRBxcCAo&a(D2(83~I7&Cb!w4o-&nqw8vu<;%T*A()^nOBX%{DgzWxi8J zjSy`N0m!{HCeLWlj3~(r6n_p*9R8w=lL=i5qn9mWO(0GucJ%V4qE8{1o%`ZS@-4l~ zr8`$`@~yHy{2TOTl4Mo;O#&_tXJ08M7)D5^9W7{VPw*8elJl-+_~fN-c_idB#P<@}WhbpcR`c>1uMARmZ!U3)(m= zXyqQVmzdbMPa%@1C|Ae|UNrs!S^e#Yprcv5iW{ILS{w#Lc;Dg0szXOj^>UQTn;FV6 zL&aOcHuKhOzn}%7B~5jRiM;u;A5PbV zYGu^wEM!gDfL0M;96vc-ELOfUSmMp3MjhU}C;_NHXUEMjPq6SYH{2u>K%6DqXk1IKYGy*WwfJyt)5k` zex6=6EpQNKyeos3RA0*wgO?-n6gr-X)u*I2>xHv(y+^gu^Dq;H#HpiCdGA-j&832~ zmMRnGN}2C4LvfgI1_;HcjozVvDMME6$@AIMiPjvs35@i#)Jf=?U#wXziy$4#kaX)F z`q)@V`6j!gsyQ*k7p5gCuHpkWWY#6?Bm+Lz)YOyR*|m_ zJbPz7EM#jM7gJ^BkkGx3RNQvUZdIkGzxko!AYyy2)b-%Tg7N5Jc&UY#mRY|J^fjYs z@h*P7-mpt@IX7C(`(nkD!*8`iVNuCQ@`ugk0OnVl%TH^EKPH=UHdfY#Hg=|le?88A zJDdN_RXxSYG4ikG>5zSwfv(_Olv3kn0-_S=&zefW+}~6*Zvca%N^2am38FWUR)Gnh8N_!* z9f%gW4B*tYmTz%VERA4VZXw}vBL$e&)Ys<3zQo0a0Mjjl-p8PyFFq~U9R2fh`-?3= za+_z4HWw^!44)s+PC9^G+V5XFDtYq+eLQhVF>G^sh+4gb= zqthcjjVX`s4JkAB4PZl{*m%jF_>1Wc*e|j4npfQ)d3bdABs5w~OqUd_P(SU%hTTez z6s|AD=_S)Hx|_R_&bmbDlREic`|`%Zt#jx*Nd_WsN1^CFhfBxw%j~+TPOh=wP{VI` zL_Iu@v#~IjX1|`Z;i-Y}IhCd+k`{DB7qT*n4YLbN@p-|=7U^Ttmru^w&F@vn1a0z+ zb|8Rrzw2Y)MRw;cBi!)AU%$N9E~|8s&tfD28|H!dVz-M zYnFjYHs%x1rdYO{?bdE(bq+#4qoSSOI;R?npTzEr0_EJ?f;?`Fr`vW_hYuSgCirg# z_xFwIm_OSX?d?p>|J)UTTJc+Y_XPjE5Kj9`+9Iarc7`^F20txsjl8J(#_%bwRI{*3 zXM?}f$-QsIOIDmBghwpf-#q9~w#;-NubeB6ffC$BH8+r|njQaoQSRyUo(&@L^GAua zqk(~T#x)Etu@vZAINnh-cewdtA;!8M7pI(X?U`Wi6EUPQ)DH-c|q@kHJIB9 zSxY#aic4b1^*q`(O~PD;2jVPOERtU?Bt0y19_Ko~$W-{C8mqsvW<{@eC&=fWuaYNB z3?&2;iQ|SW&`PRUADd5PSD+8X;0f4tBIk32R)`LLhc^Gi+Nia6>U6fU1YSt;Ol`E4 z1A*N>zBvtnclrS|kniq1QO4WMEf3#=>!2KwiH3k~?lw=Wis8i@yrQNG#K;y0f`BGQ z^MwxCylK%Efu?cuI?7yE0How`C!N`JHGj=Cr@$zxV}Sn}gp@qzIRdv+C~y4QDEb+V zEUC_0(e%VF4ert;C9>0^8@Bp+Ln(L18~DwxH;u+S3c8+kl-jGX$`E1K*`mCtJLcHb8G=iCbu@@Rr&@JejNqrHH<{+B7^g1@jB)7qe9d3=MMk zp#h4FUJJ!#4gZbUl=_jrR~{|)39?7|^eP@P5C7+Y7Q>g23xf-@)>mV;vpH}iV|S{E zJb~*7*%Y4?vwFkA4~EqhEPCYfF+ps&Pc134_f%;ylIF6^e?r}UvyjTp47~AerT*v1 zw6Ey5ogeF$a8qm=OSkdghn9B1AbGG#%IAwxhf<^Td#kdPgWwhJtJ)>$BH zRSBKnwm+-SS&iTs3%)h=*>?CyziXFXyXPR7!ZgUg1JSaIb)C2=3)sn?ltss*lB|+x>dK9k zrIDb$tJaCmEtc-SxjF1G3x-{oL6*T#&J-N23f@mny!D0X<(;LC1I0OHNE5VM1sTgr zaD&E%%Idd}BID)d+Ujt_4rgXe?3?}6C`Ut1azGl`?`UfYm4r)OZ*f|*hMH;`(mBGnPh+^ z-)B=^!WM7Nme#Q~-&lg$>Sn`T$CN7{#t3lG8+kDH6prp%VRY+T@z%sKm0vGVbRP5% zI5=0J$-QKs!UCKBXj+W?dtQdfKGL-R5Z==w{%Y&|Y3b^lCll4PFjTNNH&nEPgRt0cee=BGh0V(Gu!$=wtABo!2X~%{Rdr6^+2_dQ> z*7V8FvWA*r8!|`YfIwJKSBljaF}$e8N2wgzlp>DaG27}>P!S}M3rvEJFI@HHO_jzD zNF$gO)7qFEX{Lam*6jT<6oDFHYTH1N&{4F376X4?(K@4Mt2Dt1Y7FSHBOCsCFS9Nq zu&xsjhDkVi2VOK{%Q{N`vSmE?-TLR#g0sC|bCF1wv{wc_name^a%UW1SHAI?iYdbB zJFlaQ5pVQ5P`xG1MN7>5_qq9!XXg$$>EFuZt*t-ndrc=hC521}iBS*seqqFjg^89f z4|TGW$0vKMy#u#PWCR3p>`M0Ci&xLK9ZMWpIH561M#@N{M1ZQZfVwftV;r8lW{(Aw zig!Tanc|I!#o)l4BRcRk?5%Q&xqFxGO5x&Nl$=wB;-JNDeY{P>)Dq&1pm)YI0-jBz z&A{d4tgvWrQ7S)(8pBhs3x*92h7g+|ab|x7S(|-kprm&0r($OZQloTIf4S~<%#mle zV8qs*{=yL{Lwh9WjeTk1MFH=kbEwGLivoh9ipDSXEPMRp`t+X#cwN7od^W`HSdfq@ z7$KRZDhXejZz6ev`}wyZjp+V{&M>Q6guzgeQn!{FApvwu-TOG6vI2YdWW z!fAc6^vxWf;z~75t9ce=589D?zEg2rF8&M2HRt_>3bGMW;RTqPK*ASf8hVt9fWn#L z50%u2ND_%yL=JT$;1WTcw*vlRln_gr3H-e=WdR`kx}^$Ovr9~A{^nIbZ|mRL4+>M zS0KLGY47w^1rancUui$f^J^<*o~i?6fbm5$&2VbUUR~|vw`TRV+T+^di~zOQjmu9v zatonuLNhi0;;xF+>uLCk3+?g)DUa94_zHqh9UBTV<}2@+sUvV|?Ik~rVc*d7Q6f7# z1Z0ucLKnKE$jEZ66Exw7@`+ooD-ds=SkerpEqhsBfY+eaV(o2|F#ek?Dbp}anW$%^AAfLM7IYN`OJT+kAhE&KNJ^AZ(_8n`*Q zFGkLMi~fKSgi3aCsOkzUoh2G6VxP4+_z`;sxVP^6Lhvg+H2^{Wn+Yj(9TY#8B@d-T zI#yug-r6+~Ju<4;ZOrn`BfFPe_4rq)yhvc|uHNk317evy69sq!$XoFcAd#%e`nH)J zp?fnUTf^jcEQvVGS{_4Y!LKUNYY|moR~1m;u$%9Xz8s#M^pPq>gV zn7%S_$2~bk{*t9F>uX46=f*iqqZftu=P`G`7>imRsL=D?hw96~S>gyX#S1Lb)3CA!mdE z^GgbkcSaKBz6F3f#X4?ZwZF`8xEjVMZ%PG31fXh+c3N@gH?9sV0rUlIj_o5(LOFf~ z>D>l}W@n!+8Zik8v>edqR8|%!)LzqTx^!2$r_jIBwwV)_(3BA$H5989ip3dAdQUSX%@ew%N*? zufXpG1>Ud7tZTN?wL11LI_!)<*#UOPEIOD|GEC?IhWp6Q#g4Q0*d%x%u4M>|!G3tV znbDD-WGOcHq2C_ZtzUggzHdWd0#b#5J*-g({Jr7OW*<{M!esKh4XJ%oT)uFK#c6D` z%E1d(suJyfxmN=|4o51P9C6HmqPANCuQe#%6_PQ`MJQg@T#Z)BmD&Tez70f>0Xs=c zmGSKrQ$=Ea&SrYYnxG07L?BQrFc*^E+f#8c*l#a5?Lw@hP&^V2Hhpq^>k1aFb~4#@ z=p`vNCfVdG>|Z{^>i?|#FycN{-%8EGmeU&0RbkwpeC)9Kf)+v_`-EDss@ZqO3S9dA z+n~0LAZcf~iI7ydJi(#D9S$0_@px;Kr33M*LJtsw`cJGRITIi023o;Z;X^CgCrUgn zp=6dkb0-eA97|)XKR|8l7P;k?iY|pvzjwc~G!DRl;ifngzb=;M(*i?A+^Z`H8lwY6 zQV8fqbN-+w#(x!qZ0zLSDG_E}c7QH5E9L8ZAuj8jQXx03xM*Rrat2ee$m!qASs&8S z4049Z6VLB@O<6eS+K!S^|)Dz4av_(^Khr_OG#0Q`s=H2m0 z92s@t1JUuUO|mkLNXwJyO14sKNzAGOTb0P}?!M)5ush}`UqAo=qS1d9{jmKq*LvJ@ zzMWG)ln#t-9{S*=9y)^`x1YakJ>kO3-?pBoI62~n3bjgjrYSQsavC8nZ~%yKm|>*U z+O84nXLE)8%Vq6!g7XpVx&b{ntELO1thUcEP+k{{{v-BTJw00Ha-8eQImt>vFOY)` z)G_w>qL4BtqSY7JBFGJN{J+>$p({zzl8%<>qo#B=w#^7ML`qUi3<6fNz$P=@rA$cZ z<>d@2P3A^om}iK9P=kGNyEJ~O+*FoT(&6@eHi8riw=jozAKgXr5?W+s886_CIme3L zgvIfZQ;gPfOJ<6ps~Q`R>B}lm6_#xiv3bL*U6K7w#}&flD;Eys`?PYH+>GWXQQNB&E>e0SO@#P)2xqKwi8s|Eb>E^-Sm48 z!QW@uAP?Fx(6iI~Q$n3;{+pU#g@5wyQe}5zMcZ1qb$^7yBb8^^E$r=1H0;Fr_ zY;E|D7yI`e%4Gi!bpt~qJ$rLI8Z%of%O9t~OQL=g%TsJGH){4U2H^J4jVy4^A;LL> zd(9~FdR<7UG^l_ny6jDg_H(G&nV?q3Y|dodZb9WqY>u*)EYV$;LfXlj?ybEjg2Ns~ z#sFE9uMCl*lq;uY2&4;goA?V;hM>uU`Sft+*UNollbK$+dK$f$vSm1SJ z#1m+;ue=i;6=VXOFj6zr7(q5Xm^HZq#Y5>tF8A}skx+3F9lQ4l0=DW&Tt8Ij+9qzP z2Qdd9Q_vsju#=Kncc!+_3?27Cz&@yFnz>V2D6nZ~TbQ2z3=tIFP}exzK|$voOzFnu z=Kihy+YQ-~aqXe?f8oKXeqLIEdl0UXp1zIgOBxF+gTKhIrS3NwKE=xNt!4{!@Qq-{ zaNaw)2EtO11it4ACgeVmimu@7!I`feytp-pXVr~+n~e>~6RFV+8d*;^2gg@$p;H4K zB#G`a;b$dJQ09VAjI!^g!y@Tuq+2&%%Af4W(H6%bVUr{A-tSo>TdZj3X~zJEzNNE9 zqoWG1iUaU(${ z9s{XSgopj`W}{OK$Jop*>)@*<8$Il;K$>$;NU^ZZI=AHO>m_;o6J+L^U8KTH^!rkx z(Yvs2dS9m^A$J~4#Nq7O-j}}n$WeH*?ylKTGI;Owaq2`V9Coo#s&_9sD$;QRI0sX^ zX-aUo>OLLbR7;L~(7!i4ugeaHnJIRz%4(#)AyQ3X1-dXm3$YR`C&gj4bwzBN;$96F zZfLYr;oLI5Zv56kd_1hL|K>rr1HWuKdc2z9_m7-L@7v^(qp888!~XG0d8*w%p0$TK zAs=Qbd{%W*IdiOOZG7MbtP{}{tTJ9xHR!bO>e<{ha5w_-x6VZ;P+dmBJ(`@Eaf}(=2EADN z60jTR=7J^#X}YgRn|6a!i>S!Dk=g3eF#-$o+Iv3Oap~_$XyWlox>#54j>`)SAlv$GE746`zkV-{Z)r3dny z;00bZ-D4R=?%63Qd#$2Jq@i3WuYj}ajt~~U<>ru3Tj;ALYf!yTbqHT|t`Q5Id)uz! z5a@O6UEw5xsl9Jr4A_*`O2^d>A!X^Br+T*cS;lQxyh+wAsvj7Wc%-1N1eoX9w1)SE zu#BlE+>MyOh`feR;<6|2)m*9RJt#EisVCUgJ5;jfy-c{B^LrD?ibl^)HB@rW`7)L< z&g~U8D-Rr3&21$nJ^3a^kaBD{spmUx-wrolR-U|Fc@Uu4FP#DSgAh$$T3OOqTN?jp zA1mO$U9|EP??E5gZf!(<(tq({6f4}6%3uC?m`h))e`SmeBr}`K`d&Tc3`w{_*_uRev0~Wd0Mgi(fPQ-$q-1_0Eseo!`L%;g|3HFK0df z?A?BxIDDM;{0`&)kn2-}|NFs~r!${_JU>;&k3&|EbB^D^6zQKy;eVNWe7c$+hkhOh zyS@V`+Aml0zm9o5UC58)1dn|J-vJooA1vhCH~II9c{*wI$Me$_{Ma!6XNSOu^OF_) z4?_%3x&PR~{MeNL9ma8g#{Gw`<-a)Lr>*(_d496_|JWAz=eKSl_y>IdWw-RxxBjue z?a$oTNdE!%f7yuml>3ieD~~;N-yx3dA8`M-9d%FH|JcLuXOrin{s-*;i$4yCj|S;4>PocOaJ{_&jiv3KG-z|j4Q*MHqf@l@PD9&i2G)?Ar>wSfQbaP=wo z9}As-j<-Nqf5rWOI8b}KgdeMUj}_JL;LQF1E#ZHwul~yJ9;=7n0gV^n-_#O+Zq84V zfj`Lp5kCKzC;d@Ne2Ray>c{HhcPM;H{=cd<{`q_Pu~hb0ZTt>Ue80=+kC%DE?cdfO zpW4ZfMV!Y{+;=eH2l#Iab59xkSUvf3RwX9*$l%*Oo&UZv^pwqy^@Yb$%y*y@`p)KG z7G|C@`7uX-ELD65dtrcoRk(Ph{4?kLnB#wkSP_7KoAHA@oaqAq5Iy`HKZN|N4+H=J F{tryo*QNjf diff --git a/libs/fantasy-0.4.10+1.19.4.jar b/libs/fantasy-0.4.10+1.19.4.jar deleted file mode 100644 index e528d8f904da27b74a4f10228274c2fa49d2d4b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43408 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 diff --git a/src/main/java/skylands/command/BanCommands.java b/src/main/java/skylands/command/BanCommands.java index bcb235c..e9b3b52 100644 --- a/src/main/java/skylands/command/BanCommands.java +++ b/src/main/java/skylands/command/BanCommands.java @@ -3,12 +3,9 @@ import com.mojang.brigadier.CommandDispatcher; import com.mojang.brigadier.arguments.StringArgumentType; import me.lucko.fabric.api.permissions.v0.Permissions; -import net.fabricmc.fabric.api.dimension.v1.FabricDimensions; import net.minecraft.command.argument.EntityArgumentType; import net.minecraft.server.command.ServerCommandSource; import net.minecraft.server.network.ServerPlayerEntity; -import net.minecraft.util.math.Vec3d; -import net.minecraft.world.TeleportTarget; import skylands.logic.Member; import skylands.logic.Skylands; import skylands.util.Texts; @@ -82,7 +79,7 @@ static void ban(ServerPlayerEntity player, ServerPlayerEntity banned) { Worlds.getIsland(banned.getWorld()).ifPresent(isl -> { if(isl.owner.uuid.equals(island.owner.uuid)) { banned.sendMessage(Texts.prefixed("message.skylands.hub_visit")); - FabricDimensions.teleport(banned, Skylands.instance.server.getOverworld(), new TeleportTarget(Skylands.instance.hub.pos, new Vec3d(0, 0, 0), 0, 0)); + Skylands.instance.hub.visit(player); } }); } diff --git a/src/main/java/skylands/command/CreateCommand.java b/src/main/java/skylands/command/CreateCommand.java index 0d00147..c1fcbe9 100644 --- a/src/main/java/skylands/command/CreateCommand.java +++ b/src/main/java/skylands/command/CreateCommand.java @@ -32,7 +32,6 @@ static void run(ServerPlayerEntity player) { } else { Island island = islands.create(player); - island.onFirstLoad(); if(Skylands.config.teleportAfterIslandCreation) { island.visitAsMember(player); } diff --git a/src/main/java/skylands/command/HubCommands.java b/src/main/java/skylands/command/HubCommands.java index 0dea60c..95fa415 100644 --- a/src/main/java/skylands/command/HubCommands.java +++ b/src/main/java/skylands/command/HubCommands.java @@ -2,14 +2,12 @@ import com.mojang.brigadier.CommandDispatcher; import me.lucko.fabric.api.permissions.v0.Permissions; -import net.fabricmc.fabric.api.dimension.v1.FabricDimensions; import net.minecraft.command.argument.BlockPosArgumentType; import net.minecraft.server.MinecraftServer; import net.minecraft.server.command.ServerCommandSource; import net.minecraft.server.network.ServerPlayerEntity; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Vec3d; -import net.minecraft.world.TeleportTarget; import skylands.logic.Skylands; import skylands.util.Texts; @@ -43,7 +41,7 @@ static void init(CommandDispatcher dispatcher) { static void visit(ServerPlayerEntity player, MinecraftServer server) { player.sendMessage(Texts.prefixed("message.skylands.hub_visit")); - FabricDimensions.teleport(player, server.getOverworld(), new TeleportTarget(Skylands.instance.hub.pos, new Vec3d(0, 0, 0), 0, 0)); + Skylands.instance.hub.visit(player); } static void setPos(BlockPos pos, ServerCommandSource source) { diff --git a/src/main/java/skylands/command/KickCommand.java b/src/main/java/skylands/command/KickCommand.java index 1939eb1..ee51d3c 100644 --- a/src/main/java/skylands/command/KickCommand.java +++ b/src/main/java/skylands/command/KickCommand.java @@ -2,12 +2,9 @@ import com.mojang.brigadier.CommandDispatcher; import me.lucko.fabric.api.permissions.v0.Permissions; -import net.fabricmc.fabric.api.dimension.v1.FabricDimensions; import net.minecraft.command.argument.EntityArgumentType; import net.minecraft.server.command.ServerCommandSource; import net.minecraft.server.network.ServerPlayerEntity; -import net.minecraft.util.math.Vec3d; -import net.minecraft.world.TeleportTarget; import skylands.logic.Skylands; import skylands.util.Texts; import skylands.util.Worlds; @@ -45,7 +42,7 @@ static void run(ServerPlayerEntity player, ServerPlayerEntity kicked) { kicked.sendMessage(Texts.prefixed("message.skylands.kick_visitor.kick", map -> map.put("%owner%", player.getName().getString()))); kicked.sendMessage(Texts.prefixed("message.skylands.hub_visit")); - FabricDimensions.teleport(kicked, Skylands.instance.server.getOverworld(), new TeleportTarget(Skylands.instance.hub.pos, new Vec3d(0, 0, 0), 0, 0)); + Skylands.instance.hub.visit(kicked); } else { player.sendMessage(Texts.prefixed("message.skylands.kick_visitor.fail", map -> map.put("%player%", kicked.getName().getString()))); diff --git a/src/main/java/skylands/event/PlayerConnectEvent.java b/src/main/java/skylands/event/PlayerConnectEvent.java index 82a6b97..7373dc8 100644 --- a/src/main/java/skylands/event/PlayerConnectEvent.java +++ b/src/main/java/skylands/event/PlayerConnectEvent.java @@ -1,18 +1,16 @@ package skylands.event; -import net.fabricmc.fabric.api.dimension.v1.FabricDimensions; import net.minecraft.server.MinecraftServer; import net.minecraft.server.network.ServerPlayerEntity; import net.minecraft.stat.Stats; -import net.minecraft.util.math.Vec3d; -import net.minecraft.world.TeleportTarget; -import skylands.logic.Island; import skylands.logic.Member; import skylands.logic.Skylands; import skylands.util.Texts; import skylands.util.UpdateChecker; import skylands.util.Worlds; +import java.util.Set; + @SuppressWarnings("unused") public class PlayerConnectEvent { @@ -49,7 +47,8 @@ public static void onJoin(MinecraftServer server, ServerPlayerEntity player) { if(!island.isMember(player) && island.isBanned(player)) { player.sendMessage(Texts.prefixed("message.skylands.ban_player.ban", map -> map.put("%owner%", island.owner.name))); player.sendMessage(Texts.prefixed("message.skylands.hub_visit")); - FabricDimensions.teleport(player, server.getOverworld(), new TeleportTarget(Skylands.instance.hub.pos, new Vec3d(0, 0, 0), 0, 0)); + var pos = Skylands.instance.hub.pos; + player.teleport(server.getOverworld(), pos.getX(), pos.getY(), pos.getZ(), Set.of(), 0, 0); } }); diff --git a/src/main/java/skylands/event/ServerStartEvent.java b/src/main/java/skylands/event/ServerStartEvent.java index 5921efe..696356a 100644 --- a/src/main/java/skylands/event/ServerStartEvent.java +++ b/src/main/java/skylands/event/ServerStartEvent.java @@ -2,7 +2,6 @@ import net.fabricmc.loader.api.FabricLoader; import net.minecraft.server.MinecraftServer; -import net.minecraft.text.Text; import skylands.logic.Skylands; public class ServerStartEvent { diff --git a/src/main/java/skylands/logic/Hub.java b/src/main/java/skylands/logic/Hub.java index c17b4d6..88d3fbc 100644 --- a/src/main/java/skylands/logic/Hub.java +++ b/src/main/java/skylands/logic/Hub.java @@ -1,8 +1,11 @@ package skylands.logic; +import net.minecraft.entity.player.PlayerEntity; import net.minecraft.nbt.NbtCompound; import net.minecraft.util.math.Vec3d; +import java.util.Set; + public class Hub { public Vec3d pos = Skylands.config.defaultHubPos; public boolean hasProtection = Skylands.config.hubProtectedByDefault; @@ -24,4 +27,8 @@ public void writeToNbt(NbtCompound nbt) { hubNbt.putBoolean("hasProtection", this.hasProtection); nbt.put("hub", hubNbt); } + + public void visit(PlayerEntity player) { + player.teleport(Skylands.instance.server.getOverworld(), pos.getX(), pos.getY(), pos.getZ(), Set.of(), 0, 0); + } } diff --git a/src/main/java/skylands/logic/Island.java b/src/main/java/skylands/logic/Island.java index 0870e7e..5b1a5b9 100644 --- a/src/main/java/skylands/logic/Island.java +++ b/src/main/java/skylands/logic/Island.java @@ -1,6 +1,5 @@ package skylands.logic; -import net.fabricmc.fabric.api.dimension.v1.FabricDimensions; import net.minecraft.block.Block; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.nbt.NbtCompound; @@ -16,7 +15,6 @@ import net.minecraft.util.math.Vec3d; import net.minecraft.util.math.random.RandomSeed; import net.minecraft.world.Difficulty; -import net.minecraft.world.TeleportTarget; import net.minecraft.world.biome.BiomeKeys; import net.minecraft.world.dimension.DimensionTypes; import net.minecraft.world.gen.chunk.FlatChunkGenerator; @@ -29,10 +27,7 @@ import xyz.nucleoid.fantasy.RuntimeWorldHandle; import java.time.Instant; -import java.util.ArrayList; -import java.util.List; -import java.util.Optional; -import java.util.UUID; +import java.util.*; public class Island { MinecraftServer server = Skylands.instance.server; @@ -49,7 +44,10 @@ public class Island { public Vec3d visitsPos = Skylands.config.defaultVisitsPos; public boolean hasNether = false; public long seed = 0L; - + /** + * Mark indicates that this island was just created and wasn't visited yet + */ + boolean freshCreated = false; public Instant created = Instant.now(); public Island(UUID uuid, String name) { @@ -70,6 +68,7 @@ public static Island fromNbt(NbtCompound nbt) { island.created = Instant.parse(nbt.getString("created")); island.locked = nbt.getBoolean("locked"); island.seed = nbt.getLong("seed"); + island.freshCreated = nbt.getBoolean("freshCreated"); var spawnPosNbt = nbt.getCompound("spawnPos"); double spawnPosX = spawnPosNbt.getDouble("x"); @@ -107,6 +106,7 @@ public NbtCompound toNbt() { nbt.putString("created", this.created.toString()); nbt.putBoolean("locked", this.locked); nbt.putLong("seed", this.seed); + nbt.putBoolean("freshCreated", this.freshCreated); NbtCompound spawnPosNbt = new NbtCompound(); spawnPosNbt.putDouble("x", this.spawnPos.getX()); @@ -242,13 +242,20 @@ public ServerWorld getWorld() { public void visitAsMember(PlayerEntity player) { ServerWorld world = this.getWorld(); - FabricDimensions.teleport(player, world, new TeleportTarget(this.spawnPos, new Vec3d(0, 0, 0), 0, 0)); + player.teleport(world, this.spawnPos.getX(), this.spawnPos.getY(), this.spawnPos.getZ(), Set.of(), 0, 0); + if (this.freshCreated) { + this.onFirstLoad(); + this.freshCreated = false; + } } public void visitAsVisitor(PlayerEntity player) { ServerWorld world = this.getWorld(); - FabricDimensions.teleport(player, world, new TeleportTarget(this.visitsPos, new Vec3d(0, 0, 0), 0, 0)); - + player.teleport(world, this.visitsPos.getX(), this.visitsPos.getY(), this.visitsPos.getZ(), Set.of(), 0, 0); + if (this.freshCreated) { + this.onFirstLoad(); + this.freshCreated = false; + } Players.get(this.owner.name).ifPresent(owner -> { if(!player.getUuid().equals(owner.getUuid())) { owner.sendMessage(Texts.prefixed("message.skylands.island_visit.visit", map -> map.put("%visitor%", player.getName().getString()))); diff --git a/src/main/java/skylands/logic/IslandStuck.java b/src/main/java/skylands/logic/IslandStuck.java index d313c45..118d15d 100644 --- a/src/main/java/skylands/logic/IslandStuck.java +++ b/src/main/java/skylands/logic/IslandStuck.java @@ -5,6 +5,8 @@ import org.jetbrains.annotations.Nullable; import skylands.SkylandsMod; +import java.time.Instant; +import java.time.temporal.ChronoUnit; import java.util.ArrayList; import java.util.Optional; import java.util.UUID; @@ -17,6 +19,7 @@ public Island create(PlayerEntity player) { if(island.owner.uuid.equals(player.getUuid())) return island; } var island = new Island(player); + island.freshCreated = true; this.stuck.add(island); return island; } @@ -71,6 +74,7 @@ public boolean hasIsland(@Nullable UUID playerUuid) { public void readFromNbt(NbtCompound nbt) { NbtCompound islandStuckNbt = nbt.getCompound("islandStuck"); int size = islandStuckNbt.getInt("size"); + Instant inst = Instant.now(); for(int i = 0; i < size; i++) { NbtCompound islandNbt = islandStuckNbt.getCompound(String.valueOf(i)); Island island = Island.fromNbt(islandNbt); @@ -78,12 +82,17 @@ public void readFromNbt(NbtCompound nbt) { this.stuck.add(island); SkylandsMod.LOGGER.info("Loading " + island.owner.name + "'s Island..."); island.getWorld(); + if(island.hasNether) { SkylandsMod.LOGGER.info("Loading " + island.owner.name + "'s Nether..."); island.getNether(); } } } + if (stuck.size() > 0) { + SkylandsMod.LOGGER.info("All Islands got successfully loaded in " + ChronoUnit.MILLIS.between(inst, Instant.now()) + " ms!"); + } + } public void writeToNbt(NbtCompound nbt) { diff --git a/src/main/java/skylands/mixin/entity/ServerPlayerEntityMixin.java b/src/main/java/skylands/mixin/entity/ServerPlayerEntityMixin.java index abe9cfb..a977d8f 100644 --- a/src/main/java/skylands/mixin/entity/ServerPlayerEntityMixin.java +++ b/src/main/java/skylands/mixin/entity/ServerPlayerEntityMixin.java @@ -1,16 +1,45 @@ package skylands.mixin.entity; +import com.mojang.authlib.GameProfile; +import net.minecraft.entity.player.PlayerEntity; import net.minecraft.registry.RegistryKey; import net.minecraft.server.network.ServerPlayerEntity; import net.minecraft.server.world.ServerWorld; +import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.Redirect; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; +import skylands.logic.Skylands; +import skylands.util.WorldProtection; import skylands.util.Worlds; +import java.util.Set; + @Mixin(ServerPlayerEntity.class) -public abstract class ServerPlayerEntityMixin { +public abstract class ServerPlayerEntityMixin extends PlayerEntity { + + public ServerPlayerEntityMixin(World world, BlockPos pos, float yaw, GameProfile gameProfile) { + super(world, pos, yaw, gameProfile); + } + + @Inject(method = "tick", at = @At("TAIL")) + void tick(CallbackInfo ci) { + ServerPlayerEntity player = ServerPlayerEntity.class.cast(this); + + if(!WorldProtection.canModify(world, player)) { + if(player.getPos().getY() < -74) { + Worlds.getIsland(world).ifPresentOrElse(island -> { + var pos = island.spawnPos; + player.teleport(island.getWorld(), pos.getX(), pos.getY(), pos.getZ(), Set.of(), 0, 0); + }, () -> { + Skylands.instance.hub.visit(player); + }); + } + } + } @Redirect(method = "moveToWorld", at = @At(value = "INVOKE", target = "Lnet/minecraft/server/world/ServerWorld;getRegistryKey()Lnet/minecraft/registry/RegistryKey;")) public RegistryKey moveToWorld_redirectRegistryKey(ServerWorld instance) { diff --git a/src/main/java/skylands/mixin/world/protection/LivingEntityMixin.java b/src/main/java/skylands/mixin/world/protection/LivingEntityMixin.java index e607fda..5dbefe9 100644 --- a/src/main/java/skylands/mixin/world/protection/LivingEntityMixin.java +++ b/src/main/java/skylands/mixin/world/protection/LivingEntityMixin.java @@ -1,19 +1,15 @@ package skylands.mixin.world.protection; -import net.fabricmc.fabric.api.dimension.v1.FabricDimensions; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityType; import net.minecraft.entity.LivingEntity; import net.minecraft.entity.damage.DamageSource; import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.util.math.Vec3d; -import net.minecraft.world.TeleportTarget; import net.minecraft.world.World; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; -import skylands.logic.Skylands; import skylands.util.Texts; import skylands.util.WorldProtection; @@ -32,12 +28,6 @@ void damage(DamageSource source, float amount, CallbackInfoReturnable c if(self instanceof PlayerEntity player) { if(!WorldProtection.canModify(world, player)) { player.sendMessage(Texts.prefixed("message.skylands.world_protection.damage_take"), true); - if(source.equals(world.getDamageSources().outOfWorld())) { - player.sendMessage(Texts.prefixed("message.skylands.hub_visit")); - FabricDimensions.teleport(player, world.getServer().getOverworld(), new TeleportTarget(Skylands.instance.hub.pos, new Vec3d(0, 0, 0), 0, 0)); -// var pos = island.get().spawnPos; -// player.teleport(pos.getX(), pos.getY(), pos.getZ()); - } cir.setReturnValue(false); } } diff --git a/src/main/resources/data/skylands/structures/nether_island.nbt b/src/main/resources/data/skylands/structures/nether_island.nbt index 33be6af22e04f68460f8a8746df8bfaf3e054e72..6a1f68b45c0bab5d0a057596430169add5bb527f 100644 GIT binary patch literal 14571 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 diff --git a/src/main/resources/data/skylands/structures/start_island.nbt b/src/main/resources/data/skylands/structures/start_island.nbt index ede9d42fd9244cb023e028adc8f536ef62042085..a6bc324db50d7d3004f8a14f23d8aec678136c75 100644 GIT binary patch literal 15825 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 literal 15974 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 HpZEU(5*3_B