From 4c68d99c6f3581c827cb9b1c631f908307599c12 Mon Sep 17 00:00:00 2001 From: Julian Krings Date: Sun, 21 Jul 2024 15:50:45 +0200 Subject: [PATCH] fix returning black color in biomes without a color override --- .../java/com/volmit/iris/core/link/OraxenDataProvider.java | 1 + .../java/com/volmit/iris/core/nms/v1_19_R2/NMSBinding.java | 6 ++++++ .../java/com/volmit/iris/core/nms/v1_19_R3/NMSBinding.java | 6 ++++++ .../java/com/volmit/iris/core/nms/v1_20_R1/NMSBinding.java | 6 ++++++ .../java/com/volmit/iris/core/nms/v1_20_R2/NMSBinding.java | 6 ++++++ .../java/com/volmit/iris/core/nms/v1_20_R3/NMSBinding.java | 6 ++++++ .../java/com/volmit/iris/core/nms/v1_20_R4/NMSBinding.java | 6 ++++++ 7 files changed, 37 insertions(+) diff --git a/core/src/main/java/com/volmit/iris/core/link/OraxenDataProvider.java b/core/src/main/java/com/volmit/iris/core/link/OraxenDataProvider.java index a685edc00..233701866 100644 --- a/core/src/main/java/com/volmit/iris/core/link/OraxenDataProvider.java +++ b/core/src/main/java/com/volmit/iris/core/link/OraxenDataProvider.java @@ -147,6 +147,7 @@ public class OraxenDataProvider extends ExternalDataProvider { if (type != null) { var biomeColor = INMS.get().getBiomeColor(block.getLocation(), type); + if (biomeColor == null) return; var potionColor = Color.fromARGB(biomeColor.getAlpha(), biomeColor.getRed(), biomeColor.getGreen(), biomeColor.getBlue()); if (itemStack.getItemMeta() instanceof PotionMeta meta) { meta.setColor(potionColor); diff --git a/nms/v1_19_R2/src/main/java/com/volmit/iris/core/nms/v1_19_R2/NMSBinding.java b/nms/v1_19_R2/src/main/java/com/volmit/iris/core/nms/v1_19_R2/NMSBinding.java index 22d5c134c..f5f778002 100644 --- a/nms/v1_19_R2/src/main/java/com/volmit/iris/core/nms/v1_19_R2/NMSBinding.java +++ b/nms/v1_19_R2/src/main/java/com/volmit/iris/core/nms/v1_19_R2/NMSBinding.java @@ -537,6 +537,12 @@ public class NMSBinding implements INMSBinding { case FOLIAGE -> biome.getFoliageColor(); case GRASS -> biome.getGrassColor(location.getBlockX(), location.getBlockZ()); }; + if (rgba == 0) { + if (BiomeColor.FOLIAGE == type && biome.getSpecialEffects().getFoliageColorOverride().isEmpty()) + return null; + if (BiomeColor.GRASS == type && biome.getSpecialEffects().getGrassColorOverride().isEmpty()) + return null; + } return new Color(rgba, true); } diff --git a/nms/v1_19_R3/src/main/java/com/volmit/iris/core/nms/v1_19_R3/NMSBinding.java b/nms/v1_19_R3/src/main/java/com/volmit/iris/core/nms/v1_19_R3/NMSBinding.java index 1ca069069..0cbf158bd 100644 --- a/nms/v1_19_R3/src/main/java/com/volmit/iris/core/nms/v1_19_R3/NMSBinding.java +++ b/nms/v1_19_R3/src/main/java/com/volmit/iris/core/nms/v1_19_R3/NMSBinding.java @@ -541,6 +541,12 @@ public class NMSBinding implements INMSBinding { case FOLIAGE -> biome.getFoliageColor(); case GRASS -> biome.getGrassColor(location.getBlockX(), location.getBlockZ()); }; + if (rgba == 0) { + if (BiomeColor.FOLIAGE == type && biome.getSpecialEffects().getFoliageColorOverride().isEmpty()) + return null; + if (BiomeColor.GRASS == type && biome.getSpecialEffects().getGrassColorOverride().isEmpty()) + return null; + } return new Color(rgba, true); } diff --git a/nms/v1_20_R1/src/main/java/com/volmit/iris/core/nms/v1_20_R1/NMSBinding.java b/nms/v1_20_R1/src/main/java/com/volmit/iris/core/nms/v1_20_R1/NMSBinding.java index 5f858b0e8..cb8323009 100644 --- a/nms/v1_20_R1/src/main/java/com/volmit/iris/core/nms/v1_20_R1/NMSBinding.java +++ b/nms/v1_20_R1/src/main/java/com/volmit/iris/core/nms/v1_20_R1/NMSBinding.java @@ -540,6 +540,12 @@ public class NMSBinding implements INMSBinding { case FOLIAGE -> biome.getFoliageColor(); case GRASS -> biome.getGrassColor(location.getBlockX(), location.getBlockZ()); }; + if (rgba == 0) { + if (BiomeColor.FOLIAGE == type && biome.getSpecialEffects().getFoliageColorOverride().isEmpty()) + return null; + if (BiomeColor.GRASS == type && biome.getSpecialEffects().getGrassColorOverride().isEmpty()) + return null; + } return new Color(rgba, true); } diff --git a/nms/v1_20_R2/src/main/java/com/volmit/iris/core/nms/v1_20_R2/NMSBinding.java b/nms/v1_20_R2/src/main/java/com/volmit/iris/core/nms/v1_20_R2/NMSBinding.java index 05620adfb..9d073f4a7 100644 --- a/nms/v1_20_R2/src/main/java/com/volmit/iris/core/nms/v1_20_R2/NMSBinding.java +++ b/nms/v1_20_R2/src/main/java/com/volmit/iris/core/nms/v1_20_R2/NMSBinding.java @@ -538,6 +538,12 @@ public class NMSBinding implements INMSBinding { case FOLIAGE -> biome.getFoliageColor(); case GRASS -> biome.getGrassColor(location.getBlockX(), location.getBlockZ()); }; + if (rgba == 0) { + if (BiomeColor.FOLIAGE == type && biome.getSpecialEffects().getFoliageColorOverride().isEmpty()) + return null; + if (BiomeColor.GRASS == type && biome.getSpecialEffects().getGrassColorOverride().isEmpty()) + return null; + } return new Color(rgba, true); } diff --git a/nms/v1_20_R3/src/main/java/com/volmit/iris/core/nms/v1_20_R3/NMSBinding.java b/nms/v1_20_R3/src/main/java/com/volmit/iris/core/nms/v1_20_R3/NMSBinding.java index eb1739ab7..7334bb040 100644 --- a/nms/v1_20_R3/src/main/java/com/volmit/iris/core/nms/v1_20_R3/NMSBinding.java +++ b/nms/v1_20_R3/src/main/java/com/volmit/iris/core/nms/v1_20_R3/NMSBinding.java @@ -539,6 +539,12 @@ public class NMSBinding implements INMSBinding { case FOLIAGE -> biome.getFoliageColor(); case GRASS -> biome.getGrassColor(location.getBlockX(), location.getBlockZ()); }; + if (rgba == 0) { + if (BiomeColor.FOLIAGE == type && biome.getSpecialEffects().getFoliageColorOverride().isEmpty()) + return null; + if (BiomeColor.GRASS == type && biome.getSpecialEffects().getGrassColorOverride().isEmpty()) + return null; + } return new Color(rgba, true); } diff --git a/nms/v1_20_R4/src/main/java/com/volmit/iris/core/nms/v1_20_R4/NMSBinding.java b/nms/v1_20_R4/src/main/java/com/volmit/iris/core/nms/v1_20_R4/NMSBinding.java index 3c85c8b83..744230307 100644 --- a/nms/v1_20_R4/src/main/java/com/volmit/iris/core/nms/v1_20_R4/NMSBinding.java +++ b/nms/v1_20_R4/src/main/java/com/volmit/iris/core/nms/v1_20_R4/NMSBinding.java @@ -542,6 +542,12 @@ public class NMSBinding implements INMSBinding { case FOLIAGE -> biome.getFoliageColor(); case GRASS -> biome.getGrassColor(location.getBlockX(), location.getBlockZ()); }; + if (rgba == 0) { + if (BiomeColor.FOLIAGE == type && biome.getSpecialEffects().getFoliageColorOverride().isEmpty()) + return null; + if (BiomeColor.GRASS == type && biome.getSpecialEffects().getGrassColorOverride().isEmpty()) + return null; + } return new Color(rgba, true); }