1
mirror of https://github.com/StarWishsama/Slimefun4.git synced 2024-09-20 03:35:51 +00:00

Implement Miner Android fix

This commit is contained in:
CyberPatriot 2019-08-03 17:42:27 -05:00
parent 13e0e02dc1
commit 657b0e167b

View File

@ -11,6 +11,8 @@ import java.util.Map;
import java.util.Set; import java.util.Set;
import java.util.UUID; import java.util.UUID;
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.HandledBlock;
import me.mrCookieSlime.Slimefun.api.Slimefun;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.Effect; import org.bukkit.Effect;
@ -75,6 +77,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem {
private static final List<BlockFace> directions = Arrays.asList(BlockFace.NORTH, BlockFace.EAST, BlockFace.SOUTH, BlockFace.WEST); private static final List<BlockFace> directions = Arrays.asList(BlockFace.NORTH, BlockFace.EAST, BlockFace.SOUTH, BlockFace.WEST);
private static final List<Material> blockblacklist = new ArrayList<>(); private static final List<Material> blockblacklist = new ArrayList<>();
static { static {
blockblacklist.add(Material.BEDROCK); blockblacklist.add(Material.BEDROCK);
blockblacklist.add(Material.BARRIER); blockblacklist.add(Material.BARRIER);
@ -83,8 +86,6 @@ public abstract class ProgrammableAndroid extends SlimefunItem {
blockblacklist.add(Material.CHAIN_COMMAND_BLOCK); blockblacklist.add(Material.CHAIN_COMMAND_BLOCK);
blockblacklist.add(Material.REPEATING_COMMAND_BLOCK); blockblacklist.add(Material.REPEATING_COMMAND_BLOCK);
blockblacklist.add(Material.STRUCTURE_BLOCK); blockblacklist.add(Material.STRUCTURE_BLOCK);
blockblacklist.add(Material.PLAYER_HEAD);
blockblacklist.add(Material.PLAYER_WALL_HEAD);
} }
private Set<MachineFuel> recipes = new HashSet<>(); private Set<MachineFuel> recipes = new HashSet<>();
@ -713,14 +714,18 @@ public abstract class ProgrammableAndroid extends SlimefunItem {
Collection<ItemStack> drops = block.getDrops(); Collection<ItemStack> drops = block.getDrops();
if (!blockblacklist.contains(block.getType()) && !drops.isEmpty() && CSCoreLib.getLib().getProtectionManager().canBuild(UUID.fromString(BlockStorage.getLocationInfo(b.getLocation(), "owner")), block)) { if (!blockblacklist.contains(block.getType()) && !drops.isEmpty() && CSCoreLib.getLib().getProtectionManager().canBuild(UUID.fromString(BlockStorage.getLocationInfo(b.getLocation(), "owner")), block)) {
SlimefunItem item = BlockStorage.check(block); SlimefunItem item = BlockStorage.check(block);
boolean allow = false;
if (item != null) { if (item != null) {
if (fits(b, item.getItem())) { if (fits(b, item.getItem())) {
if (SlimefunItem.blockhandler.containsKey(item.getID())) { if (SlimefunItem.blockhandler.containsKey(item.getID())) {
if (SlimefunItem.blockhandler.get(item.getID()).onBreak(null, block, item, UnregisterReason.ANDROID_DIG)) { if (allow) {
pushItems(b, BlockStorage.retrieve(block)); if (SlimefunItem.blockhandler.get(item.getID()).onBreak(null, block, item, UnregisterReason.ANDROID_DIG)) {
if (SlimefunItem.blockhandler.containsKey(item.getID())) SlimefunItem.blockhandler.get(item.getID()).onBreak(null, block, item, UnregisterReason.ANDROID_DIG); pushItems(b, BlockStorage.retrieve(block));
block.getWorld().playEffect(block.getLocation(), Effect.STEP_SOUND, block.getType()); if (SlimefunItem.blockhandler.containsKey(item.getID()))
block.setType(Material.AIR); SlimefunItem.blockhandler.get(item.getID()).onBreak(null, block, item, UnregisterReason.ANDROID_DIG);
block.getWorld().playEffect(block.getLocation(), Effect.STEP_SOUND, block.getType());
block.setType(Material.AIR);
}
} }
} }
} }