From 9e40259ca2fc9fe791ab7c64496b0128296c793f Mon Sep 17 00:00:00 2001 From: Julian Krings Date: Thu, 17 Oct 2024 19:18:11 +0200 Subject: [PATCH] fix LegacyTileData not placing --- .../iris/engine/object/LegacyTileData.java | 52 +++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/core/src/main/java/com/volmit/iris/engine/object/LegacyTileData.java b/core/src/main/java/com/volmit/iris/engine/object/LegacyTileData.java index ac8728ebe..5820fc064 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/LegacyTileData.java +++ b/core/src/main/java/com/volmit/iris/engine/object/LegacyTileData.java @@ -1,14 +1,19 @@ package com.volmit.iris.engine.object; import com.volmit.iris.util.collection.KList; +import com.volmit.iris.util.collection.KMap; import com.volmit.iris.util.scheduling.J; import lombok.EqualsAndHashCode; +import lombok.NonNull; import lombok.ToString; import org.apache.commons.io.function.IOFunction; import org.bukkit.DyeColor; +import org.bukkit.Material; +import org.bukkit.Tag; import org.bukkit.block.*; import org.bukkit.block.banner.Pattern; import org.bukkit.block.banner.PatternType; +import org.bukkit.block.data.BlockData; import org.bukkit.entity.EntityType; import java.io.DataInputStream; @@ -34,6 +39,21 @@ public class LegacyTileData extends TileData { handler = factory.apply(in); } + @Override + public @NonNull KMap getProperties() { + return new KMap<>(); + } + + @Override + public @NonNull Material getMaterial() { + return handler.getMaterial(); + } + + @Override + public boolean isApplicable(BlockData data) { + return handler.isApplicable(data); + } + @Override public void toBukkit(Block block) { J.s(() -> handler.toBukkit(block)); @@ -51,6 +71,8 @@ public class LegacyTileData extends TileData { } private interface Handler { + Material getMaterial(); + boolean isApplicable(BlockData data); void toBinary(DataOutputStream out) throws IOException; void toBukkit(Block block); } @@ -72,6 +94,16 @@ public class LegacyTileData extends TileData { dyeColor = DyeColor.values()[in.readByte()]; } + @Override + public Material getMaterial() { + return Material.OAK_SIGN; + } + + @Override + public boolean isApplicable(BlockData data) { + return Tag.ALL_SIGNS.isTagged(data.getMaterial()); + } + @Override public void toBinary(DataOutputStream out) throws IOException { out.writeUTF(line1); @@ -101,6 +133,16 @@ public class LegacyTileData extends TileData { type = EntityType.values()[in.readShort()]; } + @Override + public Material getMaterial() { + return Material.SPAWNER; + } + + @Override + public boolean isApplicable(BlockData data) { + return data.getMaterial() == Material.SPAWNER; + } + @Override public void toBinary(DataOutputStream out) throws IOException { out.writeShort(type.ordinal()); @@ -130,6 +172,16 @@ public class LegacyTileData extends TileData { } } + @Override + public Material getMaterial() { + return Material.WHITE_BANNER; + } + + @Override + public boolean isApplicable(BlockData data) { + return Tag.BANNERS.isTagged(data.getMaterial()); + } + @Override public void toBinary(DataOutputStream out) throws IOException { out.writeByte(baseColor.ordinal());