aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/curseforge.yml10
-rw-r--r--.github/workflows/gradle.yml4
-rwxr-xr-xbuild.gradle18
-rw-r--r--gradle.properties2
-rwxr-xr-xgradle/wrapper/gradle-wrapper.properties2
-rw-r--r--src/main/java/me/shedaniel/rei/server/DumpHandler.java2
-rw-r--r--src/main/java/me/shedaniel/rei/server/GridCleanHandler.java4
-rw-r--r--src/main/java/me/shedaniel/rei/server/InputSlotCrafter.java15
-rw-r--r--src/main/java/me/shedaniel/rei/server/SlotStackAccessor.java11
-rw-r--r--src/main/java/me/shedaniel/rei/server/StackAccessor.java9
10 files changed, 58 insertions, 19 deletions
diff --git a/.github/workflows/curseforge.yml b/.github/workflows/curseforge.yml
index 9b3bb16bf..40ce36ec3 100644
--- a/.github/workflows/curseforge.yml
+++ b/.github/workflows/curseforge.yml
@@ -13,17 +13,19 @@ jobs:
if: "!contains(github.event.head_commit.message, 'ci skip')"
steps:
- uses: actions/checkout@v1
- - name: Set up JDK 1.8
+ - name: Set up JDK 16
uses: actions/setup-java@v1
with:
- java-version: 1.8
+ java-version: 16
- name: Clean Gradle
run: ./gradlew clean --refresh-dependencies --stacktrace
env:
danielshe_curse_api_key: ${{ secrets.CF_API_KEY }}
BRANCH_NAME: ${{ github.ref }}
+ MAVEN_PASS: ${{ secrets.MAVEN_PASS }}
- name: Upload to CurseForge
- run: ./gradlew build releaseOnCf --stacktrace
+ run: ./gradlew build releaseOnCf publish --stacktrace
env:
danielshe_curse_api_key: ${{ secrets.CF_API_KEY }}
- BRANCH_NAME: ${{ github.ref }} \ No newline at end of file
+ BRANCH_NAME: ${{ github.ref }}
+ MAVEN_PASS: ${{ secrets.MAVEN_PASS }} \ No newline at end of file
diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml
index c0619b581..d0eee4d57 100644
--- a/.github/workflows/gradle.yml
+++ b/.github/workflows/gradle.yml
@@ -7,9 +7,9 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- - name: Set up JDK 1.8
+ - name: Set up JDK 16
uses: actions/setup-java@v1
with:
- java-version: 1.8
+ java-version: 16
- name: Build with Gradle
run: ./gradlew clean build --refresh-dependencies --stacktrace
diff --git a/build.gradle b/build.gradle
index 00c50677d..dd89ce1d1 100755
--- a/build.gradle
+++ b/build.gradle
@@ -1,9 +1,9 @@
plugins {
- id("fabric-loom") version "0.4-SNAPSHOT"
+ id("fabric-loom") version "0.9-SNAPSHOT"
id("maven-publish")
id("java")
id("java-library")
- id("net.minecrell.licenser") version("0.4.1")
+ id("org.cadixdev.licenser") version("0.6.1")
id("com.matthewprenger.cursegradle") version("1.4.0")
id("net.corda.plugins.jar-filter") version("5.0.8") apply false
}
@@ -29,8 +29,8 @@ license {
}
repositories {
- maven { url "https://dl.bintray.com/shedaniel/legacy-yarn-updated" }
- maven { url "https://dl.bintray.com/shedaniel/shedaniel-mods" }
+ maven { url "https://maven.terraformersmc.com/" }
+ maven { url "https://maven.shedaniel.me/" }
}
jar {
@@ -90,7 +90,7 @@ dependencies {
}
}
}
- configurations.compile.resolvedConfiguration.firstLevelModuleDependencies.each eachDep
+ configurations.compileClasspath.resolvedConfiguration.firstLevelModuleDependencies.each eachDep
configurations.runtimeClasspath.resolvedConfiguration.firstLevelModuleDependencies.each eachDep
}
}
@@ -214,12 +214,12 @@ publishing {
}
repositories {
- if (project.hasProperty('danielshe_pass')) {
+ if (System.getenv("MAVEN_PASS") != null) {
maven {
- url = "http://deploy.modmuss50.me/"
+ url = "https://deploy.shedaniel.me/"
credentials {
- username = "danielshe"
- password = project.getProperty('danielshe_pass')
+ username = "shedaniel"
+ password = System.getenv("MAVEN_PASS")
}
}
}
diff --git a/gradle.properties b/gradle.properties
index fa5bd6c22..db05adf8d 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -1,5 +1,5 @@
org.gradle.jvmargs=-Xmx3G
-mod_version=4.12.1
+mod_version=4.12.2
supported_version=1.16.x
minecraft_version=1.16.1
yarn_version=1.16.1+build.4+legacy.20w09a+build.8
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 7ca6abcf2..3bba85c78 100755
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-6.3-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.4-all.zip
diff --git a/src/main/java/me/shedaniel/rei/server/DumpHandler.java b/src/main/java/me/shedaniel/rei/server/DumpHandler.java
index c5e04e12b..8f7a2d94d 100644
--- a/src/main/java/me/shedaniel/rei/server/DumpHandler.java
+++ b/src/main/java/me/shedaniel/rei/server/DumpHandler.java
@@ -34,7 +34,7 @@ public interface DumpHandler<T extends Container> {
static StackAccessor getOccupiedSlotWithRoomForStack(ItemStack stack, List<StackAccessor> inventoryStacks) {
for (StackAccessor inventoryStack : inventoryStacks) {
- if (canStackAddMore(inventoryStack.getItemStack(), stack)) {
+ if (canStackAddMore(inventoryStack.getItemStack(), stack) && inventoryStack.canPlace(stack)) {
return inventoryStack;
}
}
diff --git a/src/main/java/me/shedaniel/rei/server/GridCleanHandler.java b/src/main/java/me/shedaniel/rei/server/GridCleanHandler.java
index 557675533..4eeb95b79 100644
--- a/src/main/java/me/shedaniel/rei/server/GridCleanHandler.java
+++ b/src/main/java/me/shedaniel/rei/server/GridCleanHandler.java
@@ -38,6 +38,10 @@ public interface GridCleanHandler<T extends Container> {
DumpHandler<T> dumpHandler = context.getContainerInfo().getDumpHandler();
ItemStack stackToReturn = stackAccessor.getItemStack();
if (!stackToReturn.isEmpty()) {
+ if (!stackAccessor.allowModification(context.getPlayerEntity())) {
+ error("rei.rei.no.slot.in.inv");
+ }
+
for (; stackToReturn.getCount() > 0; stackAccessor.takeStack(1)) {
ItemStack stackToInsert = stackToReturn.copy();
stackToInsert.setCount(1);
diff --git a/src/main/java/me/shedaniel/rei/server/InputSlotCrafter.java b/src/main/java/me/shedaniel/rei/server/InputSlotCrafter.java
index 4447256e2..ed7ffa2d9 100644
--- a/src/main/java/me/shedaniel/rei/server/InputSlotCrafter.java
+++ b/src/main/java/me/shedaniel/rei/server/InputSlotCrafter.java
@@ -106,6 +106,10 @@ public class InputSlotCrafter<C extends Inventory> implements RecipeGridAligner<
}
takenStack.setCount(1);
+ if (!slot.canPlace(takenStack)) {
+ return;
+ }
+
if (slot.getItemStack().isEmpty()) {
slot.setItemStack(takenStack);
} else {
@@ -158,13 +162,22 @@ public class InputSlotCrafter<C extends Inventory> implements RecipeGridAligner<
}
public int method_7371(ItemStack itemStack) {
+ boolean rejectedModification = false;
for (int i = 0; i < inventoryStacks.size(); i++) {
ItemStack itemStack1 = this.inventoryStacks.get(i).getItemStack();
if (!itemStack1.isEmpty() && areItemsEqual(itemStack, itemStack1) && !itemStack1.isDamaged() && !itemStack1.hasEnchantments() && !itemStack1.hasCustomName()) {
- return i;
+ if (!this.inventoryStacks.get(i).allowModification(player)) {
+ rejectedModification = true;
+ } else {
+ return i;
+ }
}
}
+ if (rejectedModification) {
+ throw new IllegalStateException("Unable to take item from inventory due to slot not allowing modification! Item requested: " + itemStack);
+ }
+
return -1;
}
diff --git a/src/main/java/me/shedaniel/rei/server/SlotStackAccessor.java b/src/main/java/me/shedaniel/rei/server/SlotStackAccessor.java
index 46b4d7b8b..f0d0e361e 100644
--- a/src/main/java/me/shedaniel/rei/server/SlotStackAccessor.java
+++ b/src/main/java/me/shedaniel/rei/server/SlotStackAccessor.java
@@ -23,6 +23,7 @@
package me.shedaniel.rei.server;
+import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.ItemStack;
import net.minecraft.screen.slot.Slot;
@@ -47,4 +48,14 @@ public class SlotStackAccessor implements StackAccessor {
public ItemStack takeStack(int amount) {
return slot.takeStack(amount);
}
+
+ @Override
+ public boolean allowModification(PlayerEntity player) {
+ return slot.canTakeItems(player);
+ }
+
+ @Override
+ public boolean canPlace(ItemStack stack) {
+ return slot.canInsert(stack);
+ }
}
diff --git a/src/main/java/me/shedaniel/rei/server/StackAccessor.java b/src/main/java/me/shedaniel/rei/server/StackAccessor.java
index 65b722a9e..278a75baa 100644
--- a/src/main/java/me/shedaniel/rei/server/StackAccessor.java
+++ b/src/main/java/me/shedaniel/rei/server/StackAccessor.java
@@ -23,6 +23,7 @@
package me.shedaniel.rei.server;
+import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.ItemStack;
public interface StackAccessor {
@@ -31,4 +32,12 @@ public interface StackAccessor {
void setItemStack(ItemStack stack);
ItemStack takeStack(int amount);
+
+ default boolean allowModification(PlayerEntity player) {
+ return true;
+ }
+
+ default boolean canPlace(ItemStack stack) {
+ return true;
+ }
}