aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormiozune <miozune@gmail.com>2023-02-16 17:43:54 +0900
committerGitHub <noreply@github.com>2023-02-16 09:43:54 +0100
commit6d1ce9ee20fc0bdb7dda2d7066a8c3474e4d1050 (patch)
tree549c66a1105bd76e157a9adceea3614b52787a4a
parentf387766d71209d3e9eb8837ae3592f2b8f5838e1 (diff)
downloadGT5-Unofficial-6d1ce9ee20fc0bdb7dda2d7066a8c3474e4d1050.tar.gz
GT5-Unofficial-6d1ce9ee20fc0bdb7dda2d7066a8c3474e4d1050.tar.bz2
GT5-Unofficial-6d1ce9ee20fc0bdb7dda2d7066a8c3474e4d1050.zip
Remove reflections against BW (#544)
-rw-r--r--build.gradle185
-rw-r--r--dependencies.gradle13
-rw-r--r--src/main/java/Ic2ExpReactorPlanner/ComponentFactory.java16
-rw-r--r--src/main/java/gtPlusPlus/xmod/bartworks/BW_Utils.java81
4 files changed, 199 insertions, 96 deletions
diff --git a/build.gradle b/build.gradle
index 7c72b04698..b808930520 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,4 +1,4 @@
-//version: 1675164841
+//version: 1676031737
/*
DO NOT CHANGE THIS FILE!
Also, you may replace this file at any time if there is an update available.
@@ -9,11 +9,15 @@
import com.diffplug.blowdryer.Blowdryer
import com.github.jengelman.gradle.plugins.shadow.tasks.ConfigureShadowRelocation
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
+import com.gtnewhorizons.retrofuturagradle.ObfuscationAttribute
import com.gtnewhorizons.retrofuturagradle.mcp.ReobfuscatedJar
+import com.gtnewhorizons.retrofuturagradle.minecraft.RunMinecraftTask
import com.matthewprenger.cursegradle.CurseArtifact
import com.matthewprenger.cursegradle.CurseRelation
import com.modrinth.minotaur.dependencies.ModDependency
import com.modrinth.minotaur.dependencies.VersionDependency
+import cpw.mods.fml.relauncher.Side
+import org.gradle.api.tasks.options.Option;
import org.gradle.internal.logging.text.StyledTextOutput.Style
import org.gradle.internal.logging.text.StyledTextOutputFactory
import org.jetbrains.gradle.ext.*
@@ -23,6 +27,7 @@ import java.nio.file.Paths
import java.util.concurrent.TimeUnit
import java.util.zip.ZipEntry
import java.util.zip.ZipOutputStream
+import javax.inject.Inject
buildscript {
repositories {
@@ -66,7 +71,7 @@ plugins {
id 'com.diffplug.spotless' version '6.7.2' apply false
id 'com.modrinth.minotaur' version '2.+' apply false
id 'com.matthewprenger.cursegradle' version '1.4.0' apply false
- id 'com.gtnewhorizons.retrofuturagradle' version '1.1.3'
+ id 'com.gtnewhorizons.retrofuturagradle' version '1.1.6'
}
boolean settingsupdated = verifySettingsGradle()
settingsupdated = verifyGitAttributes() || settingsupdated
@@ -186,11 +191,21 @@ configurations {
}
if (enableModernJavaSyntax.toBoolean()) {
+ repositories {
+ mavenCentral {
+ mavenContent {
+ includeGroup("me.eigenraven.java8unsupported")
+ }
+ }
+ }
+
dependencies {
annotationProcessor 'com.github.bsideup.jabel:jabel-javac-plugin:1.0.0'
compileOnly('com.github.bsideup.jabel:jabel-javac-plugin:1.0.0') {
transitive = false // We only care about the 1 annotation class
}
+ // Allow using jdk.unsupported classes like sun.misc.Unsafe in the compiled code, working around JDK-8206937.
+ patchedMinecraft('me.eigenraven.java8unsupported:java-8-unsupported-shim:1.0.0')
}
tasks.withType(JavaCompile).configureEach {
@@ -401,6 +416,16 @@ configurations.configureEach {
}
}
}
+ def obfuscationAttr = it.attributes.getAttribute(ObfuscationAttribute.OBFUSCATION_ATTRIBUTE)
+ if (obfuscationAttr != null && obfuscationAttr.name == ObfuscationAttribute.SRG) {
+ resolutionStrategy.eachDependency { DependencyResolveDetails details ->
+ // Remap CoFH core cursemaven dev jar to the obfuscated version for runObfClient/Server
+ if (details.requested.group == 'curse.maven' && details.requested.name.endsWith('-69162') && details.requested.version == '2388751') {
+ details.useVersion '2388750'
+ details.because 'Pick obfuscated jar'
+ }
+ }
+ }
}
// Ensure tests have access to minecraft classes
@@ -520,20 +545,20 @@ dependencies {
annotationProcessor('org.ow2.asm:asm-debug-all:5.0.3')
annotationProcessor('com.google.guava:guava:24.1.1-jre')
annotationProcessor('com.google.code.gson:gson:2.8.6')
- annotationProcessor('com.gtnewhorizon:gtnhmixins:2.1.10:processor')
+ annotationProcessor('com.gtnewhorizon:gtnhmixins:2.1.12:processor')
if (usesMixinDebug.toBoolean()) {
runtimeOnlyNonPublishable('org.jetbrains:intellij-fernflower:1.2.1.16')
}
}
if (usesMixins.toBoolean() || forceEnableMixins.toBoolean()) {
- implementation('com.gtnewhorizon:gtnhmixins:2.1.10')
+ implementation('com.gtnewhorizon:gtnhmixins:2.1.12')
}
}
pluginManager.withPlugin('org.jetbrains.kotlin.kapt') {
if (usesMixins.toBoolean()) {
dependencies {
- kapt('com.gtnewhorizon:gtnhmixins:2.1.10:processor')
+ kapt('com.gtnewhorizon:gtnhmixins:2.1.12:processor')
}
}
}
@@ -633,9 +658,142 @@ tasks.named("processResources", ProcessResources).configure {
if (usesMixins.toBoolean()) {
from refMap
+ dependsOn("compileJava", "compileScala")
+ }
+}
+
+ext.java17Toolchain = (JavaToolchainSpec spec) -> {
+ spec.languageVersion.set(JavaLanguageVersion.of(17))
+ spec.vendor.set(JvmVendorSpec.matching("jetbrains"))
+}
+
+ext.java17DependenciesCfg = configurations.create("java17Dependencies")
+ext.java17PatchDependenciesCfg = configurations.create("java17PatchDependencies")
+
+dependencies {
+ def lwjgl3ifyVersion = '1.1.21'
+ def asmVersion = '9.4'
+ if (modId != 'lwjgl3ify') {
+ java17Dependencies("com.github.GTNewHorizons:lwjgl3ify:${lwjgl3ifyVersion}")
+ }
+ if (modId != 'hodgepodge') {
+ java17Dependencies('com.github.GTNewHorizons:Hodgepodge:2.0.31')
+ }
+
+ java17PatchDependencies('net.minecraft:launchwrapper:1.15') {transitive = false}
+ java17PatchDependencies("org.ow2.asm:asm:${asmVersion}")
+ java17PatchDependencies("org.ow2.asm:asm-commons:${asmVersion}")
+ java17PatchDependencies("org.ow2.asm:asm-tree:${asmVersion}")
+ java17PatchDependencies("org.ow2.asm:asm-analysis:${asmVersion}")
+ java17PatchDependencies("org.ow2.asm:asm-util:${asmVersion}")
+ java17PatchDependencies('org.ow2.asm:asm-deprecated:7.1')
+ java17PatchDependencies("org.apache.commons:commons-lang3:3.12.0")
+ java17PatchDependencies("com.github.GTNewHorizons:lwjgl3ify:${lwjgl3ifyVersion}:forgePatches")
+}
+
+ext.java17JvmArgs = [
+ // Java 9+ support
+ "--illegal-access=warn",
+ "-Dfile.encoding=UTF-8",
+ "-Djava.security.manager=allow",
+ "--add-opens", "java.base/jdk.internal.loader=ALL-UNNAMED",
+ "--add-opens", "java.base/java.net=ALL-UNNAMED",
+ "--add-opens", "java.base/java.nio=ALL-UNNAMED",
+ "--add-opens", "java.base/java.io=ALL-UNNAMED",
+ "--add-opens", "java.base/java.lang=ALL-UNNAMED",
+ "--add-opens", "java.base/java.lang.reflect=ALL-UNNAMED",
+ "--add-opens", "java.base/java.text=ALL-UNNAMED",
+ "--add-opens", "java.base/java.util=ALL-UNNAMED",
+ "--add-opens", "java.base/jdk.internal.reflect=ALL-UNNAMED",
+ "--add-opens", "java.base/sun.nio.ch=ALL-UNNAMED",
+ "--add-opens", "java.desktop/sun.awt.image=ALL-UNNAMED",
+ "--add-modules", "jdk.dynalink",
+ "--add-opens", "jdk.dynalink/jdk.dynalink.beans=ALL-UNNAMED",
+ "--add-modules", "java.sql.rowset",
+ "--add-opens", "java.sql.rowset/javax.sql.rowset.serial=ALL-UNNAMED"
+]
+
+ext.hotswapJvmArgs = [
+ // DCEVM advanced hot reload
+ "-XX:+AllowEnhancedClassRedefinition",
+ "-XX:HotswapAgent=fatjar"
+]
+
+ext.setupHotswapAgentTask = tasks.register("setupHotswapAgent") {
+ group = "GTNH Buildscript"
+ description = "Installs a recent version of HotSwapAgent into the Java 17 JetBrains runtime directory"
+ def hsaUrl = 'https://github.com/HotswapProjects/HotswapAgent/releases/download/1.4.2-SNAPSHOT/hotswap-agent-1.4.2-SNAPSHOT.jar'
+ def targetFolderProvider = javaToolchains.launcherFor(java17Toolchain).map {it.metadata.installationPath.dir("lib/hotswap")}
+ def targetFilename = "hotswap-agent.jar"
+ onlyIf {
+ !targetFolderProvider.get().file(targetFilename).asFile.exists()
+ }
+ doLast {
+ def targetFolder = targetFolderProvider.get()
+ targetFolder.asFile.mkdirs()
+ download.run {
+ src hsaUrl
+ dest targetFolder.file(targetFilename).asFile
+ overwrite false
+ tempAndMove true
+ }
+ }
+}
+
+public abstract class RunHotswappableMinecraftTask extends RunMinecraftTask {
+ // IntelliJ doesn't seem to allow commandline arguments so we also support an env variable
+ private boolean enableHotswap = Boolean.valueOf(System.getenv("HOTSWAP"));
+
+ @Input
+ public boolean getEnableHotswap() { return enableHotswap }
+ @Option(option = "hotswap", description = "Enables HotSwapAgent for enhanced class reloading under a debugger")
+ public boolean setEnableHotswap(boolean enable) { enableHotswap = enable }
+
+ @Inject
+ public RunHotswappableMinecraftTask(Side side, String superTask) {
+ super(side)
+
+ this.lwjglVersion = 3
+ this.javaLauncher = project.javaToolchains.launcherFor(project.java17Toolchain)
+ this.extraJvmArgs.addAll(project.java17JvmArgs)
+ this.extraJvmArgs.addAll(project.provider(() -> enableHotswap ? project.hotswapJvmArgs : []))
+
+ this.classpath(project.java17PatchDependenciesCfg)
+ if (side == Side.CLIENT) {
+ this.classpath(project.minecraftTasks.lwjgl3Configuration)
+ }
+ // Use a raw provider instead of map to not create a dependency on the task
+ this.classpath(project.provider(() -> project.tasks.named(superTask, RunMinecraftTask).get().classpath))
+ this.classpath.filter { file ->
+ !file.path.contains("2.9.4-nightly-20150209") // Remove lwjgl2
+ }
+ this.classpath(project.java17DependenciesCfg)
+
+ if (!(project.usesMixins.toBoolean() || project.forceEnableMixins.toBoolean())) {
+ this.extraArgs.addAll("--tweakClass", "org.spongepowered.asm.launch.MixinTweaker")
+ }
}
}
+def runClient17Task = tasks.register("runClient17", RunHotswappableMinecraftTask, Side.CLIENT, "runClient")
+runClient17Task.configure {
+ setup(project)
+ group = "Modded Minecraft"
+ description = "Runs the modded client using Java 17, lwjgl3ify and Hodgepodge"
+ dependsOn(setupHotswapAgentTask, mcpTasks.launcherSources.classesTaskName, minecraftTasks.taskDownloadVanillaAssets, mcpTasks.taskPackagePatchedMc, 'jar')
+ mainClass = "GradleStart"
+}
+
+def runServer17Task = tasks.register("runServer17", RunHotswappableMinecraftTask, Side.SERVER, "runServer")
+runServer17Task.configure {
+ setup(project)
+ group = "Modded Minecraft"
+ description = "Runs the modded server using Java 17, lwjgl3ify and Hodgepodge"
+ dependsOn(setupHotswapAgentTask, mcpTasks.launcherSources.classesTaskName, minecraftTasks.taskDownloadVanillaAssets, mcpTasks.taskPackagePatchedMc, 'jar')
+ mainClass = "GradleStartServer"
+ extraArgs.add("nogui")
+}
+
def getManifestAttributes() {
def manifestAttributes = [:]
if (!containsMixinsAndOrCoreModOnly.toBoolean() && (usesMixins.toBoolean() || coreModClass)) {
@@ -705,7 +863,7 @@ if (usesShadowedDependencies.toBoolean()) {
javaComponent.withVariantsFromConfiguration(configurations.shadowRuntimeElements) {
skip()
}
- for (runTask in ["runClient", "runServer"]) {
+ for (runTask in ["runClient", "runServer", "runClient17", "runServer17"]) {
tasks.named(runTask).configure {
dependsOn("shadowJar")
}
@@ -743,6 +901,7 @@ idea {
module {
downloadJavadoc = true
downloadSources = true
+ inheritOutputDirs = true
}
project {
settings {
@@ -753,6 +912,20 @@ idea {
"2. Run Server"(Gradle) {
taskNames = ["runServer"]
}
+ "1a. Run Client (Java 17)"(Gradle) {
+ taskNames = ["runClient17"]
+ }
+ "2a. Run Server (Java 17)"(Gradle) {
+ taskNames = ["runServer17"]
+ }
+ "1b. Run Client (Java 17, Hotswap)"(Gradle) {
+ taskNames = ["runClient17"]
+ envs = ["HOTSWAP": "true"]
+ }
+ "2b. Run Server (Java 17, Hotswap)"(Gradle) {
+ taskNames = ["runServer17"]
+ envs = ["HOTSWAP": "true"]
+ }
"3. Run Obfuscated Client"(Gradle) {
taskNames = ["runObfClient"]
}
diff --git a/dependencies.gradle b/dependencies.gradle
index 14c2e6cae1..83c7071102 100644
--- a/dependencies.gradle
+++ b/dependencies.gradle
@@ -1,16 +1,12 @@
dependencies {
- api('com.github.GTNewHorizons:GTNHLib:0.0.11:dev')
- api('com.github.GTNewHorizons:GT5-Unofficial:5.09.41.270:dev')
- api("com.github.GTNewHorizons:StructureLib:1.2.1:dev")
- api("com.github.GTNewHorizons:ModularUI:1.0.54:dev") {transitive=false}
- api("com.github.GTNewHorizons:NotEnoughItems:2.3.25-GTNH:dev")
- api('net.industrial-craft:industrialcraft-2:2.2.828-experimental:dev')
+ api('com.github.GTNewHorizons:GT5-Unofficial:5.09.41.278:dev')
+ api("com.github.GTNewHorizons:bartworks:0.5.155:dev")
+ api("com.github.GTNewHorizons:TecTech:5.0.88:dev")
implementation('curse.maven:cofh-core-69162:2388751')
// https://www.curseforge.com/minecraft/mc-mods/advancedsolarpanels
implementation('curse.maven:advsolar-362768:2885953')
- compileOnly('com.github.GTNewHorizons:Applied-Energistics-2-Unofficial:rv3-beta-152-GTNH:dev') {transitive=false}
compileOnly('com.github.GTNewHorizons:Baubles:1.0.1.15:dev') {transitive=false}
compileOnly('com.github.GTNewHorizons:ForestryMC:4.5.6:dev') {transitive=false}
compileOnly('com.github.GTNewHorizons:Railcraft:9.13.16:dev') {transitive=false}
@@ -18,14 +14,11 @@ dependencies {
compileOnly('com.github.GTNewHorizons:EnderCore:0.2.12:dev') {transitive=false}
compileOnly('com.github.GTNewHorizons:SC2:2.0.2:dev') {transitive=false}
compileOnly('com.github.GTNewHorizons:Binnie:2.0.48:dev') {transitive = false}
- api("com.github.GTNewHorizons:bartworks:0.5.150:dev") {transitive = false}
compileOnly('curse.maven:PlayerAPI-228969:2248928') {transitive=false}
compileOnly('com.github.GTNewHorizons:BuildCraft:7.1.28:dev') {transitive=false}
compileOnly('thaumcraft:Thaumcraft:1.7.10-4.2.3.5:dev') {transitive=false}
compileOnly('com.github.GTNewHorizons:Chisel:2.10.16-GTNH:dev') {transitive=false}
compileOnly("com.github.GTNewHorizons:ProjectRed:4.7.9-GTNH:dev") {transitive = false}
- api("com.github.GTNewHorizons:TecTech:5.0.88:dev")
-
runtimeOnly('com.github.GTNewHorizons:ForestryMC:4.5.6:dev')
}
diff --git a/src/main/java/Ic2ExpReactorPlanner/ComponentFactory.java b/src/main/java/Ic2ExpReactorPlanner/ComponentFactory.java
index 6b35efd47b..678bc1b6ef 100644
--- a/src/main/java/Ic2ExpReactorPlanner/ComponentFactory.java
+++ b/src/main/java/Ic2ExpReactorPlanner/ComponentFactory.java
@@ -17,13 +17,14 @@ import Ic2ExpReactorPlanner.components.Plating;
import Ic2ExpReactorPlanner.components.ReactorItem;
import Ic2ExpReactorPlanner.components.Reflector;
import Ic2ExpReactorPlanner.components.Vent;
+
+import com.github.bartimaeusnek.bartworks.system.material.BW_NonMeta_MaterialItems;
+
import gregtech.api.enums.ItemList;
import gregtech.api.objects.GT_ItemStack;
import gregtech.api.util.GT_ModHandler;
import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.core.lib.LoadedMods;
-import gtPlusPlus.xmod.bartworks.BW_Utils;
-import gtPlusPlus.xmod.bartworks.BW_Utils.NonMeta_MaterialItem;
import gtPlusPlus.xmod.goodgenerator.GG_Utils;
import gtPlusPlus.xmod.goodgenerator.GG_Utils.GG_Fuel_Rod;
@@ -563,8 +564,7 @@ public class ComponentFactory {
new FuelRod(
51,
"fuelRodTiberium",
- new GT_ItemStack(
- BW_Utils.getBW_NonMeta_MaterialItems(NonMeta_MaterialItem.TiberiumCell_1, 1)),
+ new GT_ItemStack(BW_NonMeta_MaterialItems.TiberiumCell_1.get(1)),
50e3,
1,
"Bartworks",
@@ -577,8 +577,7 @@ public class ComponentFactory {
new FuelRod(
52,
"dualFuelRodTiberium",
- new GT_ItemStack(
- BW_Utils.getBW_NonMeta_MaterialItems(NonMeta_MaterialItem.TiberiumCell_2, 1)),
+ new GT_ItemStack(BW_NonMeta_MaterialItems.TiberiumCell_2.get(1)),
50e3,
1,
"Bartworks",
@@ -591,8 +590,7 @@ public class ComponentFactory {
new FuelRod(
53,
"quadFuelRodTiberium",
- new GT_ItemStack(
- BW_Utils.getBW_NonMeta_MaterialItems(NonMeta_MaterialItem.TiberiumCell_4, 1)),
+ new GT_ItemStack(BW_NonMeta_MaterialItems.TiberiumCell_4.get(1)),
50e3,
1,
"Bartworks",
@@ -605,7 +603,7 @@ public class ComponentFactory {
new FuelRod(
54,
"fuelRodTheCore",
- new GT_ItemStack(BW_Utils.getBW_NonMeta_MaterialItems(NonMeta_MaterialItem.TheCoreCell, 1)),
+ new GT_ItemStack(BW_NonMeta_MaterialItems.TheCoreCell.get(1)),
100e3,
1,
"Bartworks",
diff --git a/src/main/java/gtPlusPlus/xmod/bartworks/BW_Utils.java b/src/main/java/gtPlusPlus/xmod/bartworks/BW_Utils.java
index fabcc2b6c8..650ecfa55e 100644
--- a/src/main/java/gtPlusPlus/xmod/bartworks/BW_Utils.java
+++ b/src/main/java/gtPlusPlus/xmod/bartworks/BW_Utils.java
@@ -1,88 +1,27 @@
package gtPlusPlus.xmod.bartworks;
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
import java.util.ArrayList;
-import java.util.Map;
import net.minecraft.item.ItemStack;
+import com.github.bartimaeusnek.bartworks.system.material.BW_NonMeta_MaterialItems;
+import com.github.bartimaeusnek.bartworks.system.material.Werkstoff;
+import com.github.bartimaeusnek.bartworks.system.material.WerkstoffLoader;
import gregtech.api.enums.OrePrefixes;
-import gtPlusPlus.core.lib.LoadedMods;
-import gtPlusPlus.core.util.reflect.ReflectionUtils;
public class BW_Utils {
- private static final Method sName;
- private static final Method sGet;
- private static final Class<?> sClassBW_NonMeta_MaterialItems;
- private static final Class<?> Werkstoff;
- private static final Class<?> WerkstoffLoader;
- private static final Map<Short, ?> werkstoffHashMap;
- private static final Method getCorrespondingItemStackUnsafe;
-
- static {
- sName = ReflectionUtils.getMethod(Enum.class, "name");
- sClassBW_NonMeta_MaterialItems = ReflectionUtils
- .getClass("com.github.bartimaeusnek.bartworks.system.material.BW_NonMeta_MaterialItems");
- sGet = ReflectionUtils.getMethod(sClassBW_NonMeta_MaterialItems, "get", long.class, Object[].class);
- Werkstoff = ReflectionUtils.getClass("com.github.bartimaeusnek.bartworks.system.material.Werkstoff");
- WerkstoffLoader = ReflectionUtils
- .getClass("com.github.bartimaeusnek.bartworks.system.material.WerkstoffLoader");
- Field fieldWerkstoffHashMap = ReflectionUtils.getField(Werkstoff, "werkstoffHashMap");
- werkstoffHashMap = ReflectionUtils.getFieldValue(fieldWerkstoffHashMap);
- getCorrespondingItemStackUnsafe = ReflectionUtils
- .getMethod(WerkstoffLoader, "getCorrespondingItemStackUnsafe", OrePrefixes.class, Werkstoff, int.class);
- }
-
- public enum NonMeta_MaterialItem {
- Depleted_Tiberium_1,
- Depleted_Tiberium_2,
- Depleted_Tiberium_4,
- TiberiumCell_1,
- TiberiumCell_2,
- TiberiumCell_4,
- TheCoreCell,
- Depleted_TheCoreCell;
- }
-
- public static ItemStack getBW_NonMeta_MaterialItems(NonMeta_MaterialItem aItem, long aAmount) {
- if (sClassBW_NonMeta_MaterialItems != null && sClassBW_NonMeta_MaterialItems.isEnum()) {
- for (Object obj : sClassBW_NonMeta_MaterialItems.getEnumConstants()) {
- try {
- if (aItem.name().equals(ReflectionUtils.invokeNonBool(obj, sName, new Object[] {}))) {
- return ((ItemStack) ReflectionUtils
- .invokeNonBool(obj, sGet, new Object[] { aAmount, new Object[] {} })).copy();
- }
- } catch (Throwable t) {
- t.printStackTrace();
- }
- }
- }
- return null;
- }
-
public static ArrayList<ItemStack> getAll(int aStackSize) {
- ArrayList<ItemStack> aItems = new ArrayList<ItemStack>();
- aItems.add(getBW_NonMeta_MaterialItems(NonMeta_MaterialItem.TiberiumCell_1, aStackSize));
- aItems.add(getBW_NonMeta_MaterialItems(NonMeta_MaterialItem.TiberiumCell_2, aStackSize));
- aItems.add(getBW_NonMeta_MaterialItems(NonMeta_MaterialItem.TiberiumCell_4, aStackSize));
- aItems.add(getBW_NonMeta_MaterialItems(NonMeta_MaterialItem.TheCoreCell, aStackSize));
+ ArrayList<ItemStack> aItems = new ArrayList<>();
+ aItems.add(BW_NonMeta_MaterialItems.TiberiumCell_1.get(aStackSize));
+ aItems.add(BW_NonMeta_MaterialItems.TiberiumCell_2.get(aStackSize));
+ aItems.add(BW_NonMeta_MaterialItems.TiberiumCell_4.get(aStackSize));
+ aItems.add(BW_NonMeta_MaterialItems.TheCoreCell.get(aStackSize));
return aItems;
}
public static ItemStack getCorrespondingItemStack(OrePrefixes orePrefixes, short werkstoffID, int amount) {
- if (LoadedMods.BartWorks) {
- if (werkstoffHashMap != null) {
- Object werkstoff = werkstoffHashMap.get(werkstoffID);
- if (werkstoff != null) {
- return (ItemStack) ReflectionUtils.invokeNonBool(
- null,
- getCorrespondingItemStackUnsafe,
- new Object[] { orePrefixes, werkstoff, amount });
- }
- }
- }
- return null;
+ return WerkstoffLoader
+ .getCorrespondingItemStackUnsafe(orePrefixes, Werkstoff.werkstoffHashMap.get(werkstoffID), amount);
}
}