You are browsing as a guest. Sign up (or log in) to start making projects!

CatVision v3.0

  • 10 Devlogs
  • 19 Total hours

A minecraft mod which gives you Night Vision, even if you aren't a server operator. Inspired by CatEyes by Tee6! :) Version 3 is again a complete rewrite aimed to bring support to all versions from 1.16.5 up to the latest one.

Ship #1 Pending review

Hi!

Welcome to my minecraft mod, CatVision.
(well its just a rewrite of a rewrite but still)

This is CatVision v3.0, the third rewrite.


Guide for trying the mod

Disclaimer: If you do not own minecraft, I suggest you skip reviewing this (with the little skip button at the top of the page), as you won’t be able to try this properly.

  1. Press the “Try Project” button to land on the latest release of the mod
  2. Download the .jar file for the loader you want to use (i recommend fabric)
  3. Install the mod somewhere
    3.1) If you only have stock minecraft, consider skipping, as it takes a bit of time to get modded minecraft set up. I’d really appreciate you taking that time tho! :)
    3.2) Otherwise, download the fitting .jar for your version and loader and drop it in your launcher/mods folder.
  4. Enjoy toying around! 😊

Default Keybinds:
[F12] Open Config Menu (also possible via the Mod Menu)
[ , ] Toggle Night Vision


Why rewrite it that often?

Well the first version (CatVision Legacy) only supported minecraft 1.21 and later on the fabric loader. Version 2 (aka CatVision Architectury) used the Architectury Loom to support Fabric, Forge and NeoForge on versions 1.16.5, 1.20.1, 1.21.1 and 1.21.11.
However, I wanted support for WAY more versions, bringing us to now. Version 3 uses Stonecutter (a gradle preprocessor for building multi-version and multi-loader mods in one codebase). By doing so, v3 supports 1.16.5, 1.17.1 and all later versions, on Fabric, Forge and NeoForge.

I hope you have fun playing around with the mod!

  • 10 devlogs
  • 19h
Try project → See source code →
Open comments for this post

2h 28m 7s logged

After a little bit of a fight, CatVision v3.0 is finally done!

Support for 26.1, 26.1.1, 26.1.2 and 26.2 is finally here.
After fixing a mistake in the fabric build config, everything finally works and compiles.

funny thing btw

Yesterday, the 1.21.9 build on github failed… because the maven server of one dependency decided not to respond :)

oh and look at this beautiful compatibility right here

0
0
7
Open comments for this post

1h 0m 2s logged

1.20.x is finally done! 🎉

I’ll be doing 1.21.x now, not sure if I’ll finish it today. Tomorrow, hopefully everything will be finished and I can start rewriting my other three mods in this format :)

A few notes

  • Forge support has now been dropped in favour of NeoForge (the last version which supports forge is 1.20.1)
  • 1.20.2, 1.20.3 and 1.20.5 don’t have NeoForge support (none publish gradle module data - they’re all beta versions - making it impossible for moddev-gradle to resolve them properly)
  • Fabric still supports 1.20 to 1.20.6 tho! :)
0
0
5
Open comments for this post

2h 22m 54s logged

i just spent two f*cking hours trying to find out why my mod wasnt loading in neoforge

So get this: In NeoForge 20.4 and earlier (which maps to MC version 1.20.4 and prior, I’m on MC 1.20.4), the metadata file should be under META-INF/mods.toml.

Exactly ONE version later (NeoForge 20.5+, aka MC 1.20.5+), that changed to META-INF/neoforge.mods.toml. Of course, my build toolchain was generating neoforge.mods.toml and NeoForge wasn’t recognizing that, it wanted mods.toml.

why why why do i do this to myself every single day

0
0
7
Open comments for this post

1h 30m 27s logged

Support for 1.19.x is here!

All the 1.19 versions are built, working and published!

Next up is 1.20.x, however those will be taking a longer time due to NeoForge being introduced at 1.20.2.

0
0
4
Open comments for this post

1h 56m 13s logged

Support for 1.18.x is here!

After a few more hiccups, 1.18, 1.18.1 and 1.18.2 are finally working! :)
 
