From d91ead3af5dca7ef1d78bdefeecf65d1c463cb88 Mon Sep 17 00:00:00 2001 From: opekope2 Date: Mon, 28 Aug 2023 12:29:27 +0200 Subject: [PATCH 01/15] Create extra project --- Extra/build.gradle.kts | 90 ++++++++++++++++++ Extra/gradle.properties | 11 +++ .../resources/assets/optigui-extra/icon.png | Bin 0 -> 41735 bytes Extra/src/main/resources/fabric.mod.json | 26 +++++ settings.gradle.kts | 1 + 5 files changed, 128 insertions(+) create mode 100644 Extra/build.gradle.kts create mode 100644 Extra/gradle.properties create mode 100644 Extra/src/main/resources/assets/optigui-extra/icon.png create mode 100644 Extra/src/main/resources/fabric.mod.json diff --git a/Extra/build.gradle.kts b/Extra/build.gradle.kts new file mode 100644 index 00000000..983dfc5f --- /dev/null +++ b/Extra/build.gradle.kts @@ -0,0 +1,90 @@ +plugins { + id("fabric-loom") + kotlin("jvm") +} + +evaluationDependsOn(":OptiGUI") +evaluationDependsOn(":Api") +evaluationDependsOn(":Properties") + +base { archivesName.set(project.extra["archives_base_name"] as String) } + +version = project.extra["mod_version"] as String +group = project.extra["maven_group"] as String + +repositories { + mavenLocal() +} + +dependencies { + minecraft("com.mojang", "minecraft", project.extra["minecraft_version"] as String) + mappings("net.fabricmc", "yarn", project.extra["yarn_mappings"] as String, classifier = "v2") + modImplementation("net.fabricmc", "fabric-loader", project.extra["loader_version"] as String) + modImplementation( + "net.fabricmc", "fabric-language-kotlin", project.extra["fabric_language_kotlin_version"] as String + ) + + modImplementation(fabricApi.module("fabric-events-interaction-v0", project.extra["fabric_version"] as String)) + modLocalRuntime("net.fabricmc.fabric-api", "fabric-api", project.extra["fabric_version"] as String) + + modImplementation(files(rootDir.resolve("lib/lilac-api-1.0.0-alpha.1-dev.jar"))) + modLocalRuntime(files(rootDir.resolve("lib/lilac-1.0.0-alpha.1-dev.jar"))) + + localRuntime(project(":OptiGUI", configuration = "namedElements")) + implementation(project(":Api", configuration = "namedElements")) + implementation(project(":Properties", configuration = "namedElements")) + + modImplementation(files(rootDir.resolve("lib/quickshulker-1.4.0-1.20.jar"))) + modLocalRuntime(files(rootDir.resolve("lib/shulkerutils-1.0.4-1.19.jar"))) + modLocalRuntime(files(rootDir.resolve("lib/kyrptconfig-1.5.4-1.20.jar"))) + localRuntime("org.apache.commons", "commons-text", "1.10.0") + localRuntime("org.ini4j", "ini4j", "0.5.4") +} + +tasks { + val javaVersion = JavaVersion.toVersion((project.extra["java_version"] as String).toInt()) + + withType { + options.encoding = "UTF-8" + sourceCompatibility = javaVersion.toString() + targetCompatibility = javaVersion.toString() + options.release.set(javaVersion.toString().toInt()) + } + + withType { + kotlinOptions { + jvmTarget = javaVersion.toString() + } + } + + jar { + from(rootDir.resolve("LICENSE")) { + rename { "${it}_${base.archivesName.get()}" } + } + } + + processResources { + filesMatching("fabric.mod.json") { + expand( + mutableMapOf( + "version" to version, + "fabricloader" to project.extra["loader_version"] as String, + "fabric_language_kotlin" to project.extra["fabric_language_kotlin_version"] as String, + "java" to project.extra["java_version"] as String + ) + ) + } + filesMatching("*.mixins.json") { + expand(mutableMapOf("java" to project.extra["java_version"] as String)) + } + } + + java { + toolchain { + languageVersion.set(JavaLanguageVersion.of(javaVersion.toString())) + } + sourceCompatibility = javaVersion + targetCompatibility = javaVersion + withSourcesJar() + } +} diff --git a/Extra/gradle.properties b/Extra/gradle.properties new file mode 100644 index 00000000..2c20ad79 --- /dev/null +++ b/Extra/gradle.properties @@ -0,0 +1,11 @@ +########################################################################## +# Standard Fabric Dependencies +# Check these on https://fabricmc.net/develop/ +minecraft_version=1.20.1 +yarn_mappings=1.20.1+build.1 +# Fabric API +fabric_version=0.87.0+1.20.1 +########################################################################## +# Mod Properties +archives_base_name=optigui_extra +########################################################################## diff --git a/Extra/src/main/resources/assets/optigui-extra/icon.png b/Extra/src/main/resources/assets/optigui-extra/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..45717d26c1b19242078a4298531c9f2d89a9fe26 GIT binary patch literal 41735 zcmeHw3tUs>|36*S@Ao zLJ$Hn0^~B5R}zJRIHtfh6=A?+Q^q)KXFK~p=L{4H&Az$c@BjM$@)_%UqLr-tYm+0?nlffRd6YDPN>AmzS#d8bEBaplxCYBHy zu`^@=DIq3gK}dW=sGeSYThylJH_tD4O&#{#!Q)@%cm8xq5SMrmzj1xb?;WozKi%Vy z&Cb$4bM(#0w+<(H{&4(K>e3bb!{+@?d!{?6%-up<*fBP5<-ZZ}^U-{MM%=|s;$8C% zIq&$Wcl^HMbgwDxtqhx5{}_hem9ig}9k;>Htak58el7EdWj7tynJ6NEmr%a=xa-&- z!3HyTwFcFHv^FSI{{8!5r;Z=^`m55ZtoBz^?7geg$`dq{fYf}y)0=-jp7l-OHDljZ zZj1C&wuNtL@o@gnv6FO*Ht0g%`Vh-0n-!n5g&a46t&g}(5}jT%YnEcr)%hN7v8i3n zOHB=XJKK+5P6BEPolqYUF{EHrACBLio$;ml^j9=Tzkc)D^<5cp9~E6lnF1%x`JhqX z*U7e|`ts1rhx`IxoBQ2S=Jm~+Wy_bkY_fw&N=P-+q4K-0X#OeDhQ1(BE)PUirrC zm7bqpKgVxy|1rr2`$_e!Rp;L~nS;NsGPAn<%FEOHPG&H_SrwXJ?IaD~DC+;Rz)Qnt z7MlD(atm+TTh~yt`Hg@#=ld_c`?hrIl!ouK-f)^FA^-f@?J2p2A#|@}rl)tLA75sa zIeX^R$lmu>?6`5&=E(hTV%*RDmRoD)-M#lt+(qy5aBrpOtjRwPojZ0dggh%Wee1&T zcV=(>(DkdAY@;^$orpCm=#+k}SaiqoLfLmq4laq^((@s%PoEwpKDqxued^2ahtr2@ zpn&^?^Ux6yZC-)^vaoVGo9izZ%?!NfJXloFO4RE&jG=pRzn^#J#@@!d8cENGr#6+F zrG8zpS#i>a)bXj!SnS?Rlj2t#fkvW-?6#U5HU&0Mah zr*9bn!eNWsdb?mklxg60LQsfld{hkZ3q3stTzpJmaAXK+K~P9oM6}~VX*GM{f{5*o z3w@TmnY+a}hlEFbPKgcKOxfTWOo300M8s3 zhLcD!c4lT|GTD^8%#;utW@ce)Yink1X=Z6@0*){tCPb40<4vN8i_lYO&#@|m7#s_n zIf4+q06k}55Fw7_xNsqOeZlDXqGH_K9-cm$IHCoh53~5d7&8k~bF-)@v$5|Wl2-2q zCm9*ggzq4Ff~;cZ5ke%y#RiA0-W?K6S~T_)+k+pzKPE1ACnnDJV6%{&AyME^BKTB` z$3D_!t=qc^^A^RCerOaFm;y z-6}$G96G$Us~i`ipKrIF5FD}H4%@V`2o15YTxM;ue3?~<$=q#FS8nR3isFu;FWYl` zv{)9r%-r0{cDXfns_nscYY4GXfxw&*QGsD0W--xW*bAt_?LOPM)^VYwsrjQl8+Qhh zLctpx7p{+pj*EZvf@efj$YxR?s!fX(Hs;H0t*llox3;peST^R}-XXC>;ECutEzC_v zq(RMM2ZRBN4MhDEoB%s5kj2h9HYAWli1j28b~-LZhqM5F=fjuXKsap=Bn7StB!z&J znp-ZjGqN(&ZXL17mdtQCP6xI1J!HcoIZ?MuPofze?hAbXghSpXgOPw4c($V1CH<1>^`)_yQE>`+POiKu>Rh-r7~4dB(ThYj4*Dty-)jU|978#nollXK1ZnzHDo!?Pm!`0_eqZC!G#4#)qvVx zZCi{W9ZX~oUfs(94~WYg^VFT8Y+=GJOk^+*2j#I75D0uQ_VecSKSs9Re?D8~u-Zw! zSEQJ0C)wR@st#Ji%z@vrEAFH9DTZi9c9PD{;67@vG^J5SV6g!;FK2-Ke&hQav@0o;a!W{`Dsp=nw~VG(IK-FR4+}}4(yF{de3(& z$T#k`B)I2H0dz{_n_DoMnPWgpp`W@hf3l(;4(kGwYxsfbg}~*z}Zx z@iU*KD1Gb&XW)542Sg9$X2H*EfzNsC!BD(It&iWC>b$Iyf+HQmp13d^;k%ncH`L?* z;#rTz#6$v);=X)IJF1oMJm;;QOeVvuG6u3Bb?|t+rd?iTcWu{{*uzK_wdV{PAXOs) zax!bwa8C>Y^Z+4Khf&Zk`74oPq(-DTrmCsC$oYF`!>L)(4BgrGG^_0u zAMSNo9Q32Cfi1BZMg)1!sIMBC4i(nk`CzzqV8(6;7&fjKuCBT%mG(Ws;~qD!>phOq zA6lQ&drtZGQPwV(%(uH=m%`Y8u$o_f$~r!a^C2&j#^Bdo7aycoGtA1~J|G*A3BULV(9?gdr@?)I;`m-;OjKcrlbD(!L_u4mw2Z$1;#Mtg} z*>K(V$GJ3E0Fmp|6seU-DNaj%y`n{Pp0ZJQ}sUjx_tQM(RuXOU-<(43=ni5Odp*B z{n31MiuUt!djI&qZ#S#yn$HXk(>w}_c~)*qc?SH7A$8~`Si1NLV>^Hj?DELijgOi= zpK(kmS&!R>4HdubT5=$}%APFQ+n0VaqRZ(7+*(`fu`WM4H1uR&ZBFy1{OCP3K5>qU zL%3&p!16t#3jxMjX!0MZUct}bnR4896nz#?TA*Jc_k%c$o{=~UbVvW z2TPu8?8lsd94iw|`vUuf=V#_I>ZKU>@6R}Ssw!YfZmPUbN_}S!J+H9%83zZvu~jx{ zTr50E7i0W?@*i4(CRW;*1M`$>B+(TA#gY#_fjgoK+<{{kYxsBFk!N{Wc5@7#^`oA7 zOpgv6T(>0q98r`tgPWWJ6$IQ0Cta_vEh|B74zJNfH&>mE*p@(l%$!eAtWSzggNGY% zA5p_a9iJ~bkV$XKJ?!0@)VkcQrJknEEoc-!{egF^{Wqy)jL%J!tWFr1eA4x6i?zqP zwGXC5h@Gks)rf^TLO0CVqyNX5o+CTN#_QC~$NC^xzwO4E!*3Ntrk_lu=MIf}}k(Y_&9nL72qRF4hU zXOPwONIbs9DytN&86w*&qe{~1GQm_EELlk-&Y1Zh-Rcfxy}qx@c!fnpV#ApSiaK0c ztTO3ze|9Yn5xHhpK?16oCs`_BZREpJwow7~&bP(|0YU_!=SN3Jn|hL!gS`dNn>15! zOi_AbUKZtJPjXDm8wK{n?)CYSdpAo5$lt5fVy5Z5tJDLLW@3htDf2;&u^aKC z5}A*Nh|~iu2!sE_X2A8n=uRY0)5}l_orNwu241O4-w|BBx}H19B`0Sie>lFRMSn5H zC>M33ZW33%|9oJ6bWqTVKH`#GPgZTQNE(KNx8_ThaTs=<5VBdcGOit(oL$9Y0rk{5 z4V}J4d{>{V?(<IbN(f!y2@PI2lwD<<^^F>5j#De$o#PJSkDj8ifyz?Z z!FSz({N)Kq-^5Dk{DIvjozjR`v}gu#YU%btko*z3E-MZz{B}6WGp@6Tk~{ZgeAD^c zEbk$cToQ#D=WF zy#?Yp|0TIQ{9CNNc!e}05r=6cjzyfHG*J)_>I05YiA&~7`w1%d{Al`aJI{);YP?** z6+lO)F@bZ$s*?*K3pk89o!gJ}+ZPQcJ}}elSIr9+N>%qWzrZzVj;C1josWYKzy@qFq?%XuU$Cri+JE4Z5uK$0)b=xjTL{`$+7K`bkGT zRH;sX#Ml6ZxV7}M+bfBjgK@SDGsd0E-b1wRb0X)su*ufWaYXg0jr=}k(MG=N9*Ik< zm@>tSM@1@2v#SbuguQ*H{#)`XMw@)AVKhmwl->JBaztBNKr3)}Ah0bX6U!3dg;W4% z*>wvTLd9+SnZ6@A!hxg_D|IXRprqp_A*9n|9aoOxZ6%7gh2>eqs7#K~IBR-p180K| ztF}mPy)rKBYdBheW`Uq?;95|AbV$^)-R$bqbFa$tR>m3HQ~Oo?-R+l4RkU9T><8tT zsB^#X4$!m!lMjf1tJ?u#vCIhSep`bu#)brT$#EbaS~S}}O?_CA(>v%#ApCDy?THTDwIeX__Gb-~T$cn#{erf+`o9jT zTLn-go?`1+;b@ajp#gac;MM>_BpK%kC2HCZv4ihXB^{+_@<-%%Onj76V; z&3p68ek1gYmv;TySKG|?jRGQNS9RrHEP#uDiSp)?gTqQ%Dmg#0!$GMka(HN%Lm;h! z(uxYHWNL91`VUkV5YI(?^+tZ`6@x+vRjy1fpgHvQrUkstjS|*)FZUV9(_~&ibXssJ zWd=124SlJ#M}1(P5eetNPD=#uc~UxLH^w7)h>$3fgP9B=_gx z#Ot*wK(PF1G{nfg=T>rQB2?JqOn@Rr#N3S7k&OHqbj(y(ivVo5bkuUdBA69{+&=9` z&o*pf6M8GJf_mhbazf;C9THId5f#kUIPKMC<>*=NHtXZLGY@!Ko96EAJHhjz3iFHc z`0KgTrfDrlvnHejaTMw*MTXdY5|RBrBjrb#B%b=sI)TUa#LUpjx=97C_P z9C50)zw~CM^weS)XXw@f6zCZhRL3f?$`71uQ?vZ8G#+lHn{Mqv4TcdPBk&a)HEKFE zZ=k&oS~qApYUJ9!eFY+KlCUS?-M2Fd;4t!A@c&F#T1}^6Dh4{;*9U^mt3-;$euJ=P zPJu5g&IdV|9r2##;GhAP=K&-~^N4&Ti&T#0Nf2qlgAdxur%Wk2X4Fip*bQ}|COw#7 zq*D|5tUFcpMZbJUq*w{Mwx!Sm6)~((QhmDAprC#JTu(kZA;Mxe4Tqn>bsNh2nv>v+ z9NcB()3-4`K<%I2e3_q0!}2* z*?qJI>!NFva2w77N_<`o0Fc%dCFXl7TuUEd`nO zaM4abkhcN=KJ&wqgl&*vnWGJmssB=}IgdFNEpH$dhvgLt2!l>1_MgvI#q|giqA=?L zh{|hFtwt#bwjX1WCwcK1g4L8}cnew=f&BraR(6DqHkuGl%Ahm;1U40w2#vIb$Y76Y zp}0bY+{bd3(_1>t&DOTI{Q5_2B^q<^Hxgf12__Fvz>38u)-%eTvgp03H)^d*v~oM8 zNm=qLlpPw^dOnI(nZesMdQ`tXk6ECE_&06>*dX46G%|702}4x|Qu1mx4zo8q|anX+a`F0mNN1B632l0Qkszs3>YAvbSM^{v_6Ipgx~I zQXzwY>4-G6Orq{9KE#e@E-M4I#@n9|5>?ulkN^+0W02VBoGzKXznQZu1ANv2jLnf$ z|5m;gt1TNuPOiv_IJcJH2UH_H)kx2;2q9inU$Pf`m37{NZy>QtT{PZEXp#W|~wdTzu>_b`2 z*SIXIY#Z9x;k6#B(;0TNZ2<4&5q>`W;~jku*a_s5>?*AGg9gkC$`pef1H>FDovCGR z3UL#Sq*jdPP;LJOsAYBr$}f*GWLf6B9pB60BUx8a`d0Q4g}#a=E#h@?*mzx&H=rhF zpSvBiB@Xbe`KA1DoKfx@YdpAOEf*|9>$^9B4`#o@(=V|XsaIIktII9zC6%9`BtW&boL0+MhV|qfJ9G=Va1O8 z=-+T}?`bpya~NHzOdxH;-_?NccdA7RgA8V7F@@GFTT~^$ zbcGx4)^^M~=4=|SUiI{kv9gam2Ifb^kEk0Wn7MddaIGcd92qEc3J(JnrlRZs zAa+WG|G|j2Znn<<3y03dhD{m!{z>-CWONN$KtRzwo7-v^D6wOnJHzI98>O(lN+yO{+ zlhHpK`e=_?quHwYh4CleSCLdjgaX2&;}V>#ptGqr5DVgmX9)d9pfmO7oRV{tyfGB? z^B2zE(J{K~Lhj*$I4jcfYnW$o?Wtsi8&Wo!DhhA64gzHaX{k+$)ioCqL! zkF;imm(hzZtW6DQ4x)nd$_6Nl5$&kG%?cHs)8Kv zA$JPJ(-!R(K!TYKMW!4dnkkO1aTy?gr7|%!^>&noljf%z8j8Ifvqr@}go8`eKBEio zFjxU}g2w)CM6gF)Rsg$@_{ra8kwYSi`;c-LV|IFVg6yOUH9Y6mqeYC*DF`3wj*>gQ zaQ?4{ftRA3rm~98&hWMON~t(q>n)FOXLh{aAW!SY92IRf{jY|T0u=NE^KcVOhQ^-^ z8HvqFpb+OYbx6+c;&yW9@D04bhQG%IG8n_>J%54Hutk}a8jp2L>yjFaK55w3Jv7sO zB@xI~bj+Gklh02KR={%x3~*BOVb!I=`KV|9HJNCO?uc_9=~3>1Q+1tg3;@J?8K=6+!3d@aafjK{ z&M-8kO@1v_XBW)`^>jEvUE4Y)lN7rns#=gCi$~p#BfpHVfR46-Y*a9xK#a`mqbF#P z0|TfU91|aLbpJ(mf4aCmsU9m6r%kh7Nem8V6@ZDz%!*h+8_%cy*S>@tFcDdJMV4Ke zEH5h%@jKd1Q3UH=`-MJGo=Ph)NRjQ1HZvPo3T31h z2X3{Odi&SqpuuWY0SVf@h#!I^a^(y%1};3ROiv&Cvnu1;fc{sqGBe9!7v)a3S08s> zQZ$zk5@D*%8_IGh1*jZNY891bo8^_Oz=#YoFkD&3VfxPyaw}9V7iA%(`95Ta@2b6$UXKD9?1EqZybq0?h4{?z)lvJi~I$oRes6| z*yVbPQ1gRI0hj66HNjNmdvm8x_Hy@I_j<$Xl9HhWbgk+pAky3E?e-498#CdY8$`OF zH3JBEwu5j*SaG~awoP;Q?<$)&QtX#tVO2(rnVU|P$wv_YR>eV{os-@!!2O6iw$%5I zF0HnC^X8&s@#gRB1*Hv$)AL~65-*WbP3OYjpmhgx(YMkc#t#ZiG7Ch>-_3VNOm_>~ zI3G^K$~XqKhVU@9rVPZNwsq9TpAeKuu51ktZZGL5s3NT981l_>PNNM@= z9(EmV9WzSUm{O-Ufb8$Zs=etWe669V7TO&yX=Ih$mA;&Q@&S1}?X(ssV##C_lxurO zZPq7$6<1TvI)BJ}D5WQXtbcGM{P&c3>B`3F(ho2bg~fv?svrh54M^h ztq0kXhna9dq(sX#iaEulNG@KZ(ny2ql77U&(vS`Y?dd4~-{i_wgk8H%_r2tjBWvoo zv1MfC>~v?M+p++8eB#*!;5*`%d&w)oQtSZy5mnSLB>+4_DHsMRI!1q-wIq8hsMJUu!G-?=1XEW~VQF{kLAms0F}|OzKUycS!Z8X}(B$gx zhl(#&Xi7omr9KdkxiaJ5h`M(oNZ`X5K5yidJpJGrQIX#lOU}>MuR46K{sD?NYnm%F ztO)_Vu?V8Z!I@1R-K`sz@+zn?e)4!iEdm-#{uX>>mtr;3wI41jDiWoA$k23Y_Uu%b zYRbzsNG}_i(#oDTT*{PO0fyFg6OYBH+)S+$X&468cnzZ*U~%S{wV(g0ubW6sgKc)Z zmYfI3fjx{+@=mgvrAb* zAU&9UMGHD`_=*AQpP-FE+F5Fzl6+czizA(X8SN{y-mGnuupMD)S2m*1X!|I(>7$vN zziCY;65;7OIbr=?=7Gts@0Q1Ym3a0Q_B9?d|HF$kk|SdiSt6K*j`~2i)0yAqq-RtP zfWD2Y$p;fy>9*4ab*Yu0JW}o{Sn|f|>`IU>r#4`n)QXDTD^aHg%>>+|w2J^R2Q4u$ z27544ax`dx8dD6uWCRj%S! zQq8O?svPigW$hXGP*cbH`!%4m_0o240O-sDRppzmFR&WJVqCA6&S9mr)g5A&K%ld0 zQif@wqKv-p7APS(+A*RnJcjE=pdE%ww`#7HFc1wSS7~kn@W;|=7cYiHzP706cJ%f} zgcnDodrKBkP@oE+!MF}Dz*nKI>7c#PVpr%*N9hRj@PSnYi{S~p8hVpen-9v+H<=Kt z!kGwgZf4`zkSoH53~MY$58=hai&j9LQZQtvZR*O&@o%O3ZcQ(w2vDq0*S-Z`2*dPPV=JD%Q(6!4AowGFA7EOT07=lG z6)hYA>JJmJF}6c4wfqHGS1VmfBzy3A7uMGwozRECuaf`X{gUevpEetG2HoM0HpmyQ z0e#8Wb%v9fvUqN1oErMi2%D_sl%Mz)Htia-Hs|Tt;=f2ge*W9GQQEqueUgi!w%$Q` zoPR&4@FSOXVfg@XT~BS(+A=1t+zJA)Ql zSvOzk7HHVgx<>om;O0)H=Cjhp@*swhb@V3y`KX6|vMUQ&TV|dN4Rt1l;WIBa!hZKM zj?o!_zlNeUvJDzFGRVS-NeFTohrA-j-vK14X*WYH)m)!`4 z7-_rIx&-H}ix)2zOqmO4e3YZwfcvS3b{H_i%Nsydm@zrAspI-}Pp-&g-6;xfTqr(# zDwL~O8VP45k?0EOtbG>^vnwxOzTDJ-XK4b%CCYoNb{6C2rDtR&@ufa_#;1jyf%l+c zLEDw=N|%)R`??RNNb2Y*x9qH(-pt6zs?7>gw^vuR_o}!7OfV~uwuF%~KP!#`0RJ|W z8}8O64ro3LQhMLFIdw}ze!BCS{$%}awuB|QEp^)U41fI#gA4tvD09>8?Te_iQX-IE z%BR>`fvfMr9x396%<$5HwN0T)rBvUN+RsYQ5Oel*7dsiii$${YiL=Fco{YSEcc|L6 zMpG}m=*N@{0fblvn)R&zonGakVaIKhU9B~rmktjkO*t*5&aSSlOW`;Z%|0>R*FA@D zp?l_#(~O20Mov>3SOa9bu@w|<^;&~J>pi$T1Wv?XpjWiqNMQejd}3uyr!BN16T7HO zTG=w=6#Gn^7%#!XpfhF2j)i2-XSM;q*Y)H_bB}}7mik{)r_G%{e>k;v2>NJ=#Q6!x zLYh${XKFyBZfpN`I#tqE*3_X-zYpfK7;uH4XHZyo?p*Q)k=Yetf|`BhGZa8?5Z1|0 z-4J$Z;9fq+A&Qo!j(g{RSM!9qD*q<-un*%#uUx85L0rNmhgd1W;@;u-a7pv|8*vWWrwQq65<#Lge+RveTu8QJ_{^`n6tHE>^ah%uYi)RR zv?Kx0XmNDiX0)eGYu&jM#FYUeBD?bR=>Tr$XxpXb)kpsdyBdT@fB2e@X$botl1^IvR4!qB%M+UrZ0{j zy#en>8kD?l9rJmLwwZV}xo7!m4zLDJ3*L)OcKra3I5+yjh z()etriEz&nEAko5DO52Za)gOy?C)4c)4`1AScxgkY;D z=a-oY{<3)qqF4ZkwNo2RdA>q+Mi-*ikPr*B_{ei8y@1j`@l8*f1 z4Wcc`Q<+)E_H}m?)*t9Do(BcTSQy6%4T;B{hrhONgAP|D=iOr0ng|P{tlR+CrUvrwr7-@4LTEf zVF2Bz>G$H{YWTF3SojOWq&JJ~eOnil%P`INQtVtY}f7{g2X`BMET4L#qggWCy z9%MdL?Vn7$VrlWNy>xJJ{U;3Oo`sBWWxUp^NDW}ktK*9=83%C^hQr@Tr`pYGH#jL; zTqrmIxJO}$PNx#NPPcB}+=^cB_iKxmK*jn^Y>oc-Fu=k?cvt3L`&vVTsh@s>|BNiC zr$;thk%0%vIN7>0yE3H$HxoFz!_)>7mdYc%m{$#0yR58lyZTB&Dr4WT3Pr^g2O!a( zm`vjFZ`9j6IlY;lLA^am3RW*D-|q*n@7ZEm7K; zw9CRSHGdAC;$+1WUqra_b9a)PI$~_rKTt($_|~Y8;*r`*cooDjW*C?+2Vo8?TBl@J zM)HD0nF)cH0I`~t6*XpTTYcvXTfrv*wP(wlC5VV+O9 z7sM?{+vyn@87L-YPqT9v2GrX?#?sRw z$oxo4@6DSVL;`e~5P6q-J>VyAUf#-;(PJPHn1$4_P=p;j3Q}k3gU$iW&jVV-5pBHu z*uoNuQL_xa!f)cQm=ThV8BDsW5UhXFuf@xqE@gb%Otrqt7 zzKbm^`B6k*;L4p+*0_U76GmWFpK>RF%xXJb&Q%30>GI&m@T3((^5t%w==agQ&p^MN zW|X=>H-uzmr9I%^4me2B#e_57-t=xQP`nJlHlM!}m6_^H| zFrf_a5P8E@!0R za{l?Frk7VY3tWqjf6AfGm=qgu++fq-f}VZ9Pg!y;@m0mwGupp3@y%X%(5m$F)7G~> zWqdmArmq=O6d%aRa>NmLvbEoC_sn0<`SiPltv4_*a5g*B&OhAPFLh6%n{%ONxSUj6 zmYB_J-?<_epu#$5rmK|J^Mo7tur3#-@p6eS7iZ3#87bP}?v8%lGb@C_M7k?-iN^Z+ zks|NBT%tZ_e!~FgfE2Ipm2!AOjhdr5(wJEk$*facJk%zHa~28NN?(-_#~xjb_{=xx z2zI_x_|EnAhQV~ zWjV%e){14-_#qFN{Q zZzRdByT6hoIZ_6C(<-5FRRYb|j{IP|za3QVjx)<_uieuH^Pm#s984X)9nsq%E5Tov zNWJ=zXaZr6rjPJ|p;0}A%+LK+hra{AoHOp@H~u{yC?-AmYDTvwM%1T*8zBaQry>si9{vX*ZUFm`taqYba=7ane; z4fPu568mo*CrP+hl2LnQ>Cjrm#aRsl=U7lSFS4j1mcixCQ`1G1#+-@oE6KXte7^Hq zB~M*UijFG>!qF8gF;lg*w=d1KPl)lbgAjVZwOe%qIHL6CFfs!{xcJ=+DZlj~EuOx~ z4pJ$M)`=P$=fenBct?XM9(Loey)yb8hR32aLN*n%1a%AtKP+O1xIdy;(q#-0lnP?XY$ShNBHOyP!AW zLiU~-uB3^~*uHkqy_+EK)EVcM?$K8wT=3c+wOVPw{wUL)raC?ZDQ<7=?MR$b#)gKh z8JcbtEP8l-)iZyI_M_X>J$>t>pu*Yg2GxkdYHd3qCG<*xnD46S71P*R6WvYBRV?i^ z@;lPVqIgjoLC;Bu^k-GI0u4Y%hVsi!MTwOjvEegb}&AkbNHsaL@$zOJze| zy&c_@&35E?(p}hxk)+Y7T=39--$>^Y9+lZe>BN(L_t2*}mrQ(%MQE|+J{gzZMe~GV zj%Jt#Y^VShXugbQjWEtSQ5H>615%CAo;;G|Vrk*E%0iqU$f6VvD%)swwVi{VX=e4A z__vyc3dNy2@@@qTr7$!(TeDob?ufW9Ng|EWfK=tfRwndzh^wowRpv1rm(~i~E|~L# z>|Cf~P%301_l&`TiQZ!A?M`kJLYG~^A8Ay>Z1t5BY=)+n$*Ac;R8U>JKj-06$>&r^ zAC=kl84aP$);FkR2H|#ZiF1V&xuiLpN{_S!M|`C;|@|aN7=G_louU zIKR}!Oo#X_b`{&W#n43p>c*Zoz882!|E|IC~JJco?NY;s3jTjZA=yWIGCyoH8K-@I8VH-=U18%3j0bl6D zq=7nqU-k1aIlnuDQ2TKvjMSwiA+QLB`g_b^xB^jk3pIj^QoQaoa2gtZ&{61QO2y+w z88@Jj8$UypI>f4{$q5Mw)^*beD>ANCwzhque-d&U?ATG3-h~u&QyPiQ6Jnspqv|bK zrpqW-2e5AEvW3kMZ=38GNNa;4Tk&HxJu3;TeF>&o{jsUnbcul}QfD(8B_*dJjsf!T z5vX~a@1V?AIU%&ijoT}|CKBrq93&+rWgB$#N3RnNL3yijKlQ;qAer&n&NhjoQ2Tav zc4l*Ofq^H&3Xj_q^}Xb39Xj4WY?8)nvU6C6;Ii02GOD+R+%oSyMzoWh9AV+J-eCOy ziZ%t9Q`^5_mh9A>*A2Cb<@~v39a>QO3FJfLH%qNA_Hh3G9^;Z_&$ApHKK{-jJw5$_ zwW~h!1Xm%BY3nVDyi-CGu-4Vb#|QMUWm^R<@;DbE9zX~QnBM9UgN8kq2*WK+;%7<8 zO6qeR`MA*n1VcG1fSbf+t#fD$R|dP9-*5}6_8*pyRD_A^#7Opo+jW`!B<+ULMKf3d zD8NW&@S`3m02eS}?=e1~uy^rvSSF}qxib1P0K;aW88lHMN21ZBEYjYb`f2*YslmOL zbr&5c1=QYKpwGBgsa8ky%m8jyS|jO!#WefDxI(6{+%Gcfh-l(IXWU-G+~*lA<6Q0^ zqQ`Lxz4Snb^1CpD71AU+YzgoA2LuQj9-PZ)I0>lL6;~2_S^AC@+loRf*#(tZGQWvN zG!EghFCaQ3+OAXCK7@F{TMVkpS{=gFz542e#>dqr(%v9_1l9FQvj%k^i?l)8feBJna}z<8YBDGeD1o9bBnoy0Tpg%lL96kPA@zv|2KZnb z`sk%Z|LShz=SFV^H0CTp>EeCVQN0l(iryBwFneV^(8qhmf%Az5XLeeb5V#+JjzktA ztnzF__dfStUtG%k2To56QS1fm_LjN?zbrY02Kqrra3G)rBoMV1o;(P$%qH zoUuT`kR}_}VFSIskejm=^v_Yf9bB$gFIqOCO#o>^JW%ng&zyNjSyjz<(^5f{i7fdS zKh$Nrzn(=n5b!H#v?xVot3hcHN~6ikhSkvq^ogf{9uHtCqEkfj52)7h5Trw{!_pw2 zuxfn=W()~XA~UI$oofgZF;e*~c>G(n4(A$90n#R(j{HoDW-#8PplR+CY^Fgtlg958 zc{`$n&NC4?O2azcF-+@o%;IS@$18@twCbKIe3VD$VvWv$32WE*qQ6UrhV^v30q<@G z%;fwBUtN_u9YIthInK!%OTn^h*d=Y2|11fg(LKUPO<~Y4P z9+)FJgv`_>;YCeLOCu9&?uV8x!REET0E82#$h&Z>q-002$id)$y=ut?Qm$cu5}rq6 z6fNg$WhkA&ijK#eOjOx}scHntDXWcj8K0UdmTAQqKYvV7qTfBVcJ+o;#Vfz~`u_m9 Cy-ErI literal 0 HcmV?d00001 diff --git a/Extra/src/main/resources/fabric.mod.json b/Extra/src/main/resources/fabric.mod.json new file mode 100644 index 00000000..1907d586 --- /dev/null +++ b/Extra/src/main/resources/fabric.mod.json @@ -0,0 +1,26 @@ +{ + "schemaVersion": 1, + "id": "optigui-extra", + "version": "${version}", + "name": "OptiGUI Extra", + "description": "OptiGUI Compatibility mod for other mods", + "authors": [ + "opekope2" + ], + "contact": { + "homepage": "https://opekope2.github.io/OptiGUI", + "sources": "https://github.com/opekope2/OptiGUI", + "issues": "https://github.com/opekope2/OptiGUI/issues" + }, + "license": "MIT", + "icon": "assets/optigui-extra/icon.png", + "environment": "client", + "depends": { + "fabricloader": ">=${fabricloader}", + "fabric-events-interaction-v0": "*", + "fabric-language-kotlin": ">=${fabric_language_kotlin}", + "minecraft": ">=1.18 <=1.20.1", + "java": ">=${java}", + "optigui": "=${version}" + } +} diff --git a/settings.gradle.kts b/settings.gradle.kts index a7d45baa..3e324277 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -14,6 +14,7 @@ pluginManagement { include( "OptiGUI", "Api", + "Extra", "Filters", "Properties", ) From 4c29b1090ced2866dd256e7b9408743fa28d9f17 Mon Sep 17 00:00:00 2001 From: opekope2 Date: Mon, 28 Aug 2023 12:48:37 +0200 Subject: [PATCH 02/15] Add QuickShulker support This is client-side only, and likely works with older versions A network desync may cause weirdness Closes #19 --- .../java/opekope2/optigui/extra/Util.java | 16 ++++ .../QuickShulkerRightClickHandler.java | 86 +++++++++++++++++++ .../quickshulker/mixin/ClientUtilMixin.java | 71 +++++++++++++++ .../mixin/MinecraftClientMixin.java | 19 ++++ Extra/src/main/resources/fabric.mod.json | 8 ++ .../optigui-extra.quickshulker.mixins.json | 12 +++ 6 files changed, 212 insertions(+) create mode 100644 Extra/src/main/java/opekope2/optigui/extra/Util.java create mode 100644 Extra/src/main/java/opekope2/optigui/extra/quickshulker/QuickShulkerRightClickHandler.java create mode 100644 Extra/src/main/java/opekope2/optigui/extra/quickshulker/mixin/ClientUtilMixin.java create mode 100644 Extra/src/main/java/opekope2/optigui/extra/quickshulker/mixin/MinecraftClientMixin.java create mode 100644 Extra/src/main/resources/optigui-extra.quickshulker.mixins.json diff --git a/Extra/src/main/java/opekope2/optigui/extra/Util.java b/Extra/src/main/java/opekope2/optigui/extra/Util.java new file mode 100644 index 00000000..e5759101 --- /dev/null +++ b/Extra/src/main/java/opekope2/optigui/extra/Util.java @@ -0,0 +1,16 @@ +package opekope2.optigui.extra; + +import java.util.HashMap; +import java.util.Map; +import java.util.function.Consumer; + +public class Util { + private Util() { + } + + public static Map buildMap(Consumer> mapFiller) { + Map map = new HashMap<>(); + mapFiller.accept(map); + return map; + } +} diff --git a/Extra/src/main/java/opekope2/optigui/extra/quickshulker/QuickShulkerRightClickHandler.java b/Extra/src/main/java/opekope2/optigui/extra/quickshulker/QuickShulkerRightClickHandler.java new file mode 100644 index 00000000..6f6b14bb --- /dev/null +++ b/Extra/src/main/java/opekope2/optigui/extra/quickshulker/QuickShulkerRightClickHandler.java @@ -0,0 +1,86 @@ +package opekope2.optigui.extra.quickshulker; + +import net.fabricmc.api.ClientModInitializer; +import net.fabricmc.fabric.api.event.player.UseItemCallback; +import net.kyrptonaught.quickshulker.QuickShulkerMod; +import net.kyrptonaught.quickshulker.api.Util; +import net.minecraft.client.gui.screen.Screen; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.item.ItemStack; +import net.minecraft.registry.Registries; +import net.minecraft.util.Hand; +import net.minecraft.util.Identifier; +import net.minecraft.util.TypedActionResult; +import net.minecraft.world.World; +import opekope2.lilac.api.registry.IRegistryLookup; +import opekope2.optigui.api.IOptiGuiApi; +import opekope2.optigui.api.interaction.IInteractionTarget; +import opekope2.optigui.api.interaction.IInteractor; +import opekope2.optigui.properties.impl.CommonProperties; +import opekope2.optigui.properties.impl.GeneralProperties; +import opekope2.optigui.properties.impl.IndependentProperties; + +import java.time.LocalDate; +import java.util.function.Consumer; + +public class QuickShulkerRightClickHandler implements ClientModInitializer, UseItemCallback { + private static final IInteractor interactor = IOptiGuiApi.getImplementation().getInteractor(); + private static final IRegistryLookup lookup = IRegistryLookup.getInstance(); + private static Consumer screenChangeHandler = QuickShulkerRightClickHandler::dummyScreenConsumer; + + @Override + public void onInitializeClient() { + UseItemCallback.EVENT.register(this); + } + + @Override + public TypedActionResult interact(PlayerEntity player, World world, Hand hand) { + ItemStack stack = player.getStackInHand(hand); + if (world.isClient) { + if (QuickShulkerMod.getConfig().rightClickToOpen && Util.isOpenableItem(stack) && Util.canOpenInHand(stack)) { + triggerInteraction(player, world, hand, stack); + } + } + + return TypedActionResult.pass(stack); + } + + public static void waitForScreen(Consumer handler) { + screenChangeHandler = handler; + } + + public static void onScreenChanged(Screen screen) { + screenChangeHandler.accept(screen); + screenChangeHandler = QuickShulkerRightClickHandler::dummyScreenConsumer; + } + + private static void dummyScreenConsumer(Screen screen) { + } + + public static void triggerInteraction(PlayerEntity player, World world, Hand hand, ItemStack stack) { + interactor.interact( + player, + world, + hand, + new IInteractionTarget.ComputedTarget(getInteractionTargetData(player, world, stack)), + null + ); + } + + private static Object getInteractionTargetData(PlayerEntity player, World world, ItemStack stack) { + Identifier biome = lookup.lookupBiomeId(world, player.getBlockPos()); + String name = stack.hasCustomName() ? stack.getName().getString() : null; + + return new CommonProperties( + new GeneralProperties( + Registries.ITEM.getId(stack.getItem()), + name, + biome, + player.getBlockY() + ), + new IndependentProperties( + LocalDate.now() + ) + ); + } +} diff --git a/Extra/src/main/java/opekope2/optigui/extra/quickshulker/mixin/ClientUtilMixin.java b/Extra/src/main/java/opekope2/optigui/extra/quickshulker/mixin/ClientUtilMixin.java new file mode 100644 index 00000000..c399a012 --- /dev/null +++ b/Extra/src/main/java/opekope2/optigui/extra/quickshulker/mixin/ClientUtilMixin.java @@ -0,0 +1,71 @@ +package opekope2.optigui.extra.quickshulker.mixin; + +import net.kyrptonaught.quickshulker.client.ClientUtil; +import net.minecraft.client.MinecraftClient; +import net.minecraft.client.gui.screen.ingame.*; +import net.minecraft.item.ItemStack; +import net.minecraft.util.Hand; +import net.minecraft.util.Identifier; +import opekope2.lilac.api.registry.IRegistryLookup; +import opekope2.optigui.extra.Util; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Unique; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +import java.util.Map; +import java.util.Objects; + +import static opekope2.optigui.extra.quickshulker.QuickShulkerRightClickHandler.triggerInteraction; +import static opekope2.optigui.extra.quickshulker.QuickShulkerRightClickHandler.waitForScreen; + +@Mixin(ClientUtil.class) +public abstract class ClientUtilMixin { + @Unique + private static final MinecraftClient mc = MinecraftClient.getInstance(); + @Unique + private static final IRegistryLookup lookup = IRegistryLookup.getInstance(); + + @Unique + private static final Map>> containerScreenMapping = Util.buildMap(map -> { + map.put(new Identifier("shulker_box"), ShulkerBoxScreen.class); + map.put(new Identifier("white_shulker_box"), ShulkerBoxScreen.class); + map.put(new Identifier("orange_shulker_box"), ShulkerBoxScreen.class); + map.put(new Identifier("magenta_shulker_box"), ShulkerBoxScreen.class); + map.put(new Identifier("light_blue_shulker_box"), ShulkerBoxScreen.class); + map.put(new Identifier("yellow_shulker_box"), ShulkerBoxScreen.class); + map.put(new Identifier("lime_shulker_box"), ShulkerBoxScreen.class); + map.put(new Identifier("pink_shulker_box"), ShulkerBoxScreen.class); + map.put(new Identifier("gray_shulker_box"), ShulkerBoxScreen.class); + map.put(new Identifier("light_gray_shulker_box"), ShulkerBoxScreen.class); + map.put(new Identifier("cyan_shulker_box"), ShulkerBoxScreen.class); + map.put(new Identifier("purple_shulker_box"), ShulkerBoxScreen.class); + map.put(new Identifier("blue_shulker_box"), ShulkerBoxScreen.class); + map.put(new Identifier("brown_shulker_box"), ShulkerBoxScreen.class); + map.put(new Identifier("green_shulker_box"), ShulkerBoxScreen.class); + map.put(new Identifier("red_shulker_box"), ShulkerBoxScreen.class); + map.put(new Identifier("black_shulker_box"), ShulkerBoxScreen.class); + map.put(new Identifier("ender_chest"), GenericContainerScreen.class); + map.put(new Identifier("crafting_table"), CraftingScreen.class); + map.put(new Identifier("stonecutter"), StonecutterScreen.class); + map.put(new Identifier("smithing_table"), SmithingScreen.class); + }); + + @Inject( + method = "CheckAndSend", + at = @At(value = "INVOKE", target = "Lnet/kyrptonaught/quickshulker/client/ClientUtil;SendOpenPacket(I)V") + ) + private static void handlePacketSendFromOffHand(ItemStack stack, int slot, CallbackInfoReturnable cir) { + var player = Objects.requireNonNull(mc.player); + var world = Objects.requireNonNull(mc.world); + var screenClass = containerScreenMapping.get(lookup.lookupItemId(stack.getItem())); + if (screenClass == null) return; + + waitForScreen(screen -> { + if (screenClass.equals(screen.getClass())) { + triggerInteraction(player, world, stack == mc.player.getOffHandStack() ? Hand.OFF_HAND : Hand.MAIN_HAND, stack); + } + }); + } +} diff --git a/Extra/src/main/java/opekope2/optigui/extra/quickshulker/mixin/MinecraftClientMixin.java b/Extra/src/main/java/opekope2/optigui/extra/quickshulker/mixin/MinecraftClientMixin.java new file mode 100644 index 00000000..ed124cf9 --- /dev/null +++ b/Extra/src/main/java/opekope2/optigui/extra/quickshulker/mixin/MinecraftClientMixin.java @@ -0,0 +1,19 @@ +package opekope2.optigui.extra.quickshulker.mixin; + +import net.minecraft.client.MinecraftClient; +import net.minecraft.client.gui.screen.Screen; +import opekope2.optigui.extra.quickshulker.QuickShulkerRightClickHandler; +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.CallbackInfo; + +@Mixin(value = MinecraftClient.class, priority = 925) +abstract class MinecraftClientMixin { + @Inject(method = "setScreen(Lnet/minecraft/client/gui/screen/Screen;)V", at = @At("TAIL")) + private void setScreenMixin(Screen screen, CallbackInfo ci) { + if (screen != null) { + QuickShulkerRightClickHandler.onScreenChanged(screen); + } + } +} diff --git a/Extra/src/main/resources/fabric.mod.json b/Extra/src/main/resources/fabric.mod.json index 1907d586..a00a73ac 100644 --- a/Extra/src/main/resources/fabric.mod.json +++ b/Extra/src/main/resources/fabric.mod.json @@ -15,6 +15,14 @@ "license": "MIT", "icon": "assets/optigui-extra/icon.png", "environment": "client", + "entrypoints": { + "client": [ + "opekope2.optigui.extra.quickshulker.QuickShulkerRightClickHandler" + ] + }, + "mixins": [ + "optigui-extra.quickshulker.mixins.json" + ], "depends": { "fabricloader": ">=${fabricloader}", "fabric-events-interaction-v0": "*", diff --git a/Extra/src/main/resources/optigui-extra.quickshulker.mixins.json b/Extra/src/main/resources/optigui-extra.quickshulker.mixins.json new file mode 100644 index 00000000..ee474314 --- /dev/null +++ b/Extra/src/main/resources/optigui-extra.quickshulker.mixins.json @@ -0,0 +1,12 @@ +{ + "required": true, + "package": "opekope2.optigui.extra.quickshulker.mixin", + "compatibilityLevel": "JAVA_${java}", + "injectors": { + "defaultRequire": 1 + }, + "client": [ + "ClientUtilMixin", + "MinecraftClientMixin" + ] +} From 8cf59325236b4951c5f2b35684e2fb38a8e0bace Mon Sep 17 00:00:00 2001 From: opekope2 Date: Mon, 28 Aug 2023 18:14:52 +0200 Subject: [PATCH 03/15] Rename QuickShulkerRightClickHandler to QuickShulkerCompat --- ...hulkerRightClickHandler.java => QuickShulkerCompat.java} | 6 +++--- .../optigui/extra/quickshulker/mixin/ClientUtilMixin.java | 4 ++-- .../extra/quickshulker/mixin/MinecraftClientMixin.java | 4 ++-- Extra/src/main/resources/fabric.mod.json | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) rename Extra/src/main/java/opekope2/optigui/extra/quickshulker/{QuickShulkerRightClickHandler.java => QuickShulkerCompat.java} (93%) diff --git a/Extra/src/main/java/opekope2/optigui/extra/quickshulker/QuickShulkerRightClickHandler.java b/Extra/src/main/java/opekope2/optigui/extra/quickshulker/QuickShulkerCompat.java similarity index 93% rename from Extra/src/main/java/opekope2/optigui/extra/quickshulker/QuickShulkerRightClickHandler.java rename to Extra/src/main/java/opekope2/optigui/extra/quickshulker/QuickShulkerCompat.java index 6f6b14bb..fe34b4b4 100644 --- a/Extra/src/main/java/opekope2/optigui/extra/quickshulker/QuickShulkerRightClickHandler.java +++ b/Extra/src/main/java/opekope2/optigui/extra/quickshulker/QuickShulkerCompat.java @@ -23,10 +23,10 @@ import java.time.LocalDate; import java.util.function.Consumer; -public class QuickShulkerRightClickHandler implements ClientModInitializer, UseItemCallback { +public class QuickShulkerCompat implements ClientModInitializer, UseItemCallback { private static final IInteractor interactor = IOptiGuiApi.getImplementation().getInteractor(); private static final IRegistryLookup lookup = IRegistryLookup.getInstance(); - private static Consumer screenChangeHandler = QuickShulkerRightClickHandler::dummyScreenConsumer; + private static Consumer screenChangeHandler = QuickShulkerCompat::dummyScreenConsumer; @Override public void onInitializeClient() { @@ -51,7 +51,7 @@ public static void waitForScreen(Consumer handler) { public static void onScreenChanged(Screen screen) { screenChangeHandler.accept(screen); - screenChangeHandler = QuickShulkerRightClickHandler::dummyScreenConsumer; + screenChangeHandler = QuickShulkerCompat::dummyScreenConsumer; } private static void dummyScreenConsumer(Screen screen) { diff --git a/Extra/src/main/java/opekope2/optigui/extra/quickshulker/mixin/ClientUtilMixin.java b/Extra/src/main/java/opekope2/optigui/extra/quickshulker/mixin/ClientUtilMixin.java index c399a012..a482644b 100644 --- a/Extra/src/main/java/opekope2/optigui/extra/quickshulker/mixin/ClientUtilMixin.java +++ b/Extra/src/main/java/opekope2/optigui/extra/quickshulker/mixin/ClientUtilMixin.java @@ -17,8 +17,8 @@ import java.util.Map; import java.util.Objects; -import static opekope2.optigui.extra.quickshulker.QuickShulkerRightClickHandler.triggerInteraction; -import static opekope2.optigui.extra.quickshulker.QuickShulkerRightClickHandler.waitForScreen; +import static opekope2.optigui.extra.quickshulker.QuickShulkerCompat.triggerInteraction; +import static opekope2.optigui.extra.quickshulker.QuickShulkerCompat.waitForScreen; @Mixin(ClientUtil.class) public abstract class ClientUtilMixin { diff --git a/Extra/src/main/java/opekope2/optigui/extra/quickshulker/mixin/MinecraftClientMixin.java b/Extra/src/main/java/opekope2/optigui/extra/quickshulker/mixin/MinecraftClientMixin.java index ed124cf9..07ef2e40 100644 --- a/Extra/src/main/java/opekope2/optigui/extra/quickshulker/mixin/MinecraftClientMixin.java +++ b/Extra/src/main/java/opekope2/optigui/extra/quickshulker/mixin/MinecraftClientMixin.java @@ -2,7 +2,7 @@ import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.screen.Screen; -import opekope2.optigui.extra.quickshulker.QuickShulkerRightClickHandler; +import opekope2.optigui.extra.quickshulker.QuickShulkerCompat; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; @@ -13,7 +13,7 @@ abstract class MinecraftClientMixin { @Inject(method = "setScreen(Lnet/minecraft/client/gui/screen/Screen;)V", at = @At("TAIL")) private void setScreenMixin(Screen screen, CallbackInfo ci) { if (screen != null) { - QuickShulkerRightClickHandler.onScreenChanged(screen); + QuickShulkerCompat.onScreenChanged(screen); } } } diff --git a/Extra/src/main/resources/fabric.mod.json b/Extra/src/main/resources/fabric.mod.json index a00a73ac..d6c16a5c 100644 --- a/Extra/src/main/resources/fabric.mod.json +++ b/Extra/src/main/resources/fabric.mod.json @@ -17,7 +17,7 @@ "environment": "client", "entrypoints": { "client": [ - "opekope2.optigui.extra.quickshulker.QuickShulkerRightClickHandler" + "opekope2.optigui.extra.quickshulker.QuickShulkerCompat" ] }, "mixins": [ From 1c4995f8732ee73d787260f2b15ca2ad725e71a4 Mon Sep 17 00:00:00 2001 From: opekope2 Date: Mon, 28 Aug 2023 18:15:59 +0200 Subject: [PATCH 04/15] Enable unpacking and loading nested JARs --- Extra/build.gradle.kts | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/Extra/build.gradle.kts b/Extra/build.gradle.kts index 983dfc5f..aa713b61 100644 --- a/Extra/build.gradle.kts +++ b/Extra/build.gradle.kts @@ -16,6 +16,9 @@ repositories { mavenLocal() } +val extractNestedJars by configurations.creating +val nestedJarsDir = buildDir.resolve("nestedJars") + dependencies { minecraft("com.mojang", "minecraft", project.extra["minecraft_version"] as String) mappings("net.fabricmc", "yarn", project.extra["yarn_mappings"] as String, classifier = "v2") @@ -39,6 +42,8 @@ dependencies { modLocalRuntime(files(rootDir.resolve("lib/kyrptconfig-1.5.4-1.20.jar"))) localRuntime("org.apache.commons", "commons-text", "1.10.0") localRuntime("org.ini4j", "ini4j", "0.5.4") + + modLocalRuntime(fileTree(nestedJarsDir)) } tasks { @@ -88,3 +93,22 @@ tasks { withSourcesJar() } } + +val prepareClientRun by tasks.creating { + nestedJarsDir.mkdirs() + outputs.dir(nestedJarsDir) + + doLast { + val jars = extractNestedJars.files + + jars.forEach { jar -> + zipTree(jar).visit { + if (path.startsWith("META-INF/jars/")) { + copyTo(nestedJarsDir.resolve(name)) + } + } + } + } +} + +tasks["generateRemapClasspath"].dependsOn(prepareClientRun) From c3ffcc2e31f3206de547d7dcc3a8631e30694de0 Mon Sep 17 00:00:00 2001 From: opekope2 Date: Mon, 28 Aug 2023 22:39:28 +0200 Subject: [PATCH 05/15] Change JAR name to optigui-extra Replace the underscore --- Extra/gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Extra/gradle.properties b/Extra/gradle.properties index 2c20ad79..a4c9447d 100644 --- a/Extra/gradle.properties +++ b/Extra/gradle.properties @@ -7,5 +7,5 @@ yarn_mappings=1.20.1+build.1 fabric_version=0.87.0+1.20.1 ########################################################################## # Mod Properties -archives_base_name=optigui_extra +archives_base_name=optigui-extra ########################################################################## From 32b6aa3d2b82b544b3221f49098b133705525c00 Mon Sep 17 00:00:00 2001 From: opekope2 Date: Mon, 28 Aug 2023 22:40:32 +0200 Subject: [PATCH 06/15] Extract nested JARs when running client --- Extra/build.gradle.kts | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/Extra/build.gradle.kts b/Extra/build.gradle.kts index aa713b61..3ecef4a5 100644 --- a/Extra/build.gradle.kts +++ b/Extra/build.gradle.kts @@ -14,6 +14,14 @@ group = project.extra["maven_group"] as String repositories { mavenLocal() + exclusiveContent { + forRepository { + maven("https://api.modrinth.com/maven") { name = "Modrinth" } + } + filter { + includeGroup("maven.modrinth") + } + } } val extractNestedJars by configurations.creating @@ -37,9 +45,8 @@ dependencies { implementation(project(":Api", configuration = "namedElements")) implementation(project(":Properties", configuration = "namedElements")) - modImplementation(files(rootDir.resolve("lib/quickshulker-1.4.0-1.20.jar"))) - modLocalRuntime(files(rootDir.resolve("lib/shulkerutils-1.0.4-1.19.jar"))) - modLocalRuntime(files(rootDir.resolve("lib/kyrptconfig-1.5.4-1.20.jar"))) + extractNestedJars(modImplementation("maven.modrinth", "quickshulker", "1.4.0-1.20")) + localRuntime("org.apache.commons", "commons-text", "1.10.0") localRuntime("org.ini4j", "ini4j", "0.5.4") From edd1ed98faf549925824137a43b2c4e31b53181f Mon Sep 17 00:00:00 2001 From: opekope2 Date: Mon, 28 Aug 2023 22:43:09 +0200 Subject: [PATCH 07/15] Add support for More Chest Variants mod --- Extra/build.gradle.kts | 7 +++ .../extra/more_chest_variants/McvCompat.kt | 46 +++++++++++++++++++ Extra/src/main/resources/fabric.mod.json | 22 +++++++++ 3 files changed, 75 insertions(+) create mode 100644 Extra/src/main/kotlin/opekope2/optigui/extra/more_chest_variants/McvCompat.kt diff --git a/Extra/build.gradle.kts b/Extra/build.gradle.kts index 3ecef4a5..08820dd3 100644 --- a/Extra/build.gradle.kts +++ b/Extra/build.gradle.kts @@ -22,6 +22,12 @@ repositories { includeGroup("maven.modrinth") } } + maven("https://cursemaven.com") { + name = "CurseForge" + content { + includeGroup("curse.maven") + } + } } val extractNestedJars by configurations.creating @@ -46,6 +52,7 @@ dependencies { implementation(project(":Properties", configuration = "namedElements")) extractNestedJars(modImplementation("maven.modrinth", "quickshulker", "1.4.0-1.20")) + modImplementation("curse.maven", "more-chest-variants-lieonlion-858032", "4723273") localRuntime("org.apache.commons", "commons-text", "1.10.0") localRuntime("org.ini4j", "ini4j", "0.5.4") diff --git a/Extra/src/main/kotlin/opekope2/optigui/extra/more_chest_variants/McvCompat.kt b/Extra/src/main/kotlin/opekope2/optigui/extra/more_chest_variants/McvCompat.kt new file mode 100644 index 00000000..4f105512 --- /dev/null +++ b/Extra/src/main/kotlin/opekope2/optigui/extra/more_chest_variants/McvCompat.kt @@ -0,0 +1,46 @@ +package opekope2.optigui.extra.more_chest_variants + +import io.github.lieonlion.mcv.block.MoreChestBlockEntity +import net.minecraft.block.enums.ChestType +import net.minecraft.client.MinecraftClient +import net.minecraft.client.gui.screen.ingame.HandledScreen +import net.minecraft.screen.GenericContainerScreenHandler +import net.minecraft.screen.ScreenHandler +import net.minecraft.state.property.EnumProperty +import opekope2.lilac.api.registry.IRegistryLookup +import opekope2.optigui.annotation.BlockEntityProcessor +import opekope2.optigui.api.interaction.IBlockEntityProcessor +import opekope2.optigui.properties.impl.* +import java.time.LocalDate + +@BlockEntityProcessor(MoreChestBlockEntity::class) +object McvCompat : IBlockEntityProcessor { + private val lookup = IRegistryLookup.getInstance() + private val chestTypeEnum = EnumProperty.of("type", ChestType::class.java) + + override fun apply(chest: MoreChestBlockEntity): Any? { + val world = chest.world ?: return null + val state = world.getBlockState(chest.pos) + val type = state.entries[chestTypeEnum] + val screen = MinecraftClient.getInstance().currentScreen + val screenHandler = (screen as? HandledScreen<*>)?.screenHandler as? GenericContainerScreenHandler + + return ChestProperties( + commonProperties = CommonProperties( + generalProperties = GeneralProperties( + container = lookup.lookupBlockId(state.block), + name = chest.customName?.string, + biome = lookup.lookupBiomeId(world, chest.pos), + height = chest.pos.y + ), + independentProperties = IndependentProperties( + date = LocalDate.now() + ) + ), + redstoneComparatorProperties = RedstoneComparatorProperties( + comparatorOutput = ScreenHandler.calculateComparatorOutput(screenHandler?.inventory) + ), + isLarge = type != ChestType.SINGLE + ) + } +} diff --git a/Extra/src/main/resources/fabric.mod.json b/Extra/src/main/resources/fabric.mod.json index d6c16a5c..16f8bae0 100644 --- a/Extra/src/main/resources/fabric.mod.json +++ b/Extra/src/main/resources/fabric.mod.json @@ -18,6 +18,12 @@ "entrypoints": { "client": [ "opekope2.optigui.extra.quickshulker.QuickShulkerCompat" + ], + "optigui-blockentityprocessor": [ + { + "adapter": "kotlin", + "value": "opekope2.optigui.extra.more_chest_variants.McvCompat" + } ] }, "mixins": [ @@ -30,5 +36,21 @@ "minecraft": ">=1.18 <=1.20.1", "java": ">=${java}", "optigui": "=${version}" + }, + "custom": { + "optigui": { + "containerTextures": { + "lolmcv:acacia_chest": "textures/gui/container/generic_54.png", + "lolmcv:bamboo_chest": "textures/gui/container/generic_54.png", + "lolmcv:birch_chest": "textures/gui/container/generic_54.png", + "lolmcv:cherry_chest": "textures/gui/container/generic_54.png", + "lolmcv:dark_oak_chest": "textures/gui/container/generic_54.png", + "lolmcv:jungle_chest": "textures/gui/container/generic_54.png", + "lolmcv:mangrove_chest": "textures/gui/container/generic_54.png", + "lolmcv:spruce_chest": "textures/gui/container/generic_54.png", + "lolmcv:crimson_chest": "textures/gui/container/generic_54.png", + "lolmcv:warped_chest": "textures/gui/container/generic_54.png" + } + } } } From 376e468d09810d2dbaf0841ae6c34a1db70482f9 Mon Sep 17 00:00:00 2001 From: opekope2 Date: Mon, 28 Aug 2023 22:48:17 +0200 Subject: [PATCH 08/15] Frustration with gradle --- Extra/build.gradle.kts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Extra/build.gradle.kts b/Extra/build.gradle.kts index 08820dd3..ef74c28a 100644 --- a/Extra/build.gradle.kts +++ b/Extra/build.gradle.kts @@ -54,6 +54,9 @@ dependencies { extractNestedJars(modImplementation("maven.modrinth", "quickshulker", "1.4.0-1.20")) modImplementation("curse.maven", "more-chest-variants-lieonlion-858032", "4723273") + // Gradle has skill issue and doesn't pull transitive deps. + // But it pulls a newer version of DFU through mavenLocal, which crashes Minecraft. + // Just as the founding fathers intended. localRuntime("org.apache.commons", "commons-text", "1.10.0") localRuntime("org.ini4j", "ini4j", "0.5.4") From dfbf3adbadce68ace4218215081efece94249b0b Mon Sep 17 00:00:00 2001 From: opekope2 Date: Wed, 30 Aug 2023 16:16:26 +0200 Subject: [PATCH 09/15] Only load QuickShulkerCompat if QuickShulker is loaded Mixins will only load when needed (right?) --- .../optigui/extra/quickshulker/QuickShulkerCompat.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Extra/src/main/java/opekope2/optigui/extra/quickshulker/QuickShulkerCompat.java b/Extra/src/main/java/opekope2/optigui/extra/quickshulker/QuickShulkerCompat.java index fe34b4b4..288afa54 100644 --- a/Extra/src/main/java/opekope2/optigui/extra/quickshulker/QuickShulkerCompat.java +++ b/Extra/src/main/java/opekope2/optigui/extra/quickshulker/QuickShulkerCompat.java @@ -2,6 +2,7 @@ import net.fabricmc.api.ClientModInitializer; import net.fabricmc.fabric.api.event.player.UseItemCallback; +import net.fabricmc.loader.api.FabricLoader; import net.kyrptonaught.quickshulker.QuickShulkerMod; import net.kyrptonaught.quickshulker.api.Util; import net.minecraft.client.gui.screen.Screen; @@ -30,6 +31,8 @@ public class QuickShulkerCompat implements ClientModInitializer, UseItemCallback @Override public void onInitializeClient() { + if (!FabricLoader.getInstance().isModLoaded("quickshulker")) return; + UseItemCallback.EVENT.register(this); } From 4a407c679c382328a2fa4908aa3eb18f80a7817c Mon Sep 17 00:00:00 2001 From: opekope2 Date: Wed, 30 Aug 2023 16:58:08 +0200 Subject: [PATCH 10/15] Add support for Variant Barrels mod It worked out-of-the-box using interaction.texture #68 --- Extra/build.gradle.kts | 1 + Extra/src/main/resources/fabric.mod.json | 12 +++++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/Extra/build.gradle.kts b/Extra/build.gradle.kts index ef74c28a..8f65521a 100644 --- a/Extra/build.gradle.kts +++ b/Extra/build.gradle.kts @@ -53,6 +53,7 @@ dependencies { extractNestedJars(modImplementation("maven.modrinth", "quickshulker", "1.4.0-1.20")) modImplementation("curse.maven", "more-chest-variants-lieonlion-858032", "4723273") + modImplementation("curse.maven", "variant-barrels-fabric-576766", "4623658") // Gradle has skill issue and doesn't pull transitive deps. // But it pulls a newer version of DFU through mavenLocal, which crashes Minecraft. diff --git a/Extra/src/main/resources/fabric.mod.json b/Extra/src/main/resources/fabric.mod.json index 16f8bae0..70e56d54 100644 --- a/Extra/src/main/resources/fabric.mod.json +++ b/Extra/src/main/resources/fabric.mod.json @@ -49,7 +49,17 @@ "lolmcv:mangrove_chest": "textures/gui/container/generic_54.png", "lolmcv:spruce_chest": "textures/gui/container/generic_54.png", "lolmcv:crimson_chest": "textures/gui/container/generic_54.png", - "lolmcv:warped_chest": "textures/gui/container/generic_54.png" + "lolmcv:warped_chest": "textures/gui/container/generic_54.png", + "variantbarrels:acacia_barrel": "textures/gui/container/generic_54.png", + "variantbarrels:bamboo_barrel": "textures/gui/container/generic_54.png", + "variantbarrels:birch_barrel": "textures/gui/container/generic_54.png", + "variantbarrels:cherry_barrel": "textures/gui/container/generic_54.png", + "variantbarrels:crimson_barrel": "textures/gui/container/generic_54.png", + "variantbarrels:dark_oak_barrel": "textures/gui/container/generic_54.png", + "variantbarrels:jungle_barrel": "textures/gui/container/generic_54.png", + "variantbarrels:mangrove_barrel": "textures/gui/container/generic_54.png", + "variantbarrels:oak_barrel": "textures/gui/container/generic_54.png", + "variantbarrels:warped_barrel": "textures/gui/container/generic_54.png" } } } From e2a77fd8d60855b44b63b62ed5afeae51a8e40b6 Mon Sep 17 00:00:00 2001 From: opekope2 Date: Wed, 30 Aug 2023 17:54:37 +0200 Subject: [PATCH 11/15] Add support for Variant Crafting Tables mod --- Extra/build.gradle.kts | 1 + Extra/src/main/resources/fabric.mod.json | 12 +++++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/Extra/build.gradle.kts b/Extra/build.gradle.kts index 8f65521a..889021a1 100644 --- a/Extra/build.gradle.kts +++ b/Extra/build.gradle.kts @@ -54,6 +54,7 @@ dependencies { extractNestedJars(modImplementation("maven.modrinth", "quickshulker", "1.4.0-1.20")) modImplementation("curse.maven", "more-chest-variants-lieonlion-858032", "4723273") modImplementation("curse.maven", "variant-barrels-fabric-576766", "4623658") + modImplementation("curse.maven", "variant-crafting-tables-fabric-575271", "4723634") // Gradle has skill issue and doesn't pull transitive deps. // But it pulls a newer version of DFU through mavenLocal, which crashes Minecraft. diff --git a/Extra/src/main/resources/fabric.mod.json b/Extra/src/main/resources/fabric.mod.json index 70e56d54..10b8cd58 100644 --- a/Extra/src/main/resources/fabric.mod.json +++ b/Extra/src/main/resources/fabric.mod.json @@ -59,7 +59,17 @@ "variantbarrels:jungle_barrel": "textures/gui/container/generic_54.png", "variantbarrels:mangrove_barrel": "textures/gui/container/generic_54.png", "variantbarrels:oak_barrel": "textures/gui/container/generic_54.png", - "variantbarrels:warped_barrel": "textures/gui/container/generic_54.png" + "variantbarrels:warped_barrel": "textures/gui/container/generic_54.png", + "variantcraftingtables:acacia_crafting_table": "textures/gui/container/crafting_table.png", + "variantcraftingtables:bamboo_crafting_table": "textures/gui/container/crafting_table.png", + "variantcraftingtables:birch_crafting_table": "textures/gui/container/crafting_table.png", + "variantcraftingtables:cherry_crafting_table": "textures/gui/container/crafting_table.png", + "variantcraftingtables:crimson_crafting_table": "textures/gui/container/crafting_table.png", + "variantcraftingtables:dark_oak_crafting_table": "textures/gui/container/crafting_table.png", + "variantcraftingtables:jungle_crafting_table": "textures/gui/container/crafting_table.png", + "variantcraftingtables:mangrove_crafting_table": "textures/gui/container/crafting_table.png", + "variantcraftingtables:spruce_crafting_table": "textures/gui/container/crafting_table.png", + "variantcraftingtables:warped_crafting_table": "textures/gui/container/crafting_table.png" } } } From 3f3d9cf554ba737ed73ef5300a387028043181df Mon Sep 17 00:00:00 2001 From: opekope2 Date: Wed, 30 Aug 2023 18:50:46 +0200 Subject: [PATCH 12/15] Add all modded variant crafting tables --- Extra/src/main/resources/fabric.mod.json | 50 +++++++++++++++++++++++- 1 file changed, 49 insertions(+), 1 deletion(-) diff --git a/Extra/src/main/resources/fabric.mod.json b/Extra/src/main/resources/fabric.mod.json index 10b8cd58..4d28c412 100644 --- a/Extra/src/main/resources/fabric.mod.json +++ b/Extra/src/main/resources/fabric.mod.json @@ -69,7 +69,55 @@ "variantcraftingtables:jungle_crafting_table": "textures/gui/container/crafting_table.png", "variantcraftingtables:mangrove_crafting_table": "textures/gui/container/crafting_table.png", "variantcraftingtables:spruce_crafting_table": "textures/gui/container/crafting_table.png", - "variantcraftingtables:warped_crafting_table": "textures/gui/container/crafting_table.png" + "variantcraftingtables:warped_crafting_table": "textures/gui/container/crafting_table.png", + "variantcraftingtables:aa_aeronos_crafting_table": "textures/gui/container/crafting_table.png", + "variantcraftingtables:aa_glacian_crafting_table": "textures/gui/container/crafting_table.png", + "variantcraftingtables:ldbp_palm_crafting_table": "textures/gui/container/crafting_table.png", + "variantcraftingtables:ba_rotten_crafting_table": "textures/gui/container/crafting_table.png", + "variantcraftingtables:bw_cypress_crafting_table": "textures/gui/container/crafting_table.png", + "variantcraftingtables:bw_dragons_blood_crafting_table": "textures/gui/container/crafting_table.png", + "variantcraftingtables:bw_elder_crafting_table": "textures/gui/container/crafting_table.png", + "variantcraftingtables:bw_juniper_crafting_table": "textures/gui/container/crafting_table.png", + "variantcraftingtables:dad_echo_crafting_table": "textures/gui/container/crafting_table.png", + "variantcraftingtables:prom_dark_amaranth_crafting_table": "textures/gui/container/crafting_table.png", + "variantcraftingtables:prom_maple_crafting_table": "textures/gui/container/crafting_table.png", + "variantcraftingtables:prom_palm_crafting_table": "textures/gui/container/crafting_table.png", + "variantcraftingtables:prom_sakura_crafting_table": "textures/gui/container/crafting_table.png", + "variantcraftingtables:ru_alpha_oak_crafting_table": "textures/gui/container/crafting_table.png", + "variantcraftingtables:ru_baobab_crafting_table": "textures/gui/container/crafting_table.png", + "variantcraftingtables:ru_black_painted_crafting_table": "textures/gui/container/crafting_table.png", + "variantcraftingtables:ru_blackwood_crafting_table": "textures/gui/container/crafting_table.png", + "variantcraftingtables:ru_blue_painted_crafting_table": "textures/gui/container/crafting_table.png", + "variantcraftingtables:ru_brown_painted_crafting_table": "textures/gui/container/crafting_table.png", + "variantcraftingtables:ru_cherry_crafting_table": "textures/gui/container/crafting_table.png", + "variantcraftingtables:ru_cyan_painted_crafting_table": "textures/gui/container/crafting_table.png", + "variantcraftingtables:ru_cypress_crafting_table": "textures/gui/container/crafting_table.png", + "variantcraftingtables:ru_dead_crafting_table": "textures/gui/container/crafting_table.png", + "variantcraftingtables:ru_eucalyptus_crafting_table": "textures/gui/container/crafting_table.png", + "variantcraftingtables:ru_green_painted_crafting_table": "textures/gui/container/crafting_table.png", + "variantcraftingtables:ru_gray_painted_crafting_table": "textures/gui/container/crafting_table.png", + "variantcraftingtables:ru_joshua_crafting_table": "textures/gui/container/crafting_table.png", + "variantcraftingtables:ru_larch_crafting_table": "textures/gui/container/crafting_table.png", + "variantcraftingtables:ru_light_blue_painted_crafting_table": "textures/gui/container/crafting_table.png", + "variantcraftingtables:ru_light_gray_painted_crafting_table": "textures/gui/container/crafting_table.png", + "variantcraftingtables:ru_lime_painted_crafting_table": "textures/gui/container/crafting_table.png", + "variantcraftingtables:ru_magenta_painted_crafting_table": "textures/gui/container/crafting_table.png", + "variantcraftingtables:ru_maple_crafting_table": "textures/gui/container/crafting_table.png", + "variantcraftingtables:ru_mauve_crafting_table": "textures/gui/container/crafting_table.png", + "variantcraftingtables:ru_orange_painted_crafting_table": "textures/gui/container/crafting_table.png", + "variantcraftingtables:ru_palm_crafting_table": "textures/gui/container/crafting_table.png", + "variantcraftingtables:ru_pine_crafting_table": "textures/gui/container/crafting_table.png", + "variantcraftingtables:ru_pink_painted_crafting_table": "textures/gui/container/crafting_table.png", + "variantcraftingtables:ru_purple_painted_crafting_table": "textures/gui/container/crafting_table.png", + "variantcraftingtables:ru_red_painted_crafting_table": "textures/gui/container/crafting_table.png", + "variantcraftingtables:ru_redwood_crafting_table": "textures/gui/container/crafting_table.png", + "variantcraftingtables:ru_sculkwood_crafting_table": "textures/gui/container/crafting_table.png", + "variantcraftingtables:ru_white_painted_crafting_table": "textures/gui/container/crafting_table.png", + "variantcraftingtables:ru_willow_crafting_table": "textures/gui/container/crafting_table.png", + "variantcraftingtables:ru_yellow_painted_crafting_table": "textures/gui/container/crafting_table.png", + "variantcraftingtables:sp_stone_pine_crafting_table": "textures/gui/container/crafting_table.png", + "variantcraftingtables:tr_rubber_crafting_table": "textures/gui/container/crafting_table.png", + "variantcraftingtables:ldv_cherry_crafting_table": "textures/gui/container/crafting_table.png" } } } From ce5d8ee33012b5e1451acf49649bc92c20030405 Mon Sep 17 00:00:00 2001 From: opekope2 Date: Wed, 30 Aug 2023 20:59:54 +0200 Subject: [PATCH 13/15] Add support for Variant Vanilla Blocks mod --- Extra/build.gradle.kts | 1 + Extra/src/main/resources/fabric.mod.json | 72 +++++++++++++++++++++++- 2 files changed, 72 insertions(+), 1 deletion(-) diff --git a/Extra/build.gradle.kts b/Extra/build.gradle.kts index 889021a1..4496dd3d 100644 --- a/Extra/build.gradle.kts +++ b/Extra/build.gradle.kts @@ -55,6 +55,7 @@ dependencies { modImplementation("curse.maven", "more-chest-variants-lieonlion-858032", "4723273") modImplementation("curse.maven", "variant-barrels-fabric-576766", "4623658") modImplementation("curse.maven", "variant-crafting-tables-fabric-575271", "4723634") + extractNestedJars(modImplementation("curse.maven", "variant-vanilla-blocks-866509", "4723107")) // Gradle has skill issue and doesn't pull transitive deps. // But it pulls a newer version of DFU through mavenLocal, which crashes Minecraft. diff --git a/Extra/src/main/resources/fabric.mod.json b/Extra/src/main/resources/fabric.mod.json index 4d28c412..6a36976c 100644 --- a/Extra/src/main/resources/fabric.mod.json +++ b/Extra/src/main/resources/fabric.mod.json @@ -117,7 +117,77 @@ "variantcraftingtables:ru_yellow_painted_crafting_table": "textures/gui/container/crafting_table.png", "variantcraftingtables:sp_stone_pine_crafting_table": "textures/gui/container/crafting_table.png", "variantcraftingtables:tr_rubber_crafting_table": "textures/gui/container/crafting_table.png", - "variantcraftingtables:ldv_cherry_crafting_table": "textures/gui/container/crafting_table.png" + "variantcraftingtables:ldv_cherry_crafting_table": "textures/gui/container/crafting_table.png", + "variantvanillablocks:acacia_barrel": "textures/gui/container/generic_54.png", + "variantvanillablocks:bamboo_barrel": "textures/gui/container/generic_54.png", + "variantvanillablocks:birch_barrel": "textures/gui/container/generic_54.png", + "variantvanillablocks:cherry_barrel": "textures/gui/container/generic_54.png", + "variantvanillablocks:crimson_barrel": "textures/gui/container/generic_54.png", + "variantvanillablocks:dark_oak_barrel": "textures/gui/container/generic_54.png", + "variantvanillablocks:jungle_barrel": "textures/gui/container/generic_54.png", + "variantvanillablocks:mangrove_barrel": "textures/gui/container/generic_54.png", + "variantvanillablocks:oak_barrel": "textures/gui/container/generic_54.png", + "variantvanillablocks:warped_barrel": "textures/gui/container/generic_54.png", + "variantvanillablocks:acacia_cartography_table": "textures/gui/container/cartography_table.png", + "variantvanillablocks:bamboo_cartography_table": "textures/gui/container/cartography_table.png", + "variantvanillablocks:birch_cartography_table": "textures/gui/container/cartography_table.png", + "variantvanillablocks:cherry_cartography_table": "textures/gui/container/cartography_table.png", + "variantvanillablocks:crimson_cartography_table": "textures/gui/container/cartography_table.png", + "variantvanillablocks:jungle_cartography_table": "textures/gui/container/cartography_table.png", + "variantvanillablocks:mangrove_cartography_table": "textures/gui/container/cartography_table.png", + "variantvanillablocks:oak_cartography_table": "textures/gui/container/cartography_table.png", + "variantvanillablocks:spruce_cartography_table": "textures/gui/container/cartography_table.png", + "variantvanillablocks:warped_cartography_table": "textures/gui/container/cartography_table.png", + "variantvanillablocks:acacia_crafting_table": "textures/gui/container/crafting_table.png", + "variantvanillablocks:bamboo_crafting_table": "textures/gui/container/crafting_table.png", + "variantvanillablocks:birch_crafting_table": "textures/gui/container/crafting_table.png", + "variantvanillablocks:cherry_crafting_table": "textures/gui/container/crafting_table.png", + "variantvanillablocks:crimson_crafting_table": "textures/gui/container/crafting_table.png", + "variantvanillablocks:dark_oak_crafting_table": "textures/gui/container/crafting_table.png", + "variantvanillablocks:jungle_crafting_table": "textures/gui/container/crafting_table.png", + "variantvanillablocks:mangrove_crafting_table": "textures/gui/container/crafting_table.png", + "variantvanillablocks:spruce_crafting_table": "textures/gui/container/crafting_table.png", + "variantvanillablocks:warped_crafting_table": "textures/gui/container/crafting_table.png", + "variantvanillablocks:acacia_grindstone": "textures/gui/container/grindstone.png", + "variantvanillablocks:bamboo_grindstone": "textures/gui/container/grindstone.png", + "variantvanillablocks:birch_grindstone": "textures/gui/container/grindstone.png", + "variantvanillablocks:cherry_grindstone": "textures/gui/container/grindstone.png", + "variantvanillablocks:crimson_grindstone": "textures/gui/container/grindstone.png", + "variantvanillablocks:jungle_grindstone": "textures/gui/container/grindstone.png", + "variantvanillablocks:mangrove_grindstone": "textures/gui/container/grindstone.png", + "variantvanillablocks:oak_grindstone": "textures/gui/container/grindstone.png", + "variantvanillablocks:spruce_grindstone": "textures/gui/container/grindstone.png", + "variantvanillablocks:warped_grindstone": "textures/gui/container/grindstone.png", + "variantvanillablocks:acacia_lectern": "textures/gui/book.png", + "variantvanillablocks:bamboo_lectern": "textures/gui/book.png", + "variantvanillablocks:birch_lectern": "textures/gui/book.png", + "variantvanillablocks:cherry_lectern": "textures/gui/book.png", + "variantvanillablocks:dark_oak_lectern": "textures/gui/book.png", + "variantvanillablocks:crimson_lectern": "textures/gui/book.png", + "variantvanillablocks:jungle_lectern": "textures/gui/book.png", + "variantvanillablocks:mangrove_lectern": "textures/gui/book.png", + "variantvanillablocks:spruce_lectern": "textures/gui/book.png", + "variantvanillablocks:warped_lectern": "textures/gui/book.png", + "variantvanillablocks:acacia_smithing_table": "textures/gui/container/smithing.png", + "variantvanillablocks:bamboo_smithing_table": "textures/gui/container/smithing.png", + "variantvanillablocks:birch_smithing_table": "textures/gui/container/smithing.png", + "variantvanillablocks:cherry_smithing_table": "textures/gui/container/smithing.png", + "variantvanillablocks:crimson_smithing_table": "textures/gui/container/smithing.png", + "variantvanillablocks:dark_oak_smithing_table": "textures/gui/container/smithing.png", + "variantvanillablocks:jungle_smithing_table": "textures/gui/container/smithing.png", + "variantvanillablocks:oak_smithing_table": "textures/gui/container/smithing.png", + "variantvanillablocks:spruce_smithing_table": "textures/gui/container/smithing.png", + "variantvanillablocks:warped_smithing_table": "textures/gui/container/smithing.png", + "variantvanillablocks:acacia_smoker": "textures/gui/container/smoker.png", + "variantvanillablocks:bamboo_smoker": "textures/gui/container/smoker.png", + "variantvanillablocks:birch_smoker": "textures/gui/container/smoker.png", + "variantvanillablocks:cherry_smoker": "textures/gui/container/smoker.png", + "variantvanillablocks:crimson_smoker": "textures/gui/container/smoker.png", + "variantvanillablocks:dark_oak_smoker": "textures/gui/container/smoker.png", + "variantvanillablocks:jungle_smoker": "textures/gui/container/smoker.png", + "variantvanillablocks:mangrove_smoker": "textures/gui/container/smoker.png", + "variantvanillablocks:spruce_smoker": "textures/gui/container/smoker.png", + "variantvanillablocks:warped_smoker": "textures/gui/container/smoker.png" } } } From 391907dda36a9d966a95331fbbc7d047793f7a69 Mon Sep 17 00:00:00 2001 From: opekope2 Date: Wed, 30 Aug 2023 21:45:15 +0200 Subject: [PATCH 14/15] Change deps Download MCV from Modrinth Use modLocalRuntime for mods whose code isn't used Add deps to fabric.mod.json (TODO: replace asterisks?) --- Extra/build.gradle.kts | 8 ++++---- Extra/src/main/resources/fabric.mod.json | 8 ++++++++ 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/Extra/build.gradle.kts b/Extra/build.gradle.kts index 4496dd3d..cc9aa0a5 100644 --- a/Extra/build.gradle.kts +++ b/Extra/build.gradle.kts @@ -52,10 +52,10 @@ dependencies { implementation(project(":Properties", configuration = "namedElements")) extractNestedJars(modImplementation("maven.modrinth", "quickshulker", "1.4.0-1.20")) - modImplementation("curse.maven", "more-chest-variants-lieonlion-858032", "4723273") - modImplementation("curse.maven", "variant-barrels-fabric-576766", "4623658") - modImplementation("curse.maven", "variant-crafting-tables-fabric-575271", "4723634") - extractNestedJars(modImplementation("curse.maven", "variant-vanilla-blocks-866509", "4723107")) + modImplementation("maven.modrinth", "more-chest-variants-lieonlion", "1.2.1-1.20.1-Fabric") + modLocalRuntime("curse.maven", "variant-barrels-fabric-576766", "4623658") + modLocalRuntime("curse.maven", "variant-crafting-tables-fabric-575271", "4723634") + extractNestedJars(modLocalRuntime("curse.maven", "variant-vanilla-blocks-866509", "4723107")) // Gradle has skill issue and doesn't pull transitive deps. // But it pulls a newer version of DFU through mavenLocal, which crashes Minecraft. diff --git a/Extra/src/main/resources/fabric.mod.json b/Extra/src/main/resources/fabric.mod.json index 6a36976c..77e012d0 100644 --- a/Extra/src/main/resources/fabric.mod.json +++ b/Extra/src/main/resources/fabric.mod.json @@ -35,8 +35,16 @@ "fabric-language-kotlin": ">=${fabric_language_kotlin}", "minecraft": ">=1.18 <=1.20.1", "java": ">=${java}", + "lilac": ">=1.0.0-alpha.1 <1.1.0", "optigui": "=${version}" }, + "suggests": { + "lolmcv": "*", + "quickshulker": "*", + "variantbarrels": "*", + "variantcraftingtables": "*", + "variantvanillablocks": "*" + }, "custom": { "optigui": { "containerTextures": { From a837dd45285af044170ade6322766305ac107880 Mon Sep 17 00:00:00 2001 From: opekope2 Date: Wed, 30 Aug 2023 21:45:51 +0200 Subject: [PATCH 15/15] Specify default textures with namespace (minecraft) --- Extra/src/main/resources/fabric.mod.json | 296 +++++++++++------------ 1 file changed, 148 insertions(+), 148 deletions(-) diff --git a/Extra/src/main/resources/fabric.mod.json b/Extra/src/main/resources/fabric.mod.json index 77e012d0..bac6beff 100644 --- a/Extra/src/main/resources/fabric.mod.json +++ b/Extra/src/main/resources/fabric.mod.json @@ -48,154 +48,154 @@ "custom": { "optigui": { "containerTextures": { - "lolmcv:acacia_chest": "textures/gui/container/generic_54.png", - "lolmcv:bamboo_chest": "textures/gui/container/generic_54.png", - "lolmcv:birch_chest": "textures/gui/container/generic_54.png", - "lolmcv:cherry_chest": "textures/gui/container/generic_54.png", - "lolmcv:dark_oak_chest": "textures/gui/container/generic_54.png", - "lolmcv:jungle_chest": "textures/gui/container/generic_54.png", - "lolmcv:mangrove_chest": "textures/gui/container/generic_54.png", - "lolmcv:spruce_chest": "textures/gui/container/generic_54.png", - "lolmcv:crimson_chest": "textures/gui/container/generic_54.png", - "lolmcv:warped_chest": "textures/gui/container/generic_54.png", - "variantbarrels:acacia_barrel": "textures/gui/container/generic_54.png", - "variantbarrels:bamboo_barrel": "textures/gui/container/generic_54.png", - "variantbarrels:birch_barrel": "textures/gui/container/generic_54.png", - "variantbarrels:cherry_barrel": "textures/gui/container/generic_54.png", - "variantbarrels:crimson_barrel": "textures/gui/container/generic_54.png", - "variantbarrels:dark_oak_barrel": "textures/gui/container/generic_54.png", - "variantbarrels:jungle_barrel": "textures/gui/container/generic_54.png", - "variantbarrels:mangrove_barrel": "textures/gui/container/generic_54.png", - "variantbarrels:oak_barrel": "textures/gui/container/generic_54.png", - "variantbarrels:warped_barrel": "textures/gui/container/generic_54.png", - "variantcraftingtables:acacia_crafting_table": "textures/gui/container/crafting_table.png", - "variantcraftingtables:bamboo_crafting_table": "textures/gui/container/crafting_table.png", - "variantcraftingtables:birch_crafting_table": "textures/gui/container/crafting_table.png", - "variantcraftingtables:cherry_crafting_table": "textures/gui/container/crafting_table.png", - "variantcraftingtables:crimson_crafting_table": "textures/gui/container/crafting_table.png", - "variantcraftingtables:dark_oak_crafting_table": "textures/gui/container/crafting_table.png", - "variantcraftingtables:jungle_crafting_table": "textures/gui/container/crafting_table.png", - "variantcraftingtables:mangrove_crafting_table": "textures/gui/container/crafting_table.png", - "variantcraftingtables:spruce_crafting_table": "textures/gui/container/crafting_table.png", - "variantcraftingtables:warped_crafting_table": "textures/gui/container/crafting_table.png", - "variantcraftingtables:aa_aeronos_crafting_table": "textures/gui/container/crafting_table.png", - "variantcraftingtables:aa_glacian_crafting_table": "textures/gui/container/crafting_table.png", - "variantcraftingtables:ldbp_palm_crafting_table": "textures/gui/container/crafting_table.png", - "variantcraftingtables:ba_rotten_crafting_table": "textures/gui/container/crafting_table.png", - "variantcraftingtables:bw_cypress_crafting_table": "textures/gui/container/crafting_table.png", - "variantcraftingtables:bw_dragons_blood_crafting_table": "textures/gui/container/crafting_table.png", - "variantcraftingtables:bw_elder_crafting_table": "textures/gui/container/crafting_table.png", - "variantcraftingtables:bw_juniper_crafting_table": "textures/gui/container/crafting_table.png", - "variantcraftingtables:dad_echo_crafting_table": "textures/gui/container/crafting_table.png", - "variantcraftingtables:prom_dark_amaranth_crafting_table": "textures/gui/container/crafting_table.png", - "variantcraftingtables:prom_maple_crafting_table": "textures/gui/container/crafting_table.png", - "variantcraftingtables:prom_palm_crafting_table": "textures/gui/container/crafting_table.png", - "variantcraftingtables:prom_sakura_crafting_table": "textures/gui/container/crafting_table.png", - "variantcraftingtables:ru_alpha_oak_crafting_table": "textures/gui/container/crafting_table.png", - "variantcraftingtables:ru_baobab_crafting_table": "textures/gui/container/crafting_table.png", - "variantcraftingtables:ru_black_painted_crafting_table": "textures/gui/container/crafting_table.png", - "variantcraftingtables:ru_blackwood_crafting_table": "textures/gui/container/crafting_table.png", - "variantcraftingtables:ru_blue_painted_crafting_table": "textures/gui/container/crafting_table.png", - "variantcraftingtables:ru_brown_painted_crafting_table": "textures/gui/container/crafting_table.png", - "variantcraftingtables:ru_cherry_crafting_table": "textures/gui/container/crafting_table.png", - "variantcraftingtables:ru_cyan_painted_crafting_table": "textures/gui/container/crafting_table.png", - "variantcraftingtables:ru_cypress_crafting_table": "textures/gui/container/crafting_table.png", - "variantcraftingtables:ru_dead_crafting_table": "textures/gui/container/crafting_table.png", - "variantcraftingtables:ru_eucalyptus_crafting_table": "textures/gui/container/crafting_table.png", - "variantcraftingtables:ru_green_painted_crafting_table": "textures/gui/container/crafting_table.png", - "variantcraftingtables:ru_gray_painted_crafting_table": "textures/gui/container/crafting_table.png", - "variantcraftingtables:ru_joshua_crafting_table": "textures/gui/container/crafting_table.png", - "variantcraftingtables:ru_larch_crafting_table": "textures/gui/container/crafting_table.png", - "variantcraftingtables:ru_light_blue_painted_crafting_table": "textures/gui/container/crafting_table.png", - "variantcraftingtables:ru_light_gray_painted_crafting_table": "textures/gui/container/crafting_table.png", - "variantcraftingtables:ru_lime_painted_crafting_table": "textures/gui/container/crafting_table.png", - "variantcraftingtables:ru_magenta_painted_crafting_table": "textures/gui/container/crafting_table.png", - "variantcraftingtables:ru_maple_crafting_table": "textures/gui/container/crafting_table.png", - "variantcraftingtables:ru_mauve_crafting_table": "textures/gui/container/crafting_table.png", - "variantcraftingtables:ru_orange_painted_crafting_table": "textures/gui/container/crafting_table.png", - "variantcraftingtables:ru_palm_crafting_table": "textures/gui/container/crafting_table.png", - "variantcraftingtables:ru_pine_crafting_table": "textures/gui/container/crafting_table.png", - "variantcraftingtables:ru_pink_painted_crafting_table": "textures/gui/container/crafting_table.png", - "variantcraftingtables:ru_purple_painted_crafting_table": "textures/gui/container/crafting_table.png", - "variantcraftingtables:ru_red_painted_crafting_table": "textures/gui/container/crafting_table.png", - "variantcraftingtables:ru_redwood_crafting_table": "textures/gui/container/crafting_table.png", - "variantcraftingtables:ru_sculkwood_crafting_table": "textures/gui/container/crafting_table.png", - "variantcraftingtables:ru_white_painted_crafting_table": "textures/gui/container/crafting_table.png", - "variantcraftingtables:ru_willow_crafting_table": "textures/gui/container/crafting_table.png", - "variantcraftingtables:ru_yellow_painted_crafting_table": "textures/gui/container/crafting_table.png", - "variantcraftingtables:sp_stone_pine_crafting_table": "textures/gui/container/crafting_table.png", - "variantcraftingtables:tr_rubber_crafting_table": "textures/gui/container/crafting_table.png", - "variantcraftingtables:ldv_cherry_crafting_table": "textures/gui/container/crafting_table.png", - "variantvanillablocks:acacia_barrel": "textures/gui/container/generic_54.png", - "variantvanillablocks:bamboo_barrel": "textures/gui/container/generic_54.png", - "variantvanillablocks:birch_barrel": "textures/gui/container/generic_54.png", - "variantvanillablocks:cherry_barrel": "textures/gui/container/generic_54.png", - "variantvanillablocks:crimson_barrel": "textures/gui/container/generic_54.png", - "variantvanillablocks:dark_oak_barrel": "textures/gui/container/generic_54.png", - "variantvanillablocks:jungle_barrel": "textures/gui/container/generic_54.png", - "variantvanillablocks:mangrove_barrel": "textures/gui/container/generic_54.png", - "variantvanillablocks:oak_barrel": "textures/gui/container/generic_54.png", - "variantvanillablocks:warped_barrel": "textures/gui/container/generic_54.png", - "variantvanillablocks:acacia_cartography_table": "textures/gui/container/cartography_table.png", - "variantvanillablocks:bamboo_cartography_table": "textures/gui/container/cartography_table.png", - "variantvanillablocks:birch_cartography_table": "textures/gui/container/cartography_table.png", - "variantvanillablocks:cherry_cartography_table": "textures/gui/container/cartography_table.png", - "variantvanillablocks:crimson_cartography_table": "textures/gui/container/cartography_table.png", - "variantvanillablocks:jungle_cartography_table": "textures/gui/container/cartography_table.png", - "variantvanillablocks:mangrove_cartography_table": "textures/gui/container/cartography_table.png", - "variantvanillablocks:oak_cartography_table": "textures/gui/container/cartography_table.png", - "variantvanillablocks:spruce_cartography_table": "textures/gui/container/cartography_table.png", - "variantvanillablocks:warped_cartography_table": "textures/gui/container/cartography_table.png", - "variantvanillablocks:acacia_crafting_table": "textures/gui/container/crafting_table.png", - "variantvanillablocks:bamboo_crafting_table": "textures/gui/container/crafting_table.png", - "variantvanillablocks:birch_crafting_table": "textures/gui/container/crafting_table.png", - "variantvanillablocks:cherry_crafting_table": "textures/gui/container/crafting_table.png", - "variantvanillablocks:crimson_crafting_table": "textures/gui/container/crafting_table.png", - "variantvanillablocks:dark_oak_crafting_table": "textures/gui/container/crafting_table.png", - "variantvanillablocks:jungle_crafting_table": "textures/gui/container/crafting_table.png", - "variantvanillablocks:mangrove_crafting_table": "textures/gui/container/crafting_table.png", - "variantvanillablocks:spruce_crafting_table": "textures/gui/container/crafting_table.png", - "variantvanillablocks:warped_crafting_table": "textures/gui/container/crafting_table.png", - "variantvanillablocks:acacia_grindstone": "textures/gui/container/grindstone.png", - "variantvanillablocks:bamboo_grindstone": "textures/gui/container/grindstone.png", - "variantvanillablocks:birch_grindstone": "textures/gui/container/grindstone.png", - "variantvanillablocks:cherry_grindstone": "textures/gui/container/grindstone.png", - "variantvanillablocks:crimson_grindstone": "textures/gui/container/grindstone.png", - "variantvanillablocks:jungle_grindstone": "textures/gui/container/grindstone.png", - "variantvanillablocks:mangrove_grindstone": "textures/gui/container/grindstone.png", - "variantvanillablocks:oak_grindstone": "textures/gui/container/grindstone.png", - "variantvanillablocks:spruce_grindstone": "textures/gui/container/grindstone.png", - "variantvanillablocks:warped_grindstone": "textures/gui/container/grindstone.png", - "variantvanillablocks:acacia_lectern": "textures/gui/book.png", - "variantvanillablocks:bamboo_lectern": "textures/gui/book.png", - "variantvanillablocks:birch_lectern": "textures/gui/book.png", - "variantvanillablocks:cherry_lectern": "textures/gui/book.png", - "variantvanillablocks:dark_oak_lectern": "textures/gui/book.png", - "variantvanillablocks:crimson_lectern": "textures/gui/book.png", - "variantvanillablocks:jungle_lectern": "textures/gui/book.png", - "variantvanillablocks:mangrove_lectern": "textures/gui/book.png", - "variantvanillablocks:spruce_lectern": "textures/gui/book.png", - "variantvanillablocks:warped_lectern": "textures/gui/book.png", - "variantvanillablocks:acacia_smithing_table": "textures/gui/container/smithing.png", - "variantvanillablocks:bamboo_smithing_table": "textures/gui/container/smithing.png", - "variantvanillablocks:birch_smithing_table": "textures/gui/container/smithing.png", - "variantvanillablocks:cherry_smithing_table": "textures/gui/container/smithing.png", - "variantvanillablocks:crimson_smithing_table": "textures/gui/container/smithing.png", - "variantvanillablocks:dark_oak_smithing_table": "textures/gui/container/smithing.png", - "variantvanillablocks:jungle_smithing_table": "textures/gui/container/smithing.png", - "variantvanillablocks:oak_smithing_table": "textures/gui/container/smithing.png", - "variantvanillablocks:spruce_smithing_table": "textures/gui/container/smithing.png", - "variantvanillablocks:warped_smithing_table": "textures/gui/container/smithing.png", - "variantvanillablocks:acacia_smoker": "textures/gui/container/smoker.png", - "variantvanillablocks:bamboo_smoker": "textures/gui/container/smoker.png", - "variantvanillablocks:birch_smoker": "textures/gui/container/smoker.png", - "variantvanillablocks:cherry_smoker": "textures/gui/container/smoker.png", - "variantvanillablocks:crimson_smoker": "textures/gui/container/smoker.png", - "variantvanillablocks:dark_oak_smoker": "textures/gui/container/smoker.png", - "variantvanillablocks:jungle_smoker": "textures/gui/container/smoker.png", - "variantvanillablocks:mangrove_smoker": "textures/gui/container/smoker.png", - "variantvanillablocks:spruce_smoker": "textures/gui/container/smoker.png", - "variantvanillablocks:warped_smoker": "textures/gui/container/smoker.png" + "lolmcv:acacia_chest": "minecraft:textures/gui/container/generic_54.png", + "lolmcv:bamboo_chest": "minecraft:textures/gui/container/generic_54.png", + "lolmcv:birch_chest": "minecraft:textures/gui/container/generic_54.png", + "lolmcv:cherry_chest": "minecraft:textures/gui/container/generic_54.png", + "lolmcv:dark_oak_chest": "minecraft:textures/gui/container/generic_54.png", + "lolmcv:jungle_chest": "minecraft:textures/gui/container/generic_54.png", + "lolmcv:mangrove_chest": "minecraft:textures/gui/container/generic_54.png", + "lolmcv:spruce_chest": "minecraft:textures/gui/container/generic_54.png", + "lolmcv:crimson_chest": "minecraft:textures/gui/container/generic_54.png", + "lolmcv:warped_chest": "minecraft:textures/gui/container/generic_54.png", + "variantbarrels:acacia_barrel": "minecraft:textures/gui/container/generic_54.png", + "variantbarrels:bamboo_barrel": "minecraft:textures/gui/container/generic_54.png", + "variantbarrels:birch_barrel": "minecraft:textures/gui/container/generic_54.png", + "variantbarrels:cherry_barrel": "minecraft:textures/gui/container/generic_54.png", + "variantbarrels:crimson_barrel": "minecraft:textures/gui/container/generic_54.png", + "variantbarrels:dark_oak_barrel": "minecraft:textures/gui/container/generic_54.png", + "variantbarrels:jungle_barrel": "minecraft:textures/gui/container/generic_54.png", + "variantbarrels:mangrove_barrel": "minecraft:textures/gui/container/generic_54.png", + "variantbarrels:oak_barrel": "minecraft:textures/gui/container/generic_54.png", + "variantbarrels:warped_barrel": "minecraft:textures/gui/container/generic_54.png", + "variantcraftingtables:acacia_crafting_table": "minecraft:textures/gui/container/crafting_table.png", + "variantcraftingtables:bamboo_crafting_table": "minecraft:textures/gui/container/crafting_table.png", + "variantcraftingtables:birch_crafting_table": "minecraft:textures/gui/container/crafting_table.png", + "variantcraftingtables:cherry_crafting_table": "minecraft:textures/gui/container/crafting_table.png", + "variantcraftingtables:crimson_crafting_table": "minecraft:textures/gui/container/crafting_table.png", + "variantcraftingtables:dark_oak_crafting_table": "minecraft:textures/gui/container/crafting_table.png", + "variantcraftingtables:jungle_crafting_table": "minecraft:textures/gui/container/crafting_table.png", + "variantcraftingtables:mangrove_crafting_table": "minecraft:textures/gui/container/crafting_table.png", + "variantcraftingtables:spruce_crafting_table": "minecraft:textures/gui/container/crafting_table.png", + "variantcraftingtables:warped_crafting_table": "minecraft:textures/gui/container/crafting_table.png", + "variantcraftingtables:aa_aeronos_crafting_table": "minecraft:textures/gui/container/crafting_table.png", + "variantcraftingtables:aa_glacian_crafting_table": "minecraft:textures/gui/container/crafting_table.png", + "variantcraftingtables:ldbp_palm_crafting_table": "minecraft:textures/gui/container/crafting_table.png", + "variantcraftingtables:ba_rotten_crafting_table": "minecraft:textures/gui/container/crafting_table.png", + "variantcraftingtables:bw_cypress_crafting_table": "minecraft:textures/gui/container/crafting_table.png", + "variantcraftingtables:bw_dragons_blood_crafting_table": "minecraft:textures/gui/container/crafting_table.png", + "variantcraftingtables:bw_elder_crafting_table": "minecraft:textures/gui/container/crafting_table.png", + "variantcraftingtables:bw_juniper_crafting_table": "minecraft:textures/gui/container/crafting_table.png", + "variantcraftingtables:dad_echo_crafting_table": "minecraft:textures/gui/container/crafting_table.png", + "variantcraftingtables:prom_dark_amaranth_crafting_table": "minecraft:textures/gui/container/crafting_table.png", + "variantcraftingtables:prom_maple_crafting_table": "minecraft:textures/gui/container/crafting_table.png", + "variantcraftingtables:prom_palm_crafting_table": "minecraft:textures/gui/container/crafting_table.png", + "variantcraftingtables:prom_sakura_crafting_table": "minecraft:textures/gui/container/crafting_table.png", + "variantcraftingtables:ru_alpha_oak_crafting_table": "minecraft:textures/gui/container/crafting_table.png", + "variantcraftingtables:ru_baobab_crafting_table": "minecraft:textures/gui/container/crafting_table.png", + "variantcraftingtables:ru_black_painted_crafting_table": "minecraft:textures/gui/container/crafting_table.png", + "variantcraftingtables:ru_blackwood_crafting_table": "minecraft:textures/gui/container/crafting_table.png", + "variantcraftingtables:ru_blue_painted_crafting_table": "minecraft:textures/gui/container/crafting_table.png", + "variantcraftingtables:ru_brown_painted_crafting_table": "minecraft:textures/gui/container/crafting_table.png", + "variantcraftingtables:ru_cherry_crafting_table": "minecraft:textures/gui/container/crafting_table.png", + "variantcraftingtables:ru_cyan_painted_crafting_table": "minecraft:textures/gui/container/crafting_table.png", + "variantcraftingtables:ru_cypress_crafting_table": "minecraft:textures/gui/container/crafting_table.png", + "variantcraftingtables:ru_dead_crafting_table": "minecraft:textures/gui/container/crafting_table.png", + "variantcraftingtables:ru_eucalyptus_crafting_table": "minecraft:textures/gui/container/crafting_table.png", + "variantcraftingtables:ru_green_painted_crafting_table": "minecraft:textures/gui/container/crafting_table.png", + "variantcraftingtables:ru_gray_painted_crafting_table": "minecraft:textures/gui/container/crafting_table.png", + "variantcraftingtables:ru_joshua_crafting_table": "minecraft:textures/gui/container/crafting_table.png", + "variantcraftingtables:ru_larch_crafting_table": "minecraft:textures/gui/container/crafting_table.png", + "variantcraftingtables:ru_light_blue_painted_crafting_table": "minecraft:textures/gui/container/crafting_table.png", + "variantcraftingtables:ru_light_gray_painted_crafting_table": "minecraft:textures/gui/container/crafting_table.png", + "variantcraftingtables:ru_lime_painted_crafting_table": "minecraft:textures/gui/container/crafting_table.png", + "variantcraftingtables:ru_magenta_painted_crafting_table": "minecraft:textures/gui/container/crafting_table.png", + "variantcraftingtables:ru_maple_crafting_table": "minecraft:textures/gui/container/crafting_table.png", + "variantcraftingtables:ru_mauve_crafting_table": "minecraft:textures/gui/container/crafting_table.png", + "variantcraftingtables:ru_orange_painted_crafting_table": "minecraft:textures/gui/container/crafting_table.png", + "variantcraftingtables:ru_palm_crafting_table": "minecraft:textures/gui/container/crafting_table.png", + "variantcraftingtables:ru_pine_crafting_table": "minecraft:textures/gui/container/crafting_table.png", + "variantcraftingtables:ru_pink_painted_crafting_table": "minecraft:textures/gui/container/crafting_table.png", + "variantcraftingtables:ru_purple_painted_crafting_table": "minecraft:textures/gui/container/crafting_table.png", + "variantcraftingtables:ru_red_painted_crafting_table": "minecraft:textures/gui/container/crafting_table.png", + "variantcraftingtables:ru_redwood_crafting_table": "minecraft:textures/gui/container/crafting_table.png", + "variantcraftingtables:ru_sculkwood_crafting_table": "minecraft:textures/gui/container/crafting_table.png", + "variantcraftingtables:ru_white_painted_crafting_table": "minecraft:textures/gui/container/crafting_table.png", + "variantcraftingtables:ru_willow_crafting_table": "minecraft:textures/gui/container/crafting_table.png", + "variantcraftingtables:ru_yellow_painted_crafting_table": "minecraft:textures/gui/container/crafting_table.png", + "variantcraftingtables:sp_stone_pine_crafting_table": "minecraft:textures/gui/container/crafting_table.png", + "variantcraftingtables:tr_rubber_crafting_table": "minecraft:textures/gui/container/crafting_table.png", + "variantcraftingtables:ldv_cherry_crafting_table": "minecraft:textures/gui/container/crafting_table.png", + "variantvanillablocks:acacia_barrel": "minecraft:textures/gui/container/generic_54.png", + "variantvanillablocks:bamboo_barrel": "minecraft:textures/gui/container/generic_54.png", + "variantvanillablocks:birch_barrel": "minecraft:textures/gui/container/generic_54.png", + "variantvanillablocks:cherry_barrel": "minecraft:textures/gui/container/generic_54.png", + "variantvanillablocks:crimson_barrel": "minecraft:textures/gui/container/generic_54.png", + "variantvanillablocks:dark_oak_barrel": "minecraft:textures/gui/container/generic_54.png", + "variantvanillablocks:jungle_barrel": "minecraft:textures/gui/container/generic_54.png", + "variantvanillablocks:mangrove_barrel": "minecraft:textures/gui/container/generic_54.png", + "variantvanillablocks:oak_barrel": "minecraft:textures/gui/container/generic_54.png", + "variantvanillablocks:warped_barrel": "minecraft:textures/gui/container/generic_54.png", + "variantvanillablocks:acacia_cartography_table": "minecraft:textures/gui/container/cartography_table.png", + "variantvanillablocks:bamboo_cartography_table": "minecraft:textures/gui/container/cartography_table.png", + "variantvanillablocks:birch_cartography_table": "minecraft:textures/gui/container/cartography_table.png", + "variantvanillablocks:cherry_cartography_table": "minecraft:textures/gui/container/cartography_table.png", + "variantvanillablocks:crimson_cartography_table": "minecraft:textures/gui/container/cartography_table.png", + "variantvanillablocks:jungle_cartography_table": "minecraft:textures/gui/container/cartography_table.png", + "variantvanillablocks:mangrove_cartography_table": "minecraft:textures/gui/container/cartography_table.png", + "variantvanillablocks:oak_cartography_table": "minecraft:textures/gui/container/cartography_table.png", + "variantvanillablocks:spruce_cartography_table": "minecraft:textures/gui/container/cartography_table.png", + "variantvanillablocks:warped_cartography_table": "minecraft:textures/gui/container/cartography_table.png", + "variantvanillablocks:acacia_crafting_table": "minecraft:textures/gui/container/crafting_table.png", + "variantvanillablocks:bamboo_crafting_table": "minecraft:textures/gui/container/crafting_table.png", + "variantvanillablocks:birch_crafting_table": "minecraft:textures/gui/container/crafting_table.png", + "variantvanillablocks:cherry_crafting_table": "minecraft:textures/gui/container/crafting_table.png", + "variantvanillablocks:crimson_crafting_table": "minecraft:textures/gui/container/crafting_table.png", + "variantvanillablocks:dark_oak_crafting_table": "minecraft:textures/gui/container/crafting_table.png", + "variantvanillablocks:jungle_crafting_table": "minecraft:textures/gui/container/crafting_table.png", + "variantvanillablocks:mangrove_crafting_table": "minecraft:textures/gui/container/crafting_table.png", + "variantvanillablocks:spruce_crafting_table": "minecraft:textures/gui/container/crafting_table.png", + "variantvanillablocks:warped_crafting_table": "minecraft:textures/gui/container/crafting_table.png", + "variantvanillablocks:acacia_grindstone": "minecraft:textures/gui/container/grindstone.png", + "variantvanillablocks:bamboo_grindstone": "minecraft:textures/gui/container/grindstone.png", + "variantvanillablocks:birch_grindstone": "minecraft:textures/gui/container/grindstone.png", + "variantvanillablocks:cherry_grindstone": "minecraft:textures/gui/container/grindstone.png", + "variantvanillablocks:crimson_grindstone": "minecraft:textures/gui/container/grindstone.png", + "variantvanillablocks:jungle_grindstone": "minecraft:textures/gui/container/grindstone.png", + "variantvanillablocks:mangrove_grindstone": "minecraft:textures/gui/container/grindstone.png", + "variantvanillablocks:oak_grindstone": "minecraft:textures/gui/container/grindstone.png", + "variantvanillablocks:spruce_grindstone": "minecraft:textures/gui/container/grindstone.png", + "variantvanillablocks:warped_grindstone": "minecraft:textures/gui/container/grindstone.png", + "variantvanillablocks:acacia_lectern": "minecraft:textures/gui/book.png", + "variantvanillablocks:bamboo_lectern": "minecraft:textures/gui/book.png", + "variantvanillablocks:birch_lectern": "minecraft:textures/gui/book.png", + "variantvanillablocks:cherry_lectern": "minecraft:textures/gui/book.png", + "variantvanillablocks:dark_oak_lectern": "minecraft:textures/gui/book.png", + "variantvanillablocks:crimson_lectern": "minecraft:textures/gui/book.png", + "variantvanillablocks:jungle_lectern": "minecraft:textures/gui/book.png", + "variantvanillablocks:mangrove_lectern": "minecraft:textures/gui/book.png", + "variantvanillablocks:spruce_lectern": "minecraft:textures/gui/book.png", + "variantvanillablocks:warped_lectern": "minecraft:textures/gui/book.png", + "variantvanillablocks:acacia_smithing_table": "minecraft:textures/gui/container/smithing.png", + "variantvanillablocks:bamboo_smithing_table": "minecraft:textures/gui/container/smithing.png", + "variantvanillablocks:birch_smithing_table": "minecraft:textures/gui/container/smithing.png", + "variantvanillablocks:cherry_smithing_table": "minecraft:textures/gui/container/smithing.png", + "variantvanillablocks:crimson_smithing_table": "minecraft:textures/gui/container/smithing.png", + "variantvanillablocks:dark_oak_smithing_table": "minecraft:textures/gui/container/smithing.png", + "variantvanillablocks:jungle_smithing_table": "minecraft:textures/gui/container/smithing.png", + "variantvanillablocks:oak_smithing_table": "minecraft:textures/gui/container/smithing.png", + "variantvanillablocks:spruce_smithing_table": "minecraft:textures/gui/container/smithing.png", + "variantvanillablocks:warped_smithing_table": "minecraft:textures/gui/container/smithing.png", + "variantvanillablocks:acacia_smoker": "minecraft:textures/gui/container/smoker.png", + "variantvanillablocks:bamboo_smoker": "minecraft:textures/gui/container/smoker.png", + "variantvanillablocks:birch_smoker": "minecraft:textures/gui/container/smoker.png", + "variantvanillablocks:cherry_smoker": "minecraft:textures/gui/container/smoker.png", + "variantvanillablocks:crimson_smoker": "minecraft:textures/gui/container/smoker.png", + "variantvanillablocks:dark_oak_smoker": "minecraft:textures/gui/container/smoker.png", + "variantvanillablocks:jungle_smoker": "minecraft:textures/gui/container/smoker.png", + "variantvanillablocks:mangrove_smoker": "minecraft:textures/gui/container/smoker.png", + "variantvanillablocks:spruce_smoker": "minecraft:textures/gui/container/smoker.png", + "variantvanillablocks:warped_smoker": "minecraft:textures/gui/container/smoker.png" } } }