NotesWhat is notes.io?

Notes brand slogan

Notes - notes.io

Using Bazel to Create Minecraft Modpacks - Evan Pratten

In 2012, I was introduced to Minecraft mod development, and soon after I put together an almost-plain client-side modpack myself, which mostly included rendering, UI, and quality-of life adjustments. Although the modpack never was published, or even given an official name, I continued maintaining it for years until I finally ended my involvement with Minecraft shortly before the launch of Minecraft 1.9 (in 2016). I was so accustomed to this modpack that it was difficult to play the vanilla version of Minecraft.



Recently, a few friends invited me to join their private Minecraft server, and despite having not played the game in about four years I decided to join. This was a bit of mistake on their part, as they now have the pleasure of a player who used to main 1.6.4 constantly looking at things and asking "What is this and what is it?". I'm beginning to get used to the incredibly bizarre new blocks that have been completely overhauled in the command system, the overly complicated combat system, and a brand new rendering system that makes everything "look weird".



One major thing was still missing, however Where was my modpack? I set out to rebuild my modpack and finally gave it a name: CorePack. Not much has changed, a lot of the rendering and UI mods are back along with the same GLSL shaders, and similar textures. However, I did decide to take a "major step" and switch from the Forge Mod Loader to the Fabric Loader, since I prefer Fabric's API.



Curseforge & Bazel



Curseforge wasn't around when I played regularly. It's a huge improvement over the PlanetMinecraft forums. Curse offers a simple method to access information about every published Minecraft mods and even has an API! Since I switched the modpack to Fabric and every mod I was looking for was available through curse (although it appears that NEI is now a thing of the past).



My main goal for the new version of CorePack was to design it in such that I could have an CI pipeline produce new releases for me every time mods are updated. This requires programmatically pulling information about mods, and their JAR files using the buildsystem script. This project requires working with large amounts of data from a variety of external sources. I again chose Bazel as a buildsystem that excels in these kinds of projects.



Curseforge is a fantastic API to work with mod-data, but @WynPrice (a fellow mod developer) has created Curse Maven which I decided to use instead. Minecraft server hosting Curse Maven, a serverless API, acts exactly the same way as my Ultralight project. Any Curse Maven request for artifacts will be redirected to Curseforge Maven, and served without me having to work out long-form artifact identifications internally through curse.



Curse Maven makes loading a mod (in this instance fabric-api) into Bazel as simple as:



The above snippet uses a Bazel ruleset developed by Square, Inc. called bazel_maven_repository.



Modpack configuration



Since my pack was designed to work with MultiMC, two sets of configuration files are required. The first set tells MultiMC which versions of LWJGL, Minecraft, and Fabric to use and the second set contains the game's config files. A lot of these files contain information that I would like to alter from Bazel during my modpack build. Fortunately the Starlark library has an action called expand_template.


Read More: https://minecraft-server-hosting.net/
     
 
what is notes.io
 

Notes.io is a web-based application for taking notes. You can take your notes and share with others people. If you like taking long notes, notes.io is designed for you. To date, over 8,000,000,000 notes created and continuing...

With notes.io;

  • * You can take a note from anywhere and any device with internet connection.
  • * You can share the notes in social platforms (YouTube, Facebook, Twitter, instagram etc.).
  • * You can quickly share your contents without website, blog and e-mail.
  • * You don't need to create any Account to share a note. As you wish you can use quick, easy and best shortened notes with sms, websites, e-mail, or messaging services (WhatsApp, iMessage, Telegram, Signal).
  • * Notes.io has fabulous infrastructure design for a short link and allows you to share the note as an easy and understandable link.

Fast: Notes.io is built for speed and performance. You can take a notes quickly and browse your archive.

Easy: Notes.io doesn’t require installation. Just write and share note!

Short: Notes.io’s url just 8 character. You’ll get shorten link of your note when you want to share. (Ex: notes.io/q )

Free: Notes.io works for 12 years and has been free since the day it was started.


You immediately create your first note and start sharing with the ones you wish. If you want to contact us, you can use the following communication channels;


Email: [email protected]

Twitter: http://twitter.com/notesio

Instagram: http://instagram.com/notes.io

Facebook: http://facebook.com/notesio



Regards;
Notes.io Team

     
 
Shortened Note Link
 
 
Looding Image
 
     
 
Long File
 
 

For written notes was greater than 18KB Unable to shorten.

To be smaller than 18KB, please organize your notes, or sign in.