1.18 is already out, 1.18.1 is building on github and 1.18.2 is about to start building

And the Modrinth Page still isn’t public… (still being reviewed 🥲)

0
0
4
Open comments for this post

2h 35m 56s logged

I AM FREE OF THIS HELL (for now)

it is 3h after midnight why do i do this to myself

The problems (there were a lot of them)

  • Wrong Java Versions caused the mod to blow up when starting in a real launcher
  • After correcting the Java Versions, fletching-table didnt resolve :D (it needs Java 17+, but MC needs Java 8 (1.16.5) and Java 16 (1.17.1))
  • Cloth Config was misbehaving >:(
  • JiJ (jar in jar) did NOT want to work properly (cloth config issue #1)

AAND the final boss… cloth config issue #2


Final boss (scary alert)

Problem: The dev instance of minecraft uses the mojang mappings, but cloth config uses SRG mappings. Of course, SRG mappings and mojang mappings aren’t compatible, and as soon as you opened the config menu, the game would crash (but only in dev builds!). The problem is, this issue would’ve likely stayed for EVERY forge version of the mod, meaning debugging would’ve gotten VERY ANNOYING (build, import into real minecraft instance, test there).

The Fix

Simple: just remap cloth config from SRG to mojmap when in the dev env! Simple task!

…except the remapper needs a “dictionary” jar in the same mappings as the thing it’s remapping. Cloth is SRG. The dev env only has mojmap. So there was no SRG dictionary to hand it.

How do I solve this now? SIMPLE!!! Remap Minecraft itself BACK to SRG just to use it as the dictionary, then remap cloth against that!!!!!!!!!!!! All that to fix ONE GODDAMN FIELD NAME
 
I would like to thank Claude for the technical (and moral) support in this thank you thank you thank you thank you thank you thank you

i am going to bed holy f*ck

0
0
13
Open comments for this post

56m 33s logged

1.16.5 works and is out!

Published on GitHub, under review on Modrinth and Curseforge :)

What’s currently done

  • CI/CD working, builds & publishes to github, modrinth and curseforge automatically
  • 1.16.5-fabric done and released
  • 1.16.5-forge done and released

The Problem with 1.16.5-forge specifically

NFRT (the runtime behind net.neoforged.moddev.legacyforge) can only build Minecraft versions that ship official Mojang mappings (which start at 1.17), which of course aren’t shipped for 1.16.5. This required the switch to Architectury Loom for that one version+loader combo. (thank you claude for your token-sacrifise for that 🫡)

I’ll be working on the next few versions now, wish me luck they’ll be easier! 😅

0
0
6
Open comments for this post

36m 22s logged

CI/CD working!

I finally got all the CI/CD (validate, build, publish to github, modrinth and curseforge) working.
 
Next, I’ll be trying to get forge for 1.16.5 working to be able to publish 1.16.5 fully.

0
0
8
Open comments for this post

3h 56m 2s logged

CatVision v3.0

yes, this is the third rewrite

Why rewrite again??

I didn’t like the project structure (seperate branch per minecraft version, hard to maintain, every version has to be managed independently, hard to scale) and I wanted compatibility for 1.16.5 up to the latest version and all inbetween with support for fabric, forge and neoforge.

The Solution: Stonecutter

Stonecutter is a gradle plugin that lets you maintain a single codebase for a multi-version and multi-loader project. You just annotate your code with version and loader conditions, and at compile time, stonecutter just “preprocesses” the annotated code.

On a slight side note to preprocessing (if you’re interested): Preprocessing is the act of temporarily changing the source code (the human readable code that you write, NOT the machine code) before compilation. This is done by the preprocessor, a special program written for this one purpose. It is usually the first step in a program’s compilation (example: the C preprocessor, with instructions like #include, #define and more)


Current progress

Currently, I’ve got the template up and running with the 1.16.5-fabric version of the mod already functional. I’ve also set up the GitHub repo and the modrinth and curseforge projects.

0
0
7

Delete project?

Are you sure you want to permanently delete this project? This action cannot be undone.

All devlogs, followers, and associated data will be removed.

Followers

Loading…