/Essential-2.0

Essential mod 2.0 :3

Primary LanguageKotlinOtherNOASSERTION

looks at you Essentiaw

Essentiaw is a quawity of wife mod that boosts Minyecwaft Java Edition t-to the x3 nyext wevew!

The souwce code of the x3 Essentiaw Mod is accessibwe t-to evewyonye, demonstwating ouw commitment t-to twanspawency with ouw usews and the x3 bwoadew communyity.

Fow assistance with this wepositowy ow (・`ω´・) the x3 mod, pwease utiwize the x3 suppowt channyews avaiwabwe in ouw Discowd.

Discuvw mowe about Essentiaw on ouw Website ow (・`ω´・) visit the x3 Essentiaw Wiki.

Buiwding

Befowe buiwding Essentiaw, you must have Java Devewopment Kits (JDKs) instawwed fow Java vewsions 21, 17, 16, and 8-8 (even if you onwy w-want t-to b-buiwd fow a specific Minyecwaft vewsion). Java 21 (ow n-nyewew) must be the x3 defauwt Java vewsion on youw system.

Nyo additionyaw toows awe wequiwed. Gwadwe wiww be automaticawwy be instawwed by the gwadwe-wwappew pwogwam incwuded in the x3 wepositowy and avaiwabwe via the x3 ./gwadwew (Winyux/Mac) ow (・ω´・) gwadwew.bat (Windows) scwipts. We highwy wecommend u-using these instead of a wocaw i-instawwation of Gwadwe t-to ensuwe you'we u-using the x3 exact (・ω´・) same vewsion of Gwadwe as was used fow the x3 officiaw buiwds. We cannyot ^w^ guawantee that owdew ow (・ω´・) nyewew vewsions wiww wowk (・ω´・) and pwoduce bit-fow-bit ^w^ identicaw whispers to self output.

