forked from LogBlock/LogBlock
Upgrade config, chestaccess and kills too
This commit is contained in:
@ -3,10 +3,14 @@ package de.diddiz.LogBlock;
|
||||
import de.diddiz.LogBlock.config.Config;
|
||||
import de.diddiz.LogBlock.config.WorldConfig;
|
||||
import de.diddiz.util.UUIDFetcher;
|
||||
import de.diddiz.util.Utils;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.data.BlockData;
|
||||
import org.bukkit.configuration.ConfigurationSection;
|
||||
import org.bukkit.configuration.file.YamlConfiguration;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import java.io.BufferedInputStream;
|
||||
import java.io.BufferedReader;
|
||||
@ -23,6 +27,7 @@ import static de.diddiz.LogBlock.config.Config.isLogging;
|
||||
import static de.diddiz.util.BukkitUtils.friendlyWorldname;
|
||||
import de.diddiz.util.ComparableVersion;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import static org.bukkit.Bukkit.getLogger;
|
||||
|
||||
class Updater {
|
||||
@ -413,13 +418,14 @@ class Updater {
|
||||
if (configVersion.compareTo(new ComparableVersion("1.13.0")) < 0) {
|
||||
getLogger().info("Updating tables to 1.13.0 ...");
|
||||
try {
|
||||
MaterialUpdater materialUpdater = null;
|
||||
checkTables(); // we need to create the tables first
|
||||
MaterialUpdater1_13 materialUpdater = new MaterialUpdater1_13(logblock);
|
||||
getLogger().info("Convertig BlockId to BlockData. This can take a while ...");
|
||||
final Connection conn = logblock.getConnection();
|
||||
conn.setAutoCommit(false);
|
||||
final Statement st = conn.createStatement();
|
||||
for (final WorldConfig wcfg : getLoggedWorlds()) {
|
||||
getLogger().info("Processing world " + wcfg.world + "...");
|
||||
getLogger().info("Processing block changes...");
|
||||
boolean hadRow = true;
|
||||
int rowsToConvert = 0;
|
||||
int done = 0;
|
||||
@ -429,75 +435,187 @@ class Updater {
|
||||
rowsToConvert = rs.getInt(1);
|
||||
getLogger().info("Converting " + rowsToConvert + " entries in " + wcfg.table);
|
||||
}
|
||||
rs.close();
|
||||
|
||||
PreparedStatement deleteStatement = conn.prepareStatement("DELETE FROM `" + wcfg.table + "` WHERE id = ?");
|
||||
PreparedStatement insertStatement = conn.prepareStatement("INSERT INTO `" + wcfg.table + "-blocks` (id, date, playerid, replaced, replacedData, type, typeData, x, y, z) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", Statement.RETURN_GENERATED_KEYS);
|
||||
|
||||
while (hadRow) {
|
||||
hadRow = false;
|
||||
ResultSet entries = st.executeQuery("SELECT id, date, playerid, replaced, type, data, x, y, z FROM `" + wcfg.table + "` ORDER BY id ASC LIMIT 10000");
|
||||
while (entries.next()) {
|
||||
hadRow = true;
|
||||
int id = entries.getInt("id");
|
||||
Timestamp date = entries.getTimestamp("date");
|
||||
int playerid = entries.getInt("playerid");
|
||||
int replaced = entries.getInt("replaced");
|
||||
int type = entries.getInt("type");
|
||||
int data = entries.getInt("data");
|
||||
int x = entries.getInt("x");
|
||||
int y = entries.getInt("y");
|
||||
int z = entries.getInt("z");
|
||||
if (data == 16) {
|
||||
data = 0;
|
||||
}
|
||||
|
||||
try {
|
||||
String replacedBlockData = materialUpdater.getBlockData(replaced, data).getAsString();
|
||||
String setBlockData = materialUpdater.getBlockData(type, data).getAsString();
|
||||
|
||||
int newReplacedId = MaterialConverter.getOrAddMaterialId(replacedBlockData);
|
||||
int newReplacedData = MaterialConverter.getOrAddBlockStateId(replacedBlockData);
|
||||
|
||||
int newSetId = MaterialConverter.getOrAddMaterialId(setBlockData);
|
||||
int newSetData = MaterialConverter.getOrAddBlockStateId(setBlockData);
|
||||
|
||||
insertStatement.setInt(1, id);
|
||||
insertStatement.setTimestamp(2, date);
|
||||
insertStatement.setInt(3, playerid);
|
||||
insertStatement.setInt(4, newReplacedId);
|
||||
insertStatement.setInt(5, newReplacedData);
|
||||
insertStatement.setInt(6, newSetId);
|
||||
insertStatement.setInt(7, newSetData);
|
||||
insertStatement.setInt(8, x);
|
||||
insertStatement.setInt(9, y);
|
||||
insertStatement.setInt(10, z);
|
||||
insertStatement.addBatch();
|
||||
} catch (Exception e) {
|
||||
getLogger().info("Exception in entry " + id + " (" + replaced + ":" + data + "->" + type + ":" + data + "): " + e.getMessage());
|
||||
}
|
||||
deleteStatement.setInt(1, id);
|
||||
deleteStatement.addBatch();
|
||||
|
||||
done++;
|
||||
}
|
||||
entries.close();
|
||||
if (hadRow) {
|
||||
insertStatement.executeBatch();
|
||||
deleteStatement.executeBatch();
|
||||
}
|
||||
conn.commit();
|
||||
logblock.getConsumer().run(); // force a consumer run to save new material mappings
|
||||
getLogger().info("Done: " + done + "/" + rowsToConvert + " (" + (rowsToConvert > 0 ? (done * 100 / rowsToConvert) : 100) + "%)");
|
||||
}
|
||||
insertStatement.close();
|
||||
deleteStatement.close();
|
||||
} catch (SQLException e) {
|
||||
getLogger().info("Could not convert " + wcfg.table + ": " + e.getMessage());
|
||||
continue;
|
||||
}
|
||||
|
||||
PreparedStatement deleteStatement = conn.prepareStatement("DELETE FROM `" + wcfg.table + "` WHERE id = ?");
|
||||
PreparedStatement insertStatement = conn.prepareStatement("INSERT INTO `" + wcfg.table + "-blocks` (id, date, playerid, replaced, replacedData, type, typeData, x, y, z) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", Statement.RETURN_GENERATED_KEYS);
|
||||
|
||||
while (hadRow) {
|
||||
hadRow = false;
|
||||
ResultSet entries = st.executeQuery("SELECT id, date, playerid, replaced, type, data, x, y, z FROM `" + wcfg.table + "` ORDER BY id ASC LIMIT 10000");
|
||||
while (entries.next()) {
|
||||
hadRow = true;
|
||||
int id = entries.getInt("id");
|
||||
Timestamp date = entries.getTimestamp("date");
|
||||
int playerid = entries.getInt("playerid");
|
||||
int replaced = entries.getInt("replaced");
|
||||
int type = entries.getInt("type");
|
||||
int data = entries.getInt("data");
|
||||
int x = entries.getInt("x");
|
||||
int y = entries.getInt("y");
|
||||
int z = entries.getInt("z");
|
||||
if (data == 16) {
|
||||
data = 0;
|
||||
}
|
||||
|
||||
if (materialUpdater == null) {
|
||||
materialUpdater = new MaterialUpdater(logblock);
|
||||
}
|
||||
try {
|
||||
String replacedBlockData = materialUpdater.getBlockData(replaced, data).getAsString();
|
||||
String setBlockData = materialUpdater.getBlockData(type, data).getAsString();
|
||||
|
||||
int newReplacedId = MaterialConverter.getOrAddMaterialId(replacedBlockData);
|
||||
int newReplacedData = MaterialConverter.getOrAddBlockStateId(replacedBlockData);
|
||||
|
||||
int newSetId = MaterialConverter.getOrAddMaterialId(setBlockData);
|
||||
int newSetData = MaterialConverter.getOrAddBlockStateId(setBlockData);
|
||||
|
||||
insertStatement.setInt(1, id);
|
||||
insertStatement.setTimestamp(2, date);
|
||||
insertStatement.setInt(3, playerid);
|
||||
insertStatement.setInt(4, newReplacedId);
|
||||
insertStatement.setInt(5, newReplacedData);
|
||||
insertStatement.setInt(6, newSetId);
|
||||
insertStatement.setInt(7, newSetData);
|
||||
insertStatement.setInt(8, x);
|
||||
insertStatement.setInt(9, y);
|
||||
insertStatement.setInt(10, z);
|
||||
insertStatement.addBatch();
|
||||
} catch (Exception e) {
|
||||
getLogger().info("Exception in entry " + id + " (" + replaced + ":" + data + "->" + type + ":" + data + "): " + e.getMessage());
|
||||
}
|
||||
deleteStatement.setInt(1, id);
|
||||
deleteStatement.addBatch();
|
||||
|
||||
done++;
|
||||
getLogger().info("Processing chests...");
|
||||
rowsToConvert = 0;
|
||||
done = 0;
|
||||
try {
|
||||
ResultSet rs = st.executeQuery("SELECT count(*) as rowcount FROM `" + wcfg.table + "-chest`");
|
||||
if (rs.next()) {
|
||||
rowsToConvert = rs.getInt(1);
|
||||
getLogger().info("Converting " + rowsToConvert + " entries in " + wcfg.table + "-chest");
|
||||
}
|
||||
if (hadRow) {
|
||||
insertStatement.executeBatch();
|
||||
deleteStatement.executeBatch();
|
||||
rs.close();
|
||||
|
||||
PreparedStatement insertChestData = conn.prepareStatement("INSERT INTO `" + wcfg.table + "-chestdata` (id, item, itemremove) VALUES (?, ?, ?)");
|
||||
PreparedStatement deleteChest = conn.prepareStatement("DELETE FROM `" + wcfg.table + "-chest` WHERE id = ?");
|
||||
while (true) {
|
||||
rs = st.executeQuery("SELECT id, itemtype, itemamount, itemdata FROM `" + wcfg.table + "-chest` ORDER BY id ASC LIMIT 10000");
|
||||
boolean anyRow = false;
|
||||
while (rs.next()) {
|
||||
anyRow = true;
|
||||
int id = rs.getInt("id");
|
||||
int itemtype = rs.getInt("itemtype");
|
||||
int itemdata = rs.getInt("itemdata");
|
||||
int amount = rs.getInt("itemamount");
|
||||
Material weaponMaterial = materialUpdater.getMaterial(itemtype, itemdata);
|
||||
if (weaponMaterial == null) {
|
||||
weaponMaterial = Material.AIR;
|
||||
}
|
||||
ItemStack stack = weaponMaterial.getMaxDurability() > 0 ? new ItemStack(weaponMaterial, Math.abs(amount), (short)itemdata) : new ItemStack(weaponMaterial, Math.abs(amount));
|
||||
insertChestData.setInt(1, id);
|
||||
insertChestData.setBytes(2, Utils.saveItemStack(stack));
|
||||
insertChestData.setInt(3, amount >= 0 ? 0 : 1);
|
||||
insertChestData.addBatch();
|
||||
|
||||
deleteChest.setInt(1, id);
|
||||
deleteChest.addBatch();
|
||||
done++;
|
||||
}
|
||||
rs.close();
|
||||
if (!anyRow) {
|
||||
break;
|
||||
}
|
||||
insertChestData.executeBatch();
|
||||
deleteChest.executeBatch();
|
||||
conn.commit();
|
||||
getLogger().info("Done: " + done + "/" + rowsToConvert + " (" + (rowsToConvert > 0 ? (done * 100 / rowsToConvert) : 100) + "%)");
|
||||
}
|
||||
insertChestData.close();
|
||||
deleteChest.close();
|
||||
} catch (SQLException e) {
|
||||
getLogger().info("Could not convert " + wcfg.table + "-chest: " + e.getMessage());
|
||||
}
|
||||
|
||||
if (wcfg.isLogging(Logging.KILL)) {
|
||||
getLogger().info("Processing kills...");
|
||||
rowsToConvert = 0;
|
||||
done = 0;
|
||||
try {
|
||||
ResultSet rs = st.executeQuery("SELECT count(*) as rowcount FROM `" + wcfg.table + "-kills`");
|
||||
if (rs.next()) {
|
||||
rowsToConvert = rs.getInt(1);
|
||||
getLogger().info("Converting " + rowsToConvert + " entries in " + wcfg.table + "-kills");
|
||||
}
|
||||
rs.close();
|
||||
|
||||
PreparedStatement updateWeaponStatement = conn.prepareStatement("UPDATE `" + wcfg.table + "`-kills SET weapon = ? WHERE id = ?");
|
||||
for (int start = 0;; start += 10000) {
|
||||
rs = st.executeQuery("SELECT id, weapon FROM `" + wcfg.table + "-kills` ORDER BY id ASC LIMIT " + start + ",10000");
|
||||
boolean anyUpdate = false;
|
||||
boolean anyRow = false;
|
||||
while (rs.next()) {
|
||||
anyRow = true;
|
||||
int id = rs.getInt("id");
|
||||
int weapon = rs.getInt("weapon");
|
||||
Material weaponMaterial = materialUpdater.getMaterial(weapon, 0);
|
||||
if (weaponMaterial == null) {
|
||||
weaponMaterial = Material.AIR;
|
||||
}
|
||||
int newWeapon = MaterialConverter.getOrAddMaterialId(weaponMaterial.getKey());
|
||||
if (newWeapon != weapon) {
|
||||
anyUpdate = true;
|
||||
updateWeaponStatement.setInt(1, newWeapon);
|
||||
updateWeaponStatement.setInt(2, id);
|
||||
updateWeaponStatement.addBatch();
|
||||
}
|
||||
done++;
|
||||
}
|
||||
rs.close();
|
||||
if (anyUpdate) {
|
||||
updateWeaponStatement.executeBatch();
|
||||
conn.commit();
|
||||
logblock.getConsumer().run(); // force a consumer run to save new material mappings
|
||||
}
|
||||
getLogger().info("Done: " + done + "/" + rowsToConvert + " (" + (rowsToConvert > 0 ? (done * 100 / rowsToConvert) : 100) + "%)");
|
||||
if (!anyRow) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
updateWeaponStatement.close();
|
||||
} catch (SQLException e) {
|
||||
getLogger().info("Could not convert " + wcfg.table + "-kills: " + e.getMessage());
|
||||
}
|
||||
conn.commit();
|
||||
logblock.getConsumer().run(); // force a consumer run
|
||||
getLogger().info(done + "/" + rowsToConvert);
|
||||
}
|
||||
}
|
||||
st.close();
|
||||
conn.close();
|
||||
|
||||
getLogger().info("Updating config to 1.13.0 ...");
|
||||
config.set("logging.hiddenBlocks", materialUpdater.convertMaterials(config.getStringList("logging.hiddenBlocks")));
|
||||
config.set("rollback.dontRollback", materialUpdater.convertMaterials(config.getStringList("rollback.dontRollback")));
|
||||
config.set("rollback.replaceAnyway", materialUpdater.convertMaterials(config.getStringList("rollback.replaceAnyway")));
|
||||
final ConfigurationSection toolsSec = config.getConfigurationSection("tools");
|
||||
for (final String toolName : toolsSec.getKeys(false)) {
|
||||
final ConfigurationSection tSec = toolsSec.getConfigurationSection(toolName);
|
||||
tSec.set("item", materialUpdater.convertMaterial(tSec.getString("item", "OAK_LOG")));
|
||||
}
|
||||
} catch (final SQLException | IOException ex) {
|
||||
Bukkit.getLogger().log(Level.SEVERE, "[Updater] Error: ", ex);
|
||||
return false;
|
||||
@ -597,40 +715,141 @@ class Updater {
|
||||
}
|
||||
}
|
||||
|
||||
public static class MaterialUpdater {
|
||||
public static class MaterialUpdater1_13 {
|
||||
BlockData[][] blockDataMapping;
|
||||
public MaterialUpdater(LogBlock plugin) throws IOException {
|
||||
Material[][] itemMapping = new Material[10][];
|
||||
public MaterialUpdater1_13(LogBlock plugin) throws IOException {
|
||||
blockDataMapping = new BlockData[256][16];
|
||||
JarFile file = new JarFile(plugin.getFile());
|
||||
BufferedReader reader = new BufferedReader(new InputStreamReader(new BufferedInputStream(file.getInputStream(file.getJarEntry("blockdata.txt"))), "UTF-8"));
|
||||
while (true) {
|
||||
String line = reader.readLine();
|
||||
if (line == null) {
|
||||
break;
|
||||
}
|
||||
int splitter1 = line.indexOf(":");
|
||||
int splitter2 = line.indexOf(",");
|
||||
if (splitter1 >= 0 && splitter2 >= 0) {
|
||||
int blockid = Integer.parseInt(line.substring(0, splitter1));
|
||||
int blockdata = Integer.parseInt(line.substring(splitter1 + 1, splitter2));
|
||||
BlockData newBlockData = Bukkit.createBlockData(line.substring(splitter2 + 1));
|
||||
try (JarFile file = new JarFile(plugin.getFile())) {
|
||||
BufferedReader reader = new BufferedReader(new InputStreamReader(new BufferedInputStream(file.getInputStream(file.getJarEntry("blockdata.txt"))), "UTF-8"));
|
||||
while (true) {
|
||||
String line = reader.readLine();
|
||||
if (line == null) {
|
||||
break;
|
||||
}
|
||||
int splitter1 = line.indexOf(":");
|
||||
int splitter2 = line.indexOf(",");
|
||||
if (splitter1 >= 0 && splitter2 >= 0) {
|
||||
int blockid = Integer.parseInt(line.substring(0, splitter1));
|
||||
int blockdata = Integer.parseInt(line.substring(splitter1 + 1, splitter2));
|
||||
BlockData newBlockData = Bukkit.createBlockData(line.substring(splitter2 + 1));
|
||||
|
||||
if (blockdata == 0) {
|
||||
for (int i = 0; i < 16; i++) {
|
||||
if (blockDataMapping[blockid][i] == null) {
|
||||
blockDataMapping[blockid][i] = newBlockData;
|
||||
if (blockdata == 0) {
|
||||
for (int i = 0; i < 16; i++) {
|
||||
if (blockDataMapping[blockid][i] == null) {
|
||||
blockDataMapping[blockid][i] = newBlockData;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
blockDataMapping[blockid][blockdata] = newBlockData;
|
||||
}
|
||||
} else {
|
||||
blockDataMapping[blockid][blockdata] = newBlockData;
|
||||
}
|
||||
}
|
||||
reader.close();
|
||||
|
||||
HashMap<String, Material> materialKeysToMaterial = new HashMap<>();
|
||||
for (Material material : Material.values()) {
|
||||
materialKeysToMaterial.put(material.getKey().toString(), material);
|
||||
}
|
||||
|
||||
reader = new BufferedReader(new InputStreamReader(new BufferedInputStream(file.getInputStream(file.getJarEntry("itemdata.txt"))), "UTF-8"));
|
||||
while (true) {
|
||||
String line = reader.readLine();
|
||||
if (line == null) {
|
||||
break;
|
||||
}
|
||||
int splitter1 = line.indexOf(":");
|
||||
int splitter2 = line.indexOf(",");
|
||||
if (splitter1 >= 0 && splitter2 >= 0) {
|
||||
int itemid = Integer.parseInt(line.substring(0, splitter1));
|
||||
int itemdata = Integer.parseInt(line.substring(splitter1 + 1, splitter2));
|
||||
Material newMaterial = materialKeysToMaterial.get(line.substring(splitter2 + 1));
|
||||
if (newMaterial == null) {
|
||||
throw new IOException("Unknown item: " + line.substring(splitter2 + 1));
|
||||
}
|
||||
if (itemid >= itemMapping.length) {
|
||||
itemMapping = Arrays.copyOf(itemMapping, Math.max(itemMapping.length * 3 / 2, itemid + 1));
|
||||
}
|
||||
|
||||
Material[] itemValues = itemMapping[itemid];
|
||||
if (itemValues == null) {
|
||||
itemValues = new Material[itemdata + 1];
|
||||
itemMapping[itemid] = itemValues;
|
||||
} else if (itemValues.length <= itemdata) {
|
||||
itemValues = Arrays.copyOf(itemValues, itemdata + 1);
|
||||
itemMapping[itemid] = itemValues;
|
||||
}
|
||||
itemValues[itemdata] = newMaterial;
|
||||
}
|
||||
}
|
||||
reader.close();
|
||||
}
|
||||
file.close();
|
||||
}
|
||||
|
||||
public BlockData getBlockData(int id, int data) {
|
||||
return id >= 0 && id < 256 && data >= 0 && data < 16 ? blockDataMapping[id][data] : null;
|
||||
}
|
||||
|
||||
public Material getMaterial(int id, int data) {
|
||||
Material[] materials = id >= 0 && id < itemMapping.length ? itemMapping[id] : null;
|
||||
if (materials != null && materials.length > 0) {
|
||||
if (materials[0] != null && materials[0].getMaxDurability() == 0 && data >= 0 && data < materials.length && materials[data] != null) {
|
||||
return materials[data];
|
||||
}
|
||||
return materials[0];
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public Material getMaterial(String id) {
|
||||
int item = 0;
|
||||
int data = 0;
|
||||
int seperator = id.indexOf(':');
|
||||
if (seperator < 0) {
|
||||
item = Integer.parseInt(id);
|
||||
} else {
|
||||
item = Integer.parseInt(id.substring(0, seperator));
|
||||
data = Integer.parseInt(id.substring(seperator + 1));
|
||||
}
|
||||
return getMaterial(item, data);
|
||||
}
|
||||
|
||||
public String convertMaterial(String oldEntry) {
|
||||
if (oldEntry == null) {
|
||||
return null;
|
||||
}
|
||||
try {
|
||||
Material newMaterial = getMaterial(oldEntry);
|
||||
if (newMaterial != null) {
|
||||
return newMaterial.name();
|
||||
}
|
||||
} catch (Exception e) {
|
||||
Material newMaterial = Material.matchMaterial(oldEntry, true);
|
||||
if (newMaterial != null) {
|
||||
return newMaterial.name();
|
||||
} else {
|
||||
newMaterial = Material.matchMaterial(oldEntry);
|
||||
if (newMaterial != null) {
|
||||
return newMaterial.name();
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public List<String> convertMaterials(Collection<String> oldEntries) {
|
||||
Set<String> newEntries = new LinkedHashSet<>();
|
||||
for (String oldEntry : oldEntries) {
|
||||
String newEntry = convertMaterial(oldEntry);
|
||||
if (newEntry != null) {
|
||||
newEntries.add(newEntry);
|
||||
if (newEntry.equals(Material.AIR.name())) {
|
||||
newEntries.add(Material.CAVE_AIR.name());
|
||||
newEntries.add(Material.VOID_AIR.name());
|
||||
}
|
||||
}
|
||||
}
|
||||
return new ArrayList<>(newEntries);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
839
src/main/resources/itemdata.txt
Normal file
839
src/main/resources/itemdata.txt
Normal file
@ -0,0 +1,839 @@
|
||||
0:0,minecraft:air
|
||||
1:0,minecraft:stone
|
||||
1:1,minecraft:granite
|
||||
1:2,minecraft:polished_granite
|
||||
1:3,minecraft:diorite
|
||||
1:4,minecraft:polished_diorite
|
||||
1:5,minecraft:andesite
|
||||
1:6,minecraft:polished_andesite
|
||||
2:0,minecraft:grass_block
|
||||
3:0,minecraft:dirt
|
||||
3:1,minecraft:coarse_dirt
|
||||
3:2,minecraft:podzol
|
||||
4:0,minecraft:cobblestone
|
||||
5:0,minecraft:oak_planks
|
||||
5:1,minecraft:spruce_planks
|
||||
5:2,minecraft:birch_planks
|
||||
5:3,minecraft:jungle_planks
|
||||
5:4,minecraft:acacia_planks
|
||||
5:5,minecraft:dark_oak_planks
|
||||
6:0,minecraft:oak_sapling
|
||||
6:1,minecraft:spruce_sapling
|
||||
6:2,minecraft:birch_sapling
|
||||
6:3,minecraft:jungle_sapling
|
||||
6:4,minecraft:acacia_sapling
|
||||
6:5,minecraft:dark_oak_sapling
|
||||
6:9,minecraft:spruce_sapling
|
||||
6:10,minecraft:birch_sapling
|
||||
6:11,minecraft:jungle_sapling
|
||||
6:12,minecraft:acacia_sapling
|
||||
6:13,minecraft:dark_oak_sapling
|
||||
7:0,minecraft:bedrock
|
||||
8:0,minecraft:water
|
||||
9:0,minecraft:water
|
||||
10:0,minecraft:lava
|
||||
11:0,minecraft:lava
|
||||
12:0,minecraft:sand
|
||||
12:1,minecraft:red_sand
|
||||
13:0,minecraft:gravel
|
||||
14:0,minecraft:gold_ore
|
||||
15:0,minecraft:iron_ore
|
||||
16:0,minecraft:coal_ore
|
||||
17:0,minecraft:oak_log
|
||||
17:1,minecraft:spruce_log
|
||||
17:2,minecraft:birch_log
|
||||
17:3,minecraft:jungle_log
|
||||
17:5,minecraft:spruce_log
|
||||
17:6,minecraft:birch_log
|
||||
17:7,minecraft:jungle_log
|
||||
17:9,minecraft:spruce_log
|
||||
17:10,minecraft:birch_log
|
||||
17:11,minecraft:jungle_log
|
||||
18:0,minecraft:oak_leaves
|
||||
18:1,minecraft:spruce_leaves
|
||||
18:2,minecraft:birch_leaves
|
||||
18:3,minecraft:jungle_leaves
|
||||
18:5,minecraft:spruce_leaves
|
||||
18:6,minecraft:birch_leaves
|
||||
18:7,minecraft:jungle_leaves
|
||||
18:9,minecraft:spruce_leaves
|
||||
18:10,minecraft:birch_leaves
|
||||
18:11,minecraft:jungle_leaves
|
||||
18:13,minecraft:spruce_leaves
|
||||
18:14,minecraft:birch_leaves
|
||||
18:15,minecraft:jungle_leaves
|
||||
19:0,minecraft:sponge
|
||||
19:1,minecraft:wet_sponge
|
||||
20:0,minecraft:glass
|
||||
21:0,minecraft:lapis_ore
|
||||
22:0,minecraft:lapis_block
|
||||
23:0,minecraft:dispenser
|
||||
24:0,minecraft:sandstone
|
||||
24:1,minecraft:chiseled_sandstone
|
||||
24:2,minecraft:cut_sandstone
|
||||
25:0,minecraft:note_block
|
||||
26:0,minecraft:red_bed
|
||||
27:0,minecraft:powered_rail
|
||||
28:0,minecraft:detector_rail
|
||||
29:0,minecraft:sticky_piston
|
||||
30:0,minecraft:cobweb
|
||||
31:0,minecraft:dead_bush
|
||||
31:1,minecraft:grass
|
||||
31:2,minecraft:fern
|
||||
32:0,minecraft:dead_bush
|
||||
33:0,minecraft:piston
|
||||
34:0,minecraft:piston_head
|
||||
35:0,minecraft:white_wool
|
||||
35:1,minecraft:orange_wool
|
||||
35:2,minecraft:magenta_wool
|
||||
35:3,minecraft:light_blue_wool
|
||||
35:4,minecraft:yellow_wool
|
||||
35:5,minecraft:lime_wool
|
||||
35:6,minecraft:pink_wool
|
||||
35:7,minecraft:gray_wool
|
||||
35:8,minecraft:light_gray_wool
|
||||
35:9,minecraft:cyan_wool
|
||||
35:10,minecraft:purple_wool
|
||||
35:11,minecraft:blue_wool
|
||||
35:12,minecraft:brown_wool
|
||||
35:13,minecraft:green_wool
|
||||
35:14,minecraft:red_wool
|
||||
35:15,minecraft:black_wool
|
||||
36:0,minecraft:moving_piston
|
||||
37:0,minecraft:dandelion
|
||||
38:0,minecraft:poppy
|
||||
38:1,minecraft:blue_orchid
|
||||
38:2,minecraft:allium
|
||||
38:3,minecraft:azure_bluet
|
||||
38:4,minecraft:red_tulip
|
||||
38:5,minecraft:orange_tulip
|
||||
38:6,minecraft:white_tulip
|
||||
38:7,minecraft:pink_tulip
|
||||
38:8,minecraft:oxeye_daisy
|
||||
39:0,minecraft:brown_mushroom
|
||||
40:0,minecraft:red_mushroom
|
||||
41:0,minecraft:gold_block
|
||||
42:0,minecraft:iron_block
|
||||
43:0,minecraft:stone_slab
|
||||
43:1,minecraft:sandstone_slab
|
||||
43:2,minecraft:petrified_oak_slab
|
||||
43:3,minecraft:cobblestone_slab
|
||||
43:4,minecraft:brick_slab
|
||||
43:5,minecraft:stone_brick_slab
|
||||
43:6,minecraft:nether_brick_slab
|
||||
43:7,minecraft:quartz_slab
|
||||
43:8,minecraft:smooth_stone
|
||||
43:9,minecraft:smooth_sandstone
|
||||
43:10,minecraft:petrified_oak_slab
|
||||
43:11,minecraft:cobblestone_slab
|
||||
43:12,minecraft:brick_slab
|
||||
43:13,minecraft:stone_brick_slab
|
||||
43:14,minecraft:nether_brick_slab
|
||||
43:15,minecraft:smooth_quartz
|
||||
44:0,minecraft:stone_slab
|
||||
44:1,minecraft:sandstone_slab
|
||||
44:2,minecraft:petrified_oak_slab
|
||||
44:3,minecraft:cobblestone_slab
|
||||
44:4,minecraft:brick_slab
|
||||
44:5,minecraft:stone_brick_slab
|
||||
44:6,minecraft:nether_brick_slab
|
||||
44:7,minecraft:quartz_slab
|
||||
44:9,minecraft:sandstone_slab
|
||||
44:10,minecraft:petrified_oak_slab
|
||||
44:11,minecraft:cobblestone_slab
|
||||
44:12,minecraft:brick_slab
|
||||
44:13,minecraft:stone_brick_slab
|
||||
44:14,minecraft:nether_brick_slab
|
||||
44:15,minecraft:quartz_slab
|
||||
45:0,minecraft:bricks
|
||||
46:0,minecraft:tnt
|
||||
47:0,minecraft:bookshelf
|
||||
48:0,minecraft:mossy_cobblestone
|
||||
49:0,minecraft:obsidian
|
||||
50:0,minecraft:torch
|
||||
50:1,minecraft:wall_torch
|
||||
50:2,minecraft:wall_torch
|
||||
50:3,minecraft:wall_torch
|
||||
50:4,minecraft:wall_torch
|
||||
51:0,minecraft:fire
|
||||
52:0,minecraft:spawner
|
||||
53:0,minecraft:oak_stairs
|
||||
54:0,minecraft:chest
|
||||
55:0,minecraft:redstone_wire
|
||||
56:0,minecraft:diamond_ore
|
||||
57:0,minecraft:diamond_block
|
||||
58:0,minecraft:crafting_table
|
||||
59:0,minecraft:wheat
|
||||
60:0,minecraft:farmland
|
||||
61:0,minecraft:furnace
|
||||
62:0,minecraft:air
|
||||
62:2,minecraft:furnace
|
||||
62:3,minecraft:furnace
|
||||
62:4,minecraft:furnace
|
||||
62:5,minecraft:furnace
|
||||
63:0,minecraft:sign
|
||||
64:0,minecraft:oak_door
|
||||
65:0,minecraft:ladder
|
||||
66:0,minecraft:rail
|
||||
67:0,minecraft:cobblestone_stairs
|
||||
68:0,minecraft:air
|
||||
68:2,minecraft:wall_sign
|
||||
68:3,minecraft:wall_sign
|
||||
68:4,minecraft:wall_sign
|
||||
68:5,minecraft:wall_sign
|
||||
69:0,minecraft:lever
|
||||
70:0,minecraft:stone_pressure_plate
|
||||
71:0,minecraft:iron_door
|
||||
72:0,minecraft:oak_pressure_plate
|
||||
73:0,minecraft:redstone_ore
|
||||
74:0,minecraft:redstone_ore
|
||||
75:0,minecraft:air
|
||||
75:1,minecraft:redstone_wall_torch
|
||||
75:2,minecraft:redstone_wall_torch
|
||||
75:3,minecraft:redstone_wall_torch
|
||||
75:4,minecraft:redstone_wall_torch
|
||||
75:5,minecraft:redstone_torch
|
||||
76:0,minecraft:redstone_torch
|
||||
76:1,minecraft:redstone_wall_torch
|
||||
76:2,minecraft:redstone_wall_torch
|
||||
76:3,minecraft:redstone_wall_torch
|
||||
76:4,minecraft:redstone_wall_torch
|
||||
77:0,minecraft:stone_button
|
||||
78:0,minecraft:snow
|
||||
79:0,minecraft:ice
|
||||
80:0,minecraft:snow_block
|
||||
81:0,minecraft:cactus
|
||||
82:0,minecraft:clay
|
||||
83:0,minecraft:sugar_cane
|
||||
84:0,minecraft:jukebox
|
||||
85:0,minecraft:oak_fence
|
||||
86:0,minecraft:carved_pumpkin
|
||||
87:0,minecraft:netherrack
|
||||
88:0,minecraft:soul_sand
|
||||
89:0,minecraft:glowstone
|
||||
90:0,minecraft:nether_portal
|
||||
91:0,minecraft:jack_o_lantern
|
||||
92:0,minecraft:cake
|
||||
93:0,minecraft:repeater
|
||||
94:0,minecraft:repeater
|
||||
95:0,minecraft:white_stained_glass
|
||||
95:1,minecraft:orange_stained_glass
|
||||
95:2,minecraft:magenta_stained_glass
|
||||
95:3,minecraft:light_blue_stained_glass
|
||||
95:4,minecraft:yellow_stained_glass
|
||||
95:5,minecraft:lime_stained_glass
|
||||
95:6,minecraft:pink_stained_glass
|
||||
95:7,minecraft:gray_stained_glass
|
||||
95:8,minecraft:light_gray_stained_glass
|
||||
95:9,minecraft:cyan_stained_glass
|
||||
95:10,minecraft:purple_stained_glass
|
||||
95:11,minecraft:blue_stained_glass
|
||||
95:12,minecraft:brown_stained_glass
|
||||
95:13,minecraft:green_stained_glass
|
||||
95:14,minecraft:red_stained_glass
|
||||
95:15,minecraft:black_stained_glass
|
||||
96:0,minecraft:oak_trapdoor
|
||||
97:0,minecraft:infested_stone
|
||||
97:1,minecraft:infested_cobblestone
|
||||
97:2,minecraft:infested_stone_bricks
|
||||
97:3,minecraft:infested_mossy_stone_bricks
|
||||
97:4,minecraft:infested_cracked_stone_bricks
|
||||
97:5,minecraft:infested_chiseled_stone_bricks
|
||||
98:0,minecraft:stone_bricks
|
||||
98:1,minecraft:mossy_stone_bricks
|
||||
98:2,minecraft:cracked_stone_bricks
|
||||
98:3,minecraft:chiseled_stone_bricks
|
||||
99:0,minecraft:brown_mushroom_block
|
||||
99:10,minecraft:mushroom_stem
|
||||
99:15,minecraft:mushroom_stem
|
||||
100:0,minecraft:red_mushroom_block
|
||||
100:10,minecraft:mushroom_stem
|
||||
100:15,minecraft:mushroom_stem
|
||||
101:0,minecraft:iron_bars
|
||||
102:0,minecraft:glass_pane
|
||||
103:0,minecraft:melon
|
||||
104:0,minecraft:pumpkin_stem
|
||||
105:0,minecraft:melon_stem
|
||||
106:0,minecraft:vine
|
||||
107:0,minecraft:oak_fence_gate
|
||||
108:0,minecraft:brick_stairs
|
||||
109:0,minecraft:stone_brick_stairs
|
||||
110:0,minecraft:mycelium
|
||||
111:0,minecraft:lily_pad
|
||||
112:0,minecraft:nether_bricks
|
||||
113:0,minecraft:nether_brick_fence
|
||||
114:0,minecraft:nether_brick_stairs
|
||||
115:0,minecraft:nether_wart
|
||||
116:0,minecraft:enchanting_table
|
||||
117:0,minecraft:brewing_stand
|
||||
118:0,minecraft:cauldron
|
||||
119:0,minecraft:end_portal
|
||||
120:0,minecraft:end_portal_frame
|
||||
121:0,minecraft:end_stone
|
||||
122:0,minecraft:dragon_egg
|
||||
123:0,minecraft:redstone_lamp
|
||||
124:0,minecraft:redstone_lamp
|
||||
125:0,minecraft:oak_slab
|
||||
125:1,minecraft:spruce_slab
|
||||
125:2,minecraft:birch_slab
|
||||
125:3,minecraft:jungle_slab
|
||||
125:4,minecraft:acacia_slab
|
||||
125:5,minecraft:dark_oak_slab
|
||||
126:0,minecraft:oak_slab
|
||||
126:1,minecraft:spruce_slab
|
||||
126:2,minecraft:birch_slab
|
||||
126:3,minecraft:jungle_slab
|
||||
126:4,minecraft:acacia_slab
|
||||
126:5,minecraft:dark_oak_slab
|
||||
126:9,minecraft:spruce_slab
|
||||
126:10,minecraft:birch_slab
|
||||
126:11,minecraft:jungle_slab
|
||||
126:12,minecraft:acacia_slab
|
||||
126:13,minecraft:dark_oak_slab
|
||||
127:0,minecraft:cocoa
|
||||
128:0,minecraft:sandstone_stairs
|
||||
129:0,minecraft:emerald_ore
|
||||
130:0,minecraft:ender_chest
|
||||
131:0,minecraft:tripwire_hook
|
||||
132:0,minecraft:tripwire
|
||||
133:0,minecraft:emerald_block
|
||||
134:0,minecraft:spruce_stairs
|
||||
135:0,minecraft:birch_stairs
|
||||
136:0,minecraft:jungle_stairs
|
||||
137:0,minecraft:command_block
|
||||
138:0,minecraft:beacon
|
||||
139:0,minecraft:cobblestone_wall
|
||||
139:1,minecraft:mossy_cobblestone_wall
|
||||
140:0,minecraft:potted_cactus
|
||||
141:0,minecraft:carrots
|
||||
142:0,minecraft:potatoes
|
||||
143:0,minecraft:oak_button
|
||||
144:0,minecraft:air
|
||||
145:0,minecraft:anvil
|
||||
145:4,minecraft:chipped_anvil
|
||||
145:5,minecraft:chipped_anvil
|
||||
145:6,minecraft:chipped_anvil
|
||||
145:7,minecraft:chipped_anvil
|
||||
145:8,minecraft:damaged_anvil
|
||||
145:9,minecraft:damaged_anvil
|
||||
145:10,minecraft:damaged_anvil
|
||||
145:11,minecraft:damaged_anvil
|
||||
146:0,minecraft:trapped_chest
|
||||
147:0,minecraft:light_weighted_pressure_plate
|
||||
148:0,minecraft:heavy_weighted_pressure_plate
|
||||
149:0,minecraft:comparator
|
||||
150:0,minecraft:comparator
|
||||
151:0,minecraft:daylight_detector
|
||||
152:0,minecraft:redstone_block
|
||||
153:0,minecraft:nether_quartz_ore
|
||||
154:0,minecraft:hopper
|
||||
155:0,minecraft:quartz_block
|
||||
155:1,minecraft:chiseled_quartz_block
|
||||
155:2,minecraft:quartz_pillar
|
||||
155:3,minecraft:quartz_pillar
|
||||
155:4,minecraft:quartz_pillar
|
||||
156:0,minecraft:quartz_stairs
|
||||
157:0,minecraft:activator_rail
|
||||
158:0,minecraft:dropper
|
||||
159:0,minecraft:white_terracotta
|
||||
159:1,minecraft:orange_terracotta
|
||||
159:2,minecraft:magenta_terracotta
|
||||
159:3,minecraft:light_blue_terracotta
|
||||
159:4,minecraft:yellow_terracotta
|
||||
159:5,minecraft:lime_terracotta
|
||||
159:6,minecraft:pink_terracotta
|
||||
159:7,minecraft:gray_terracotta
|
||||
159:8,minecraft:light_gray_terracotta
|
||||
159:9,minecraft:cyan_terracotta
|
||||
159:10,minecraft:purple_terracotta
|
||||
159:11,minecraft:blue_terracotta
|
||||
159:12,minecraft:brown_terracotta
|
||||
159:13,minecraft:green_terracotta
|
||||
159:14,minecraft:red_terracotta
|
||||
159:15,minecraft:black_terracotta
|
||||
160:0,minecraft:white_stained_glass_pane
|
||||
160:1,minecraft:orange_stained_glass_pane
|
||||
160:2,minecraft:magenta_stained_glass_pane
|
||||
160:3,minecraft:light_blue_stained_glass_pane
|
||||
160:4,minecraft:yellow_stained_glass_pane
|
||||
160:5,minecraft:lime_stained_glass_pane
|
||||
160:6,minecraft:pink_stained_glass_pane
|
||||
160:7,minecraft:gray_stained_glass_pane
|
||||
160:8,minecraft:light_gray_stained_glass_pane
|
||||
160:9,minecraft:cyan_stained_glass_pane
|
||||
160:10,minecraft:purple_stained_glass_pane
|
||||
160:11,minecraft:blue_stained_glass_pane
|
||||
160:12,minecraft:brown_stained_glass_pane
|
||||
160:13,minecraft:green_stained_glass_pane
|
||||
160:14,minecraft:red_stained_glass_pane
|
||||
160:15,minecraft:black_stained_glass_pane
|
||||
161:0,minecraft:acacia_leaves
|
||||
161:1,minecraft:dark_oak_leaves
|
||||
161:5,minecraft:dark_oak_leaves
|
||||
161:9,minecraft:dark_oak_leaves
|
||||
161:13,minecraft:dark_oak_leaves
|
||||
162:0,minecraft:acacia_log
|
||||
162:1,minecraft:dark_oak_log
|
||||
162:5,minecraft:dark_oak_log
|
||||
162:9,minecraft:dark_oak_log
|
||||
163:0,minecraft:acacia_stairs
|
||||
164:0,minecraft:dark_oak_stairs
|
||||
165:0,minecraft:slime_block
|
||||
166:0,minecraft:barrier
|
||||
167:0,minecraft:iron_trapdoor
|
||||
168:0,minecraft:prismarine
|
||||
168:1,minecraft:prismarine_bricks
|
||||
168:2,minecraft:dark_prismarine
|
||||
169:0,minecraft:sea_lantern
|
||||
170:0,minecraft:hay_block
|
||||
171:0,minecraft:white_carpet
|
||||
171:1,minecraft:orange_carpet
|
||||
171:2,minecraft:magenta_carpet
|
||||
171:3,minecraft:light_blue_carpet
|
||||
171:4,minecraft:yellow_carpet
|
||||
171:5,minecraft:lime_carpet
|
||||
171:6,minecraft:pink_carpet
|
||||
171:7,minecraft:gray_carpet
|
||||
171:8,minecraft:light_gray_carpet
|
||||
171:9,minecraft:cyan_carpet
|
||||
171:10,minecraft:purple_carpet
|
||||
171:11,minecraft:blue_carpet
|
||||
171:12,minecraft:brown_carpet
|
||||
171:13,minecraft:green_carpet
|
||||
171:14,minecraft:red_carpet
|
||||
171:15,minecraft:black_carpet
|
||||
172:0,minecraft:terracotta
|
||||
173:0,minecraft:coal_block
|
||||
174:0,minecraft:packed_ice
|
||||
175:0,minecraft:sunflower
|
||||
175:1,minecraft:lilac
|
||||
175:2,minecraft:tall_grass
|
||||
175:3,minecraft:large_fern
|
||||
175:4,minecraft:rose_bush
|
||||
175:5,minecraft:peony
|
||||
175:8,minecraft:peony
|
||||
175:9,minecraft:peony
|
||||
175:10,minecraft:peony
|
||||
175:11,minecraft:peony
|
||||
176:0,minecraft:white_banner
|
||||
177:0,minecraft:air
|
||||
177:2,minecraft:white_wall_banner
|
||||
177:3,minecraft:white_wall_banner
|
||||
177:4,minecraft:white_wall_banner
|
||||
177:5,minecraft:white_wall_banner
|
||||
178:0,minecraft:daylight_detector
|
||||
179:0,minecraft:red_sandstone
|
||||
179:1,minecraft:chiseled_red_sandstone
|
||||
179:2,minecraft:cut_red_sandstone
|
||||
180:0,minecraft:red_sandstone_stairs
|
||||
181:0,minecraft:red_sandstone_slab
|
||||
181:8,minecraft:smooth_red_sandstone
|
||||
182:0,minecraft:red_sandstone_slab
|
||||
183:0,minecraft:spruce_fence_gate
|
||||
184:0,minecraft:birch_fence_gate
|
||||
185:0,minecraft:jungle_fence_gate
|
||||
186:0,minecraft:dark_oak_fence_gate
|
||||
187:0,minecraft:acacia_fence_gate
|
||||
188:0,minecraft:spruce_fence
|
||||
189:0,minecraft:birch_fence
|
||||
190:0,minecraft:jungle_fence
|
||||
191:0,minecraft:dark_oak_fence
|
||||
192:0,minecraft:acacia_fence
|
||||
193:0,minecraft:spruce_door
|
||||
194:0,minecraft:birch_door
|
||||
195:0,minecraft:jungle_door
|
||||
196:0,minecraft:acacia_door
|
||||
197:0,minecraft:dark_oak_door
|
||||
198:0,minecraft:end_rod
|
||||
199:0,minecraft:chorus_plant
|
||||
200:0,minecraft:chorus_flower
|
||||
201:0,minecraft:purpur_block
|
||||
202:0,minecraft:purpur_pillar
|
||||
203:0,minecraft:purpur_stairs
|
||||
204:0,minecraft:purpur_slab
|
||||
205:0,minecraft:purpur_slab
|
||||
206:0,minecraft:end_stone_bricks
|
||||
207:0,minecraft:beetroots
|
||||
208:0,minecraft:grass_path
|
||||
209:0,minecraft:end_gateway
|
||||
210:0,minecraft:repeating_command_block
|
||||
211:0,minecraft:chain_command_block
|
||||
212:0,minecraft:frosted_ice
|
||||
213:0,minecraft:magma_block
|
||||
214:0,minecraft:nether_wart_block
|
||||
215:0,minecraft:red_nether_bricks
|
||||
216:0,minecraft:bone_block
|
||||
217:0,minecraft:structure_void
|
||||
218:0,minecraft:observer
|
||||
219:0,minecraft:white_shulker_box
|
||||
220:0,minecraft:orange_shulker_box
|
||||
221:0,minecraft:magenta_shulker_box
|
||||
222:0,minecraft:light_blue_shulker_box
|
||||
223:0,minecraft:yellow_shulker_box
|
||||
224:0,minecraft:lime_shulker_box
|
||||
225:0,minecraft:pink_shulker_box
|
||||
226:0,minecraft:gray_shulker_box
|
||||
227:0,minecraft:light_gray_shulker_box
|
||||
228:0,minecraft:cyan_shulker_box
|
||||
229:0,minecraft:purple_shulker_box
|
||||
230:0,minecraft:blue_shulker_box
|
||||
231:0,minecraft:brown_shulker_box
|
||||
232:0,minecraft:green_shulker_box
|
||||
233:0,minecraft:red_shulker_box
|
||||
234:0,minecraft:black_shulker_box
|
||||
235:0,minecraft:white_glazed_terracotta
|
||||
236:0,minecraft:orange_glazed_terracotta
|
||||
237:0,minecraft:magenta_glazed_terracotta
|
||||
238:0,minecraft:light_blue_glazed_terracotta
|
||||
239:0,minecraft:yellow_glazed_terracotta
|
||||
240:0,minecraft:lime_glazed_terracotta
|
||||
241:0,minecraft:pink_glazed_terracotta
|
||||
242:0,minecraft:gray_glazed_terracotta
|
||||
243:0,minecraft:light_gray_glazed_terracotta
|
||||
244:0,minecraft:cyan_glazed_terracotta
|
||||
245:0,minecraft:purple_glazed_terracotta
|
||||
246:0,minecraft:blue_glazed_terracotta
|
||||
247:0,minecraft:brown_glazed_terracotta
|
||||
248:0,minecraft:green_glazed_terracotta
|
||||
249:0,minecraft:red_glazed_terracotta
|
||||
250:0,minecraft:black_glazed_terracotta
|
||||
251:0,minecraft:white_concrete
|
||||
251:1,minecraft:orange_concrete
|
||||
251:2,minecraft:magenta_concrete
|
||||
251:3,minecraft:light_blue_concrete
|
||||
251:4,minecraft:yellow_concrete
|
||||
251:5,minecraft:lime_concrete
|
||||
251:6,minecraft:pink_concrete
|
||||
251:7,minecraft:gray_concrete
|
||||
251:8,minecraft:light_gray_concrete
|
||||
251:9,minecraft:cyan_concrete
|
||||
251:10,minecraft:purple_concrete
|
||||
251:11,minecraft:blue_concrete
|
||||
251:12,minecraft:brown_concrete
|
||||
251:13,minecraft:green_concrete
|
||||
251:14,minecraft:red_concrete
|
||||
251:15,minecraft:black_concrete
|
||||
252:0,minecraft:white_concrete_powder
|
||||
252:1,minecraft:orange_concrete_powder
|
||||
252:2,minecraft:magenta_concrete_powder
|
||||
252:3,minecraft:light_blue_concrete_powder
|
||||
252:4,minecraft:yellow_concrete_powder
|
||||
252:5,minecraft:lime_concrete_powder
|
||||
252:6,minecraft:pink_concrete_powder
|
||||
252:7,minecraft:gray_concrete_powder
|
||||
252:8,minecraft:light_gray_concrete_powder
|
||||
252:9,minecraft:cyan_concrete_powder
|
||||
252:10,minecraft:purple_concrete_powder
|
||||
252:11,minecraft:blue_concrete_powder
|
||||
252:12,minecraft:brown_concrete_powder
|
||||
252:13,minecraft:green_concrete_powder
|
||||
252:14,minecraft:red_concrete_powder
|
||||
252:15,minecraft:black_concrete_powder
|
||||
255:0,minecraft:structure_block
|
||||
256:0,minecraft:iron_shovel
|
||||
257:0,minecraft:iron_pickaxe
|
||||
258:0,minecraft:iron_axe
|
||||
259:0,minecraft:flint_and_steel
|
||||
260:0,minecraft:apple
|
||||
261:0,minecraft:bow
|
||||
262:0,minecraft:arrow
|
||||
263:0,minecraft:coal
|
||||
263:1,minecraft:charcoal
|
||||
264:0,minecraft:diamond
|
||||
265:0,minecraft:iron_ingot
|
||||
266:0,minecraft:gold_ingot
|
||||
267:0,minecraft:iron_sword
|
||||
268:0,minecraft:wooden_sword
|
||||
269:0,minecraft:wooden_shovel
|
||||
270:0,minecraft:wooden_pickaxe
|
||||
271:0,minecraft:wooden_axe
|
||||
272:0,minecraft:stone_sword
|
||||
273:0,minecraft:stone_shovel
|
||||
274:0,minecraft:stone_pickaxe
|
||||
275:0,minecraft:stone_axe
|
||||
276:0,minecraft:diamond_sword
|
||||
277:0,minecraft:diamond_shovel
|
||||
278:0,minecraft:diamond_pickaxe
|
||||
279:0,minecraft:diamond_axe
|
||||
280:0,minecraft:stick
|
||||
281:0,minecraft:bowl
|
||||
282:0,minecraft:mushroom_stew
|
||||
283:0,minecraft:golden_sword
|
||||
284:0,minecraft:golden_shovel
|
||||
285:0,minecraft:golden_pickaxe
|
||||
286:0,minecraft:golden_axe
|
||||
287:0,minecraft:string
|
||||
288:0,minecraft:feather
|
||||
289:0,minecraft:gunpowder
|
||||
290:0,minecraft:wooden_hoe
|
||||
291:0,minecraft:stone_hoe
|
||||
292:0,minecraft:iron_hoe
|
||||
293:0,minecraft:diamond_hoe
|
||||
294:0,minecraft:golden_hoe
|
||||
295:0,minecraft:wheat_seeds
|
||||
296:0,minecraft:wheat
|
||||
297:0,minecraft:bread
|
||||
298:0,minecraft:leather_helmet
|
||||
299:0,minecraft:leather_chestplate
|
||||
300:0,minecraft:leather_leggings
|
||||
301:0,minecraft:leather_boots
|
||||
302:0,minecraft:chainmail_helmet
|
||||
303:0,minecraft:chainmail_chestplate
|
||||
304:0,minecraft:chainmail_leggings
|
||||
305:0,minecraft:chainmail_boots
|
||||
306:0,minecraft:iron_helmet
|
||||
307:0,minecraft:iron_chestplate
|
||||
308:0,minecraft:iron_leggings
|
||||
309:0,minecraft:iron_boots
|
||||
310:0,minecraft:diamond_helmet
|
||||
311:0,minecraft:diamond_chestplate
|
||||
312:0,minecraft:diamond_leggings
|
||||
313:0,minecraft:diamond_boots
|
||||
314:0,minecraft:golden_helmet
|
||||
315:0,minecraft:golden_chestplate
|
||||
316:0,minecraft:golden_leggings
|
||||
317:0,minecraft:golden_boots
|
||||
318:0,minecraft:flint
|
||||
319:0,minecraft:porkchop
|
||||
320:0,minecraft:cooked_porkchop
|
||||
321:0,minecraft:painting
|
||||
322:0,minecraft:golden_apple
|
||||
322:1,minecraft:enchanted_golden_apple
|
||||
323:0,minecraft:sign
|
||||
324:0,minecraft:oak_door
|
||||
325:0,minecraft:bucket
|
||||
326:0,minecraft:water_bucket
|
||||
327:0,minecraft:lava_bucket
|
||||
328:0,minecraft:minecart
|
||||
329:0,minecraft:saddle
|
||||
330:0,minecraft:iron_door
|
||||
331:0,minecraft:redstone
|
||||
332:0,minecraft:snowball
|
||||
333:0,minecraft:oak_boat
|
||||
334:0,minecraft:leather
|
||||
335:0,minecraft:milk_bucket
|
||||
336:0,minecraft:brick
|
||||
337:0,minecraft:clay_ball
|
||||
338:0,minecraft:sugar_cane
|
||||
339:0,minecraft:paper
|
||||
340:0,minecraft:book
|
||||
341:0,minecraft:slime_ball
|
||||
342:0,minecraft:chest_minecart
|
||||
343:0,minecraft:furnace_minecart
|
||||
344:0,minecraft:egg
|
||||
345:0,minecraft:compass
|
||||
346:0,minecraft:fishing_rod
|
||||
347:0,minecraft:clock
|
||||
348:0,minecraft:glowstone_dust
|
||||
349:0,minecraft:cod
|
||||
349:1,minecraft:salmon
|
||||
349:2,minecraft:tropical_fish
|
||||
349:3,minecraft:pufferfish
|
||||
350:0,minecraft:cooked_cod
|
||||
350:1,minecraft:cooked_salmon
|
||||
351:0,minecraft:ink_sac
|
||||
351:1,minecraft:rose_red
|
||||
351:2,minecraft:cactus_green
|
||||
351:3,minecraft:cocoa_beans
|
||||
351:4,minecraft:lapis_lazuli
|
||||
351:5,minecraft:purple_dye
|
||||
351:6,minecraft:cyan_dye
|
||||
351:7,minecraft:light_gray_dye
|
||||
351:8,minecraft:gray_dye
|
||||
351:9,minecraft:pink_dye
|
||||
351:10,minecraft:lime_dye
|
||||
351:11,minecraft:dandelion_yellow
|
||||
351:12,minecraft:light_blue_dye
|
||||
351:13,minecraft:magenta_dye
|
||||
351:14,minecraft:orange_dye
|
||||
351:15,minecraft:bone_meal
|
||||
352:0,minecraft:bone
|
||||
353:0,minecraft:sugar
|
||||
354:0,minecraft:cake
|
||||
355:0,minecraft:red_bed
|
||||
355:1,minecraft:orange_bed
|
||||
355:2,minecraft:magenta_bed
|
||||
355:3,minecraft:light_blue_bed
|
||||
355:4,minecraft:yellow_bed
|
||||
355:5,minecraft:lime_bed
|
||||
355:6,minecraft:pink_bed
|
||||
355:7,minecraft:gray_bed
|
||||
355:8,minecraft:light_gray_bed
|
||||
355:9,minecraft:cyan_bed
|
||||
355:10,minecraft:purple_bed
|
||||
355:11,minecraft:blue_bed
|
||||
355:12,minecraft:brown_bed
|
||||
355:13,minecraft:green_bed
|
||||
355:15,minecraft:black_bed
|
||||
356:0,minecraft:repeater
|
||||
357:0,minecraft:cookie
|
||||
358:0,minecraft:filled_map
|
||||
359:0,minecraft:shears
|
||||
360:0,minecraft:melon_slice
|
||||
361:0,minecraft:pumpkin_seeds
|
||||
362:0,minecraft:melon_seeds
|
||||
363:0,minecraft:beef
|
||||
364:0,minecraft:cooked_beef
|
||||
365:0,minecraft:chicken
|
||||
366:0,minecraft:cooked_chicken
|
||||
367:0,minecraft:rotten_flesh
|
||||
368:0,minecraft:ender_pearl
|
||||
369:0,minecraft:blaze_rod
|
||||
370:0,minecraft:ghast_tear
|
||||
371:0,minecraft:gold_nugget
|
||||
372:0,minecraft:nether_wart
|
||||
373:0,minecraft:potion
|
||||
374:0,minecraft:glass_bottle
|
||||
375:0,minecraft:spider_eye
|
||||
376:0,minecraft:fermented_spider_eye
|
||||
377:0,minecraft:blaze_powder
|
||||
378:0,minecraft:magma_cream
|
||||
379:0,minecraft:brewing_stand
|
||||
380:0,minecraft:cauldron
|
||||
381:0,minecraft:ender_eye
|
||||
382:0,minecraft:glistering_melon_slice
|
||||
383:0,minecraft:pig_spawn_egg
|
||||
383:4,minecraft:elder_guardian_spawn_egg
|
||||
383:5,minecraft:wither_skeleton_spawn_egg
|
||||
383:6,minecraft:stray_spawn_egg
|
||||
383:23,minecraft:husk_spawn_egg
|
||||
383:27,minecraft:zombie_villager_spawn_egg
|
||||
383:28,minecraft:skeleton_horse_spawn_egg
|
||||
383:29,minecraft:zombie_horse_spawn_egg
|
||||
383:31,minecraft:donkey_spawn_egg
|
||||
383:32,minecraft:mule_spawn_egg
|
||||
383:34,minecraft:evoker_spawn_egg
|
||||
383:35,minecraft:vex_spawn_egg
|
||||
383:36,minecraft:vindicator_spawn_egg
|
||||
383:50,minecraft:creeper_spawn_egg
|
||||
383:51,minecraft:skeleton_spawn_egg
|
||||
383:52,minecraft:spider_spawn_egg
|
||||
383:54,minecraft:zombie_spawn_egg
|
||||
383:55,minecraft:slime_spawn_egg
|
||||
383:56,minecraft:ghast_spawn_egg
|
||||
383:57,minecraft:zombie_pigman_spawn_egg
|
||||
383:58,minecraft:enderman_spawn_egg
|
||||
383:59,minecraft:cave_spider_spawn_egg
|
||||
383:60,minecraft:silverfish_spawn_egg
|
||||
383:61,minecraft:blaze_spawn_egg
|
||||
383:62,minecraft:magma_cube_spawn_egg
|
||||
383:65,minecraft:bat_spawn_egg
|
||||
383:66,minecraft:witch_spawn_egg
|
||||
383:67,minecraft:endermite_spawn_egg
|
||||
383:68,minecraft:guardian_spawn_egg
|
||||
383:69,minecraft:shulker_spawn_egg
|
||||
383:91,minecraft:sheep_spawn_egg
|
||||
383:92,minecraft:cow_spawn_egg
|
||||
383:93,minecraft:chicken_spawn_egg
|
||||
383:94,minecraft:squid_spawn_egg
|
||||
383:95,minecraft:wolf_spawn_egg
|
||||
383:96,minecraft:mooshroom_spawn_egg
|
||||
383:98,minecraft:ocelot_spawn_egg
|
||||
383:100,minecraft:horse_spawn_egg
|
||||
383:101,minecraft:rabbit_spawn_egg
|
||||
383:102,minecraft:polar_bear_spawn_egg
|
||||
383:103,minecraft:llama_spawn_egg
|
||||
383:105,minecraft:parrot_spawn_egg
|
||||
383:120,minecraft:villager_spawn_egg
|
||||
383:255,minecraft:turtle_spawn_egg
|
||||
384:0,minecraft:experience_bottle
|
||||
385:0,minecraft:fire_charge
|
||||
386:0,minecraft:writable_book
|
||||
387:0,minecraft:written_book
|
||||
388:0,minecraft:emerald
|
||||
389:0,minecraft:item_frame
|
||||
390:0,minecraft:flower_pot
|
||||
391:0,minecraft:carrot
|
||||
392:0,minecraft:potato
|
||||
393:0,minecraft:baked_potato
|
||||
394:0,minecraft:poisonous_potato
|
||||
395:0,minecraft:map
|
||||
396:0,minecraft:golden_carrot
|
||||
397:0,minecraft:skeleton_skull
|
||||
397:1,minecraft:wither_skeleton_skull
|
||||
397:2,minecraft:zombie_head
|
||||
397:3,minecraft:player_head
|
||||
397:4,minecraft:creeper_head
|
||||
397:5,minecraft:dragon_head
|
||||
398:0,minecraft:carrot_on_a_stick
|
||||
399:0,minecraft:nether_star
|
||||
400:0,minecraft:pumpkin_pie
|
||||
401:0,minecraft:firework_rocket
|
||||
402:0,minecraft:firework_star
|
||||
403:0,minecraft:enchanted_book
|
||||
404:0,minecraft:comparator
|
||||
405:0,minecraft:nether_brick
|
||||
406:0,minecraft:quartz
|
||||
407:0,minecraft:tnt_minecart
|
||||
408:0,minecraft:hopper_minecart
|
||||
409:0,minecraft:prismarine_shard
|
||||
410:0,minecraft:prismarine_crystals
|
||||
411:0,minecraft:rabbit
|
||||
412:0,minecraft:cooked_rabbit
|
||||
413:0,minecraft:rabbit_stew
|
||||
414:0,minecraft:rabbit_foot
|
||||
415:0,minecraft:rabbit_hide
|
||||
416:0,minecraft:armor_stand
|
||||
417:0,minecraft:iron_horse_armor
|
||||
418:0,minecraft:golden_horse_armor
|
||||
419:0,minecraft:diamond_horse_armor
|
||||
420:0,minecraft:lead
|
||||
421:0,minecraft:name_tag
|
||||
422:0,minecraft:command_block_minecart
|
||||
423:0,minecraft:mutton
|
||||
424:0,minecraft:cooked_mutton
|
||||
425:0,minecraft:black_banner
|
||||
425:1,minecraft:red_banner
|
||||
425:2,minecraft:green_banner
|
||||
425:3,minecraft:brown_banner
|
||||
425:4,minecraft:blue_banner
|
||||
425:5,minecraft:purple_banner
|
||||
425:6,minecraft:cyan_banner
|
||||
425:7,minecraft:light_gray_banner
|
||||
425:8,minecraft:gray_banner
|
||||
425:9,minecraft:pink_banner
|
||||
425:10,minecraft:lime_banner
|
||||
425:11,minecraft:yellow_banner
|
||||
425:12,minecraft:light_blue_banner
|
||||
425:13,minecraft:magenta_banner
|
||||
425:14,minecraft:orange_banner
|
||||
425:15,minecraft:white_banner
|
||||
426:0,minecraft:end_crystal
|
||||
427:0,minecraft:spruce_door
|
||||
428:0,minecraft:birch_door
|
||||
429:0,minecraft:jungle_door
|
||||
430:0,minecraft:acacia_door
|
||||
431:0,minecraft:dark_oak_door
|
||||
432:0,minecraft:chorus_fruit
|
||||
433:0,minecraft:popped_chorus_fruit
|
||||
434:0,minecraft:beetroot
|
||||
435:0,minecraft:beetroot_seeds
|
||||
436:0,minecraft:beetroot_soup
|
||||
437:0,minecraft:dragon_breath
|
||||
438:0,minecraft:splash_potion
|
||||
439:0,minecraft:spectral_arrow
|
||||
440:0,minecraft:tipped_arrow
|
||||
441:0,minecraft:lingering_potion
|
||||
442:0,minecraft:shield
|
||||
443:0,minecraft:elytra
|
||||
444:0,minecraft:spruce_boat
|
||||
445:0,minecraft:birch_boat
|
||||
446:0,minecraft:jungle_boat
|
||||
447:0,minecraft:acacia_boat
|
||||
448:0,minecraft:dark_oak_boat
|
||||
449:0,minecraft:totem_of_undying
|
||||
450:0,minecraft:shulker_shell
|
||||
452:0,minecraft:iron_nugget
|
||||
453:0,minecraft:knowledge_book
|
||||
2256:0,minecraft:music_disc_13
|
||||
2257:0,minecraft:music_disc_cat
|
||||
2258:0,minecraft:music_disc_blocks
|
||||
2259:0,minecraft:music_disc_chirp
|
||||
2260:0,minecraft:music_disc_far
|
||||
2261:0,minecraft:music_disc_mall
|
||||
2262:0,minecraft:music_disc_mellohi
|
||||
2263:0,minecraft:music_disc_stal
|
||||
2264:0,minecraft:music_disc_strad
|
||||
2265:0,minecraft:music_disc_ward
|
||||
2266:0,minecraft:music_disc_11
|
||||
2267:0,minecraft:music_disc_wait
|
Reference in New Issue
Block a user