Mineuniverse
Mods
project-1231069

project-1231069

MOD
Yet another cursed modding library! Its my nickyname tho...
by PrincParshia
Download Claim this project
36 downloads
0 likes
0 followers
Updated Oct 14, 2026
0 hypes
Follow0
API and Library
Advertisement Remove ads with Premium →

Modrinth MyProfile Donate@CupOfCoffee

📗 DESCRIPTION


A cursed and simple modding library used in my mods to make codes look polished and smaller. Only for me I guess? or if you can understand you can use it for sure! Ah, another thing… i used mojamps (Official Mojang Mappings) to make it.

📜 HOW TO USE?


In the build.gradle file:

repositories {
    // ...
    maven {
        url = "https://api.modrinth.com/maven"
    }
}

Check versions to get the correct version.

dependencies {
    modImplementation "maven.modrinth:princ:version"
}

📝 TUTORIAL


I dont wanna explain so understand all yourself.

⌨️ Key Binding Registry

Register a new keybinding:

@Override
public void onInitialize() {
    PrincKeyMappingHelper.registerKeyMapping(
            "key.name",
            InputConstants.Type.KEYSYM/SCANCODE/MOUSE,
            GLFW.GLFW_KEY_RIGHT_SHIFT,
            "category.mymod",
            (client, thisKey) -> {
                if (thisKey.consumeClick()){
                    // ...
                }
            }
    );
}

Register an existing keybinding:

@Override
public void onInitialize() {
    KeyMapping myKey = new KeyMapping(
            "key.name",
            InputConstants.Type.KEYSYM/SCANCODE/MOUSE,
            GLFW.GLFW_KEY_RIGHT_SHIFT,
            "category.mymod"
    );

    PrincKeyMappingHelper.registerExternalKeyMapping(myKey, client -> {
        if (myKey.consumeClick()) {
            // ...
        }
    });
}

Check a key press universally (While in any screen):

if (PrincKeyMappingHelper.isKeyDown(myKey)) {
    // ...
}

Cursed

Unlimit any values in options:

@Mixin(OptionInstance.class)
public class OptionInstanceMixin<T> {
    @Shadow
    @Final
    Component caption;

    @Shadow
    T value;

    // Allow saving invalid vlaues (example with the gamma option. remove the if statement to apply for all).

    @Inject(method = "codec", at = @At("HEAD"), cancellable = true)
    private void codec(CallbackInfoReturnable<Codec<Double>> cir) {
        if (caption.getString().equals(I18n.get("options.gamma"))) {
            cir.setReturnValue(Codec.DOUBLE);
        }
    }

    // Allow using invalid vlaues (example with the gamma option. remove the if statement to apply for all).

    @Inject(method = "set", at = @At("HEAD"), cancellable = true)
    private void set(T object, CallbackInfo ci) {
        if (caption.getString().equals(I18n.get("options.gamma"))) {
            this.value = object;
            ci.cancel();
        }
    }
}
princ-1.0.0.jar
MC 1.21, Fabric, 1.21.4, 1.21.1, 1.21.3, 1.21.2
Release 2025-03-29 Get

More from PrincParshia

Advertisement Remove ads with Premium →

You Might Also Like