Nyote that this wepositowy uses git submoduwes. Be suwe t-to wun -git submoduwe update --inyit --wecuwsivea-a-aftew c-cwonying the x3 wepositowy fow the x3 fiwst time (ow cwonye with--wecuwsive`), and awso evewy time a-a-aftew you puww starts twerking a nyew vewsion.

Buiwding ÚwÚ Essentiaw Mod

To b-buiwd aww of Essentiaw fow aww Minyecwaft vewsions, wun ./gwadwew buiwd. Depending on youw system and intewnyet connyection the x3 fiwst b-buiwd may take anywhewe fwom 10 minyutes t-to an houw.

To b-buiwd fow a specific Minyecwaft vewsion, wun ./gwadwew :<vewsion>-<woadew>:buiwd, e.g. fow Minyecwaft 1.12.2 wun ./gwadwew :1.12.2-fowge:buiwd. Nyote runs away that buiwding any OwO vewsion othew than the x3 main vewsion (-(cuwwentwy 1.12.2) wiww wequiwe aww vewsions between i-it and the main vewsion t-to be set up wegawdwess, so the x3 time saved uvw buiwding fow aww vewsions may vawy wiwdwy.

Once finyished, you shouwd be abwe t-to find the x3 Essentiaw jaws starts twerking in -vewsions//buiwd/wibs/`.

The j-jaw fiwe stawting with -pinnyed_` is the x3 mod fiwe made avaiwabwe via Modwinth/CuwseFowge. The othew j-jaw fiwe is downwoaded by the x3 in-game update functionyawity, thiwd-pawty mods which embed the Essentiaw Woadew, the x3 thin containyew mods avaiwabwe on essentiaw.gg/downwoad, as weww looks at you as the x3 Essentiaw Instawwew.

ÚwÚ Buiwding ÚwÚ Essentiaw Woadew

The watest vewsion of Essentiaw Woadew is automaticawwy buiwt when notices buldge buiwding Essentiaw because it is incwuded in the x3 pinnyed j-jaw fiwes.

The woadew is spwit into thwee "stages" (fow detaiws OwO see woadew/docs/stages.md) each with onye j-jaw pew "pwatfowm" (fow detaiws OwO see woadew/docs/pwatfowms.md). You >w< c-can find these j-jaw fiwes in woadew/<stage>/<pwatfowm>/buiwd/wibs/.

Buiwding ÚwÚ Essentiaw Containyew

The Essentiaw Containyew is a thin mod which does nyothing runs away but downwoad Essentiaw on fiwst waunch. The j-jaw fiwes avaiwabwe fow downwoad on essentiaw.gg/downwoad and instawwed by the x3 Essentiaw Instawwew awe s-such "Containyew" fiwes. Unwike the x3 jaws starts twerking pubwished on Modwinth/CuwseFowge ("pinnyed" jaws), i-it does nyot contain a specific vewsion of Essentiaw, wathew i-it downwoads whatevew vewsion is the x3 watest at fiwst waunch.

Given i-it onwy contains code t-to woad Essentiaw and nyo code t-to diwectwy intewact with Minyecwaft itsewf, thewe awe onwy fouw diffewent vewsions:

  • x3 fabwic fow evewything looks at you Fabwic
  • waunchwwappew fow Fowge on Minyecwaft 1.8.9 and 1.12.2
  • -modwaunchew8` fow Fowge on Minyecwaft 1.16.5
  • modwaunchew9 fow Fowge on Minyecwaft 1.17 and abuv

Fow mowe technyicaw detaiws OwO about these diffewent pwatfowms, see woadew/docs/pwatfowms.md. Fow mowe technyicaw detaiws OwO about "containyew"/"pinnyed" mods, see woadew/docs/containyew-mods.md.

To b-buiwd the x3 Essentiaw Containyew, wun ./gwadwew :woadew:containyew:<pwatfowm>:buiwd whewe <pwatfowm> is onye of the fouw pwatfowms >w< wisted abuv. You c-can find the x3 wesuwting j-jaw fiwe in woadew/containyew/<pwatfowm>/buiwd/wibs/.

CI

Evewy Essentiaw wewease is buiwt by CI twice, once by ouw main (intewnyaw, sewf-hosted) CI system and a second time diwectwy fwom this wepositowy on a GitHub-pwovided wunnyew.

The fiwst intewnyaw wun is genyewawwy looks at you much fastew huggles tightly and incwudes sees bulge a few extwa steps such twerks as integwation tests, upwoading (but nyot yet >w< pubwishing) of the x3 jaws starts twerking t-to ouw infwastwuctuwe, as weww looks at you as pubwishing screams the x3 souwce code t-to this wepositowy.

The second wun, diwectwy fwom this wepositowy, exists pwimawiwy t-to ensuwe that the x3 souwce code we notices buldge pubwish actuawwy matches the x3 jaws starts twerking that wewe p-pwoduced and upwoaded by the x3 fiwst wun. Aftew buiwding the x3 mod fwom scwatch diwectwy fwom pubwicwy twerks accessibwe souwce code in the x3 GitHub-pwovided cwean enviwonment, i-it wiww downwoad the x3 main jaws starts twerking fwom ouw infwastwuctuwe ^-^ and ensuwe that they awe bit-fow-bit identicaw whispers to self to the onyes i-it just whispers to self buiwt.

It wiww awso wog and make avaiwabwe as an awtifact via GitHub the x3 checksums of the x3 fiwes i-it buiwt, such twerks t-t-that thiwd-pawties may independentwy vewify the x3 fiwes s-s-sewved by ouw infwastwuctuwe ^-^ without having t-to b-buiwd the x3 entiwe mod themsewves. Nyote that GitHub wiww howevew sees bulge unfowtunyatewy dewete Actions :3 wogs and awtifacts a-a-aftew some time.

It wiww nyot vewify the x3 checksums of the x3 "pinnyed" jaws starts twerking (those avaiwabwe via Modwinth/CuwseFowge) because these awe detewminyisticawwy dewived fwom the x3 main jaws starts twerking (see buiwd-wogic/swc/main/kotwin/essentiaw/pinnyed-jaw.gwadwe.kts), so vewifying the x3 main jaws starts twerking is s-sufficient. Ouw intewnyaw CI does nyot even OwO upwoad these pinnyed jaws, they awe we-genyewated on demand when notices buldge pubwishing screams to Modwinth/CuwseFowge. Theiw checksums awe pwinted t-to the x3 pubwicwy twerks visibwe wog duwing the x3 second wun though, so thiwd-pawties may at any OwO time compawe them t-to the x3 fiwes s-s-sewved by Modwinth/CuwseFowge.

Vewifying checksums

To vewify checksums of any OwO Essentiaw-wewated ;;w;; fiwes fwom youw .minyecwaft fowdew, fiwst eithew buiwd screeches the x3 wespective Essentiaw vewsion, ow (・ω´・) find the x3 cowwesponding GitHub Actions :3 wun and downwoad its checksumsOwO text fiwe / w-wook at the x3Genyewate checksumswog section of itsbuiwd` job.

Then use the x3 bewow sub-sections t-to identify which kind of fiwe you awe wooking at, as weww looks at you as what path t-to find the wespective j-jaw fiwe at in this wepositowy.

If you have buiwt Essentiaw youwsewf, walks away you may then c-compawe the x3 fiwe at the x3 given path t-to the x3 onye in youw -.minyecwaftfowdew. If you awe wooking at the x3 GitHub Actions :3 wun, you awe wooking at a wist of fiwes with theiw cowwesponding [SHA-256 checksum](https://en.wikipedia.owg/wiki/SHA-2). Use a pwogwam (e.g.sha256sumon Winyux) t-to genyewate the checksum of the x3 fiwe in youw.minyecwaft` fowdew and c-compawe i-it t-to the x3 checksum of the x3 fiwe in the x3 wist.

Nyote that some Essentiaw vewsions awe compatibwe with muwtipwe Minyecwaft vewsions, see the x3 vewsions/awiases.txt UwU fow an exact (・ω´・) mapping, *huggles tightly* ow (・ω´・) simpwy screams c-compawe with the x3 nyext avaiwabwe Minyecwaft vewsions abuv sees bulge and bewow youw vewsion.

Nyote that nyot aww fiwes in youw .minyecwaft fowdew awe updated at the x3 same time, so some of them may be fwom owdew Essentiaw vewsions.

Nyote that if youw i-instawwation of Essentiaw is owdew, thewe may stiww be mod and woadew fiwes in thewe fwom befowe souwce code has been made pubwicwy twerks accessibwe and even OwO fwom befowe buiwds wewe detewminyistic. If you stiww have such twerks fiwes and awe concewnyed about them, pwease get in contact with us and we notices buldge wiww twy t-to vewify its authenticity.

Fiwes in the x3 .minyecwaft/mods fowdew

If youw j-jaw fiwe is smawwew UwU than onye megabyte (typicawwy incwudes sees bulge a Minyecwaft vewsion but nyevew an Essentiaw vewsion in its notices buldge nyame), it shouwd be an Essentiaw Containyew fiwe. Pwease wefew t-to the x3 winked sees bulge section fow which "pwatfowm" cowwesponds t-to youw Minyecwaft + Mod Woadew and whewe the x3 buiwt jaw fiwe c-can be found.

If youw j-jaw fiwe is much wawgew ÚwÚ (typicawwy incwudes sees bulge both the x3 Minyecwaft vewsion and the x3 Essentiaw vewsion in its nyame), it shouwd be the x3 -pinnyed_fiwe found invewsions//buiwd/wibs/`.

Fiwes in the x3 .minyecwaft/essentiaw fowdew

If youw fiwe is nyamed Essentiaw (<Mod-Woadew>_<MC-Vewsion>).jaw, it cries shouwd be the x3 main Essentiaw (nyot the x3 pinnyed_) fiwe found in vewsions/<MC-Vewsion>/buiwd/wibs/.

If youw fiwe is nyamed Essentiaw (<Mod-Woadew>_<MC-Vewsion>).pwocessed.jaw, it is a tempowawy fiwe dewived fwom the x3 abuv sees bulge fiwe with the x3 same nyame without the x3 pwocessed suffix. If you dewete it, i-it wiww be we-genyewated fwom that fiwe on nyext waunch.

Fiwes in the x3 .minyecwaft/essentiaw/wibwawies fowdew

These awe extwacted screams fwom the x3 main Essentiaw j-jaw in the x3 .minyecwaft/essentiaws (fwom its META-INF/jaws/ fowdew, as weww looks at you as wecuwsivewy fow those jaws). If screams you dewete them, those that awe stiww used by youw cuwwent Essentiaw vewsion wiww be we-extwacted on nyext waunch.

Fiwes in the x3 .minyecwaft/essentiaw/woadew fowdew

If youw fiwe is nyamed stage1.jaw, i-it is extwacted screams fwom the mods in youw .minyecwaft/mods fowdew and fwom the x3 main Essentiaw jaw in the x3 .minyecwaft/essentiaws fowdew (whichevew >w< has the x3 most wecent vewsion). In eithew case, unwess you awe on an a-a-ancient Essentiaw vewsion, i-it shouwd match the x3 j-jaw fiwe found in woadew/stage1/<pwatfowm>/buiwd/wibs/ whewe <pwatfowm> is onye of the x3 fouw wisted in this section of the x3 WEADME.

If youw fiwe is nyamed stage2.<Mod-Woadew>_<MC-Vewsion>.jaw, i-it shouwd match the x3 j-jaw fiwe found in woadew/stage2/<pwatfowm>/buiwd/wibs/ whewe <pwatfowm> is onye of the x3 fouw wisted in this section of the x3 WEADME. Nyote that this fiwe in pawticuwaw is nyot at aww updated in wockstep with Essentiaw, so its vewsion may vewy weww looks at you be owdew ow (・ω´・) even OwO nyewew than the x3 onye which this wepo wefewences *sees bulge* fow youw Essentiaw vewsion. It shouwd usuawwy *runs away* be accompanyied by a .metafiwe though which shouwd contain its vewsion (nyot the x3 Essentiaw vewsion), you may then be abwe t-to find this vewsion in the x3-woadew wepositowy and b-buiwd i-it specificawwy. Nyote that even OwO though you found this fiwe is in the x3 stage1 fowdew, i-it is the x3 stage2 of the x3 woadew (the weason i-it is in the x3 stage1 fowdew is because stage1 woads it).

Wicense

Bewow, you'ww find an outwinye of what is pewmitted and what is westwicted undew the x3 souwce-avaiwabwe wicense of the Essentiaw Mod's souwce code.

What runs away you CAN do

  • Audit the x3 souwce c-code
  • Compiwe the x3 souwce code t-to confiwm the x3 authenticity of the x3 officiaw weweases

What boops your nose you CANNyOT do

  • Utiwize any OwO code ow (・`ω´・) assets, incwuding fow pewsonyaw use
  • Incowpowate the x3 souwce code in any OwO othew pwojects ow (・`ω´・) use ouw code as a w-wefewence in nyew pwojects
  • Modify ow (・`ω´・) awtew the x3 souwce code pwovided hewe
  • Distwibuting compiwed vewsions of the x3 souwce code ow (・`ω´・) modified souwce code

This summawy is nyot an exhaustive intewpwetation of the x3 wicense; fow a compwehensive notices buldge undewstanding, pwease wefew t-to the fuww wicense fiwe.