build fix
This commit is contained in:
66
.github/workflows/build.yml
vendored
66
.github/workflows/build.yml
vendored
@@ -1,26 +1,56 @@
|
|||||||
name: Build
|
name: Build
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
|
pull_request:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
environment: modrinth
|
environment: modrinth
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
- name: Set up JDK 25
|
|
||||||
uses: actions/setup-java@v3
|
- name: Set up JDK 25
|
||||||
with:
|
uses: actions/setup-java@v4
|
||||||
java-version: '25'
|
with:
|
||||||
distribution: 'temurin'
|
java-version: "25"
|
||||||
- name: Setup Gradle
|
distribution: "temurin"
|
||||||
uses: gradle/gradle-build-action@v2
|
|
||||||
- name: Execute Gradle build (all Stonecutter targets)
|
- name: Set up Gradle
|
||||||
run: ./gradlew chiseledBuild
|
uses: gradle/actions/setup-gradle@v4
|
||||||
- run: mkdir staging && cp build/libs/*.jar staging
|
|
||||||
- run: cd build/libs && md5sum *.jar > ../../md5sum.txt
|
- name: Build all Stonecutter targets
|
||||||
- run: echo "filename=`ls build/libs/*.jar |xargs basename`" >> $GITHUB_ENV
|
run: ./gradlew chiseledBuild --no-daemon --stacktrace
|
||||||
- name: Release
|
|
||||||
uses: softprops/action-gh-release@v1
|
- name: Collect remapped jars (per Minecraft version)
|
||||||
if: startsWith(github.ref, 'refs/tags/')
|
run: |
|
||||||
with:
|
mkdir -p staging
|
||||||
files: build/libs/*.jar
|
find versions -path '*/build/libs/*.jar' \
|
||||||
|
! -name '*-sources.jar' \
|
||||||
|
! -name '*-dev.jar' \
|
||||||
|
-exec cp -v {} staging/ \;
|
||||||
|
if [ -z "$(ls -A staging 2>/dev/null)" ]; then
|
||||||
|
echo "No jars found under versions/*/build/libs/"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
(cd staging && md5sum *.jar) | tee md5sum.txt
|
||||||
|
|
||||||
|
- name: Upload build artifacts
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: jars
|
||||||
|
path: |
|
||||||
|
staging/*.jar
|
||||||
|
md5sum.txt
|
||||||
|
|
||||||
|
- name: Release (GitHub tags only)
|
||||||
|
uses: softprops/action-gh-release@v2
|
||||||
|
if: startsWith(github.ref, 'refs/tags/')
|
||||||
|
with:
|
||||||
|
files: |
|
||||||
|
staging/*.jar
|
||||||
|
md5sum.txt
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.github.sebseb7.autotrade.event;
|
package com.github.sebseb7.autotrade.event;
|
||||||
|
|
||||||
import com.github.sebseb7.autotrade.config.Configs;
|
import com.github.sebseb7.autotrade.config.Configs;
|
||||||
|
import com.github.sebseb7.autotrade.mixin.MultiPlayerGameModeInvoker;
|
||||||
import com.github.sebseb7.autotrade.util.TradeItemSpec;
|
import com.github.sebseb7.autotrade.util.TradeItemSpec;
|
||||||
import fi.dy.masa.malilib.gui.Message;
|
import fi.dy.masa.malilib.gui.Message;
|
||||||
import fi.dy.masa.malilib.util.InfoUtils;
|
import fi.dy.masa.malilib.util.InfoUtils;
|
||||||
@@ -32,18 +33,17 @@ final class ContainerIoHelper {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* After automated merchant packets (select trade + shift-clicks), client-side
|
* After automated merchant packets, flush cursor/carried prediction so it matches the server.
|
||||||
* prediction can drift from the server. Flush the carried/cursor stack and run
|
* Implemented via {@link MultiPlayerGameModeInvoker} because {@code ensureHasSentCarriedItem()} is private.
|
||||||
* again on the next tick so pending slot updates have landed.
|
|
||||||
*/
|
*/
|
||||||
static void syncPlayerInventoryAfterMerchant(Minecraft mc) {
|
static void syncPlayerInventoryAfterMerchant(Minecraft mc) {
|
||||||
if (mc.player == null || mc.gameMode == null) {
|
if (mc.player == null || mc.gameMode == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
mc.gameMode.ensureHasSentCarriedItem();
|
((MultiPlayerGameModeInvoker) mc.gameMode).invokeEnsureHasSentCarriedItem();
|
||||||
mc.execute(() -> {
|
mc.execute(() -> {
|
||||||
if (mc.player != null && mc.gameMode != null) {
|
if (mc.player != null && mc.gameMode != null) {
|
||||||
mc.gameMode.ensureHasSentCarriedItem();
|
((MultiPlayerGameModeInvoker) mc.gameMode).invokeEnsureHasSentCarriedItem();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,12 @@
|
|||||||
|
package com.github.sebseb7.autotrade.mixin;
|
||||||
|
|
||||||
|
import net.minecraft.client.multiplayer.MultiPlayerGameMode;
|
||||||
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
|
import org.spongepowered.asm.mixin.gen.Invoker;
|
||||||
|
|
||||||
|
@Mixin(MultiPlayerGameMode.class)
|
||||||
|
public interface MultiPlayerGameModeInvoker {
|
||||||
|
|
||||||
|
@Invoker("ensureHasSentCarriedItem")
|
||||||
|
void invokeEnsureHasSentCarriedItem();
|
||||||
|
}
|
||||||
12
src/main/resources/autotrade.mixins.json
Normal file
12
src/main/resources/autotrade.mixins.json
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"required": true,
|
||||||
|
"minVersion": "0.8",
|
||||||
|
"package": "com.github.sebseb7.autotrade.mixin",
|
||||||
|
"compatibilityLevel": "JAVA_21",
|
||||||
|
"client": [
|
||||||
|
"MultiPlayerGameModeInvoker"
|
||||||
|
],
|
||||||
|
"injectors": {
|
||||||
|
"defaultRequire": 1
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -27,6 +27,7 @@
|
|||||||
},
|
},
|
||||||
|
|
||||||
"mixins": [
|
"mixins": [
|
||||||
|
"autotrade.mixins.json"
|
||||||
],
|
],
|
||||||
|
|
||||||
"depends": {
|
"depends": {
|
||||||
|
|||||||
Reference in New Issue
Block a user