1
mirror of https://github.com/StarWishsama/Slimefun4.git synced 2024-09-19 19:25:48 +00:00

pass BlockPosition to onCancel

This commit is contained in:
iTwins 2023-09-07 02:29:15 +02:00
parent c06e316b6a
commit dc2cdadc3c
4 changed files with 9 additions and 11 deletions

View File

@ -1,5 +1,6 @@
package io.github.thebusybiscuit.slimefun4.core.machines;
import io.github.bakedlibs.dough.blocks.BlockPosition;
import io.github.thebusybiscuit.slimefun4.core.attributes.MachineProcessHolder;
/**
@ -61,6 +62,6 @@ public interface MachineOperation {
* This method is called when a {@link MachineOperation} is interrupted before finishing.
* Implement to specify behaviour that should happen in this case.
*/
default void onCancel() {}
default void onCancel(BlockPosition position) {}
}

View File

@ -231,7 +231,7 @@ public class MachineProcessor<T extends MachineOperation> {
Event event = new AsyncMachineOperationFinishEvent(pos, this, operation);
Bukkit.getPluginManager().callEvent(event);
} else {
operation.onCancel();
operation.onCancel(pos);
}
return true;

View File

@ -335,7 +335,7 @@ public class GEOMiner extends SlimefunItem implements RecipeDisplayItem, EnergyN
return;
}
processor.startOperation(b, new GEOMiningOperation(resource, b, PROCESSING_TIME));
processor.startOperation(b, new GEOMiningOperation(resource, PROCESSING_TIME));
Slimefun.getGPSNetwork().getResourceManager().setSupplies(resource, b.getWorld(), b.getX() >> 4, b.getZ() >> 4, supplies - 1);
updateHologram(b, "&7Mining: &r" + resource.getName());
return;

View File

@ -4,8 +4,7 @@ import java.util.OptionalInt;
import javax.annotation.Nonnull;
import org.bukkit.block.Block;
import io.github.bakedlibs.dough.blocks.BlockPosition;
import io.github.thebusybiscuit.slimefun4.api.geo.GEOResource;
import io.github.thebusybiscuit.slimefun4.api.geo.ResourceManager;
import io.github.thebusybiscuit.slimefun4.core.machines.MachineOperation;
@ -23,12 +22,10 @@ import io.github.thebusybiscuit.slimefun4.implementation.items.geo.GEOMiner;
public class GEOMiningOperation extends MiningOperation {
private final GEOResource resource;
private final Block block;
public GEOMiningOperation(@Nonnull GEOResource resource, @Nonnull Block block, int totalTicks) {
public GEOMiningOperation(@Nonnull GEOResource resource, int totalTicks) {
super(resource.getItem().clone(), totalTicks);
this.resource = resource;
this.block = block;
}
/**
@ -36,10 +33,10 @@ public class GEOMiningOperation extends MiningOperation {
* when the {@link GEOMiningOperation} gets cancelled
*/
@Override
public void onCancel() {
public void onCancel(@Nonnull BlockPosition position) {
ResourceManager resourceManager = Slimefun.getGPSNetwork().getResourceManager();
OptionalInt supplies = resourceManager.getSupplies(resource, block.getWorld(), block.getX() >> 4, block.getZ() >> 4);
supplies.ifPresent(s -> resourceManager.setSupplies(resource, block.getWorld(), block.getX() >> 4, block.getZ() >> 4, s + 1));
OptionalInt supplies = resourceManager.getSupplies(resource, position.getWorld(), position.getChunkX(), position.getChunkZ());
supplies.ifPresent(s -> resourceManager.setSupplies(resource, position.getWorld(), position.getChunkX(), position.getChunkZ(), s + 1));
}
}