diff --git a/build.gradle b/build.gradle index 7ddcedb76..6433fdc40 100644 --- a/build.gradle +++ b/build.gradle @@ -24,11 +24,11 @@ plugins { id "de.undercouch.download" version "5.0.1" } -version '2.4.3-1.19.3' -def nmsVersion = "1.19.3" //[NMS] +version '2.4.3-1.19.4' +def nmsVersion = "1.19.4" //[NMS] def apiVersion = '1.19' def specialSourceVersion = '1.11.0' //[NMS] -def spigotJarVersion = '1.19.3-R0.1-SNAPSHOT' //[NMS] +def spigotJarVersion = '1.19.4-R0.1-SNAPSHOT' //[NMS] def name = getRootProject().getName() // Defined in settings.gradle def main = 'com.volmit.iris.Iris' @@ -39,7 +39,7 @@ registerCustomOutputTask('Psycho', 'C://Dan/MinecraftDevelopment/Server/plugins' registerCustomOutputTask('ArcaneArts', 'C://Users/arcane/Documents/development/server/plugins') registerCustomOutputTask('Coco', 'D://mcsm/plugins') registerCustomOutputTask('Strange', 'D://Servers/1.17 Test Server/plugins') -registerCustomOutputTask('Vatuu', 'D://Minecraft/Servers/1.19.3/plugins') +registerCustomOutputTask('Vatuu', 'D://Minecraft/Servers/1.19.4/plugins') // ========================== UNIX ============================== registerCustomOutputTaskUnix('CyberpwnLT', '/Users/danielmills/development/server/plugins') registerCustomOutputTaskUnix('PsychoLT', '/Users/brianfopiano/Desktop/REMOTES/RemoteMinecraft/plugins') @@ -129,8 +129,8 @@ dependencies { // Provided or Classpath compileOnly 'org.projectlombok:lombok:1.18.24' annotationProcessor 'org.projectlombok:lombok:1.18.24' - implementation 'org.spigotmc:spigot-api:1.19.3-R0.1-SNAPSHOT' - implementation 'org.bukkit:craftbukkit:1.19.3-R0.1-SNAPSHOT:remapped-mojang' //[NMS] + implementation 'org.spigotmc:spigot-api:1.19.4-R0.1-SNAPSHOT' + implementation 'org.bukkit:craftbukkit:1.19.4-R0.1-SNAPSHOT:remapped-mojang' //[NMS] // Third Party Integrations implementation 'com.github.oraxen:oraxen:1.152.5' diff --git a/src/main/java/com/volmit/iris/Iris.java b/src/main/java/com/volmit/iris/Iris.java index 61510bbc7..fcc5e052f 100644 --- a/src/main/java/com/volmit/iris/Iris.java +++ b/src/main/java/com/volmit/iris/Iris.java @@ -28,7 +28,7 @@ import com.volmit.iris.core.link.MultiverseCoreLink; import com.volmit.iris.core.link.MythicMobsLink; import com.volmit.iris.core.loader.IrisData; import com.volmit.iris.core.nms.INMS; -import com.volmit.iris.core.nms.v19_3.NMSBinding19_3; +import com.volmit.iris.core.nms.v19_4.NMSBinding19_4; import com.volmit.iris.core.pregenerator.LazyPregenerator; import com.volmit.iris.core.service.StudioSVC; import com.volmit.iris.core.tools.IrisToolbelt; @@ -570,13 +570,13 @@ public class Iris extends VolmitPlugin implements Listener { private boolean setupChecks() { boolean passed = true; Iris.info("Version Information: " + instance.getServer().getVersion() + " | " + instance.getServer().getBukkitVersion()); - if (!instance.getServer().getBukkitVersion().contains(NMSBinding19_3.NMS_VERSION)) { + if (!instance.getServer().getBukkitVersion().contains(NMSBinding19_4.NMS_VERSION)) { passed = false; Iris.warn("============================================"); Iris.warn("="); Iris.warn("="); Iris.warn("="); - Iris.warn("Iris is not compatible with this version of Minecraft.\nPlease use " + NMSBinding19_3.NMS_VERSION + " or use an older version of Iris."); + Iris.warn("Iris is not compatible with this version of Minecraft.\nPlease use " + NMSBinding19_4.NMS_VERSION + " or use an older version of Iris."); Iris.warn("="); Iris.warn("="); Iris.warn("="); diff --git a/src/main/java/com/volmit/iris/core/nms/INMS.java b/src/main/java/com/volmit/iris/core/nms/INMS.java index a573d8918..37df3ddef 100644 --- a/src/main/java/com/volmit/iris/core/nms/INMS.java +++ b/src/main/java/com/volmit/iris/core/nms/INMS.java @@ -20,7 +20,7 @@ package com.volmit.iris.core.nms; import com.volmit.iris.Iris; import com.volmit.iris.core.IrisSettings; -import com.volmit.iris.core.nms.v19_3.NMSBinding19_3; +import com.volmit.iris.core.nms.v19_4.NMSBinding19_4; import com.volmit.iris.core.nms.v1X.NMSBinding1X; import com.volmit.iris.util.collection.KMap; import org.bukkit.Bukkit; @@ -28,7 +28,7 @@ import org.bukkit.Bukkit; public class INMS { //@builder private static final KMap> bindings = new KMap>() - .qput("v1_19_R2", NMSBinding19_3.class); + .qput("v1_19_R3", NMSBinding19_4.class); //@done private static final INMSBinding binding = bind(); diff --git a/src/main/java/com/volmit/iris/core/nms/v19_3/CustomBiomeSource.java b/src/main/java/com/volmit/iris/core/nms/v19_4/CustomBiomeSource.java similarity index 88% rename from src/main/java/com/volmit/iris/core/nms/v19_3/CustomBiomeSource.java rename to src/main/java/com/volmit/iris/core/nms/v19_4/CustomBiomeSource.java index b03d915b3..50c7baf9f 100644 --- a/src/main/java/com/volmit/iris/core/nms/v19_3/CustomBiomeSource.java +++ b/src/main/java/com/volmit/iris/core/nms/v19_4/CustomBiomeSource.java @@ -1,4 +1,4 @@ -package com.volmit.iris.core.nms.v19_3; +package com.volmit.iris.core.nms.v19_4; import com.mojang.serialization.Codec; import com.volmit.iris.Iris; @@ -18,16 +18,18 @@ import net.minecraft.world.level.biome.BiomeSource; import net.minecraft.world.level.biome.Climate; import org.bukkit.Bukkit; import org.bukkit.World; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.CraftWorld; -import org.bukkit.craftbukkit.v1_19_R2.block.CraftBlock; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.CraftWorld; +import org.bukkit.craftbukkit.v1_19_R3.block.CraftBlock; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.List; +import java.util.stream.Stream; public class CustomBiomeSource extends BiomeSource { + private final long seed; private final Engine engine; private final Registry biomeCustomRegistry; @@ -37,19 +39,23 @@ public class CustomBiomeSource extends BiomeSource { private final KMap> customBiomes; public CustomBiomeSource(long seed, Engine engine, World world) { - super(getAllBiomes( - ((RegistryAccess) getFor(RegistryAccess.Frozen.class, ((CraftServer) Bukkit.getServer()).getHandle().getServer())) - .registry(Registries.BIOME).orElse(null), - ((CraftWorld) world).getHandle().registryAccess().registry(Registries.BIOME).orElse(null), - engine)); this.engine = engine; this.seed = seed; this.biomeCustomRegistry = registry().registry(Registries.BIOME).orElse(null); - this.biomeRegistry = ((CraftWorld) world).getHandle().registryAccess().registry(Registries.BIOME).orElse(null); + this.biomeRegistry = ((RegistryAccess) getFor(RegistryAccess.Frozen.class, ((CraftServer) Bukkit.getServer()).getHandle().getServer())).registry(Registries.BIOME).orElse(null); this.rng = new RNG(engine.getSeedManager().getBiome()); this.customBiomes = fillCustomBiomes(biomeCustomRegistry, engine); } + @Override + protected Stream> collectPossibleBiomes() { + return getAllBiomes( + ((RegistryAccess) getFor(RegistryAccess.Frozen.class, ((CraftServer) Bukkit.getServer()).getHandle().getServer())) + .registry(Registries.BIOME).orElse(null), + ((CraftWorld) engine.getWorld().realWorld()).getHandle().registryAccess().registry(Registries.BIOME).orElse(null), + engine).stream(); + } + private static List> getAllBiomes(Registry customRegistry, Registry registry, Engine engine) { List> b = new ArrayList<>(); diff --git a/src/main/java/com/volmit/iris/core/nms/v19_3/NMSBinding19_3.java b/src/main/java/com/volmit/iris/core/nms/v19_4/NMSBinding19_4.java similarity index 95% rename from src/main/java/com/volmit/iris/core/nms/v19_3/NMSBinding19_3.java rename to src/main/java/com/volmit/iris/core/nms/v19_4/NMSBinding19_4.java index da0a82efa..43b0f883d 100644 --- a/src/main/java/com/volmit/iris/core/nms/v19_3/NMSBinding19_3.java +++ b/src/main/java/com/volmit/iris/core/nms/v19_4/NMSBinding19_4.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package com.volmit.iris.core.nms.v19_3; +package com.volmit.iris.core.nms.v19_4; import com.volmit.iris.Iris; @@ -46,10 +46,11 @@ import net.minecraft.world.level.chunk.LevelChunk; import org.bukkit.*; import org.bukkit.block.Biome; import org.bukkit.block.data.BlockData; -import org.bukkit.craftbukkit.v1_19_R2.CraftChunk; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.CraftWorld; -import org.bukkit.craftbukkit.v1_19_R2.block.data.CraftBlockData; +import org.bukkit.craftbukkit.v1_19_R3.CraftChunk; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.CraftWorld; +import org.bukkit.craftbukkit.v1_19_R3.block.CraftBlock; +import org.bukkit.craftbukkit.v1_19_R3.block.data.CraftBlockData; import org.bukkit.entity.Entity; import org.bukkit.generator.ChunkGenerator; import org.jetbrains.annotations.NotNull; @@ -64,9 +65,9 @@ import java.util.Iterator; import java.util.List; import java.util.concurrent.atomic.AtomicInteger; -public class NMSBinding19_3 implements INMSBinding { +public class NMSBinding19_4 implements INMSBinding { - public static final String NMS_VERSION = "1.19.3"; + public static final String NMS_VERSION = "1.19.4"; private final KMap baseBiomeCache = new KMap<>(); private final BlockData AIR = Material.AIR.createBlockData(); private final AtomicCache> biomeMapCache = new AtomicCache<>(); @@ -197,7 +198,6 @@ public class NMSBinding19_3 implements INMSBinding { } private Registry getCustomBiomeRegistry() { - return registry().registry(Registries.BIOME).orElse(null); } @@ -256,7 +256,7 @@ public class NMSBinding19_3 implements INMSBinding { @Override public Object getBiomeBase(World world, Biome biome) { - return org.bukkit.craftbukkit.v1_19_R2.block.CraftBlock.biomeToBiomeBase(((CraftWorld) world).getHandle() + return CraftBlock.biomeToBiomeBase(((CraftWorld) world).getHandle() .registryAccess().registry(Registries.BIOME).orElse(null), biome); } @@ -268,13 +268,13 @@ public class NMSBinding19_3 implements INMSBinding { return v; } //noinspection unchecked - v = org.bukkit.craftbukkit.v1_19_R2.block.CraftBlock.biomeToBiomeBase((Registry) registry, biome); + v = CraftBlock.biomeToBiomeBase((Registry) registry, biome); if (v == null) { // Ok so there is this new biome name called "CUSTOM" in Paper's new releases. // But, this does NOT exist within CraftBukkit which makes it return an error. // So, we will just return the ID that the plains biome returns instead. //noinspection unchecked - return org.bukkit.craftbukkit.v1_19_R2.block.CraftBlock.biomeToBiomeBase((Registry) registry, Biome.PLAINS); + return CraftBlock.biomeToBiomeBase((Registry) registry, Biome.PLAINS); } baseBiomeCache.put(biome, v); return v; diff --git a/src/main/java/com/volmit/iris/core/service/DolphinSVC.java b/src/main/java/com/volmit/iris/core/service/DolphinSVC.java index c841ef95a..399bfea3b 100644 --- a/src/main/java/com/volmit/iris/core/service/DolphinSVC.java +++ b/src/main/java/com/volmit/iris/core/service/DolphinSVC.java @@ -29,7 +29,7 @@ import net.minecraft.core.BlockPos; import org.bukkit.Material; import org.bukkit.Sound; import org.bukkit.SoundCategory; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftDolphin; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftDolphin; import org.bukkit.entity.Dolphin; import org.bukkit.entity.EntityType; import org.bukkit.event.EventHandler; diff --git a/src/main/java/com/volmit/iris/engine/object/IrisBiomeCustom.java b/src/main/java/com/volmit/iris/engine/object/IrisBiomeCustom.java index e57f96e77..2b7052db4 100644 --- a/src/main/java/com/volmit/iris/engine/object/IrisBiomeCustom.java +++ b/src/main/java/com/volmit/iris/engine/object/IrisBiomeCustom.java @@ -120,6 +120,7 @@ public class IrisBiomeCustom { j.put("temperature", getTemperature()); j.put("downfall", getHumidity()); j.put("creature_spawn_probability", getSpawnRarity()); + j.put("has_precipitation", getDownfallType() != IrisBiomeCustomPrecipType.none); j.put("precipitation", getDownfallType().toString().toLowerCase()); j.put("category", getCategory().toString().toLowerCase()); j.put("effects", effects); diff --git a/src/main/java/com/volmit/iris/engine/object/IrisLoot.java b/src/main/java/com/volmit/iris/engine/object/IrisLoot.java index 8be78c603..3b535216b 100644 --- a/src/main/java/com/volmit/iris/engine/object/IrisLoot.java +++ b/src/main/java/com/volmit/iris/engine/object/IrisLoot.java @@ -40,8 +40,7 @@ import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.TagParser; import org.bukkit.DyeColor; import org.bukkit.Material; -import org.bukkit.NamespacedKey; -import org.bukkit.craftbukkit.v1_19_R2.inventory.CraftItemStack; +import org.bukkit.craftbukkit.v1_19_R3.inventory.CraftItemStack; import org.bukkit.inventory.ItemFlag; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.Damageable; diff --git a/src/main/java/com/volmit/iris/engine/platform/BukkitChunkGenerator.java b/src/main/java/com/volmit/iris/engine/platform/BukkitChunkGenerator.java index b2bfbb5d5..20051bae2 100644 --- a/src/main/java/com/volmit/iris/engine/platform/BukkitChunkGenerator.java +++ b/src/main/java/com/volmit/iris/engine/platform/BukkitChunkGenerator.java @@ -20,7 +20,7 @@ package com.volmit.iris.engine.platform; import com.volmit.iris.Iris; import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.core.nms.v19_3.CustomBiomeSource; +import com.volmit.iris.core.nms.v19_4.CustomBiomeSource; import com.volmit.iris.core.service.StudioSVC; import com.volmit.iris.engine.IrisEngine; import com.volmit.iris.engine.data.chunk.TerrainChunk; @@ -46,7 +46,7 @@ import net.minecraft.server.level.ServerLevel; import org.bukkit.*; import org.bukkit.block.Biome; import org.bukkit.block.data.BlockData; -import org.bukkit.craftbukkit.v1_19_R2.CraftWorld; +import org.bukkit.craftbukkit.v1_19_R3.CraftWorld; import org.bukkit.entity.Entity; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; diff --git a/src/main/java/com/volmit/iris/engine/platform/DummyBiomeProvider.java b/src/main/java/com/volmit/iris/engine/platform/DummyBiomeProvider.java index c453d5a62..b8d8b2b1e 100644 --- a/src/main/java/com/volmit/iris/engine/platform/DummyBiomeProvider.java +++ b/src/main/java/com/volmit/iris/engine/platform/DummyBiomeProvider.java @@ -9,7 +9,7 @@ import org.jetbrains.annotations.NotNull; import java.util.List; public class DummyBiomeProvider extends BiomeProvider { - private final List ALL = new KList<>(Biome.values()).qdel(Biome.CUSTOM); + private final List ALL = new KList<>(Biome.values()).qdel(Biome.CHERRY_GROVE).qdel(Biome.CUSTOM); @NotNull @Override