MaterialData is gone

This commit is contained in:
dfsek
2021-02-22 19:47:15 -07:00
parent a328ff2f2a
commit 358bd350b5
52 changed files with 266 additions and 365 deletions

View File

@@ -9,7 +9,6 @@ import com.dfsek.terra.api.addons.annotations.Version;
import com.dfsek.terra.api.event.EventManager;
import com.dfsek.terra.api.event.TerraEventManager;
import com.dfsek.terra.api.platform.block.BlockData;
import com.dfsek.terra.api.platform.block.MaterialData;
import com.dfsek.terra.api.platform.handle.ItemHandle;
import com.dfsek.terra.api.platform.handle.WorldHandle;
import com.dfsek.terra.api.platform.world.Biome;
@@ -262,7 +261,6 @@ public class TerraBukkitPlugin extends JavaPlugin implements TerraPlugin {
public void register(TypeRegistry registry) {
registry
.registerLoader(BlockData.class, (t, o, l) -> handle.createBlockData((String) o))
.registerLoader(MaterialData.class, (t, o, l) -> handle.createMaterialData((String) o))
.registerLoader(Biome.class, (t, o, l) -> new BukkitBiome(org.bukkit.block.Biome.valueOf((String) o)))
.registerLoader(EntityType.class, (t, o, l) -> EntityType.valueOf((String) o));
genericLoaders.register(registry);

View File

@@ -1,13 +1,11 @@
package com.dfsek.terra.bukkit.handles;
import com.dfsek.terra.api.platform.block.MaterialData;
import com.dfsek.terra.api.platform.handle.ItemHandle;
import com.dfsek.terra.api.platform.inventory.ItemStack;
import com.dfsek.terra.api.platform.inventory.Item;
import com.dfsek.terra.api.platform.inventory.item.Enchantment;
import com.dfsek.terra.bukkit.util.MinecraftUtils;
import com.dfsek.terra.bukkit.world.BukkitAdapter;
import com.dfsek.terra.bukkit.world.block.BukkitMaterialData;
import com.dfsek.terra.bukkit.world.inventory.BukkitItemStack;
import org.bukkit.Material;
import org.bukkit.NamespacedKey;
import java.util.Arrays;
@@ -15,9 +13,10 @@ import java.util.Set;
import java.util.stream.Collectors;
public class BukkitItemHandle implements ItemHandle {
@Override
public ItemStack newItemStack(MaterialData material, int amount) {
return new BukkitItemStack(new org.bukkit.inventory.ItemStack(((BukkitMaterialData) material).getHandle(), amount));
public Item createItem(String data) {
return BukkitAdapter.adapt(Material.matchMaterial(data));
}
@Override

View File

@@ -2,14 +2,11 @@ package com.dfsek.terra.bukkit.handles;
import com.dfsek.terra.api.platform.block.Block;
import com.dfsek.terra.api.platform.block.BlockData;
import com.dfsek.terra.api.platform.block.MaterialData;
import com.dfsek.terra.api.platform.entity.EntityType;
import com.dfsek.terra.api.platform.handle.WorldHandle;
import com.dfsek.terra.bukkit.world.block.BukkitMaterialData;
import com.dfsek.terra.bukkit.world.block.data.BukkitBlockData;
import com.dfsek.terra.bukkit.world.entity.BukkitEntityType;
import org.bukkit.Bukkit;
import org.bukkit.Material;
public class BukkitWorldHandle implements WorldHandle {
@Override
@@ -22,22 +19,12 @@ public class BukkitWorldHandle implements WorldHandle {
return block.getBlockData();
}
@Override
public MaterialData getType(Block block) {
return block.getType();
}
@Override
public BlockData createBlockData(String data) {
org.bukkit.block.data.BlockData bukkitData = Bukkit.createBlockData(data);
return BukkitBlockData.newInstance(bukkitData);
}
@Override
public MaterialData createMaterialData(String data) {
return new BukkitMaterialData(Material.matchMaterial(data));
}
@Override
public EntityType getEntity(String id) {
return new BukkitEntityType(org.bukkit.entity.EntityType.valueOf(id));

View File

@@ -6,11 +6,13 @@ import com.dfsek.terra.api.platform.CommandSender;
import com.dfsek.terra.api.platform.block.Axis;
import com.dfsek.terra.api.platform.block.BlockData;
import com.dfsek.terra.api.platform.block.BlockFace;
import com.dfsek.terra.api.platform.block.BlockType;
import com.dfsek.terra.api.platform.block.data.Bisected;
import com.dfsek.terra.api.platform.block.data.Rail;
import com.dfsek.terra.api.platform.block.data.RedstoneWire;
import com.dfsek.terra.api.platform.block.data.Slab;
import com.dfsek.terra.api.platform.block.data.Stairs;
import com.dfsek.terra.api.platform.inventory.ItemStack;
import com.dfsek.terra.api.platform.inventory.item.Enchantment;
import com.dfsek.terra.api.platform.world.Chunk;
import com.dfsek.terra.api.platform.world.World;
@@ -18,9 +20,12 @@ import com.dfsek.terra.api.transform.MapTransform;
import com.dfsek.terra.api.transform.Transformer;
import com.dfsek.terra.bukkit.BukkitCommandSender;
import com.dfsek.terra.bukkit.BukkitPlayer;
import com.dfsek.terra.bukkit.world.block.BukkitBlockTypeAndItem;
import com.dfsek.terra.bukkit.world.block.data.BukkitBlockData;
import com.dfsek.terra.bukkit.world.inventory.BukkitItemStack;
import com.dfsek.terra.bukkit.world.inventory.meta.BukkitEnchantment;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.TreeType;
import org.bukkit.entity.Player;
import org.bukkit.util.Vector;
@@ -384,4 +389,20 @@ public final class BukkitAdapter {
public static com.dfsek.terra.api.platform.entity.Player adapt(Player player) {
return new BukkitPlayer(player);
}
public static BukkitBlockTypeAndItem adapt(Material material) {
return new BukkitBlockTypeAndItem(material);
}
public static Material adapt(BlockType type) {
return ((BukkitBlockTypeAndItem) type).getHandle();
}
public static ItemStack adapt(org.bukkit.inventory.ItemStack in) {
return new BukkitItemStack(in);
}
public static org.bukkit.inventory.ItemStack adapt(ItemStack in) {
return ((BukkitItemStack) in).getHandle();
}
}

View File

@@ -2,14 +2,12 @@ package com.dfsek.terra.bukkit.world;
import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.math.vector.Location;
import com.dfsek.terra.api.platform.block.MaterialData;
import com.dfsek.terra.api.platform.handle.WorldHandle;
import com.dfsek.terra.api.util.collections.MaterialSet;
import com.dfsek.terra.api.world.tree.Tree;
import org.bukkit.TreeType;
import java.util.Random;
import java.util.Set;
public class BukkitTree implements Tree {
private final TreeType delegate;
@@ -26,18 +24,18 @@ public class BukkitTree implements Tree {
WorldHandle handle = main.getWorldHandle();
switch(type) {
case CRIMSON_FUNGUS:
return MaterialSet.get(handle.createMaterialData("minecraft:crimson_nylium"));
return MaterialSet.get(handle.createBlockData("minecraft:crimson_nylium"));
case WARPED_FUNGUS:
return MaterialSet.get(handle.createMaterialData("minecraft:warped_nylium"));
return MaterialSet.get(handle.createBlockData("minecraft:warped_nylium"));
case BROWN_MUSHROOM:
case RED_MUSHROOM:
return MaterialSet.get(handle.createMaterialData("minecraft:mycelium"), handle.createMaterialData("minecraft:grass_block"),
handle.createMaterialData("minecraft:podzol"));
return MaterialSet.get(handle.createBlockData("minecraft:mycelium"), handle.createBlockData("minecraft:grass_block"),
handle.createBlockData("minecraft:podzol"));
case CHORUS_PLANT:
return MaterialSet.get(handle.createMaterialData("minecraft:end_stone"));
return MaterialSet.get(handle.createBlockData("minecraft:end_stone"));
default:
return MaterialSet.get(handle.createMaterialData("minecraft:grass_block"), handle.createMaterialData("minecraft:dirt"),
handle.createMaterialData("minecraft:podzol"));
return MaterialSet.get(handle.createBlockData("minecraft:grass_block"), handle.createBlockData("minecraft:dirt"),
handle.createBlockData("minecraft:podzol"));
}
}
@@ -47,7 +45,7 @@ public class BukkitTree implements Tree {
}
@Override
public Set<MaterialData> getSpawnable() {
public MaterialSet getSpawnable() {
return spawnable;
}
}

View File

@@ -4,7 +4,7 @@ import com.dfsek.terra.api.math.vector.Location;
import com.dfsek.terra.api.platform.block.Block;
import com.dfsek.terra.api.platform.block.BlockData;
import com.dfsek.terra.api.platform.block.BlockFace;
import com.dfsek.terra.api.platform.block.MaterialData;
import com.dfsek.terra.api.platform.block.BlockType;
import com.dfsek.terra.api.platform.block.state.BlockState;
import com.dfsek.terra.bukkit.world.BukkitAdapter;
import com.dfsek.terra.bukkit.world.block.data.BukkitBlockData;
@@ -53,8 +53,8 @@ public class BukkitBlock implements Block {
}
@Override
public MaterialData getType() {
return new BukkitMaterialData(delegate.getType());
public BlockType getType() {
return BukkitAdapter.adapt(delegate.getType());
}
@Override

View File

@@ -0,0 +1,52 @@
package com.dfsek.terra.bukkit.world.block;
import com.dfsek.terra.api.platform.block.BlockData;
import com.dfsek.terra.api.platform.block.BlockType;
import com.dfsek.terra.api.platform.inventory.Item;
import com.dfsek.terra.api.platform.inventory.ItemStack;
import com.dfsek.terra.bukkit.world.BukkitAdapter;
import org.bukkit.Material;
public class BukkitBlockTypeAndItem implements BlockType, Item {
private final Material delegate;
public BukkitBlockTypeAndItem(Material delegate) {
this.delegate = delegate;
}
@Override
public Material getHandle() {
return delegate;
}
@Override
public BlockData getDefaultData() {
return BukkitAdapter.adapt(delegate.createBlockData());
}
@Override
public boolean isSolid() {
return delegate.isSolid();
}
@Override
public ItemStack newItemStack(int amount) {
return BukkitAdapter.adapt(new org.bukkit.inventory.ItemStack(delegate, amount));
}
@Override
public double getMaxDurability() {
return delegate.getMaxDurability();
}
@Override
public int hashCode() {
return delegate.hashCode();
}
@Override
public boolean equals(Object obj) {
if(!(obj instanceof BukkitBlockTypeAndItem)) return false;
return delegate == ((BukkitBlockTypeAndItem) obj).delegate;
}
}

View File

@@ -1,62 +0,0 @@
package com.dfsek.terra.bukkit.world.block;
import com.dfsek.terra.api.platform.block.BlockData;
import com.dfsek.terra.api.platform.block.MaterialData;
import com.dfsek.terra.bukkit.world.block.data.BukkitBlockData;
import org.bukkit.Material;
public class BukkitMaterialData implements MaterialData {
private final Material delegate;
public BukkitMaterialData(Material delegate) {
this.delegate = delegate;
}
@Override
public boolean matches(MaterialData other) {
return ((BukkitMaterialData) other).getHandle().equals(delegate);
}
@Override
public boolean matches(BlockData other) {
return ((BukkitMaterialData) other.getMaterial()).getHandle().equals(delegate);
}
@Override
public boolean isSolid() {
return delegate.isSolid();
}
@Override
public boolean isAir() {
return delegate.isAir();
}
@Override
public double getMaxDurability() {
return delegate.getMaxDurability();
}
@Override
public BlockData createBlockData() {
return BukkitBlockData.newInstance(delegate.createBlockData());
}
@Override
public Material getHandle() {
return delegate;
}
@Override
public int hashCode() {
return delegate.hashCode();
}
@Override
public boolean equals(Object obj) {
if(!(obj instanceof BukkitMaterialData)) return false;
BukkitMaterialData other = (BukkitMaterialData) obj;
return other.getHandle().equals(this.delegate);
}
}

View File

@@ -1,9 +1,9 @@
package com.dfsek.terra.bukkit.world.block.data;
import com.dfsek.terra.api.platform.block.BlockData;
import com.dfsek.terra.api.platform.block.MaterialData;
import com.dfsek.terra.api.platform.block.BlockType;
import com.dfsek.terra.bukkit.TerraBukkitPlugin;
import com.dfsek.terra.bukkit.world.block.BukkitMaterialData;
import com.dfsek.terra.bukkit.world.BukkitAdapter;
import org.bukkit.block.data.AnaloguePowerable;
import org.bukkit.block.data.Directional;
import org.bukkit.block.data.MultipleFacing;
@@ -52,13 +52,13 @@ public class BukkitBlockData implements BlockData {
}
@Override
public MaterialData getMaterial() {
return new BukkitMaterialData(delegate.getMaterial());
public BlockType getBlockType() {
return BukkitAdapter.adapt(delegate.getMaterial());
}
@Override
public boolean matches(MaterialData materialData) {
return delegate.getMaterial().equals(((BukkitMaterialData) materialData).getHandle());
public boolean matches(BlockData data) {
return delegate.getMaterial() == ((BukkitBlockData) data).getHandle().getMaterial();
}
@Override
@@ -76,4 +76,9 @@ public class BukkitBlockData implements BlockData {
public String getAsString() {
return delegate.getAsString(false);
}
@Override
public boolean isAir() {
return delegate.getMaterial().isAir();
}
}

View File

@@ -1,9 +1,9 @@
package com.dfsek.terra.bukkit.world.inventory;
import com.dfsek.terra.api.platform.block.MaterialData;
import com.dfsek.terra.api.platform.inventory.Item;
import com.dfsek.terra.api.platform.inventory.ItemStack;
import com.dfsek.terra.api.platform.inventory.item.ItemMeta;
import com.dfsek.terra.bukkit.world.block.BukkitMaterialData;
import com.dfsek.terra.bukkit.world.BukkitAdapter;
public class BukkitItemStack implements ItemStack {
private org.bukkit.inventory.ItemStack delegate;
@@ -23,8 +23,8 @@ public class BukkitItemStack implements ItemStack {
}
@Override
public MaterialData getType() {
return new BukkitMaterialData(delegate.getType());
public Item getType() {
return BukkitAdapter.adapt(delegate.getType());
}
@Override