From a4733d073e3e3456c16f9d0426da56403068fdde Mon Sep 17 00:00:00 2001 From: Quentin Legot Date: Tue, 30 Sep 2025 22:01:56 +0200 Subject: [PATCH 1/2] feat: add ExtendedSimplePositionWidget and MultiTabWrapperWidget --- Core/build.gradle | 4 ++ .../gui/ExtendedSimplePositionWidget.java | 34 ++++++++++++++++ .../client/gui/MultiTabWrapperWidget.java | 39 +++++++++++++++++++ Core/src/main/resources/core.accesswidener | 4 ++ Database/build.gradle | 2 +- build.gradle | 2 +- gradle.properties | 8 ++-- gradle/wrapper/gradle-wrapper.properties | 2 +- 8 files changed, 88 insertions(+), 7 deletions(-) create mode 100644 Core/build.gradle create mode 100644 Core/src/main/java/fr/altarik/toolbox/core/client/gui/ExtendedSimplePositionWidget.java create mode 100644 Core/src/main/java/fr/altarik/toolbox/core/client/gui/MultiTabWrapperWidget.java create mode 100644 Core/src/main/resources/core.accesswidener diff --git a/Core/build.gradle b/Core/build.gradle new file mode 100644 index 0000000..39a14d8 --- /dev/null +++ b/Core/build.gradle @@ -0,0 +1,4 @@ + +loom { + accessWidenerPath = file("src/main/resources/core.accesswidener") +} \ No newline at end of file diff --git a/Core/src/main/java/fr/altarik/toolbox/core/client/gui/ExtendedSimplePositionWidget.java b/Core/src/main/java/fr/altarik/toolbox/core/client/gui/ExtendedSimplePositionWidget.java new file mode 100644 index 0000000..a2081a5 --- /dev/null +++ b/Core/src/main/java/fr/altarik/toolbox/core/client/gui/ExtendedSimplePositionWidget.java @@ -0,0 +1,34 @@ +package fr.altarik.toolbox.core.client.gui; + +import net.minecraft.client.gui.widget.Positioner; +import net.minecraft.client.gui.widget.SimplePositioningWidget; +import net.minecraft.client.gui.widget.Widget; + +import java.util.ArrayList; +import java.util.List; +import java.util.function.Consumer; + +public abstract class ExtendedSimplePositionWidget extends SimplePositioningWidget { + + private final List elements = new ArrayList<>(); + + public ExtendedSimplePositionWidget(int x, int y, int width, int height) { + super(x, y, width, height); + } + + @Override + public T add(T widget, Positioner positioner) { + this.elements.add(new Element(widget, positioner)); + return widget; + } + + public void remove(T widget) { + this.elements.remove(new Element(widget, this.copyPositioner())); + } + + @Override + public void forEachElement(Consumer consumer) { + this.elements.forEach((element) -> consumer.accept(element.widget)); + } + +} diff --git a/Core/src/main/java/fr/altarik/toolbox/core/client/gui/MultiTabWrapperWidget.java b/Core/src/main/java/fr/altarik/toolbox/core/client/gui/MultiTabWrapperWidget.java new file mode 100644 index 0000000..f2928c3 --- /dev/null +++ b/Core/src/main/java/fr/altarik/toolbox/core/client/gui/MultiTabWrapperWidget.java @@ -0,0 +1,39 @@ +package fr.altarik.toolbox.core.client.gui; + +import net.minecraft.client.gui.screen.Screen; +import net.minecraft.client.gui.widget.Widget; +import net.minecraft.client.gui.widget.WrapperWidget; + +import java.util.function.Consumer; + +public abstract class MultiTabWrapperWidget, B extends Widget> extends WrapperWidget { + + protected final Screen parent; + protected A currentTab; + + public MultiTabWrapperWidget(Screen parent) { + this(parent, 0, 0, 0, 0); + } + + public MultiTabWrapperWidget(Screen parent, int x, int y, int width, int height) { + super(x, y, width, height); + this.parent = parent; + } + + protected void setCurrentTab(A currentTab) { + this.currentTab = currentTab; + update(); + } + + protected abstract B getCurrentTab(); + + public abstract void update(); + + public abstract void remove(); + + @Override + public void forEachElement(Consumer consumer) { + // ignore + } + +} diff --git a/Core/src/main/resources/core.accesswidener b/Core/src/main/resources/core.accesswidener new file mode 100644 index 0000000..eef0ff1 --- /dev/null +++ b/Core/src/main/resources/core.accesswidener @@ -0,0 +1,4 @@ +accessWidener v2 named + +accessible class net/minecraft/client/gui/widget/SimplePositioningWidget$Element +accessible method net/minecraft/client/gui/widget/SimplePositioningWidget$Element (Lnet/minecraft/client/gui/widget/Widget;Lnet/minecraft/client/gui/widget/Positioner;)V \ No newline at end of file diff --git a/Database/build.gradle b/Database/build.gradle index a9af3be..574b416 100644 --- a/Database/build.gradle +++ b/Database/build.gradle @@ -1,5 +1,5 @@ dependencies { - implementation 'org.postgresql:postgresql:42.6.0' + implementation 'org.postgresql:postgresql:42.7.5' testImplementation 'com.google.code.gson:gson:2.10' implementation project(':Core') // implementation "org.hibernate.orm:hibernate-core:${project.hibernate_version}" diff --git a/build.gradle b/build.gradle index bfddacd..67b7e73 100644 --- a/build.gradle +++ b/build.gradle @@ -2,7 +2,7 @@ import fr.altarik.CreateTag import fr.altarik.ReportDiscord plugins { - id 'fabric-loom' version '1.9-SNAPSHOT' apply false + id 'fabric-loom' version "${loom_version}" apply false } Properties local = new Properties() diff --git a/gradle.properties b/gradle.properties index 9e45565..158824f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -4,13 +4,13 @@ fabric.loom.multiProjectOptimisation=true junit_version=5.9.0 minecraft_version=1.20.4 yarn_mappings=1.20.4+build.3 -loader_version=0.16.9 -fabric_version=0.97.2+1.20.4 +loader_version=0.17.2 +fabric_version=0.97.3+1.20.4 hibernate_version=6.6.3.Final - +loom_version=1.11-SNAPSHOT maven_group=fr.altarik.toolbox -maven_version=5.1.1 +maven_version=5.2.0-SNAPSHOT git_owner=quentinlegot git_repo=Toolbox \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index e48eca5..5c82cb0 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.11-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.14-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists From 43856aefbc968053aa97a2d1f3e21519aa014901 Mon Sep 17 00:00:00 2001 From: Quentin Legot Date: Tue, 30 Sep 2025 22:54:07 +0200 Subject: [PATCH 2/2] Update java version on CI --- .gitea/workflows/ci.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index 114364a..0c340d7 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -20,7 +20,7 @@ jobs: build: strategy: matrix: - java: [ '17' ] + java: [ '21' ] os: [ ubuntu-latest ] runs-on: ${{ matrix.os }} steps: @@ -32,7 +32,7 @@ jobs: uses: actions/setup-java@v3 with: java-version: ${{ matrix.java }} - distribution: 'oracle' + distribution: 'temurin' - uses: actions/cache@v3 with: path: | @@ -51,7 +51,7 @@ jobs: deploy: strategy: matrix: - java: [ '17' ] + java: [ '21' ] os: [ ubuntu-latest ] runs-on: ${{ matrix.os }} if: ${{ gitea.ref == 'refs/heads/master' && gitea.event_name == 'push' }} @@ -65,7 +65,7 @@ jobs: uses: actions/setup-java@v3 with: java-version: ${{ matrix.java }} - distribution: 'oracle' + distribution: 'temurin' - name: make gradle wrapper executable if: ${{ runner.os != 'Windows' }} run: |