diff options
Diffstat (limited to 'src/Java/gtPlusPlus/xmod/thaumcraft')
3 files changed, 47 insertions, 8 deletions
diff --git a/src/Java/gtPlusPlus/xmod/thaumcraft/HANDLER_Thaumcraft.java b/src/Java/gtPlusPlus/xmod/thaumcraft/HANDLER_Thaumcraft.java index c9133902e3..529d9349d9 100644 --- a/src/Java/gtPlusPlus/xmod/thaumcraft/HANDLER_Thaumcraft.java +++ b/src/Java/gtPlusPlus/xmod/thaumcraft/HANDLER_Thaumcraft.java @@ -10,6 +10,7 @@ import gregtech.api.enums.TC_Aspects.TC_AspectStack; import gregtech.api.interfaces.internal.IThaumcraftCompat; import gregtech.api.util.GT_Utility; +import gtPlusPlus.api.objects.Logger; import gtPlusPlus.api.objects.data.AutoMap; import gtPlusPlus.api.objects.data.Pair; import gtPlusPlus.core.lib.LoadedMods; @@ -44,7 +45,12 @@ public class HANDLER_Thaumcraft { for (Pair<ItemStack, TC_AspectStack_Ex[]> j : sItemsToGetAspects) { if (j .getKey() != null && (j.getValue() != null && j.getValue().length > 0)) { List<TC_AspectStack_Ex> list = Arrays.asList(j.getValue()); - ThaumcraftUtils.registerThaumcraftAspectsToItem(j.getKey(), list, true); + if (ThaumcraftUtils.registerThaumcraftAspectsToItem(j.getKey(), list, true)) { + Logger.INFO("[Aspect] Successfully added Aspects to "+j.getKey().getDisplayName()+"."); + } + else { + Logger.INFO("[Aspect] Failed adding Aspects to "+j.getKey().getDisplayName()+"."); + } } } } diff --git a/src/Java/gtPlusPlus/xmod/thaumcraft/aspect/GTPP_AspectCompat.java b/src/Java/gtPlusPlus/xmod/thaumcraft/aspect/GTPP_AspectCompat.java index 34fa657bd7..e3aeed75bd 100644 --- a/src/Java/gtPlusPlus/xmod/thaumcraft/aspect/GTPP_AspectCompat.java +++ b/src/Java/gtPlusPlus/xmod/thaumcraft/aspect/GTPP_AspectCompat.java @@ -2,6 +2,7 @@ package gtPlusPlus.xmod.thaumcraft.aspect; import gregtech.common.GT_ThaumcraftCompat; +import gtPlusPlus.api.objects.Logger; import gtPlusPlus.xmod.thaumcraft.aspect.GTPP_Aspects.TC_AspectStack_Ex; import gtPlusPlus.xmod.thaumcraft.util.ThaumcraftUtils; @@ -20,7 +21,7 @@ import net.minecraft.util.ResourceLocation; import thaumcraft.api.aspects.Aspect; import thaumcraft.api.aspects.AspectList; -public class GTPP_AspectCompat implements IThaumcraftCompat { +public class GTPP_AspectCompat implements IThaumcraftCompat { public static volatile Method m = null; @@ -99,7 +100,7 @@ public class GTPP_AspectCompat implements IThaumcraftCompat { GT_LanguageManager.addStringLocalization("tc.aspect.custom5", "Heaven"); } - public static synchronized final AspectList getAspectList_Ex(final List<TC_AspectStack_Ex> aAspects) { + public static synchronized final AspectList getAspectList(final List<TC_AspectStack_Ex> aAspects) { AspectList o = null; try { if (m == null || (m != null && !m.isAccessible())) { @@ -110,9 +111,22 @@ public class GTPP_AspectCompat implements IThaumcraftCompat { o = (AspectList) m.invoke(null, aAspects); } } - catch (NoSuchMethodException | SecurityException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {} + catch (NoSuchMethodException | SecurityException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) { + e.printStackTrace(); + } + if (o == null) { + Logger.REFLECTION("[Aspect] Did not retrieve valid aspect list from reflective invocation."); + } return o; } + + public static synchronized final AspectList getAspectList_Ex(final List<TC_AspectStack_Ex> aAspects) { + final AspectList rAspects = new AspectList(); + for (final TC_AspectStack_Ex tAspect : aAspects) { + rAspects.add((Aspect) tAspect.mAspect.mAspect, (int) tAspect.mAmount); + } + return rAspects; + } @Override public boolean registerPortholeBlacklistedBlock(Block p0) { diff --git a/src/Java/gtPlusPlus/xmod/thaumcraft/util/ThaumcraftUtils.java b/src/Java/gtPlusPlus/xmod/thaumcraft/util/ThaumcraftUtils.java index baace5257c..9f6af00de0 100644 --- a/src/Java/gtPlusPlus/xmod/thaumcraft/util/ThaumcraftUtils.java +++ b/src/Java/gtPlusPlus/xmod/thaumcraft/util/ThaumcraftUtils.java @@ -1,5 +1,6 @@ package gtPlusPlus.xmod.thaumcraft.util; +import static gtPlusPlus.xmod.thaumcraft.HANDLER_Thaumcraft.sItemsToGetAspects; import static gtPlusPlus.xmod.thaumcraft.aspect.GTPP_AspectCompat.getAspectList_Ex; import java.util.*; @@ -14,8 +15,8 @@ import gregtech.api.enums.TC_Aspects.TC_AspectStack; import gregtech.api.util.GT_LanguageManager; import gregtech.api.util.GT_Utility; +import gtPlusPlus.api.objects.Logger; import gtPlusPlus.api.objects.data.Pair; -import gtPlusPlus.xmod.thaumcraft.HANDLER_Thaumcraft; import gtPlusPlus.xmod.thaumcraft.aspect.GTPP_Aspects; import gtPlusPlus.xmod.thaumcraft.aspect.GTPP_Aspects.TC_AspectStack_Ex; import thaumcraft.api.ThaumcraftApi; @@ -48,8 +49,15 @@ public class ThaumcraftUtils { } } Pair<ItemStack, TC_AspectStack_Ex[]> k = new Pair<ItemStack, TC_AspectStack_Ex[]>(item, aspects); - HANDLER_Thaumcraft.sItemsToGetAspects.put(k); - return true; + int mSizeA = sItemsToGetAspects.size(); + sItemsToGetAspects.put(k); + if (sItemsToGetAspects.size() > mSizeA) { + Logger.INFO("[Aspect] Successfully queued an ItemStack for Aspect addition."); + return true; + } + Logger.INFO("[Aspect] Failed to queue an ItemStack for Aspect addition."); + //Logger.INFO("[Aspect] "); + return false; } @@ -181,18 +189,29 @@ public class ThaumcraftUtils { public static boolean registerThaumcraftAspectsToItem(final ItemStack aStack, final List<TC_AspectStack_Ex> aAspects, final boolean aAdditive) { + try { if (aAspects.isEmpty()) { return false; } - if (aAdditive) { + AspectList h = getAspectList_Ex(aAspects); + if (aAdditive && (h != null && h.size() > 0)) { ThaumcraftApi.registerComplexObjectTag(aStack, getAspectList_Ex(aAspects)); return true; } + else { + Logger.INFO("[Aspect] Failed adding aspects to "+aStack.getDisplayName()+"."); + } final AspectList tAlreadyRegisteredAspects = ThaumcraftApiHelper.getObjectAspects(aStack); if (tAlreadyRegisteredAspects == null || tAlreadyRegisteredAspects.size() <= 0) { ThaumcraftApi.registerObjectTag(aStack, getAspectList_Ex(aAspects)); } return true; + } + catch (Throwable t) { + Logger.INFO("[Aspect] Failed adding aspects to "+aStack.getDisplayName()+"."); + t.printStackTrace(); + return false; + } } public static boolean registerPortholeBlacklistedBlock(final Block aBlock) { |