Skip to content

Commit 99fbaec

Browse files
Update schematics with iron chains
1 parent f439c9b commit 99fbaec

File tree

13 files changed

+66
-4
lines changed

13 files changed

+66
-4
lines changed
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
package me.eccentric_nz.TARDIS.commands.dev;
2+
3+
import com.google.gson.JsonArray;
4+
import com.google.gson.JsonObject;
5+
import me.eccentric_nz.TARDIS.TARDIS;
6+
import me.eccentric_nz.TARDIS.enumeration.Consoles;
7+
import me.eccentric_nz.TARDIS.enumeration.TardisModule;
8+
import me.eccentric_nz.TARDIS.schematic.TARDISSchematicGZip;
9+
10+
public class TARDISChainCommand {
11+
12+
private final TARDIS plugin;
13+
14+
public TARDISChainCommand(TARDIS plugin) {
15+
this.plugin = plugin;
16+
}
17+
18+
public boolean checkSchematics() {
19+
for (String fileName : Consoles.getBY_PERMS().keySet()) {
20+
// get JSON
21+
JsonObject obj = TARDISSchematicGZip.getObject(plugin, "consoles", fileName, false);
22+
if (obj == null) {
23+
plugin.getMessenger().message(plugin.getConsole(), TardisModule.TARDIS, "The supplied file [" + fileName + ".tschm] is not a TARDIS JSON schematic!");
24+
return false;
25+
} else {
26+
// get dimensions
27+
JsonObject dimensions = obj.get("dimensions").getAsJsonObject();
28+
int h = dimensions.get("height").getAsInt();
29+
int w = dimensions.get("width").getAsInt();
30+
int l = dimensions.get("length").getAsInt();
31+
// get input array
32+
JsonArray arr = obj.get("input").getAsJsonArray();
33+
// loop like crazy
34+
for (int level = 0; level < h; level++) {
35+
JsonArray floor = arr.get(level).getAsJsonArray();
36+
for (int row = 0; row < w; row++) {
37+
JsonArray r = floor.get(row).getAsJsonArray();
38+
for (int col = 0; col < l; col++) {
39+
JsonObject c = r.get(col).getAsJsonObject();
40+
validateBlockData(c.get("data").getAsString(), fileName);
41+
}
42+
}
43+
}
44+
}
45+
}
46+
return true;
47+
}
48+
49+
private void validateBlockData(String data, String fileName) {
50+
try {
51+
plugin.getServer().createBlockData(data);
52+
} catch (IllegalArgumentException e) {
53+
plugin.getMessenger().message(plugin.getConsole(), TardisModule.SEVERE, "The file [" + fileName + ".tschm] contains invalid block data!");
54+
plugin.getMessenger().sendWithColours(plugin.getConsole(), TardisModule.SEVERE, "The invalid data was: ", "#FFFFFF", data, "#00AAAA");
55+
}
56+
}
57+
}

src/main/java/me/eccentric_nz/TARDIS/commands/dev/TARDISDevCommand.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ public class TARDISDevCommand implements CommandExecutor {
8080
private final Set<String> firstsStr = Sets.newHashSet(
8181
"add_regions", "advancements", "armour",
8282
"biome", "box", "brushable",
83-
"chunks", "chunky", "circuit", "component",
83+
"chain", "chunks", "chunky", "circuit", "component",
8484
"dalek", "debug", "dialog", "dismount", "displayitem",
8585
"effect", "empty",
8686
"frame", "furnace",
@@ -124,6 +124,9 @@ public boolean onCommand(CommandSender sender, Command cmd, String label, String
124124
case "biome" -> {
125125
return new TARDISBiomeCommand().reset(sender);
126126
}
127+
case "chain" -> {
128+
return new TARDISChainCommand(plugin).checkSchematics();
129+
}
127130
case "dalek" -> {
128131
if (sender instanceof Player player) {
129132
Location eyeLocation = player.getTargetBlock(null, 16).getLocation();

src/main/java/me/eccentric_nz/TARDIS/commands/dev/TARDISDevTabComplete.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ public class TARDISDevTabComplete extends TARDISCompleter implements TabComplete
4242
private final ImmutableList<String> ROOT_SUBS = ImmutableList.of(
4343
"add_regions", "advancements", "armour",
4444
"biome", "box", "brushable",
45-
"chunks", "chunky", "circuit", "component",
45+
"chain", "chunks", "chunky", "circuit", "component",
4646
"dalek", "debug", "dialog", "dismount", "displayitem",
4747
"effect", "empty",
4848
"frame", "furnace",

src/main/java/me/eccentric_nz/TARDIS/files/TARDISRoomMap.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,9 @@ private String getMaterialAsString(String data, String fileName) {
135135
plugin.getMessenger().sendWithColours(plugin.getConsole(), TardisModule.SEVERE, "The invalid data was: ", "#FFFFFF", data, "#00AAAA");
136136
plugin.getMessenger().message(plugin.getConsole(), TardisModule.SEVERE, "Please remake the room schematic!");
137137
// invalid data string - could be legacy material or levelled cauldron
138-
if (data.contains("cauldron[level")) {
138+
if (data.contains("chain[axis")) {
139+
bid = "IRON_CHAIN";
140+
} else if (data.contains("cauldron[level")) {
139141
bid = "WATER_CAULDRON";
140142
} else {
141143
// legacy lookup
2 Bytes
Binary file not shown.
93 Bytes
Binary file not shown.
2 Bytes
Binary file not shown.
-5 Bytes
Binary file not shown.
5 Bytes
Binary file not shown.
11 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)