aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/xmod/thaumcraft
diff options
context:
space:
mode:
Diffstat (limited to 'src/Java/gtPlusPlus/xmod/thaumcraft')
-rw-r--r--src/Java/gtPlusPlus/xmod/thaumcraft/HANDLER_Thaumcraft.java8
-rw-r--r--src/Java/gtPlusPlus/xmod/thaumcraft/aspect/GTPP_AspectCompat.java20
-rw-r--r--src/Java/gtPlusPlus/xmod/thaumcraft/util/ThaumcraftUtils.java27
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) {