๐ 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();
}
}
}
