@@ -149,7 +149,7 @@ public boolean add(IItemHandler handler) {
149149 }
150150
151151 @ Override
152- public void add (int unused , IItemHandler element ) {
152+ public void add (int unused , @ NotNull IItemHandler element ) {
153153 Objects .requireNonNull (element );
154154 if (baseIndexOffset .containsKey (element )) {
155155 throw new IllegalArgumentException ("Attempted to add item handler " + element + " twice" );
@@ -176,9 +176,7 @@ public IItemHandler get(int index) {
176176
177177 @ Override
178178 public IItemHandler remove (int index ) {
179- if (invalidIndex (index )) {
180- throw new IndexOutOfBoundsException ();
181- }
179+ if (invalidIndex (index )) throw new IndexOutOfBoundsException ();
182180
183181 IItemHandler handler = get (index );
184182
@@ -208,13 +206,29 @@ public IItemHandler remove(int index) {
208206 return handler ;
209207 }
210208
209+ @ Override
210+ public int indexOf (@ NotNull Object o ) {
211+ for (int i = 0 ; i < size (); i ++) {
212+ if (Objects .equals (o , get (i )))
213+ return i ;
214+ }
215+ return -1 ;
216+ }
217+
218+ @ Override
219+ public int lastIndexOf (@ NotNull Object o ) {
220+ for (int i = size () - 1 ; i >= 0 ; i --) {
221+ if (Objects .equals (o , get (i )))
222+ return i ;
223+ }
224+ return -1 ;
225+ }
226+
211227 private boolean invalidSlot (int slot ) {
212- if (handlerBySlotIndex .isEmpty ()) return false ;
213228 return slot < 0 || slot >= handlerBySlotIndex .size ();
214229 }
215230
216231 private boolean invalidIndex (int index ) {
217- if (baseIndexOffset .isEmpty ()) return false ;
218232 return index < 0 || index >= baseIndexOffset .size ();
219233 }
220234
@@ -241,7 +255,7 @@ private Immutable(ItemHandlerList list) {
241255 }
242256
243257 @ Override
244- public void add (int unused , IItemHandler element ) {
258+ public void add (int unused , @ NotNull IItemHandler element ) {
245259 // no op?
246260 throw new UnsupportedOperationException ();
247261 }
0 commit comments