mirror of
https://github.com/StarWishsama/Slimefun4.git
synced 2024-09-20 03:35:51 +00:00
Some fixing
This commit is contained in:
parent
b9420da407
commit
5bf0b5ee74
@ -178,20 +178,18 @@ public abstract class MultiBlockMachine extends SlimefunItem implements NotPlace
|
||||
* A crafted {@link ItemStack} from {@link MultiBlockMachine}
|
||||
* @param block
|
||||
* Main {@link Block} of our {@link Container} from {@link MultiBlockMachine}
|
||||
* @param blockInv
|
||||
* The {@link Inventory} of our {@link Container}
|
||||
*
|
||||
*/
|
||||
@ParametersAreNonnullByDefault
|
||||
protected void handleCraftedItem(ItemStack outputItem, Block block) {
|
||||
BlockState state = PaperLib.getBlockState(block, false).getState();
|
||||
Validate.isTrue(state instanceof Container);
|
||||
Container container = (Container) state;
|
||||
Inventory containerInv = container.getInventory();
|
||||
Inventory outputInv = findOutputInventory(outputItem, block, containerInv);
|
||||
protected void handleCraftedItem(ItemStack outputItem, Block block, Inventory blockInv) {
|
||||
Inventory outputInv = findOutputInventory(outputItem, block, blockInv);
|
||||
|
||||
if (outputInv != null) {
|
||||
outputInv.addItem(outputItem);
|
||||
} else if (InvUtils.fits(containerInv, outputItem)) {
|
||||
containerInv.addItem(outputItem);
|
||||
} else if (InvUtils.fits(blockInv, outputItem)) {
|
||||
blockInv.addItem(outputItem);
|
||||
} else {
|
||||
// fallback
|
||||
SlimefunUtils.spawnItem(block.getLocation(), outputItem, ItemSpawnReason.MULTIBLOCK_MACHINE_OVERFLOW, true);
|
||||
|
@ -91,7 +91,7 @@ public class ArmorForge extends AbstractCraftingTable {
|
||||
p.getWorld().playSound(p.getLocation(), Sound.BLOCK_ANVIL_USE, 1F, 2F);
|
||||
} else {
|
||||
p.getWorld().playSound(p.getLocation(), Sound.ENTITY_ARROW_HIT_PLAYER, 1F, 1F);
|
||||
handleCraftedItem(output, dispenser);
|
||||
handleCraftedItem(output, dispenser, inv);
|
||||
}
|
||||
}, j * 20L);
|
||||
}
|
||||
|
@ -72,7 +72,7 @@ public class Compressor extends MultiBlockMachine {
|
||||
removing.setAmount(recipeInput.getAmount());
|
||||
inv.removeItem(removing);
|
||||
|
||||
craft(p, output, dispBlock);
|
||||
craft(p, output, dispBlock, inv);
|
||||
} else {
|
||||
SlimefunPlugin.getLocalization().sendMessage(p, "machines.full-inventory", true);
|
||||
}
|
||||
@ -87,7 +87,7 @@ public class Compressor extends MultiBlockMachine {
|
||||
}
|
||||
|
||||
@ParametersAreNonnullByDefault
|
||||
private void craft(Player p, ItemStack output, Block dispenser) {
|
||||
private void craft(Player p, ItemStack output, Block dispenser, Inventory dispInv) {
|
||||
for (int i = 0; i < 4; i++) {
|
||||
int j = i;
|
||||
|
||||
@ -96,7 +96,7 @@ public class Compressor extends MultiBlockMachine {
|
||||
p.getWorld().playSound(p.getLocation(), j == 1 ? Sound.BLOCK_PISTON_CONTRACT : Sound.BLOCK_PISTON_EXTEND, 1F, j == 0 ? 1F : 2F);
|
||||
} else {
|
||||
p.getWorld().playSound(p.getLocation(), Sound.ENTITY_ARROW_HIT_PLAYER, 1F, 1F);
|
||||
handleCraftedItem(output, dispenser);
|
||||
handleCraftedItem(output, dispenser, dispInv);
|
||||
}
|
||||
}, i * 20L);
|
||||
}
|
||||
|
@ -90,13 +90,13 @@ public class MagicWorkbench extends AbstractCraftingTable {
|
||||
}
|
||||
}
|
||||
|
||||
startAnimation(p, b, dispenser, output);
|
||||
startAnimation(p, b, inv, dispenser, output);
|
||||
} else {
|
||||
SlimefunPlugin.getLocalization().sendMessage(p, "machines.full-inventory", true);
|
||||
}
|
||||
}
|
||||
|
||||
private void startAnimation(Player p, Block b, Block dispenser, ItemStack output) {
|
||||
private void startAnimation(Player p, Block b, Inventory dispInv, Block dispenser, ItemStack output) {
|
||||
for (int j = 0; j < 4; j++) {
|
||||
int current = j;
|
||||
SlimefunPlugin.runSync(() -> {
|
||||
@ -107,7 +107,7 @@ public class MagicWorkbench extends AbstractCraftingTable {
|
||||
p.getWorld().playSound(b.getLocation(), Sound.BLOCK_WOODEN_BUTTON_CLICK_ON, 1F, 1F);
|
||||
} else {
|
||||
p.getWorld().playSound(p.getLocation(), Sound.ENTITY_ARROW_HIT_PLAYER, 1F, 1F);
|
||||
handleCraftedItem(output, dispenser);
|
||||
handleCraftedItem(output, dispenser, dispInv);
|
||||
}
|
||||
}, j * 20L);
|
||||
}
|
||||
|
@ -57,7 +57,7 @@ public class PressureChamber extends MultiBlockMachine {
|
||||
removing.setAmount(convert.getAmount());
|
||||
inv.removeItem(removing);
|
||||
|
||||
craft(p, b, output, dispBlock);
|
||||
craft(p, b, output, inv, dispBlock);
|
||||
} else {
|
||||
SlimefunPlugin.getLocalization().sendMessage(p, "machines.full-inventory", true);
|
||||
}
|
||||
@ -71,7 +71,7 @@ public class PressureChamber extends MultiBlockMachine {
|
||||
}
|
||||
|
||||
@ParametersAreNonnullByDefault
|
||||
private void craft(Player p, Block b, ItemStack output, Block dispenser) {
|
||||
private void craft(Player p, Block b, ItemStack output, Inventory dispInv, Block dispenser) {
|
||||
for (int i = 0; i < 4; i++) {
|
||||
int j = i;
|
||||
|
||||
@ -85,7 +85,7 @@ public class PressureChamber extends MultiBlockMachine {
|
||||
p.getWorld().playSound(b.getLocation(), Sound.ENTITY_TNT_PRIMED, 1F, 1F);
|
||||
} else {
|
||||
p.getWorld().playSound(p.getLocation(), Sound.ENTITY_ARROW_HIT_PLAYER, 1F, 1F);
|
||||
handleCraftedItem(output, dispenser);
|
||||
handleCraftedItem(output, dispenser, dispInv);
|
||||
}
|
||||
}, i * 20L);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user