raphydaphy / breakoutapi Goto Github PK
View Code? Open in Web Editor NEWA minecraft mod that allows additional windows to be opened alongside the game
Home Page: https://www.curseforge.com/minecraft/mc-mods/breakoutapi
License: MIT License
A minecraft mod that allows additional windows to be opened alongside the game
Home Page: https://www.curseforge.com/minecraft/mc-mods/breakoutapi
License: MIT License
I know, this seems to be a me problem, but I kind of need help in here
Some info:
build.gradle:
plugins {
id 'fabric-loom' version '0.5-SNAPSHOT'
id 'maven-publish'
}
def joml_version="1.9.25"
def cbchain_version="1.0.0"
def commons_collections_version="4.1"
def lwjgl_version="3.2.2"
def breakoutapi_version="1.0.0"
repositories {
mavenCentral()
maven { url "https://oss.sonatype.org/content/repositories/releases/" }
maven { url "https://raw.github.com/SpinyOwl/repo/releases" }
maven { url "https://minecraft.curseforge.com/api/maven"}
}
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
archivesBaseName = project.archives_base_name
version = project.mod_version
group = project.maven_group
minecraft {
}
dependencies {
//to change the versions see the gradle.properties file
minecraft "com.mojang:minecraft:${project.minecraft_version}"
mappings "net.fabricmc:yarn:${project.yarn_mappings}:v2"
modImplementation "net.fabricmc:fabric-loader:${project.loader_version}"
modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_api_version}"
compile "org.joml:joml:$joml_version"
compile "org.liquidengine:cbchain:$cbchain_version"
compile "org.apache.commons:commons-collections4:$commons_collections_version"
implementation "org.lwjgl:lwjgl-nanovg:$lwjgl_version"
runtimeOnly "org.lwjgl:lwjgl-nanovg:$lwjgl_version:natives-windows"
runtimeOnly "org.lwjgl:lwjgl-nanovg:$lwjgl_version:natives-linux"
runtimeOnly "org.lwjgl:lwjgl-nanovg:$lwjgl_version:natives-macos"
implementation "org.lwjgl:lwjgl-yoga:$lwjgl_version"
runtimeOnly "org.lwjgl:lwjgl-yoga:$lwjgl_version:natives-windows"
runtimeOnly "org.lwjgl:lwjgl-yoga:$lwjgl_version:natives-linux"
runtimeOnly "org.lwjgl:lwjgl-yoga:$lwjgl_version:natives-macos"
modCompile "breakoutapi:breakoutapi:$breakoutapi_version"
}
processResources {
inputs.property "version", project.version
from(sourceSets.main.resources.srcDirs) {
include "fabric.mod.json"
expand "version": project.version
}
from(sourceSets.main.resources.srcDirs) {
exclude "fabric.mod.json"
}
}
// ensure that the encoding is set to UTF-8, no matter what the system default is
// this fixes some edge cases with special characters not displaying correctly
// see http://yodaconditions.net/blog/fix-for-java-file-encoding-problems-with-gradle.html
tasks.withType(JavaCompile) {
options.encoding = "UTF-8"
}
// Loom will automatically attach sourcesJar to a RemapSourcesJar task and to the "build" task
// if it is present.
// If you remove this task, sources will not be generated.
task sourcesJar(type: Jar, dependsOn: classes) {
classifier = "sources"
from sourceSets.main.allSource
}
jar {
from "LICENSE"
}
// configure the maven publication
publishing {
publications {
mavenJava(MavenPublication) {
// add all the jars that should be included when publishing to maven
artifact(jar) {
builtBy remapJar
}
artifact("${project.buildDir.absolutePath}/libs/${archivesBaseName}-${project.version}.jar"){
builtBy remapJar
}
artifact(sourcesJar) {
builtBy remapSourcesJar
}
}
}
// select the repositories you want to publish to
repositories {
// uncomment to publish to the local maven
// mavenLocal()
}
}
Error when trying to build:
A problem occurred configuring root project 'TestMod'.
> Could not resolve all dependencies for configuration ':modCompile'.
> Could not find breakoutapi:breakoutapi-1.0.0:.
Searched in the following locations:
- file:/home/constantin/Desktop/Dev/JAVA/TestMod/build/loom-cache/breakoutapi-1.0.0.jar
- file:/home/constantin/Desktop/Dev/JAVA/TestMod/.gradle/loom-cache/remapped_mods/breakoutapi-1.0.0.jar
- file:/home/constantin/.gradle/caches/fabric-loom/1.16.5-mapped-net.fabricmc.yarn-1.16.5+build.3-v2/breakoutapi-1.0.0.jar
Required by:
project :
Possible solution:
- Declare repository providing the artifact, see the documentation at https://docs.gradle.org/current/userguide/declaring_repositories.html
I wasn't able to look into what IDEA sees when requesting the github packages, so I dont know what to import really.
I can see that the goal of this is to be a library for other mods, but how about making a mod out of this that detaches vanilla HUD to a window? So one could use a second screen just for the HUD for example.
Since 1.17 is still awhile away, it'd be nice to be able to make the mods available for 1.16. From my limited testing, it looks like it works fine. I had an issue with a native-backed texture not registering or binding, but I can't tell if that's from this, or from some change I need to make from going to the 1.17 snapshots to 1.16.4. And it's hard to test, because while I have successfully been able to compile this mod for 1.16.4 (only changing the fabric.mod.json), I'm having a hell of a time using the custom build in the dev environment for the mod that uses the api.
[17:03:46] [Render thread/INFO] (Minecraft) [STDOUT]: GL Error at stage before rendering breakouts: 1282
[17:03:46] [Render thread/INFO] (Minecraft) [STDOUT]: GL Error at stage after rendering breakouts: 1282
... then logspam with ^
My repo is temporadev/breakoutapi
Unfortunately, all the added libs would have to be added manually to the launcher. That's not really a good solution.
Would it be possible to bundle them with BreakoutAPI?
EDIT: This was tested with 1.0.0, I just saw that 1.0.1 has some changes related to this. Might already be fixed, but leaving this open until I have verified that
I'm in the process of trying to update it myself, but my lack of knowledge of... well everything rendering, is making it something I'm not sure I can do
[21:54:10] [main/FATAL] (mixin) Mixin apply failed fabric-tool-attribute-api-v1.mixins.json:LivingEntityMixin -> net.minecraft.entity.LivingEntity: org.spongepowered.asm.mixin.injection.throwables.InvalidInjectionException Critical injection failure: @Inject annotation on storeRemoveStackContext could not find any targets matching 'Lnet/minecraft/entity/LivingEntity;method_30129()Ljava/util/Map;' in net.minecraft.entity.LivingEntity. Using refmap fabric-tool-attribute-api-v1-refmap.json [PREINJECT Applicator Phase -> fabric-tool-attribute-api-v1.mixins.json:LivingEntityMixin -> Prepare Injections -> -> handler$zgc000$storeRemoveStackContext(Lorg/spongepowered/asm/mixin/injection/callback/CallbackInfoReturnable;Ljava/util/Map;[Lnet/minecraft/entity/EquipmentSlot;IILnet/minecraft/entity/EquipmentSlot;Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;)V -> Parse]
org.spongepowered.asm.mixin.injection.throwables.InvalidInjectionException: Critical injection failure: @Inject annotation on storeRemoveStackContext could not find any targets matching 'Lnet/minecraft/entity/LivingEntity;method_30129()Ljava/util/Map;' in net.minecraft.entity.LivingEntity. Using refmap fabric-tool-attribute-api-v1-refmap.json [PREINJECT Applicator Phase -> fabric-tool-attribute-api-v1.mixins.json:LivingEntityMixin -> Prepare Injections -> -> handler$zgc000$storeRemoveStackContext(Lorg/spongepowered/asm/mixin/injection/callback/CallbackInfoReturnable;Ljava/util/Map;[Lnet/minecraft/entity/EquipmentSlot;IILnet/minecraft/entity/EquipmentSlot;Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;)V -> Parse]
at org.spongepowered.asm.mixin.injection.struct.InjectionInfo.findMethods(InjectionInfo.java:572) ~[sponge-mixin-0.9.4+mixin.0.8.2.jar:0.9.4+mixin.0.8.2]
at org.spongepowered.asm.mixin.injection.struct.InjectionInfo.readAnnotation(InjectionInfo.java:288) ~[sponge-mixin-0.9.4+mixin.0.8.2.jar:0.9.4+mixin.0.8.2]
at org.spongepowered.asm.mixin.injection.struct.InjectionInfo.<init>(InjectionInfo.java:275) ~[sponge-mixin-0.9.4+mixin.0.8.2.jar:0.9.4+mixin.0.8.2]
at org.spongepowered.asm.mixin.injection.struct.InjectionInfo.<init>(InjectionInfo.java:267) ~[sponge-mixin-0.9.4+mixin.0.8.2.jar:0.9.4+mixin.0.8.2]
at org.spongepowered.asm.mixin.injection.struct.CallbackInjectionInfo.<init>(CallbackInjectionInfo.java:46) ~[sponge-mixin-0.9.4+mixin.0.8.2.jar:0.9.4+mixin.0.8.2]
at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:?]
at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:78) ~[?:?]
at jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:?]
at java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499) ~[?:?]
at java.lang.reflect.Constructor.newInstance(Constructor.java:480) ~[?:?]
at org.spongepowered.asm.mixin.injection.struct.InjectionInfo$InjectorEntry.create(InjectionInfo.java:140) ~[sponge-mixin-0.9.4+mixin.0.8.2.jar:0.9.4+mixin.0.8.2]
at org.spongepowered.asm.mixin.injection.struct.InjectionInfo.parse(InjectionInfo.java:624) ~[sponge-mixin-0.9.4+mixin.0.8.2.jar:0.9.4+mixin.0.8.2]
at org.spongepowered.asm.mixin.transformer.MixinTargetContext.prepareInjections(MixinTargetContext.java:1247) ~[sponge-mixin-0.9.4+mixin.0.8.2.jar:0.9.4+mixin.0.8.2]
at org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.prepareInjections(MixinApplicatorStandard.java:1033) ~[sponge-mixin-0.9.4+mixin.0.8.2.jar:0.9.4+mixin.0.8.2]
at org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.applyMixin(MixinApplicatorStandard.java:388) ~[sponge-mixin-0.9.4+mixin.0.8.2.jar:0.9.4+mixin.0.8.2]
at org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.apply(MixinApplicatorStandard.java:320) ~[sponge-mixin-0.9.4+mixin.0.8.2.jar:0.9.4+mixin.0.8.2]
at org.spongepowered.asm.mixin.transformer.TargetClassContext.applyMixins(TargetClassContext.java:345) ~[sponge-mixin-0.9.4+mixin.0.8.2.jar:0.9.4+mixin.0.8.2]
at org.spongepowered.asm.mixin.transformer.MixinProcessor.applyMixins(MixinProcessor.java:569) [sponge-mixin-0.9.4+mixin.0.8.2.jar:0.9.4+mixin.0.8.2]
at org.spongepowered.asm.mixin.transformer.MixinProcessor.applyMixins(MixinProcessor.java:351) [sponge-mixin-0.9.4+mixin.0.8.2.jar:0.9.4+mixin.0.8.2]
at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClass(MixinTransformer.java:208) [sponge-mixin-0.9.4+mixin.0.8.2.jar:0.9.4+mixin.0.8.2]
at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClassBytes(MixinTransformer.java:178) [sponge-mixin-0.9.4+mixin.0.8.2.jar:0.9.4+mixin.0.8.2]
at org.spongepowered.asm.mixin.transformer.FabricMixinTransformerProxy.transformClassBytes(FabricMixinTransformerProxy.java:23) [fabric-loader-0.11.6.jar:0.9.4+mixin.0.8.2]
at net.fabricmc.loader.launch.knot.KnotClassDelegate.getPostMixinClassByteArray(KnotClassDelegate.java:162) [fabric-loader-0.11.6.jar:?]
at net.fabricmc.loader.launch.knot.KnotClassLoader.loadClass(KnotClassLoader.java:154) [fabric-loader-0.11.6.jar:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:519) ~[?:?]
at java.lang.ClassLoader.defineClass1(Native Method) [?:?]
at java.lang.ClassLoader.defineClass(ClassLoader.java:1010) [?:?]
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150) [?:?]
at net.fabricmc.loader.launch.knot.KnotClassLoader.loadClass(KnotClassLoader.java:170) [fabric-loader-0.11.6.jar:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:519) [?:?]
at net.minecraft.client.main.Main.main(Main.java:122) [minecraft-1.17.1-mapped-net.fabricmc.yarn-1.17.1+build.32-v2.jar:?]
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78) ~[?:?]
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
at java.lang.reflect.Method.invoke(Method.java:567) ~[?:?]
at net.fabricmc.loader.game.MinecraftGameProvider.launch(MinecraftGameProvider.java:234) [fabric-loader-0.11.6.jar:?]
at net.fabricmc.loader.launch.knot.Knot.launch(Knot.java:153) [fabric-loader-0.11.6.jar:?]
at net.fabricmc.loader.launch.knot.KnotClient.main(KnotClient.java:28) [fabric-loader-0.11.6.jar:?]
at net.fabricmc.devlaunchinjector.Main.main(Main.java:86) [dev-launch-injector-0.2.1+build.8.jar:?]
Exception in thread "main" java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
at net.fabricmc.loader.game.MinecraftGameProvider.launch(MinecraftGameProvider.java:236)
at net.fabricmc.loader.launch.knot.Knot.launch(Knot.java:153)
at net.fabricmc.loader.launch.knot.KnotClient.main(KnotClient.java:28)
at net.fabricmc.devlaunchinjector.Main.main(Main.java:86)
Caused by: java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:567)
at net.fabricmc.loader.game.MinecraftGameProvider.launch(MinecraftGameProvider.java:234)
... 3 more
Caused by: org.spongepowered.asm.mixin.transformer.throwables.MixinTransformerError: An unexpected critical error was encountered
at org.spongepowered.asm.mixin.transformer.MixinProcessor.applyMixins(MixinProcessor.java:363)
at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClass(MixinTransformer.java:208)
at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClassBytes(MixinTransformer.java:178)
at org.spongepowered.asm.mixin.transformer.FabricMixinTransformerProxy.transformClassBytes(FabricMixinTransformerProxy.java:23)
at net.fabricmc.loader.launch.knot.KnotClassDelegate.getPostMixinClassByteArray(KnotClassDelegate.java:162)
at net.fabricmc.loader.launch.knot.KnotClassLoader.loadClass(KnotClassLoader.java:154)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:519)
at java.base/java.lang.ClassLoader.defineClass1(Native Method)
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1010)
at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150)
at net.fabricmc.loader.launch.knot.KnotClassLoader.loadClass(KnotClassLoader.java:170)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:519)
at net.minecraft.client.main.Main.main(Main.java:122)
... 8 more
Caused by: org.spongepowered.asm.mixin.throwables.MixinApplyError: Mixin [fabric-tool-attribute-api-v1.mixins.json:LivingEntityMixin] from phase [DEFAULT] in config [fabric-tool-attribute-api-v1.mixins.json] FAILED during APPLY
at org.spongepowered.asm.mixin.transformer.MixinProcessor.handleMixinError(MixinProcessor.java:642)
at org.spongepowered.asm.mixin.transformer.MixinProcessor.handleMixinApplyError(MixinProcessor.java:594)
at org.spongepowered.asm.mixin.transformer.MixinProcessor.applyMixins(MixinProcessor.java:356)
... 20 more
Caused by: org.spongepowered.asm.mixin.injection.throwables.InvalidInjectionException: Critical injection failure: @Inject annotation on storeRemoveStackContext could not find any targets matching 'Lnet/minecraft/entity/LivingEntity;method_30129()Ljava/util/Map;' in net.minecraft.entity.LivingEntity. Using refmap fabric-tool-attribute-api-v1-refmap.json [PREINJECT Applicator Phase -> fabric-tool-attribute-api-v1.mixins.json:LivingEntityMixin -> Prepare Injections -> -> handler$zgc000$storeRemoveStackContext(Lorg/spongepowered/asm/mixin/injection/callback/CallbackInfoReturnable;Ljava/util/Map;[Lnet/minecraft/entity/EquipmentSlot;IILnet/minecraft/entity/EquipmentSlot;Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;)V -> Parse]
at org.spongepowered.asm.mixin.injection.struct.InjectionInfo.findMethods(InjectionInfo.java:572)
at org.spongepowered.asm.mixin.injection.struct.InjectionInfo.readAnnotation(InjectionInfo.java:288)
at org.spongepowered.asm.mixin.injection.struct.InjectionInfo.<init>(InjectionInfo.java:275)
at org.spongepowered.asm.mixin.injection.struct.InjectionInfo.<init>(InjectionInfo.java:267)
at org.spongepowered.asm.mixin.injection.struct.CallbackInjectionInfo.<init>(CallbackInjectionInfo.java:46)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:78)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
at org.spongepowered.asm.mixin.injection.struct.InjectionInfo$InjectorEntry.create(InjectionInfo.java:140)
at org.spongepowered.asm.mixin.injection.struct.InjectionInfo.parse(InjectionInfo.java:624)
at org.spongepowered.asm.mixin.transformer.MixinTargetContext.prepareInjections(MixinTargetContext.java:1247)
at org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.prepareInjections(MixinApplicatorStandard.java:1033)
at org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.applyMixin(MixinApplicatorStandard.java:388)
at org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.apply(MixinApplicatorStandard.java:320)
at org.spongepowered.asm.mixin.transformer.TargetClassContext.applyMixins(TargetClassContext.java:345)
at org.spongepowered.asm.mixin.transformer.MixinProcessor.applyMixins(MixinProcessor.java:569)
at org.spongepowered.asm.mixin.transformer.MixinProcessor.applyMixins(MixinProcessor.java:351)
... 20 more
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.