aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gtPlusPlus/xmod/gregtech
diff options
context:
space:
mode:
authorRaven Szewczyk <git@kubasz.xyz>2023-01-24 16:06:42 +0000
committerGitHub <noreply@github.com>2023-01-24 17:06:42 +0100
commit0f46044ba9f95cb732bf2a82e35430e01c72bc1b (patch)
treee997f3dc0a6333547b24f856a2dd50a3d0c5aa92 /src/main/java/gtPlusPlus/xmod/gregtech
parent7366deae4a0e4404799ab17dfde0a7ba7d4cb54f (diff)
downloadGT5-Unofficial-0f46044ba9f95cb732bf2a82e35430e01c72bc1b.tar.gz
GT5-Unofficial-0f46044ba9f95cb732bf2a82e35430e01c72bc1b.tar.bz2
GT5-Unofficial-0f46044ba9f95cb732bf2a82e35430e01c72bc1b.zip
Make reflection Java 12+ compatible (#517)
Diffstat (limited to 'src/main/java/gtPlusPlus/xmod/gregtech')
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/creative/GregtechMetaCreativeEnergyBuffer.java17
1 files changed, 8 insertions, 9 deletions
diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/creative/GregtechMetaCreativeEnergyBuffer.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/creative/GregtechMetaCreativeEnergyBuffer.java
index 9bfaa40972..d99ff30b20 100644
--- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/creative/GregtechMetaCreativeEnergyBuffer.java
+++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/creative/GregtechMetaCreativeEnergyBuffer.java
@@ -2,6 +2,7 @@ package gtPlusPlus.xmod.gregtech.common.tileentities.generators.creative;
import static gregtech.api.enums.GT_Values.V;
+import com.gtnewhorizon.gtnhlib.reflect.Fields;
import gregtech.api.enums.GT_Values;
import gregtech.api.enums.Textures;
import gregtech.api.interfaces.ITexture;
@@ -13,13 +14,10 @@ import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.core.util.math.MathUtils;
import gtPlusPlus.core.util.minecraft.PlayerUtils;
-import gtPlusPlus.core.util.reflect.ReflectionUtils;
import gtPlusPlus.core.util.sys.KeyboardUtils;
import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock;
import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock.CustomIcon;
import gtPlusPlus.xmod.gregtech.common.tileentities.storage.GregtechMetaEnergyBuffer;
-import java.lang.reflect.Field;
-import java.lang.reflect.Modifier;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
@@ -208,6 +206,8 @@ public class GregtechMetaCreativeEnergyBuffer extends GregtechMetaEnergyBuffer {
super.loadNBTData(aNBT);
}
+ private static Fields.ClassFields<GregtechMetaCreativeEnergyBuffer>.Field<ITexture[][][]> mTexturesAccessor;
+
@Override
public void onScrewdriverRightClick(byte aSide, EntityPlayer aPlayer, float aX, float aY, float aZ) {
if (KeyboardUtils.isShiftKeyDown()) {
@@ -220,18 +220,17 @@ public class GregtechMetaCreativeEnergyBuffer extends GregtechMetaEnergyBuffer {
}
this.markDirty();
try {
- Field field = ReflectionUtils.getField(this.getClass(), "mTextures");
- field.setAccessible(true);
- Field modifiersField = Field.class.getDeclaredField("modifiers");
- modifiersField.setAccessible(true);
- modifiersField.setInt(field, field.getModifiers() & ~Modifier.FINAL);
+ if (mTexturesAccessor == null) {
+ mTexturesAccessor = Fields.ofClass(GregtechMetaCreativeEnergyBuffer.class)
+ .getField(Fields.LookupType.PUBLIC, "mTextures", ITexture[][][].class);
+ }
ITexture[][][] V = getTextureSet(null);
if (V != null) {
Logger.REFLECTION("Got Valid Textures.");
if (this.getBaseMetaTileEntity().isClientSide()) {
Logger.REFLECTION("Clientside Call.");
Logger.REFLECTION("Refreshing Textures on buffer.");
- field.set(this, V);
+ mTexturesAccessor.setValue(this, V);
Logger.REFLECTION("Refreshed Textures on buffer.");
} else {
Logger.REFLECTION("Serverside Call.");