Skip to content

Commit

Permalink
使用tryCatch执行mixin的内容
Browse files Browse the repository at this point in the history
  • Loading branch information
QuanhuZeYu committed Jan 7, 2025
1 parent 1c104c4 commit 658cc44
Showing 1 changed file with 62 additions and 40 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import bartworks.system.material.BWTileEntityMetaGeneratedOre;
import club.heiqi.qz_miner.Config;
import club.heiqi.qz_miner.MY_LOG;
import club.heiqi.qz_miner.mixins.BWTileEntityMetaGeneratedOreAccessor;
import club.heiqi.qz_miner.mixins.BlockBaseOreAccessor;
import club.heiqi.qz_miner.mixins.TileEntityOresAccessor;
Expand All @@ -28,6 +29,8 @@
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.concurrent.Callable;
import java.util.function.Consumer;

import static net.minecraft.block.Block.getIdFromBlock;

Expand Down Expand Up @@ -174,63 +177,82 @@ private void gtOreHarvestBlockBefore(TileEntity tileEntity, Block block, EntityP
if (!CheckCompatibility.is270Upper){
return;
}

if (tileEntity instanceof TileEntityOres tileEntityOres) {
if (EnchantmentHelper.getSilkTouchModifier(player)) {
TileEntityOresAccessor.setShouldSilkTouch(true);
return;
tryCatch(() -> {
if (tileEntity instanceof TileEntityOres tileEntityOres) {
if (EnchantmentHelper.getSilkTouchModifier(player)) {
TileEntityOresAccessor.setShouldSilkTouch(true);
return;
}
TileEntityOresAccessor.setShouldFortune(true);
}
TileEntityOresAccessor.setShouldFortune(true);
}
});

if (tileEntity instanceof BWTileEntityMetaGeneratedOre bwTileEntityMetaGeneratedOre) {
if (EnchantmentHelper.getSilkTouchModifier(player)) {
BWTileEntityMetaGeneratedOreAccessor.setShouldSilkTouch(true);
return;
tryCatch(() -> {
if (tileEntity instanceof BWTileEntityMetaGeneratedOre bwTileEntityMetaGeneratedOre) {
if (EnchantmentHelper.getSilkTouchModifier(player)) {
BWTileEntityMetaGeneratedOreAccessor.setShouldSilkTouch(true);
return;
}
BWTileEntityMetaGeneratedOreAccessor.setShouldFortune(true);
}
BWTileEntityMetaGeneratedOreAccessor.setShouldFortune(true);
}
});

if (block instanceof BlockBaseOre) {
if (EnchantmentHelper.getSilkTouchModifier(player)) {
BlockBaseOreAccessor.setShouldSilkTouch(true);
return;
tryCatch(() -> {
if (block instanceof BlockBaseOre) {
if (EnchantmentHelper.getSilkTouchModifier(player)) {
BlockBaseOreAccessor.setShouldSilkTouch(true);
return;
}
BlockBaseOreAccessor.setShouldFortune(true);
}
BlockBaseOreAccessor.setShouldFortune(true);
}
});
}

private void gtOreHarvestBlockAfter(TileEntity tileEntity, Block block) {
if (!CheckCompatibility.is270Upper){
return;
}

if (tileEntity instanceof TileEntityOres tileEntityOres) {
if (EnchantmentHelper.getSilkTouchModifier(player)) {
TileEntityOresAccessor.setShouldSilkTouch(false);
return;
tryCatch(() -> {
if (tileEntity instanceof TileEntityOres tileEntityOres) {
if (EnchantmentHelper.getSilkTouchModifier(player)) {
TileEntityOresAccessor.setShouldSilkTouch(false);
return;
}
TileEntityOresAccessor.setShouldFortune(false);
if (Config.forceNatural)
tileEntityOres.mNatural = false;
}
TileEntityOresAccessor.setShouldFortune(false);
if (Config.forceNatural)
tileEntityOres.mNatural = false;
}
});

if (tileEntity instanceof BWTileEntityMetaGeneratedOre bwTileEntityMetaGeneratedOre) {
if (EnchantmentHelper.getSilkTouchModifier(player)) {
BWTileEntityMetaGeneratedOreAccessor.setShouldSilkTouch(false);
return;
tryCatch(() -> {
if (tileEntity instanceof BWTileEntityMetaGeneratedOre bwTileEntityMetaGeneratedOre) {
if (EnchantmentHelper.getSilkTouchModifier(player)) {
BWTileEntityMetaGeneratedOreAccessor.setShouldSilkTouch(false);
return;
}
BWTileEntityMetaGeneratedOreAccessor.setShouldFortune(false);
if (Config.forceNatural)
bwTileEntityMetaGeneratedOre.mNatural = false;
}
BWTileEntityMetaGeneratedOreAccessor.setShouldFortune(false);
if (Config.forceNatural)
bwTileEntityMetaGeneratedOre.mNatural = false;
}
});

if (block instanceof BlockBaseOre) {
if (EnchantmentHelper.getSilkTouchModifier(player)) {
BlockBaseOreAccessor.setShouldSilkTouch(false);
return;
tryCatch(() -> {
if (block instanceof BlockBaseOre) {
if (EnchantmentHelper.getSilkTouchModifier(player)) {
BlockBaseOreAccessor.setShouldSilkTouch(false);
return;
}
BlockBaseOreAccessor.setShouldFortune(false);
}
BlockBaseOreAccessor.setShouldFortune(false);
});
}

public void tryCatch(Runnable action) {
try {
action.run();
} catch (Exception e) {
MY_LOG.LOG.warn(e.toString());
}
}

Expand Down

0 comments on commit 658cc44

Please sign in to comment.