From d47ebbb64b8518e3b9e61d8a8f86285786363705 Mon Sep 17 00:00:00 2001 From: Esophose Date: Sun, 31 Mar 2019 03:08:41 -0600 Subject: [PATCH] Better support for material data, fix default legacy config typos --- .../LegacyAdapter.java | 18 ++++++++++-------- .../LegacyBlockData.java | 7 +++++++ .../src/main/resources/config-legacy.yml | 6 +++--- 3 files changed, 20 insertions(+), 11 deletions(-) diff --git a/UltimateTimber-Adapter/Legacy/src/main/java/com.songoda.ultimatetimber.adapter.legacy/LegacyAdapter.java b/UltimateTimber-Adapter/Legacy/src/main/java/com.songoda.ultimatetimber.adapter.legacy/LegacyAdapter.java index 5968e80..259d950 100644 --- a/UltimateTimber-Adapter/Legacy/src/main/java/com.songoda.ultimatetimber.adapter.legacy/LegacyAdapter.java +++ b/UltimateTimber-Adapter/Legacy/src/main/java/com.songoda.ultimatetimber.adapter.legacy/LegacyAdapter.java @@ -67,16 +67,18 @@ public class LegacyAdapter implements VersionAdapter { treeBlockData = new LegacyBlockData(fallingBlock.getMaterial(), data); } else return drops; + Set typedBlockData = treeBlock.getTreeBlockType().equals(TreeBlockType.LOG) ? treeDefinition.getLogBlockData() : treeDefinition.getLeafBlockData(); + IBlockData definitionBlockData = null; - if (treeBlock.getTreeBlockType().equals(TreeBlockType.LOG)) { - for (IBlockData blockData : treeDefinition.getLogBlockData()) { - if (blockData.getMaterial().equals(treeBlockData.getMaterial())) { - definitionBlockData = blockData; - break; - } + for (IBlockData blockData : typedBlockData) { + if (blockData.getMaterial().equals(treeBlockData.getMaterial()) && blockData.getData() == treeBlockData.getData()) { + definitionBlockData = blockData; + break; } - } else { - for (IBlockData blockData : treeDefinition.getLeafBlockData()) { + } + + if (definitionBlockData == null) { + for (IBlockData blockData : typedBlockData) { if (blockData.getMaterial().equals(treeBlockData.getMaterial())) { definitionBlockData = blockData; break; diff --git a/UltimateTimber-Adapter/Legacy/src/main/java/com.songoda.ultimatetimber.adapter.legacy/LegacyBlockData.java b/UltimateTimber-Adapter/Legacy/src/main/java/com.songoda.ultimatetimber.adapter.legacy/LegacyBlockData.java index 4d0e4e8..254c5eb 100644 --- a/UltimateTimber-Adapter/Legacy/src/main/java/com.songoda.ultimatetimber.adapter.legacy/LegacyBlockData.java +++ b/UltimateTimber-Adapter/Legacy/src/main/java/com.songoda.ultimatetimber.adapter.legacy/LegacyBlockData.java @@ -30,8 +30,12 @@ public class LegacyBlockData implements IBlockData { @Override public boolean isSimilar(IBlockData otherBlockData) { + if (this.data.size() == 1) + return this.material.equals(otherBlockData.getMaterial()) && this.getData() == otherBlockData.getData(); + Material blockMaterial = otherBlockData.getMaterial(); byte blockData = otherBlockData.getData(); + if (!this.material.equals(blockMaterial)) return false; for (byte value : this.data) @@ -42,6 +46,9 @@ public class LegacyBlockData implements IBlockData { @Override public boolean isSimilar(Block block) { + if (this.data.size() == 1) + return this.material.equals(block.getType()) && this.getData() == block.getData(); + Material blockMaterial = block.getType(); byte blockData = block.getData(); if (!this.material.equals(blockMaterial)) diff --git a/UltimateTimber/Plugin/src/main/resources/config-legacy.yml b/UltimateTimber/Plugin/src/main/resources/config-legacy.yml index c3e3a30..5df90af 100644 --- a/UltimateTimber/Plugin/src/main/resources/config-legacy.yml +++ b/UltimateTimber/Plugin/src/main/resources/config-legacy.yml @@ -222,9 +222,9 @@ trees: required-tools: [] dark_oak: logs: - - LOG:1,5,9,13 + - LOG_2:1,5,9,13 leaves: - - LEAVES:1,5,9,13 + - LEAVES_2:1,5,9,13 sapling: SAPLING:5 plantable-soil: [] max-leaf-distance-from-log: 5 @@ -248,7 +248,7 @@ trees: sapling: BROWN_MUSHROOM plantable-soil: - MYCEL - max-leaf-distance-from-log: 4 + max-leaf-distance-from-log: 6 search-for-leaves-diagonally: false drop-original-log: false drop-original-leaf: false