New materials don't even have an ID anymore

Handle that case as well.

Honestly the best solution would be to just get rid of getBlockIDAt as it's only used in two places where it could be trivially replaced
This commit is contained in:
BrainStone 2021-07-18 03:27:59 +02:00
parent f6c45adc5f
commit b7c88f9911
No known key found for this signature in database
GPG Key ID: 66CCC234C2CEB306
1 changed files with 7 additions and 2 deletions

View File

@ -183,12 +183,17 @@ public class DynmapPlugin extends JavaPlugin implements DynmapAPI {
} catch (NoSuchMethodError e) {
// We failed once, no need to retry
tryNativeId.set(false);
} catch (java.lang.IllegalArgumentException e) {
// Ignore this entirely, as modern materials throw
// java.lang.IllegalArgumentException: Cannot get ID of Modern Material
}
}
// We're living in a world where numerical IDs have been phased out completely.
// Let's return *some* number, because we need one
return material.ordinal();
// Let's return *some* number, because we need one.
// Also in that case we are adding a constant to ensure we're not conflicting with the
// actual IDs
return material.ordinal() + (1 << 20);
}
private static final int getBlockIdFromBlock(Block block) {
return getBlockIdFromMaterial(block.getType());