Skip to content

Commit

Permalink
Refill works now with stacks form the hotbar except the item which you
Browse files Browse the repository at this point in the history
are holding
  • Loading branch information
tom2208 committed Oct 21, 2020
1 parent f54ce9d commit dee3225
Showing 1 changed file with 36 additions and 31 deletions.
67 changes: 36 additions & 31 deletions src/chestcleaner/listeners/RefillListener.java
Original file line number Diff line number Diff line change
Expand Up @@ -200,16 +200,16 @@ private boolean isOnBlackList(ItemStack item) {
private int getRefillStack(Material material, Player player) {

ItemStack[] items = InventoryDetector.getFullInventory(player.getInventory());
for (int i = 9; i < 36; i++) {
for (int i = 0; i < 36; i++) {
if (i != player.getInventory().getHeldItemSlot() && i != 40) {
if (items[i] != null) {

if (items[i] != null) {
if (items[i].getType().equals(material)) {
return i;
}

if (items[i].getType().equals(material)) {
return i;
}

}

}
return -1;

Expand Down Expand Up @@ -296,6 +296,10 @@ private boolean playerOffHandHeldItemMaterialEquals(ItemStack item, Player playe
return player.getInventory().getItemInOffHand().getType().equals(item.getType());
}

private boolean isViableSlot(int i, Player player) {
return i != player.getInventory().getHeldItemSlot() && i != 40;
}

/**
* Searches through the main inventory (slots 9 - 35) taking the first ItemStack
* with the same type, an amount bigger than 1 (bigger than 0 would work but
Expand All @@ -312,23 +316,24 @@ private void refillConsumableInSlot(int hand, Player player, ItemStack conItem)
public void run() {

ItemStack[] items = InventoryDetector.getFullInventory(player.getInventory());
for (int i = 9; i < 36; i++) {
for (int i = 0; i < 36; i++) {
if (items[i] != null) {
if (items[i].getType().equals(conItem.getType())) {
if (hand > -999) {
player.getInventory().setItem(hand, items[i]);
player.getInventory().setItem(i, null);
break;
} else {
player.getInventory().setItemInOffHand(items[i]);
player.getInventory().setItem(i, null);
break;
if (isViableSlot(i, player)) {
if (items[i].getType().equals(conItem.getType())) {
if (hand > -999) {
player.getInventory().setItem(hand, items[i]);
player.getInventory().setItem(i, null);
break;
} else {
player.getInventory().setItemInOffHand(items[i]);
player.getInventory().setItem(i, null);
break;
}

}

}

}

}

}
Expand All @@ -346,24 +351,24 @@ public void run() {
private void refillBlockInSlot(Player player, Material material, EquipmentSlot hand) {
ItemStack[] items = InventoryDetector.getFullInventory(player.getInventory());

for (int i = 9; i < 36; i++) {
for (int i = 0; i < 36; i++) {

if (items[i] != null) {
if (isViableSlot(i, player)) {
if (items[i].getType().equals(material)) {

if (hand.equals(EquipmentSlot.HAND)) {
player.getInventory().setItemInMainHand(items[i]);
player.getInventory().setItem(i, null);
break;
} else if (hand.equals(EquipmentSlot.OFF_HAND)) {
player.getInventory().setItemInOffHand(items[i]);
player.getInventory().setItem(i, null);
break;
}

if (items[i].getType().equals(material)) {

if (hand.equals(EquipmentSlot.HAND)) {
player.getInventory().setItemInMainHand(items[i]);
player.getInventory().setItem(i, null);
break;
} else if (hand.equals(EquipmentSlot.OFF_HAND)) {
player.getInventory().setItemInOffHand(items[i]);
player.getInventory().setItem(i, null);
break;
}

}

}

}
Expand Down

0 comments on commit dee3225

Please sign in to comment.