diff --git a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitServerInterface.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitServerInterface.java index 34ad4c257..e4707341a 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitServerInterface.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitServerInterface.java @@ -28,6 +28,7 @@ import com.sk89q.worldedit.extension.platform.Actor; import com.sk89q.worldedit.extension.platform.Capability; import com.sk89q.worldedit.extension.platform.MultiUserPlatform; import com.sk89q.worldedit.extension.platform.Preference; +import com.sk89q.worldedit.world.DataFixer; import com.sk89q.worldedit.world.registry.Registries; import org.bukkit.Bukkit; import org.bukkit.Server; @@ -75,6 +76,14 @@ public class BukkitServerInterface implements MultiUserPlatform { return -1; } + @Override + public DataFixer getDataFixer() { + if (plugin.getBukkitImplAdapter() != null) { + return plugin.getBukkitImplAdapter().getDataFixer(); + } + return null; + } + @Override public boolean isValidMobType(String type) { final EntityType entityType = EntityType.fromName(type); diff --git a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/adapter/BukkitImplAdapter.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/adapter/BukkitImplAdapter.java index 9ac0fe8de..fce88bd29 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/adapter/BukkitImplAdapter.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/adapter/BukkitImplAdapter.java @@ -23,6 +23,7 @@ import com.sk89q.jnbt.CompoundTag; import com.sk89q.worldedit.entity.BaseEntity; import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.registry.state.Property; +import com.sk89q.worldedit.world.DataFixer; import com.sk89q.worldedit.world.block.BaseBlock; import com.sk89q.worldedit.world.block.BlockState; import com.sk89q.worldedit.world.block.BlockStateHolder; @@ -47,6 +48,14 @@ public interface BukkitImplAdapter { */ int getDataVersion(); + /** + * Get a data fixer, or null if not supported + * + * @return the data fixer + */ + @Nullable + DataFixer getDataFixer(); + /** * Get the block at the given location. * diff --git a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/adapter/BukkitImplLoader.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/adapter/BukkitImplLoader.java index 612290995..950e4f862 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/adapter/BukkitImplLoader.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/adapter/BukkitImplLoader.java @@ -157,7 +157,7 @@ public class BukkitImplLoader { if (BukkitImplAdapter.class.isAssignableFrom(cls)) { return (BukkitImplAdapter) cls.newInstance(); } else { - log.warn("Failed to load the Bukkit adapter class '" + className + + log.debug("Failed to load the Bukkit adapter class '" + className + "' because it does not implement " + BukkitImplAdapter.class.getCanonicalName()); } } catch (ClassNotFoundException e) { diff --git a/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$1.class b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$1.class new file mode 100644 index 000000000..a4b5d0ff8 Binary files /dev/null and b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$1.class differ diff --git a/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverter.class b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverter.class new file mode 100644 index 000000000..acd6dba8e Binary files /dev/null and b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverter.class differ diff --git a/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterArmorStand.class b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterArmorStand.class new file mode 100644 index 000000000..0924a0daa Binary files /dev/null and b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterArmorStand.class differ diff --git a/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterBanner.class b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterBanner.class new file mode 100644 index 000000000..2c54da75a Binary files /dev/null and b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterBanner.class differ diff --git a/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterBedBlock.class b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterBedBlock.class new file mode 100644 index 000000000..45b1ab20b Binary files /dev/null and b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterBedBlock.class differ diff --git a/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterBedItem.class b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterBedItem.class new file mode 100644 index 000000000..96ccc83d0 Binary files /dev/null and b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterBedItem.class differ diff --git a/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterBook.class b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterBook.class new file mode 100644 index 000000000..114a2617e Binary files /dev/null and b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterBook.class differ diff --git a/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterCookedFish.class b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterCookedFish.class new file mode 100644 index 000000000..f856571eb Binary files /dev/null and b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterCookedFish.class differ diff --git a/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterDropChances.class b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterDropChances.class new file mode 100644 index 000000000..78d912ea5 Binary files /dev/null and b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterDropChances.class differ diff --git a/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterEntity.class b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterEntity.class new file mode 100644 index 000000000..a32a67c62 Binary files /dev/null and b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterEntity.class differ diff --git a/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterEquipment.class b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterEquipment.class new file mode 100644 index 000000000..a502ab002 Binary files /dev/null and b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterEquipment.class differ diff --git a/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterGuardian.class b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterGuardian.class new file mode 100644 index 000000000..2e0268605 Binary files /dev/null and b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterGuardian.class differ diff --git a/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterHanging.class b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterHanging.class new file mode 100644 index 000000000..95251492d Binary files /dev/null and b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterHanging.class differ diff --git a/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterHealth.class b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterHealth.class new file mode 100644 index 000000000..2743b71e9 Binary files /dev/null and b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterHealth.class differ diff --git a/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterHorse.class b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterHorse.class new file mode 100644 index 000000000..ce9a2af0e Binary files /dev/null and b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterHorse.class differ diff --git a/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterLang.class b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterLang.class new file mode 100644 index 000000000..06452fbe8 Binary files /dev/null and b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterLang.class differ diff --git a/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterMaterialId.class b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterMaterialId.class new file mode 100644 index 000000000..4a6daf619 Binary files /dev/null and b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterMaterialId.class differ diff --git a/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterMinecart.class b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterMinecart.class new file mode 100644 index 000000000..1d77dd536 Binary files /dev/null and b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterMinecart.class differ diff --git a/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterMobSpawner.class b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterMobSpawner.class new file mode 100644 index 000000000..ac0c7ac79 Binary files /dev/null and b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterMobSpawner.class differ diff --git a/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterPotionId.class b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterPotionId.class new file mode 100644 index 000000000..213f0f4e5 Binary files /dev/null and b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterPotionId.class differ diff --git a/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterPotionWater.class b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterPotionWater.class new file mode 100644 index 000000000..103d7b9a4 Binary files /dev/null and b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterPotionWater.class differ diff --git a/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterRiding.class b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterRiding.class new file mode 100644 index 000000000..94c5c8e9b Binary files /dev/null and b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterRiding.class differ diff --git a/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterSaddle.class b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterSaddle.class new file mode 100644 index 000000000..865101fd6 Binary files /dev/null and b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterSaddle.class differ diff --git a/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterShulker.class b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterShulker.class new file mode 100644 index 000000000..38c1e4bd4 Binary files /dev/null and b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterShulker.class differ diff --git a/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterShulkerBoxBlock.class b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterShulkerBoxBlock.class new file mode 100644 index 000000000..03bbafc8a Binary files /dev/null and b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterShulkerBoxBlock.class differ diff --git a/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterShulkerBoxItem.class b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterShulkerBoxItem.class new file mode 100644 index 000000000..cc47a10e7 Binary files /dev/null and b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterShulkerBoxItem.class differ diff --git a/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterSignText$1.class b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterSignText$1.class new file mode 100644 index 000000000..eb63f794b Binary files /dev/null and b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterSignText$1.class differ diff --git a/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterSignText.class b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterSignText.class new file mode 100644 index 000000000..eca776466 Binary files /dev/null and b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterSignText.class differ diff --git a/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterSkeleton.class b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterSkeleton.class new file mode 100644 index 000000000..bdbbd43b8 Binary files /dev/null and b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterSkeleton.class differ diff --git a/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterSpawnEgg.class b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterSpawnEgg.class new file mode 100644 index 000000000..1e45a0d66 Binary files /dev/null and b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterSpawnEgg.class differ diff --git a/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterTileEntity.class b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterTileEntity.class new file mode 100644 index 000000000..314ad9cfb Binary files /dev/null and b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterTileEntity.class differ diff --git a/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterTotem.class b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterTotem.class new file mode 100644 index 000000000..812e91062 Binary files /dev/null and b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterTotem.class differ diff --git a/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterUUID.class b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterUUID.class new file mode 100644 index 000000000..ba42fb9cb Binary files /dev/null and b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterUUID.class differ diff --git a/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterVBO.class b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterVBO.class new file mode 100644 index 000000000..4aa5e2312 Binary files /dev/null and b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterVBO.class differ diff --git a/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterZombie.class b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterZombie.class new file mode 100644 index 000000000..7b70c16b6 Binary files /dev/null and b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterZombie.class differ diff --git a/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterZombieType.class b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterZombieType.class new file mode 100644 index 000000000..8e2816510 Binary files /dev/null and b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataConverterZombieType.class differ diff --git a/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataInspector.class b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataInspector.class new file mode 100644 index 000000000..8f8148400 Binary files /dev/null and b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataInspector.class differ diff --git a/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataInspectorBlockEntity.class b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataInspectorBlockEntity.class new file mode 100644 index 000000000..f186876e1 Binary files /dev/null and b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataInspectorBlockEntity.class differ diff --git a/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataInspectorChunks.class b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataInspectorChunks.class new file mode 100644 index 000000000..883e0a34a Binary files /dev/null and b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataInspectorChunks.class differ diff --git a/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataInspectorCommandBlock.class b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataInspectorCommandBlock.class new file mode 100644 index 000000000..aa291d726 Binary files /dev/null and b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataInspectorCommandBlock.class differ diff --git a/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataInspectorEntity.class b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataInspectorEntity.class new file mode 100644 index 000000000..2d3049e28 Binary files /dev/null and b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataInspectorEntity.class differ diff --git a/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataInspectorEntityPassengers.class b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataInspectorEntityPassengers.class new file mode 100644 index 000000000..6a52eb553 Binary files /dev/null and b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataInspectorEntityPassengers.class differ diff --git a/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataInspectorItem.class b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataInspectorItem.class new file mode 100644 index 000000000..09b70362e Binary files /dev/null and b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataInspectorItem.class differ diff --git a/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataInspectorItemList.class b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataInspectorItemList.class new file mode 100644 index 000000000..82f355d13 Binary files /dev/null and b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataInspectorItemList.class differ diff --git a/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataInspectorLevelPlayer.class b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataInspectorLevelPlayer.class new file mode 100644 index 000000000..7beca1dd2 Binary files /dev/null and b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataInspectorLevelPlayer.class differ diff --git a/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataInspectorMobSpawnerMinecart.class b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataInspectorMobSpawnerMinecart.class new file mode 100644 index 000000000..e68f0169b Binary files /dev/null and b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataInspectorMobSpawnerMinecart.class differ diff --git a/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataInspectorMobSpawnerMobs.class b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataInspectorMobSpawnerMobs.class new file mode 100644 index 000000000..12cb89367 Binary files /dev/null and b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataInspectorMobSpawnerMobs.class differ diff --git a/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataInspectorPlayer.class b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataInspectorPlayer.class new file mode 100644 index 000000000..59c73f6e5 Binary files /dev/null and b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataInspectorPlayer.class differ diff --git a/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataInspectorPlayerVehicle.class b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataInspectorPlayerVehicle.class new file mode 100644 index 000000000..29b4007aa Binary files /dev/null and b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataInspectorPlayerVehicle.class differ diff --git a/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataInspectorStructure.class b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataInspectorStructure.class new file mode 100644 index 000000000..44e0f9691 Binary files /dev/null and b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataInspectorStructure.class differ diff --git a/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataInspectorTagged.class b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataInspectorTagged.class new file mode 100644 index 000000000..180915ed2 Binary files /dev/null and b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataInspectorTagged.class differ diff --git a/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataInspectorVillagers.class b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataInspectorVillagers.class new file mode 100644 index 000000000..ef37fa015 Binary files /dev/null and b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$DataInspectorVillagers.class differ diff --git a/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$LegacyType.class b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$LegacyType.class new file mode 100644 index 000000000..2543d5fd0 Binary files /dev/null and b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$LegacyType.class differ diff --git a/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$WrappedDataFixer.class b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$WrappedDataFixer.class new file mode 100644 index 000000000..b58369ad6 Binary files /dev/null and b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2$WrappedDataFixer.class differ diff --git a/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2.class b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2.class new file mode 100644 index 000000000..0e5ec4fbb Binary files /dev/null and b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/DataConverters_1_13_R2_2.class differ diff --git a/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/Spigot_v1_13_R1$1.class b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/Spigot_v1_13_R1$1.class index 68556cab9..eeeb7f729 100644 Binary files a/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/Spigot_v1_13_R1$1.class and b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/Spigot_v1_13_R1$1.class differ diff --git a/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/Spigot_v1_13_R1.class b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/Spigot_v1_13_R1.class index de8e81b01..dc26d59ef 100644 Binary files a/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/Spigot_v1_13_R1.class and b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/Spigot_v1_13_R1.class differ diff --git a/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/Spigot_v1_13_R2$1.class b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/Spigot_v1_13_R2$1.class index e8e38065a..49476c724 100644 Binary files a/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/Spigot_v1_13_R2$1.class and b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/Spigot_v1_13_R2$1.class differ diff --git a/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/Spigot_v1_13_R2.class b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/Spigot_v1_13_R2.class index 22e2b2ba3..d6b8e0325 100644 Binary files a/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/Spigot_v1_13_R2.class and b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/Spigot_v1_13_R2.class differ diff --git a/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/Spigot_v1_13_R2_2$1.class b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/Spigot_v1_13_R2_2$1.class index 86e5c9d33..f281d517b 100644 Binary files a/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/Spigot_v1_13_R2_2$1.class and b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/Spigot_v1_13_R2_2$1.class differ diff --git a/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/Spigot_v1_13_R2_2.class b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/Spigot_v1_13_R2_2.class index d2291fb60..73859d37f 100644 Binary files a/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/Spigot_v1_13_R2_2.class and b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/Spigot_v1_13_R2_2.class differ diff --git a/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/Spigot_v1_14_R1$1.class b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/Spigot_v1_14_R1$1.class index 66d9acaf1..d0a7128a6 100644 Binary files a/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/Spigot_v1_14_R1$1.class and b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/Spigot_v1_14_R1$1.class differ diff --git a/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/Spigot_v1_14_R1.class b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/Spigot_v1_14_R1.class index 19794dd5c..815100c25 100644 Binary files a/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/Spigot_v1_14_R1.class and b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/Spigot_v1_14_R1.class differ diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/AbstractPlatform.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/AbstractPlatform.java index 7cc6e1009..762884ab8 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/AbstractPlatform.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/AbstractPlatform.java @@ -19,6 +19,7 @@ package com.sk89q.worldedit.extension.platform; +import com.sk89q.worldedit.world.DataFixer; import com.sk89q.worldedit.world.World; import java.util.Collections; @@ -39,4 +40,8 @@ public abstract class AbstractPlatform implements Platform { return Collections.emptyList(); } + @Override + public DataFixer getDataFixer() { + return null; + } } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/Platform.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/Platform.java index 1a25497f5..d9391ddc3 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/Platform.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/Platform.java @@ -21,6 +21,7 @@ package com.sk89q.worldedit.extension.platform; import com.sk89q.worldedit.LocalConfiguration; import com.sk89q.worldedit.entity.Player; +import com.sk89q.worldedit.world.DataFixer; import com.sk89q.worldedit.world.World; import com.sk89q.worldedit.world.registry.Registries; import org.enginehub.piston.CommandManager; @@ -51,6 +52,13 @@ public interface Platform { */ int getDataVersion(); + /** + * Get a DataFixer capable of upgrading old data. + * + * @return a data fixer, or null if not supported by this platform + */ + DataFixer getDataFixer(); + /** * Checks if a mob type is valid. * diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/DataFixer.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/DataFixer.java new file mode 100644 index 000000000..1318cf9c5 --- /dev/null +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/DataFixer.java @@ -0,0 +1,34 @@ +/* + * WorldEdit, a Minecraft world manipulation toolkit + * Copyright (C) sk89q + * Copyright (C) WorldEdit team and contributors + * + * This program is free software: you can redistribute it and/or modify it + * under the terms of the GNU Lesser General Public License as published by the + * Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License + * for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + */ + +package com.sk89q.worldedit.world; + +import com.google.common.annotations.Beta; +import com.sk89q.jnbt.CompoundTag; + +@Beta +public interface DataFixer { + + /** + * API SUBJECT TO CHANGE. DON'T USE THIS. + */ + @Beta + CompoundTag fixChunk(CompoundTag originalChunk); + +} diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/chunk/AnvilChunk13.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/chunk/AnvilChunk13.java index 2c9cd41b6..b9434ff0d 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/chunk/AnvilChunk13.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/chunk/AnvilChunk13.java @@ -35,12 +35,11 @@ import com.sk89q.worldedit.world.block.BlockType; import com.sk89q.worldedit.world.block.BlockTypes; import com.sk89q.worldedit.world.storage.InvalidFormatException; +import javax.annotation.Nullable; import java.util.HashMap; import java.util.List; import java.util.Map; -import javax.annotation.Nullable; - /** * The chunk format for Minecraft 1.13 and newer */ @@ -160,11 +159,13 @@ public class AnvilChunk13 implements Chunk { * @throws DataException */ private void populateTileEntities() throws DataException { + tileEntities = new HashMap<>(); + if (!rootTag.getValue().containsKey("TileEntities")) { + return; + } List tags = NBTUtils.getChildTag(rootTag.getValue(), "TileEntities", ListTag.class).getValue(); - tileEntities = new HashMap<>(); - for (Tag tag : tags) { if (!(tag instanceof CompoundTag)) { throw new InvalidFormatException("CompoundTag expected in TileEntities"); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/ChunkStore.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/ChunkStore.java index 319503740..1243a25fb 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/ChunkStore.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/ChunkStore.java @@ -21,9 +21,13 @@ package com.sk89q.worldedit.world.storage; import com.sk89q.jnbt.CompoundTag; import com.sk89q.jnbt.Tag; +import com.sk89q.worldedit.WorldEdit; +import com.sk89q.worldedit.extension.platform.Capability; +import com.sk89q.worldedit.extension.platform.Platform; import com.sk89q.worldedit.math.BlockVector2; import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.world.DataException; +import com.sk89q.worldedit.world.DataFixer; import com.sk89q.worldedit.world.World; import com.sk89q.worldedit.world.chunk.AnvilChunk; import com.sk89q.worldedit.world.chunk.AnvilChunk13; @@ -42,7 +46,7 @@ public abstract class ChunkStore implements Closeable { /** * The DataVersion for Minecraft 1.13 */ - public static final int DATA_VERSION_MC_1_13 = 1519; + private static final int DATA_VERSION_MC_1_13 = 1519; /** * {@code >>} - to chunk @@ -102,6 +106,14 @@ public abstract class ChunkStore implements Closeable { } int dataVersion = rootTag.getInt("DataVersion"); + final Platform platform = WorldEdit.getInstance().getPlatformManager().queryCapability(Capability.WORLD_EDITING); + final int currentDataVersion = platform.getDataVersion(); + if (dataVersion < currentDataVersion) { + final DataFixer dataFixer = platform.getDataFixer(); + if (dataFixer != null) { + return new AnvilChunk13((CompoundTag) dataFixer.fixChunk(rootTag).getValue().get("Level")); + } + } if (dataVersion >= DATA_VERSION_MC_1_13) { return new AnvilChunk13(tag); } @@ -114,6 +126,7 @@ public abstract class ChunkStore implements Closeable { return new OldChunk(world, tag); } + @Override public void close() throws IOException { }