From 600995a22027649c750e3eada57bf4af6d521306 Mon Sep 17 00:00:00 2001 From: Daniel Mills Date: Sat, 7 Aug 2021 08:15:03 -0400 Subject: [PATCH] Matter utilities --- .../volmit/iris/util/matter/IrisMatter.java | 2 +- .../com/volmit/iris/util/matter/Matter.java | 20 +++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/volmit/iris/util/matter/IrisMatter.java b/src/main/java/com/volmit/iris/util/matter/IrisMatter.java index ee4e8b678..48412ace9 100644 --- a/src/main/java/com/volmit/iris/util/matter/IrisMatter.java +++ b/src/main/java/com/volmit/iris/util/matter/IrisMatter.java @@ -23,7 +23,7 @@ import com.volmit.iris.util.collection.KMap; import lombok.Getter; public class IrisMatter implements Matter { - private static final KMap, MatterSlice> slicers = buildSlicers(); + protected static final KMap, MatterSlice> slicers = buildSlicers(); @Getter private final MatterHeader header; diff --git a/src/main/java/com/volmit/iris/util/matter/Matter.java b/src/main/java/com/volmit/iris/util/matter/Matter.java index 63d4cd66b..5b7001eed 100644 --- a/src/main/java/com/volmit/iris/util/matter/Matter.java +++ b/src/main/java/com/volmit/iris/util/matter/Matter.java @@ -18,11 +18,16 @@ package com.volmit.iris.util.matter; +import com.volmit.iris.Iris; import com.volmit.iris.engine.object.basic.IrisPosition; import com.volmit.iris.util.collection.KSet; import com.volmit.iris.util.data.Varint; +import com.volmit.iris.util.format.C; import com.volmit.iris.util.hunk.Hunk; import com.volmit.iris.util.math.BlockPosition; +import org.bukkit.World; +import org.bukkit.block.data.BlockData; +import org.bukkit.entity.Entity; import javax.xml.crypto.Data; import java.io.*; @@ -167,11 +172,26 @@ public interface Matter { return (MatterSlice) getSliceMap().put(c, slice); } + default Class getClass(Object w) { + Class c = w.getClass(); + + if (w instanceof World) { + c = World.class; + } else if (w instanceof BlockData) { + c = BlockData.class; + } else if (w instanceof Entity) { + c = Entity.class; + } + + return c; + } + default MatterSlice slice(Class c) { if (!hasSlice(c)) { MatterSlice s = createSlice(c, this); if (s == null) { + Iris.error("Unable to find a slice for class " + C.DARK_RED + c.getCanonicalName()); return null; }