From 984c976b344ba6aca2abfca00723ae4a42ad8ef5 Mon Sep 17 00:00:00 2001 From: FalsePattern <30945458+FalsePattern@users.noreply.github.com> Date: Fri, 3 Mar 2023 09:38:41 +0100 Subject: [PATCH] max item id crash fix --- .../falsepattern/endlessids/asm/transformer/FmlRegistry.java | 4 ++-- .../falsepattern/endlessids/constants/ExtendedConstants.java | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/falsepattern/endlessids/asm/transformer/FmlRegistry.java b/src/main/java/com/falsepattern/endlessids/asm/transformer/FmlRegistry.java index c22815e..f92ea21 100644 --- a/src/main/java/com/falsepattern/endlessids/asm/transformer/FmlRegistry.java +++ b/src/main/java/com/falsepattern/endlessids/asm/transformer/FmlRegistry.java @@ -22,7 +22,7 @@ public class FmlRegistry implements IClassNodeTransformer { } field = AsmUtil.findField(cn, "MAX_ITEM_ID", true); if (field != null) { - field.value = ExtendedConstants.maxBlockID; + field.value = ExtendedConstants.maxItemID; } boolean found = false; for (final MethodNode method : cn.methods) { @@ -30,7 +30,7 @@ public class FmlRegistry implements IClassNodeTransformer { ExtendedConstants.maxBlockID, true)) { found = true; } - AsmUtil.transformInlinedSizeMethod(cn, method, 31999, ExtendedConstants.maxBlockID, true); + AsmUtil.transformInlinedSizeMethod(cn, method, 31999, ExtendedConstants.maxItemID, true); } if (!found) { throw new AsmTransformException("can't find 4095 constant in any method"); diff --git a/src/main/java/com/falsepattern/endlessids/constants/ExtendedConstants.java b/src/main/java/com/falsepattern/endlessids/constants/ExtendedConstants.java index f7a598a..8435e60 100644 --- a/src/main/java/com/falsepattern/endlessids/constants/ExtendedConstants.java +++ b/src/main/java/com/falsepattern/endlessids/constants/ExtendedConstants.java @@ -24,6 +24,9 @@ public class ExtendedConstants { public static final int blockIDCount = 1 << (bitsPerID - countCorrectionBits); public static final int maxBlockID = blockIDCount - 1; + public static final int itemIDCount = 1 << (bitsPerID); + public static final int maxItemID = itemIDCount - 1; + public static final int bitsPerBlock = 8 + bitsPerID + bitsPerMetadata; public static final int nibblesPerBlock = bitsPerBlock / 4; public static final int nibblesPerEBS = nibblesPerBlock * 16 * 16 * 16;