Compare commits

...

19 Commits

Author SHA1 Message Date
Brian Fopiano
7ddc621009 Merge pull request #769 from VolmitSoftware/Development
Updated PAPI Support
Temp Disabled Oraxen Support
Temp Disabled Ascync Tp
updated NMS (Colors and binds etc...)
Fixed my registry oopsie (thx Vatuu)
removed Debug Prints
/iris Height works now
Colors Fixed
2022-03-27 13:51:27 -07:00
cyberpwn
aa4e574eef Fix 1.18.2 Biomes 2022-03-27 14:42:13 -04:00
Brian Fopiano
15bc964fcc Ascync tp is disabled for now
Ascync TP is done in 1.18 already, and this is just a dirty fix to stop crashing/ lol
2022-03-18 16:05:38 -07:00
Brian Fopiano
99713ac964 Need to be version specific now 2022-03-18 15:18:35 -07:00
Brian Fopiano
f9a6bd1343 Readding Oraxen Link for Texting 2022-03-17 14:52:40 -07:00
Brian Fopiano
f4bee872e1 Merge pull request #768 from Vatuu/Development
Fixes
2022-03-17 14:49:13 -07:00
Vatuu
be99b286b3 Fixed Brian's mistake. 2022-03-17 22:43:59 +01:00
Brian Fopiano
c7d5212f82 Oraxen link, and NMS WORKING, but not working
Jar loads, Color Borked, ill look at it tomorrow
2022-03-17 00:46:42 -07:00
Brian Fopiano
75726b3d34 Updating PAPI 2022-03-17 00:37:03 -07:00
Brian Fopiano
8d7e76ed81 Attempting to update NMS
(Part 1 of ...)
2022-03-17 00:36:49 -07:00
Brian Fopiano
01b08b2297 Revert "Partial For Vatuu to look at NMS"
This reverts commit cf51581ac1.
2022-03-16 19:38:17 -07:00
Brian Fopiano
cf51581ac1 Partial For Vatuu to look at NMS 2022-03-16 19:31:43 -07:00
Brian Fopiano
d99fd56995 Debug/height fixed/removed
Small fixes.
2022-03-15 22:18:22 -07:00
Vatuu
d149051c27 Fixed wrong description for /iris height. 2022-03-14 18:22:04 +01:00
Vatuu
660aaa87ca Removed debug printout. 2022-03-14 18:20:04 +01:00
DanMB
4010f03b05 ff 2022-03-14 09:52:23 -07:00
DanMB
e2d2dcf337 f 2022-03-14 09:47:57 -07:00
DanMB
b11aaf3f0c Desperate times 2022-03-14 09:27:50 -07:00
DanMB
30ae065cb4 Drop 255 hardcode checks 2022-03-14 09:26:31 -07:00
18 changed files with 82 additions and 65 deletions

View File

