diff --git a/dependency-reduced-pom.xml b/dependency-reduced-pom.xml
index 45118e2..cc13dad 100644
--- a/dependency-reduced-pom.xml
+++ b/dependency-reduced-pom.xml
@@ -3,7 +3,7 @@
4.0.0
network.palace
Show
- 1.6.0
+ 1.6.1
${project.artifactId}
@@ -82,7 +82,7 @@
org.projectlombok
lombok
- 1.18.20
+ 1.18.22
compile
@@ -96,11 +96,17 @@
worldedit-bukkit
7.2.0-SNAPSHOT
provided
+
+
+ bstats-bukkit
+ org.bstats
+
+
io.netty
netty-buffer
- 4.1.51.Final
+ 4.1.75.Final
compile
@@ -112,7 +118,7 @@
com.craftmend.openaudiomc
OpenAudioMc
- 6.5.4
+ 6.6.3
provided
diff --git a/pom.xml b/pom.xml
index 419677c..42b3aa4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
network.palace
Show
- 1.6.0
+ 1.6.1
enginehub-maven
@@ -32,7 +32,7 @@
org.projectlombok
lombok
- 1.18.20
+ 1.18.22
jar
@@ -61,7 +61,7 @@
io.netty
netty-buffer
- 4.1.51.Final
+ 4.1.75.Final
org.spigotmc
@@ -77,7 +77,7 @@
org.bstats
bstats-bukkit
- 2.2.1
+ 3.0.0
compile
diff --git a/src/main/java/network/palace/show/ShowPlugin.java b/src/main/java/network/palace/show/ShowPlugin.java
index 46e7012..f392fbc 100644
--- a/src/main/java/network/palace/show/ShowPlugin.java
+++ b/src/main/java/network/palace/show/ShowPlugin.java
@@ -19,6 +19,7 @@
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
+import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.plugin.PluginLoadOrder;
import org.bukkit.plugin.java.JavaPlugin;
@@ -37,7 +38,7 @@
* Created by Marc on 12/6/16.
* Updated to be Core free by Tom 07/10/2021
*/
-@Plugin(name = "Show", version = "1.6.0")
+@Plugin(name = "Show", version = "1.6.1")
@Description(value = "Create Shows in Minecraft with easy to use files!")
@LoadOrder(value = PluginLoadOrder.POSTWORLD)
@Author(value = "Legobuilder0813")
@@ -52,7 +53,7 @@
@Command(name = "show", desc = "Main show command", permission = "show.main", permissionMessage = "You do not have permission!", usage = "/show [list|start|stop]")
@Command(name = "showdebug", desc = "Showdebug command", permission = "show.debug", permissionMessage = "You do not have permission!", usage = "/showdebug")
@Command(name = "showgen", desc = "Showgen commands", permission = "show.showgen", permissionMessage = "You do not have permission!", usage = "/showgen")
-public class ShowPlugin extends JavaPlugin {
+public class ShowPlugin extends JavaPlugin implements Listener {
@Getter private ArmorStandManager armorStandManager;
@Getter private FountainManager fountainManager;
@Getter private static ShowGenerator showGenerator;
@@ -103,13 +104,14 @@ public void onEnable() {
}
- //has to be loaded after github token
+ // Has to be loaded after github token
showGenerator = new ShowGenerator();
this.getServer().getPluginManager().registerEvents(fountainManager, this);
this.getServer().getPluginManager().registerEvents(new PlayerInteract(), this);
this.getServer().getPluginManager().registerEvents(new ChunkListener(), this);
+ this.getServer().getPluginManager().registerEvents(this, this);
// Show Ticker
taskid = Bukkit.getScheduler().runTaskTimer(this, () -> {
@@ -128,7 +130,7 @@ public void onEnable() {
new UpdateUtil(this, 94141).getVersion(v -> {
if (!this.getDescription().getVersion().equalsIgnoreCase(v)) {
- Bukkit.getConsoleSender().sendMessage(ChatColor.RED + "[Show] A New update is available for Show! It is always recommended that you upgrade! Link: https://www.spigotmc.org/resources/show-make-huge-spectaculars-in-minecraft.94141/");
+ Bukkit.getConsoleSender().sendMessage(ChatColor.AQUA + "[Show] " + ChatColor.RED + "A New update is available for Show! It is always recommended that you upgrade! Link: https://www.spigotmc.org/resources/show-make-huge-spectaculars-in-minecraft.94141/");
}
});
diff --git a/src/main/java/network/palace/show/actions/BlockAction.java b/src/main/java/network/palace/show/actions/BlockAction.java
index a62def0..722f9c7 100644
--- a/src/main/java/network/palace/show/actions/BlockAction.java
+++ b/src/main/java/network/palace/show/actions/BlockAction.java
@@ -2,8 +2,6 @@
import network.palace.show.Show;
import network.palace.show.exceptions.ShowParseException;
-import network.palace.show.handlers.BlockData;
-import network.palace.show.utils.ShowUtil;
import network.palace.show.utils.WorldUtil;
import org.bukkit.Location;
import org.bukkit.Material;
diff --git a/src/main/java/network/palace/show/actions/FakeBlockAction.java b/src/main/java/network/palace/show/actions/FakeBlockAction.java
index 107b027..ca87ff8 100644
--- a/src/main/java/network/palace/show/actions/FakeBlockAction.java
+++ b/src/main/java/network/palace/show/actions/FakeBlockAction.java
@@ -1,20 +1,15 @@
package network.palace.show.actions;
-import com.comphenix.protocol.wrappers.BlockPosition;
-import com.comphenix.protocol.wrappers.WrappedBlockData;
import lombok.Getter;
import lombok.Setter;
-import network.palace.show.packets.server.block.WrapperPlayServerBlockChange;
import network.palace.show.Show;
import network.palace.show.exceptions.ShowParseException;
-import network.palace.show.handlers.BlockData;
-import network.palace.show.utils.MiscUtil;
import network.palace.show.utils.ShowUtil;
import network.palace.show.utils.WorldUtil;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Location;
-import org.bukkit.Material;
+import org.bukkit.block.data.BlockData;
import org.bukkit.entity.Player;
/**
@@ -25,30 +20,27 @@
@SuppressWarnings("deprecation")
public class FakeBlockAction extends ShowAction {
private Location loc;
- private Material mat;
+ private BlockData data;
public FakeBlockAction(Show show, long time) {
super(show, time);
}
- public FakeBlockAction(Show show, long time, Location loc, Material mat) {
+ public FakeBlockAction(Show show, long time, Location loc, BlockData data) {
super(show, time);
this.loc = loc;
- this.mat = mat;
+ this.data = data;
}
@Override
public void play(Player[] nearPlayers) {
try {
- WrapperPlayServerBlockChange p = new WrapperPlayServerBlockChange();
- p.setLocation(new BlockPosition(loc.getBlockX(), loc.getBlockY(), loc.getBlockZ()));
- p.setBlockData(WrappedBlockData.createData(mat));
for (Player tp : nearPlayers) {
- if (tp != null) MiscUtil.sendPacket(p, tp);
+ if (tp != null) tp.sendBlockChange(loc, data);
}
} catch (Exception e) {
Bukkit.getLogger().severe("FakeBlockAction -" + ChatColor.RED + "Error sending FakeBlockAction for type (" +
- mat.toString() + ") at location " + loc.getX() + "," + loc.getY() + "," + loc.getZ() + " at time " +
+ data.getMaterial() + ") at location " + loc.getX() + "," + loc.getY() + "," + loc.getZ() + " at time " +
time + " for show " + show.getName());
e.printStackTrace();
}
@@ -62,7 +54,7 @@ public ShowAction load(String line, String... args) throws ShowParseException {
}
try {
this.loc = loc;
- this.mat = Material.valueOf(args[2].toUpperCase());
+ this.data = ShowUtil.getBlockData(line);
} catch (IllegalArgumentException e) {
throw new ShowParseException(e.getMessage());
}
@@ -71,6 +63,6 @@ public ShowAction load(String line, String... args) throws ShowParseException {
@Override
protected ShowAction copy(Show show, long time) throws ShowParseException {
- return new FakeBlockAction(show, time, loc, mat);
+ return new FakeBlockAction(show, time, loc, data);
}
}
\ No newline at end of file
diff --git a/src/main/java/network/palace/show/actions/FountainAction.java b/src/main/java/network/palace/show/actions/FountainAction.java
index 80555b5..95db3bd 100644
--- a/src/main/java/network/palace/show/actions/FountainAction.java
+++ b/src/main/java/network/palace/show/actions/FountainAction.java
@@ -3,9 +3,7 @@
import network.palace.show.Show;
import network.palace.show.ShowPlugin;
import network.palace.show.exceptions.ShowParseException;
-import network.palace.show.handlers.BlockData;
import network.palace.show.handlers.Fountain;
-import network.palace.show.utils.ShowUtil;
import network.palace.show.utils.WorldUtil;
import org.bukkit.Location;
import org.bukkit.Material;
diff --git a/src/main/java/network/palace/show/commands/showgen/GenerateCommand.java b/src/main/java/network/palace/show/commands/showgen/GenerateCommand.java
index a429c00..29212dd 100644
--- a/src/main/java/network/palace/show/commands/showgen/GenerateCommand.java
+++ b/src/main/java/network/palace/show/commands/showgen/GenerateCommand.java
@@ -82,7 +82,7 @@ public void handle(CommandSender sender, String[] args) {
bottom = !args[1].equalsIgnoreCase("top");
delayPerLayer = Double.parseDouble(args[2]);
} else {
- bottom = false;
+ bottom = true;
delayPerLayer = 0;
}
@@ -109,18 +109,18 @@ public void handle(CommandSender sender, String[] args) {
changeInTime = delayPerLayer;
}
+
+ // y is startingY, and is incremented by yChange every loop until y is equal to endingY.
for (int y = startingY; compare(y, endingY, !bottom); y += yChange) {
for (int x = 0; x < initialScene.getXLength(); x++) {
for (int z = 0; z < initialScene.getZLength(); z++) {
Block oldBlock = initialScene.getBlock(x, y, z);
Block newBlock = finalScene.getBlock(x, y, z);
- if (newBlock.getType().equals(oldBlock.getType()) && newBlock.getData() == oldBlock.getData()) {
+ if (newBlock.getType().equals(oldBlock.getType()) && newBlock.getBlockData().matches(oldBlock.getBlockData())) {
continue;
}
- Material material = newBlock.getType();
- byte data = newBlock.getData();
FakeBlockAction act = new FakeBlockAction(null, (long) (localTime * 1000));
- act.setMat(material);
+ act.setData(newBlock.getBlockData());
act.setLoc(new Location(corner.getWorld(), corner.getBlockX() + x, corner.getBlockY() + y, corner.getBlockZ() + z));
actions.add(act);
}
@@ -128,6 +128,7 @@ public void handle(CommandSender sender, String[] args) {
localTime += changeInTime;
}
+
if (actions.isEmpty()) {
player.sendMessage(ChatColor.RED + "There aren't any differences between the two selected regions!");
return;
diff --git a/src/main/java/network/palace/show/enums/BlockDataType.java b/src/main/java/network/palace/show/enums/BlockDataType.java
new file mode 100644
index 0000000..df6989b
--- /dev/null
+++ b/src/main/java/network/palace/show/enums/BlockDataType.java
@@ -0,0 +1,10 @@
+package network.palace.show.enums;
+
+public enum BlockDataType {
+ STAIRS,
+ FENCE,
+ GLASS_PANE,
+ TRAPDOOR,
+ DOOR,
+ SLAB
+}
diff --git a/src/main/java/network/palace/show/generator/ShowGenerator.java b/src/main/java/network/palace/show/generator/ShowGenerator.java
index 30fcf92..82be007 100644
--- a/src/main/java/network/palace/show/generator/ShowGenerator.java
+++ b/src/main/java/network/palace/show/generator/ShowGenerator.java
@@ -5,13 +5,17 @@
import com.google.gson.JsonObject;
import network.palace.show.ShowPlugin;
import network.palace.show.actions.FakeBlockAction;
-import org.bukkit.Bukkit;
+import org.apache.commons.lang.StringUtils;
import org.bukkit.Location;
import org.bukkit.Material;
+import org.bukkit.block.BlockFace;
+import org.bukkit.block.data.BlockData;
+import org.bukkit.block.data.type.*;
import org.json.JSONObject;
import java.util.HashMap;
import java.util.List;
+import java.util.Objects;
import java.util.UUID;
public class ShowGenerator {
@@ -54,11 +58,13 @@ public String postGist(List actions, String name) throws Except
for (FakeBlockAction action : actions) {
Location loc = action.getLoc();
double time = ((int) ((action.getTime() / 1000.0) * 10)) / 10.0;
- Material mat = action.getMat();
+ Material mat = action.getData().getMaterial();
int x = loc.getBlockX();
int y = loc.getBlockY();
int z = loc.getBlockZ();
- String actionString = time + "\u0009" + "FakeBlock" + "\u0009" + mat.toString() + "\u0009" + x + "," + y + "," + z;
+ String actionString = time + "\u0009" + "FakeBlock" + "\u0009" + mat + "\u0009" + x + "," + y + "," + z;
+ // If data, add to end
+ if (!Objects.equals(getBlockDataString(action.getData()), "")) actionString += "\u0009" + getBlockDataString(action.getData());
content.append(actionString).append("\n");
}
@@ -68,8 +74,6 @@ public String postGist(List actions, String name) throws Except
obj.add("files", files);
- System.out.println("SENDING (" + actions.size() + "): " + obj.toString());
-
Request req = webb.post("https://api.github.com/gists")
.header("Accept", "application/vnd.github.v3+json")
.header("Authorization", "token " + ACCESS_TOKEN)
@@ -80,4 +84,73 @@ public String postGist(List actions, String name) throws Except
return response.getString("html_url");
}
+
+ /*
+ Whole Line:
+ 0 1 2 3 4
+ TIME ACTION MATERIAL COORDS BLOCK_DATA
+ 3.0 FakeBlock AIR 14,5,1 STAIRS:DATA:DATA
+ .
+ .
+ Block Data:
+ 0 1 2 3 4
+ STAIRS : HALF : FACING : SHAPE -> STAIRS:BOTTOM/TOP:NORTH/EAST/SOUTH/WEST:INNER_LEFT/...
+ FENCE : FACE -> FENCE:NORTH/EAST/SOUTH/WEST ex) FENCE:NORTH:SOUTH
+ GLASS_PANE : FACE -> GLASS_PANE:NORTH/EAST/SOUTH/WEST ex) GLASS_PANE:NORTH:SOUTH
+ TRAPDOOR : HALF : FACING : OPEN -> TRAPDOOR:BOTTOM/TOP:NORTH/EAST/SOUTH/WEST:TRUE/FALSE
+ DOOR : HALF : FACING : OPEN : HINGE -> DOOR:BOTTOM/TOP:NORTH/EAST/SOUTH/WEST:TRUE/FALSE:LEFT/RIGHT
+ SLAB : TYPE -> SLAB:TOP/BOTTOM/DOUBLE
+ */
+ private String getBlockDataString(BlockData blockData) {
+ StringBuilder dataString = new StringBuilder();
+ if (blockData instanceof Stairs) {
+ String half = ((Stairs) blockData).getHalf().toString();
+ String facing = ((Stairs) blockData).getFacing().toString();
+ String shape = ((Stairs) blockData).getShape().toString();
+ dataString = new StringBuilder("STAIRS," + half.toUpperCase() + "," + facing.toUpperCase() + "," + shape.toUpperCase());
+
+ } else if (blockData instanceof Fence) {
+ if (((Fence) blockData).getFaces().isEmpty()) return "";
+ dataString = new StringBuilder("FENCE,");
+
+ // True for included
+ for (BlockFace face : ((Fence) blockData).getFaces()) {
+ dataString.append(face.toString().toUpperCase()).append(":");
+ }
+
+ // Remove last character
+ dataString = new StringBuilder(StringUtils.chop(dataString.toString()));
+
+ } else if (blockData instanceof GlassPane) {
+ if (((GlassPane) blockData).getFaces().isEmpty()) return "";
+ dataString = new StringBuilder("GLASS_PANE,");
+
+ // True for included
+ for (BlockFace face : ((GlassPane) blockData).getFaces()) {
+ dataString.append(face.toString().toUpperCase()).append(":");
+ }
+
+ // Remove last character
+ dataString = new StringBuilder(StringUtils.chop(dataString.toString()));
+
+ } else if (blockData instanceof TrapDoor) {
+ String half = ((TrapDoor) blockData).getHalf().toString();
+ String facing = ((TrapDoor) blockData).getFacing().toString();
+ String open = String.valueOf(((TrapDoor) blockData).isOpen());
+ dataString = new StringBuilder("TRAPDOOR," + half.toUpperCase() + "," + facing.toUpperCase() + "," + open.toUpperCase());
+
+ } else if (blockData instanceof Door) {
+ String half = ((Door) blockData).getHalf().toString();
+ String facing = ((Door) blockData).getFacing().toString();
+ String open = String.valueOf(((Door) blockData).isOpen());
+ String hinge = ((Door) blockData).getHinge().toString();
+ dataString = new StringBuilder("DOOR," + half.toUpperCase() + "," + facing.toUpperCase() + "," + open.toUpperCase() + "," + hinge.toUpperCase());
+
+ } else if (blockData instanceof Slab) {
+ String type = ((Slab) blockData).getType().toString();
+ dataString = new StringBuilder("SLAB," + type.toUpperCase());
+ }
+
+ return dataString.toString();
+ }
}
diff --git a/src/main/java/network/palace/show/handlers/BlockData.java b/src/main/java/network/palace/show/handlers/BlockData.java
deleted file mode 100644
index f9e184f..0000000
--- a/src/main/java/network/palace/show/handlers/BlockData.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package network.palace.show.handlers;
-
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-
-/**
- * @author Marc
- * @since 8/2/17
- */
-@AllArgsConstructor
-@Getter
-public class BlockData {
- private int id;
- private byte data;
-}
diff --git a/src/main/java/network/palace/show/utils/ShowUtil.java b/src/main/java/network/palace/show/utils/ShowUtil.java
index 9ffda0c..8a72373 100644
--- a/src/main/java/network/palace/show/utils/ShowUtil.java
+++ b/src/main/java/network/palace/show/utils/ShowUtil.java
@@ -2,20 +2,21 @@
import network.palace.show.Show;
import network.palace.show.ShowPlugin;
+import network.palace.show.enums.BlockDataType;
import network.palace.show.exceptions.ShowParseException;
-import network.palace.show.handlers.BlockData;
import network.palace.show.handlers.TitleType;
import network.palace.show.sequence.ShowSequence;
import org.bukkit.*;
+import org.bukkit.block.BlockFace;
+import org.bukkit.block.data.Bisected;
+import org.bukkit.block.data.BlockData;
+import org.bukkit.block.data.type.*;
import org.bukkit.material.MaterialData;
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;
import java.text.DecimalFormat;
-import java.util.ArrayList;
-import java.util.EnumSet;
-import java.util.LinkedList;
-import java.util.List;
+import java.util.*;
/**
* @author Marc
@@ -23,25 +24,90 @@
*/
public class ShowUtil {
+ /*
+ Whole Line:
+ 0 1 2 3 4
+ TIME ACTION MATERIAL COORDS BLOCK_DATA
+ 3.0 FakeBlock AIR 14,5,1 STAIRS:DATA:DATA
+ .
+ .
+ Block Data:
+ 0 1 2 3 4
+ STAIRS : HALF : FACING : SHAPE -> STAIRS:BOTTOM/TOP:NORTH/EAST/SOUTH/WEST:INNER_LEFT/...
+ FENCE : FACE -> FENCE:NORTH/EAST/SOUTH/WEST ex) FENCE:NORTH:SOUTH
+ GLASS_PANE : FACE -> GLASS_PANE:NORTH/EAST/SOUTH/WEST ex) GLASS_PANE:NORTH:SOUTH
+ TRAPDOOR : HALF : FACING : OPEN -> TRAPDOOR:BOTTOM/TOP:NORTH/EAST/SOUTH/WEST:TRUE/FALSE
+ DOOR : HALF : FACING : OPEN : HINGE -> DOOR:BOTTOM/TOP:NORTH/EAST/SOUTH/WEST:TRUE/FALSE:LEFT/RIGHT
+ SLAB : TYPE -> SLAB:TOP/BOTTOM/DOUBLE
+ */
public static BlockData getBlockData(String s) throws ShowParseException {
- String[] list;
- if (s.contains(":")) {
- list = s.split(":");
- } else {
- list = null;
- }
try {
- int id;
- byte data;
- if (list != null) {
- id = Integer.parseInt(list[0]);
- data = Byte.parseByte(list[1]);
- } else {
- id = Integer.parseInt(s);
- data = (byte) 0;
+ String[] params = s.split("\u0009");
+ BlockData blockData = Material.valueOf(params[2].toUpperCase()).createBlockData();
+
+ // Block data string params, or null if none
+ if (params.length >= 5) {
+ String[] dataParams = params[4].split(",");
+ BlockDataType type = BlockDataType.valueOf(dataParams[0].toUpperCase());
+
+ switch (type) {
+ case STAIRS: {
+ ((Stairs) blockData).setHalf(Bisected.Half.valueOf(dataParams[1].toUpperCase()));
+ ((Stairs) blockData).setFacing(BlockFace.valueOf(dataParams[2].toUpperCase()));
+ ((Stairs) blockData).setShape(Stairs.Shape.valueOf(dataParams[3].toUpperCase()));
+ break;
+ }
+ case FENCE: {
+ String[] faces = dataParams[1].split(":");
+
+ ((Fence) blockData).setFace(BlockFace.valueOf(faces[0].toUpperCase()), true);
+ if (faces.length >= 2) ((Fence) blockData).setFace(BlockFace.valueOf(faces[1].toUpperCase()), true);
+ if (faces.length >= 3) ((Fence) blockData).setFace(BlockFace.valueOf(faces[2].toUpperCase()), true);
+ if (faces.length >= 4) ((Fence) blockData).setFace(BlockFace.valueOf(faces[3].toUpperCase()), true);
+ break;
+ }
+ case GLASS_PANE: {
+ // Plain glass-pane uses the fence block-data not the glass-pane because spaghetti
+ if (blockData.getMaterial().equals(Material.GLASS_PANE)) {
+ String[] faces = dataParams[1].split(":");
+
+ ((Fence) blockData).setFace(BlockFace.valueOf(faces[0].toUpperCase()), true);
+ if (faces.length >= 2) ((Fence) blockData).setFace(BlockFace.valueOf(faces[1].toUpperCase()), true);
+ if (faces.length >= 3) ((Fence) blockData).setFace(BlockFace.valueOf(faces[2].toUpperCase()), true);
+ if (faces.length >= 4) ((Fence) blockData).setFace(BlockFace.valueOf(faces[3].toUpperCase()), true);
+
+ } else {
+ String[] faces = dataParams[1].split(":");
+
+ ((GlassPane) blockData).setFace(BlockFace.valueOf(faces[0].toUpperCase()), true);
+ if (faces.length >= 2) ((GlassPane) blockData).setFace(BlockFace.valueOf(faces[1].toUpperCase()), true);
+ if (faces.length >= 3) ((GlassPane) blockData).setFace(BlockFace.valueOf(faces[2].toUpperCase()), true);
+ if (faces.length >= 4) ((GlassPane) blockData).setFace(BlockFace.valueOf(faces[3].toUpperCase()), true);
+ }
+ break;
+ }
+ case TRAPDOOR: {
+ ((TrapDoor) blockData).setHalf(Bisected.Half.valueOf(dataParams[1].toUpperCase()));
+ ((TrapDoor) blockData).setFacing(BlockFace.valueOf(dataParams[2].toUpperCase()));
+ ((TrapDoor) blockData).setOpen(Boolean.parseBoolean(dataParams[3].toUpperCase()));
+ break;
+ }
+ case DOOR: {
+ ((Door) blockData).setHalf(Bisected.Half.valueOf(dataParams[1].toUpperCase()));
+ ((Door) blockData).setFacing(BlockFace.valueOf(dataParams[2].toUpperCase()));
+ ((Door) blockData).setOpen(Boolean.parseBoolean(dataParams[3].toUpperCase()));
+ ((Door) blockData).setHinge(Door.Hinge.valueOf(dataParams[4].toUpperCase()));
+ break;
+ } case SLAB: {
+ ((Slab) blockData).setType(Slab.Type.valueOf(dataParams[1].toUpperCase()));
+ break;
+ }
+ }
}
- return new BlockData(id, data);
- } catch (Exception ignored) {
+
+ return blockData;
+ } catch (Exception e) {
+ e.printStackTrace();
throw new ShowParseException("Invalid Block ID or Block data");
}
}