[Idea]: Folia support for OpenInv #196

Closed
reabuc wants to merge 137 commits from master into master
60 changed files with 4218 additions and 1894 deletions
Showing only changes of commit 160ae47bf5 - Show all commits

View File

@@ -19,6 +19,7 @@ package com.lishid.openinv.internal.v1_17_R1;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
import com.lishid.openinv.internal.ISpecialPlayerInventory; import com.lishid.openinv.internal.ISpecialPlayerInventory;
import java.util.Collection; import java.util.Collection;
import java.util.Iterator;
import java.util.List; import java.util.List;
import java.util.function.Function; import java.util.function.Function;
import java.util.function.Predicate; import java.util.function.Predicate;
@@ -113,11 +114,33 @@ public class SpecialPlayerInventory extends Inventory implements ISpecialPlayerI
} }
private @NotNull ItemStack getRawItem(int i) { private @NotNull ItemStack getRawItem(int i) {
return super.getItem(i); if (i < 0) {
return ItemStack.EMPTY;
}
NonNullList<ItemStack> list;
for (Iterator<NonNullList<ItemStack>> iterator = this.compartments.iterator(); iterator.hasNext(); i -= list.size()) {
list = iterator.next();
if (i < list.size()) {
return list.get(i);
}
}
return ItemStack.EMPTY;
} }
private void setRawItem(int i, @NotNull ItemStack itemStack) { private void setRawItem(int i, @NotNull ItemStack itemStack) {
super.setItem(i, itemStack); if (i < 0) {
return;
}
NonNullList<ItemStack> list;
for (Iterator<NonNullList<ItemStack>> iterator = this.compartments.iterator(); iterator.hasNext(); i -= list.size()) {
list = iterator.next();
if (i < list.size()) {
list.set(i, itemStack);
}
}
} }
private static record IndexedCompartment(@Nullable NonNullList<ItemStack> compartment, int index) {} private static record IndexedCompartment(@Nullable NonNullList<ItemStack> compartment, int index) {}

View File

@@ -19,6 +19,7 @@ package com.lishid.openinv.internal.v1_18_R1;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
import com.lishid.openinv.internal.ISpecialPlayerInventory; import com.lishid.openinv.internal.ISpecialPlayerInventory;
import java.util.Collection; import java.util.Collection;
import java.util.Iterator;
import java.util.List; import java.util.List;
import java.util.function.Function; import java.util.function.Function;
import java.util.function.Predicate; import java.util.function.Predicate;
@@ -113,11 +114,33 @@ public class SpecialPlayerInventory extends Inventory implements ISpecialPlayerI
} }
private @NotNull ItemStack getRawItem(int i) { private @NotNull ItemStack getRawItem(int i) {
return super.getItem(i); if (i < 0) {
return ItemStack.EMPTY;
}
NonNullList<ItemStack> list;
for (Iterator<NonNullList<ItemStack>> iterator = this.compartments.iterator(); iterator.hasNext(); i -= list.size()) {
list = iterator.next();
if (i < list.size()) {
return list.get(i);
}
}
return ItemStack.EMPTY;
} }
private void setRawItem(int i, @NotNull ItemStack itemStack) { private void setRawItem(int i, @NotNull ItemStack itemStack) {
super.setItem(i, itemStack); if (i < 0) {
return;
}
NonNullList<ItemStack> list;
for (Iterator<NonNullList<ItemStack>> iterator = this.compartments.iterator(); iterator.hasNext(); i -= list.size()) {
list = iterator.next();
if (i < list.size()) {
list.set(i, itemStack);
}
}
} }
private static record IndexedCompartment(@Nullable NonNullList<ItemStack> compartment, int index) {} private static record IndexedCompartment(@Nullable NonNullList<ItemStack> compartment, int index) {}