From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: AlphaKR93 Date: Sat, 25 Mar 2023 00:10:52 +0900 Subject: [PATCH] Configurable nether portal size diff --git a/src/main/java/net/minecraft/world/level/portal/PortalShape.java b/src/main/java/net/minecraft/world/level/portal/PortalShape.java index e7554ec800f321e4e34c926c53f2375a8c3aa979..677f546cee0ebda24a6e77cb5fedd41078c7fff4 100644 --- a/src/main/java/net/minecraft/world/level/portal/PortalShape.java +++ b/src/main/java/net/minecraft/world/level/portal/PortalShape.java @@ -100,7 +100,7 @@ public class PortalShape { private int calculateWidth() { int i = this.getDistanceUntilEdgeAboveFrame(this.bottomLeft, this.rightDir); - return i >= 2 && i <= 21 ? i : 0; + return i >= this.level.getMinecraftWorld().plazmaLevelConfiguration().structure.portal.netherPortal.size.width.min() && i <= this.level.getMinecraftWorld().plazmaLevelConfiguration().structure.portal.netherPortal.size.width.max() ? i : 0; // Plazma } private int getDistanceUntilEdgeAboveFrame(BlockPos pos, Direction direction) { @@ -133,7 +133,7 @@ public class PortalShape { BlockPos.MutableBlockPos blockposition_mutableblockposition = new BlockPos.MutableBlockPos(); int i = this.getDistanceUntilTop(blockposition_mutableblockposition); - return i >= 3 && i <= 21 && this.hasTopFrame(blockposition_mutableblockposition, i) ? i : 0; + return i >= this.level.getMinecraftWorld().plazmaLevelConfiguration().structure.portal.netherPortal.size.height.min() && i <= this.level.getMinecraftWorld().plazmaLevelConfiguration().structure.portal.netherPortal.size.height.max() && this.hasTopFrame(blockposition_mutableblockposition, i) ? i : 0; // Plazma } private boolean hasTopFrame(BlockPos.MutableBlockPos pos, int height) { @@ -187,7 +187,7 @@ public class PortalShape { } public boolean isValid() { - return this.bottomLeft != null && this.width >= 2 && this.width <= 21 && this.height >= 3 && this.height <= 21; + return this.bottomLeft != null && this.width >= this.level.getMinecraftWorld().plazmaLevelConfiguration().structure.portal.netherPortal.size.width.min() && this.width <= this.level.getMinecraftWorld().plazmaLevelConfiguration().structure.portal.netherPortal.size.width.max() && this.height >= this.level.getMinecraftWorld().plazmaLevelConfiguration().structure.portal.netherPortal.size.height.min() && this.height <= this.level.getMinecraftWorld().plazmaLevelConfiguration().structure.portal.netherPortal.size.height.max(); // Plazma } // CraftBukkit start - return boolean diff --git a/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java b/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java index 4ee9f3ca88e89a8dcbfe6c807036386ef679da0a..1cf5344d3ade76f6c24c7ea68d98b02e0dc62001 100644 --- a/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java +++ b/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java @@ -40,7 +40,43 @@ public class LevelConfigurations extends ConfigurationPart { public NetherPortal netherPortal; public class NetherPortal extends ConfigurationPart { + public Size size; + public class Size extends ConfigurationPart { + public Width width; + public Height height; + + public class Width extends ConfigurationPart { + + int min = 2; + int max = 21; + + public int min() { + return Math.max(this.min, 1); + } + + public int max() { + return Math.max(this.min, this.max); + } + + } + + public class Height extends ConfigurationPart { + + int min = 3; + int max = 21; + + public int min() { + return Math.max(this.min, 2); + } + + public int max() { + return Math.max(this.min, this.max); + } + + } + + } }