@@ -25,10 +25,10 @@ plugins {
}
group 'com.volmit.iris'
version '2.0.2-1.18.X'
def nmsVersion = "1.18.1"
version '2.0.3-1.18.2' // Needs to be version specific
def nmsVersion = "1.18.2"
def apiVersion = '1.18'
def spigotJarVersion = '1.18.1-R0.1-SNAPSHOT'
def spigotJarVersion = '1.18.2-R0.1-SNAPSHOT'
def name = getRootProject().getName() // Defined in settings.gradle
def main = 'com.volmit.iris.Iris'
@@ -39,7 +39,7 @@ registerCustomOutputTask('Psycho', 'D://Dan/MinecraftDevelopment/server/plugins'
registerCustomOutputTask('ArcaneArts', 'C://Users/arcane/Documents/development/server/plugins')
registerCustomOutputTask('Coco', 'D://Documents/MC/plugins')
registerCustomOutputTask('Strange', 'D://Servers/1.17 Test Server/plugins')
registerCustomOutputTask('Vatuu', 'D://Minecraft/Servers/1.18.1/plugins')
registerCustomOutputTask('Vatuu', 'D://Minecraft/Servers/1.18.2/plugins')
// ========================== UNIX ==============================
registerCustomOutputTaskUnix('CyberpwnLT', '/Users/danielmills/Documents/development/server/plugins')
registerCustomOutputTaskUnix('PsychoLT', '/Users/brianfopiano/Desktop/REMOTES/RemoteMinecraft/plugins')
@@ -123,10 +123,10 @@ dependencies {
// Provided or Classpath
compileOnly 'org.projectlombok:lombok:1.18.22'
annotationProcessor 'org.projectlombok:lombok:1.18.22'
implementation 'org.spigotmc:spigot-api:1.18.1-R0.1-SNAPSHOT'
implementation 'me.clip:placeholderapi:2.10.10'
implementation 'org.spigotmc:spigot-api:1.18.2-R0.1-SNAPSHOT'
implementation 'me.clip:placeholderapi:2.11.1'
implementation 'io.th0rgal:oraxen:1.94.0'
implementation 'org.bukkit:craftbukkit:1.18.1-R0.1-SNAPSHOT:remapped-mojang'
implementation 'org.bukkit:craftbukkit:1.18.2-R0.1-SNAPSHOT:remapped-mojang'
// Shaded
implementation 'com.dfsek:Paralithic:0.4.0'

View File

@@ -101,7 +101,7 @@ public class CommandIris implements DecreeExecutor {
sender().sendMessage(C.GREEN + "Iris v" + Iris.instance.getDescription().getVersion() + " by Volmit Software");
}
@Decree(description = "Print version information", origin = DecreeOrigin.PLAYER)
@Decree(description = "Print world height information", origin = DecreeOrigin.PLAYER)
public void height() {
sender().sendMessage(C.GREEN + "" + sender().player().getWorld().getMinHeight() + " to " + sender().player().getWorld().getMaxHeight());
sender().sendMessage(C.GREEN + "Total Height: " + (sender().player().getWorld().getMaxHeight() - sender().player().getWorld().getMinHeight()));

View File

@@ -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.v18_1.NMSBinding18_1;
import com.volmit.iris.core.nms.v18_2.NMSBinding18_2;
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<String, Class<? extends INMSBinding>> bindings = new KMap<String, Class<? extends INMSBinding>>()
.qput("v1_18_R1", NMSBinding18_1.class);
.qput("v1_18_R2", NMSBinding18_2.class);
//@done
private static final INMSBinding binding = bind();

View File

@@ -54,6 +54,7 @@ public interface INMSBinding {
String getTrueBiomeBaseKey(Location location);
Object getCustomBiomeBaseFor(String mckey);
Object getCustomBiomeBaseHolderFor(String mckey);
String getKeyForBiomeBase(Object biomeBase);

View File

@@ -24,6 +24,7 @@ import java.util.ArrayList;
import java.util.List;
public enum NMSVersion {
R1_18_2,
R1_18,
R1_17,
R1_16,
@@ -98,6 +99,9 @@ public enum NMSVersion {
if(tryVersion("1_18_R1")) {
return R1_18;
}
if(tryVersion("1_18_R2")) {
return R1_18_2;
}
return null;
}

View File

@@ -16,7 +16,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package com.volmit.iris.core.nms.v18_1;
package com.volmit.iris.core.nms.v18_2;
import com.volmit.iris.Iris;
@@ -36,10 +36,7 @@ import com.volmit.iris.util.nbt.mca.palette.MCAPalettedContainer;
import com.volmit.iris.util.nbt.mca.palette.MCAWrappedPalettedContainer;
import com.volmit.iris.util.nbt.tag.CompoundTag;
import it.unimi.dsi.fastutil.objects.Object2IntMap;
import net.minecraft.core.BlockPos;
import net.minecraft.core.IdMap;
import net.minecraft.core.Registry;
import net.minecraft.core.RegistryAccess;
import net.minecraft.core.*;
import net.minecraft.nbt.NbtIo;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.level.block.Block;
@@ -52,9 +49,10 @@ import org.bukkit.Material;
import org.bukkit.World;
import org.bukkit.block.Biome;
import org.bukkit.block.data.BlockData;
import org.bukkit.craftbukkit.v1_18_R1.CraftServer;
import org.bukkit.craftbukkit.v1_18_R1.CraftWorld;
import org.bukkit.craftbukkit.v1_18_R1.block.data.CraftBlockData;
import org.bukkit.craftbukkit.v1_18_R2.CraftServer;
import org.bukkit.craftbukkit.v1_18_R2.CraftWorld;
import org.bukkit.craftbukkit.v1_18_R2.block.data.CraftBlockData;
import org.bukkit.entity.Entity;
import org.bukkit.generator.ChunkGenerator;
import org.jetbrains.annotations.NotNull;
@@ -70,7 +68,7 @@ import java.util.Iterator;
import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;
public class NMSBinding18_1 implements INMSBinding {
public class NMSBinding18_2 implements INMSBinding {
private final KMap<Biome, Object> baseBiomeCache = new KMap<>();
private final BlockData AIR = Material.AIR.createBlockData();
@@ -148,7 +146,7 @@ public class NMSBinding18_1 implements INMSBinding {
}
private RegistryAccess registry() {
return registryAccess.aquire(() -> (RegistryAccess) getFor(RegistryAccess.class, ((CraftServer) Bukkit.getServer()).getHandle().getServer()));
return registryAccess.aquire(() -> (RegistryAccess) getFor(RegistryAccess.Frozen.class, ((CraftServer) Bukkit.getServer()).getHandle().getServer()));
}
private Registry<net.minecraft.world.level.biome.Biome> getCustomBiomeRegistry() {
@@ -210,6 +208,10 @@ public class NMSBinding18_1 implements INMSBinding {
public Object getCustomBiomeBaseFor(String mckey) {
return getCustomBiomeRegistry().get(new ResourceLocation(mckey));
}
@Override
public Object getCustomBiomeBaseHolderFor(String mckey) {
return getCustomBiomeRegistry().getHolder(getTrueBiomeBaseId(getCustomBiomeRegistry().get(new ResourceLocation(mckey)))).get();
}
@Override
public String getKeyForBiomeBase(Object biomeBase) {
@@ -229,13 +231,13 @@ public class NMSBinding18_1 implements INMSBinding {
return v;
}
//noinspection unchecked
v = org.bukkit.craftbukkit.v1_18_R1.block.CraftBlock.biomeToBiomeBase((Registry<net.minecraft.world.level.biome.Biome>) registry, biome);
v = org.bukkit.craftbukkit.v1_18_R2.block.CraftBlock.biomeToBiomeBase((Registry<net.minecraft.world.level.biome.Biome>) 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_18_R1.block.CraftBlock.biomeToBiomeBase((Registry<net.minecraft.world.level.biome.Biome>) registry, Biome.PLAINS);
return org.bukkit.craftbukkit.v1_18_R2.block.CraftBlock.biomeToBiomeBase((Registry<net.minecraft.world.level.biome.Biome>) registry, Biome.PLAINS);
}
baseBiomeCache.put(biome, v);
return v;
@@ -334,7 +336,7 @@ public class NMSBinding18_1 implements INMSBinding {
public void forceBiomeInto(int x, int y, int z, Object somethingVeryDirty, ChunkGenerator.BiomeGrid chunk) {
try {
ChunkAccess s = (ChunkAccess) getFieldForBiomeStorage(chunk).get(chunk);
s.setBiome(x, y, z, (net.minecraft.world.level.biome.Biome) somethingVeryDirty);
s.setBiome(x, y, z, (Holder<net.minecraft.world.level.biome.Biome>) somethingVeryDirty); // probably not safe? it said it wanted a holder, so i made it a holder...
} catch(IllegalAccessException e) {
Iris.reportError(e);
e.printStackTrace();

View File

@@ -112,6 +112,11 @@ public class NMSBinding1X implements INMSBinding {
return null;
}
@Override
public Object getCustomBiomeBaseHolderFor(String mckey) {
return null;
}
@Override
public String getKeyForBiomeBase(Object biomeBase) {
return null;

View File

@@ -57,7 +57,7 @@ public class IrisBiomeActuator extends EngineAssignedActuator<Biome> {
return true;
}
} catch(Throwable e) {
e.printStackTrace();
}
return false;
@@ -79,7 +79,7 @@ public class IrisBiomeActuator extends EngineAssignedActuator<Biome> {
if(ib.isCustom()) {
try {
IrisBiomeCustom custom = ib.getCustomBiome(rng, x, 0, z);
Object biomeBase = INMS.get().getCustomBiomeBaseFor(getDimension().getLoadKey() + ":" + custom.getId());
Object biomeBase = INMS.get().getCustomBiomeBaseHolderFor(getDimension().getLoadKey() + ":" + custom.getId());
//
if(biomeBase == null || !injectBiome(h, x, 0, z, biomeBase)) {
throw new RuntimeException("Cant inject biome!");

View File

@@ -18,6 +18,7 @@
package com.volmit.iris.engine.data.chunk;
import com.volmit.iris.Iris;
import com.volmit.iris.core.nms.BiomeBaseInjector;
import com.volmit.iris.core.nms.INMS;
import com.volmit.iris.util.data.IrisBiomeStorage;

View File

@@ -69,24 +69,31 @@ public abstract class EngineAssignedWorldManager extends EngineAssignedComponent
protected AtomicBoolean ignoreTP = new AtomicBoolean(false);
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void on(PlayerTeleportEvent e) {
if(ignoreTP.get()) {
return;
}
if(!PaperLib.isPaper() || e.getTo() == null) {
return;
}
try {
if(e.getTo().getWorld().equals(getTarget().getWorld().realWorld())) {
getEngine().getWorldManager().teleportAsync(e);
}
} catch(Throwable ex) {
}
}
// @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
// public void on(PlayerTeleportEvent e) {
// if(ignoreTP.get()) {
// System.out.println("IgTP1");
// return;
// }
//
// if(!PaperLib.isPaper() || e.getTo() == null) {
// System.out.println("IgTP2");
//
//// return;
// }
//
//// try {
//// System.out.println("IgTP3");
////
//// if(e.getTo().getWorld().equals(getTarget().getWorld().realWorld())) {
//// System.out.println("IgTP4");
////
//// getEngine().getWorldManager().teleportAsync(e);
//// }
//// } catch(Throwable ex) {
////
//// }
// }
@EventHandler
public void on(WorldSaveEvent e) {

View File

@@ -29,6 +29,7 @@ import com.volmit.iris.engine.object.IrisDecorator;
import com.volmit.iris.engine.object.IrisPosition;
import com.volmit.iris.util.collection.KList;
import com.volmit.iris.util.collection.KMap;
import com.volmit.iris.util.context.IrisContext;
import com.volmit.iris.util.data.B;
import com.volmit.iris.util.function.Consumer4;
import com.volmit.iris.util.hunk.Hunk;
@@ -148,7 +149,7 @@ public class IrisCarveModifier extends EngineAssignedModifier<BlockData> {
int buf = v.get(0) - 1;
for(Integer i : v) {
if(i < 0 || i > 255) {
if(i < 0 || i > getEngine().getHeight()) {
continue;
}
@@ -275,7 +276,7 @@ public class IrisCarveModifier extends EngineAssignedModifier<BlockData> {
}
public boolean isValid() {
return floor < ceiling && ceiling - floor >= 1 && floor >= 0 && ceiling <= 255 && airThickness() > 0;
return floor < ceiling && ceiling - floor >= 1 && floor >= 0 && ceiling <= IrisContext.get().getEngine().getHeight() && airThickness() > 0;
}
public String toString() {

View File

@@ -101,7 +101,7 @@ public class IrisDepositModifier extends EngineAssignedModifier<BlockData> {
int i = Math.max(0, k.getMinHeight());
// TODO: WARNING HEIGHT
int a = Math.min(height, Math.min(256, k.getMaxHeight()));
int a = Math.min(height, Math.min(getEngine().getHeight(), k.getMaxHeight()));
if(i >= a) {
return;
@@ -118,7 +118,7 @@ public class IrisDepositModifier extends EngineAssignedModifier<BlockData> {
int ny = j.getBlockY() + h;
int nz = j.getBlockZ() + z;
if(ny > height || nx > 15 || nx < 0 || ny > 255 || ny < 0 || nz < 0 || nz > 15) {
if(ny > height || nx > 15 || nx < 0 || ny > getEngine().getHeight() || ny < 0 || nz < 0 || nz > 15) {
continue;
}

View File

@@ -293,7 +293,7 @@ public class IrisBiome extends IrisRegistrant implements IRare {
height += i.getHeight(xg, x, z, seed);
}
return Math.max(0, Math.min(height, 255));
return Math.max(0, Math.min(height, xg.getHeight()));
}
public CNG getBiomeGenerator(RNG random) {
@@ -448,7 +448,7 @@ public class IrisBiome extends IrisRegistrant implements IRare {
}
for(int i = 0; i < maxDepth; i++) {
int offset = (255 - height) - i;
int offset = (512 - height) - i;
int index = offset % data.size();
real.add(data.get(Math.max(index, 0)));
}

View File

@@ -157,7 +157,7 @@ public class IrisDimension extends IrisRegistrant {
private KList<IrisJigsawStructurePlacement> jigsawStructures = new KList<>();
@Required
@MinNumber(0)
@MaxNumber(255)
@MaxNumber(1024)
@Desc("The fluid height for this dimension")
private int fluidHeight = 63;
@Desc("Define the min and max Y bounds of this dimension. Please keep in mind that Iris internally generates from 0 to (max - min). \n\nFor example at -64 to 320, Iris is internally generating to 0 to 384, then on outputting chunks, it shifts it down by the min height (64 blocks). The default is -64 to 320. \n\nThe fluid height is placed at (fluid height + min height). So a fluid height of 63 would actually show up in the world at 1.")

View File

@@ -35,19 +35,16 @@ import com.volmit.iris.util.format.C;
import com.volmit.iris.util.format.Form;
import com.volmit.iris.util.json.JSONObject;
import com.volmit.iris.util.math.RNG;
import com.volmit.iris.util.nbt.io.NBTUtil;
import com.volmit.iris.util.noise.CNG;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.nbt.NbtUtils;
import net.minecraft.nbt.TagParser;
import net.minecraft.server.commands.GiveCommand;
import org.bukkit.DyeColor;
import org.bukkit.Material;
import org.bukkit.craftbukkit.v1_18_R1.inventory.CraftItemStack;
import org.bukkit.craftbukkit.v1_18_R2.inventory.CraftItemStack;
import org.bukkit.inventory.ItemFlag;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.Damageable;
@@ -277,7 +274,6 @@ public class IrisLoot {
CompoundTag tag = TagParser.parseTag(new JSONObject(customNbt).toString());
tag.merge(s.getOrCreateTag());
s.setTag(tag);
System.out.println(customNbt);
return CraftItemStack.asBukkitCopy(s);
}
}

View File

@@ -35,14 +35,14 @@ import lombok.experimental.Accessors;
@Data
public class IrisObjectLimit {
@MinNumber(0)
@MaxNumber(255)
@MaxNumber(1024)
@Desc("The minimum height for placement (bottom of object)")
private int minimumHeight = 0;
@MinNumber(0)
@MaxNumber(255)
@MaxNumber(1024)
@Desc("The maximum height for placement (top of object)")
private int maximumHeight = 255;
private int maximumHeight = 512;
public boolean canPlace(int h, int l) {
return h <= maximumHeight && l >= minimumHeight;

View File

@@ -35,12 +35,12 @@ import lombok.experimental.Accessors;
@Data
public class IrisSlopeClip {
@MinNumber(0)
@MaxNumber(255)
@MaxNumber(1024)
@Desc("The minimum slope for placement")
private double minimumSlope = 0;
@MinNumber(0)
@MaxNumber(255)
@MaxNumber(1024)
@Desc("The maximum slope for placement")
private double maximumSlope = 10;

View File

@@ -21,18 +21,18 @@ package com.volmit.iris.util.data;
import java.util.Arrays;
public class HeightMap {
private final byte[] height;
private final int[] height;
public HeightMap() {
height = new byte[256];
Arrays.fill(height, Byte.MIN_VALUE);
height = new int[256];
Arrays.fill(height, 0);
}
public void setHeight(int x, int z, int h) {
height[x * 16 + z] = (byte) (h + Byte.MIN_VALUE);
height[x * 16 + z] = (h);
}
public int getHeight(int x, int z) {
return height[x * 16 + z] - Byte.MIN_VALUE;
return height[x * 16 + z];
}
}