Skip to content

Commit

Permalink
modernize block setting (modifyblock mainly)
Browse files Browse the repository at this point in the history
  • Loading branch information
mcmonkey4eva committed Mar 10, 2019
1 parent e8abcf4 commit 2efe220
Show file tree
Hide file tree
Showing 6 changed files with 23 additions and 7 deletions.
@@ -1,5 +1,6 @@
package net.aufdemrand.denizen.nms.interfaces;

import net.aufdemrand.denizen.nms.abstracts.ModernBlockData;
import net.aufdemrand.denizen.nms.util.PlayerProfile;
import net.aufdemrand.denizen.nms.util.jnbt.CompoundTag;
import org.bukkit.Material;
Expand Down Expand Up @@ -28,6 +29,10 @@ public interface BlockHelper {

BlockData getBlockData(Block block);

default BlockData getBlockData(ModernBlockData data) {
return null;
}

BlockData getBlockData(String compressedString);

boolean hasBlock(Material material);
Expand Down
Expand Up @@ -2398,9 +2398,7 @@ public void adjust(Mechanism mechanism) {
// -->
if (mechanism.matches("block_type") && mechanism.requireObject(dMaterial.class)) {
dMaterial mat = mechanism.valueAsType(dMaterial.class);
byte data = mat.hasData() ? mat.getData() : 0;
BlockData blockData = NMSHandler.getInstance().getBlockHelper().getBlockData(mat.getMaterial(), data);
blockData.setBlock(getBlock(), false);
mat.getNmsBlockData().setBlock(getBlock(), false);
}

// <--[mechanism]
Expand Down
Expand Up @@ -279,6 +279,13 @@ public Material getMaterial() {
return material;
}

public BlockData getNmsBlockData() {
if (modernData != null) {
return NMSHandler.getInstance().getBlockHelper().getBlockData(modernData);
}
return NMSHandler.getInstance().getBlockHelper().getBlockData(getMaterial(), getData((byte) 0));
}

public String name() {
return material.name();
}
Expand Down
Expand Up @@ -347,9 +347,7 @@ void setBlock(Location location, dMaterial material, boolean physics, boolean na
location.getBlock().breakNaturally();
}
else {
// TODO: 1.13 - confirm this works
BlockData blockData = NMSHandler.getInstance().getBlockHelper().getBlockData(material.getMaterial(), material.getData());
blockData.setBlock(location.getBlock(), physics);
material.getNmsBlockData().setBlock(location.getBlock(), physics);
}
}

Expand Down
Expand Up @@ -4,6 +4,7 @@
import net.aufdemrand.denizen.nms.interfaces.BlockData;
import net.aufdemrand.denizen.nms.util.jnbt.*;
import net.aufdemrand.denizen.objects.dCuboid;
import net.aufdemrand.denizen.objects.dMaterial;
import net.aufdemrand.denizen.scripts.commands.world.SchematicCommand;
import net.aufdemrand.denizen.utilities.DenizenAPI;
import net.aufdemrand.denizen.utilities.debugging.dB;
Expand Down Expand Up @@ -294,7 +295,8 @@ else if (entry.getKey().equals("z")) {
int index = y * width * length + z * width + x;
BlockVector pt = new BlockVector(x, y, z);
// TODO: 1.13 - move away from legacy IDs somehow?
BlockData block = NMSHandler.getInstance().getBlockHelper().getBlockData(OldMaterialsHelper.getLegacyMaterial(blocks[index]), blockData[index]);
dMaterial dMat = OldMaterialsHelper.getMaterialFrom(OldMaterialsHelper.getLegacyMaterial(blocks[index]), blockData[index]);
BlockData block = dMat.getNmsBlockData();
if (tileEntitiesMap.containsKey(pt)) {
CompoundTag otag = NMSHandler.getInstance().createCompoundTag(tileEntitiesMap.get(pt));
block.setCompoundTag(otag);
Expand Down
Expand Up @@ -3,6 +3,7 @@
import com.google.common.collect.Iterables;
import com.mojang.authlib.GameProfile;
import com.mojang.authlib.properties.Property;
import net.aufdemrand.denizen.nms.abstracts.ModernBlockData;
import net.aufdemrand.denizen.nms.impl.blocks.BlockData_v1_13_R2;
import net.aufdemrand.denizen.nms.impl.jnbt.CompoundTag_v1_13_R2;
import net.aufdemrand.denizen.nms.interfaces.BlockData;
Expand Down Expand Up @@ -108,6 +109,11 @@ public BlockData getBlockData(Material material, byte data) {
return new BlockData_v1_13_R2(material, data);
}

@Override
public BlockData getBlockData(ModernBlockData data) {
return new BlockData_v1_13_R2(data.data);
}

@Override
public BlockData getBlockData(Block block) {
return new BlockData_v1_13_R2(block);
Expand Down

0 comments on commit 2efe220

Please sign in to comment.