diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml
new file mode 100644
index 000000000..b4b93dcac
--- /dev/null
+++ b/.github/FUNDING.yml
@@ -0,0 +1,12 @@
+# These are supported funding model platforms
+
+github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
+patreon: GeyserMC
+open_collective: # Replace with a single Open Collective username
+ko_fi: # Replace with a single Ko-fi username
+tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
+community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
+liberapay: # Replace with a single Liberapay username
+issuehunt: # Replace with a single IssueHunt username
+otechie: # Replace with a single Otechie username
+custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
index 45f3f9191..af9314c60 100644
--- a/.github/ISSUE_TEMPLATE/bug_report.md
+++ b/.github/ISSUE_TEMPLATE/bug_report.md
@@ -27,7 +27,7 @@ If applicable, add screenshots to help explain your problem.
run /version
**Geyser version**
-Not yet
+Jenkins
**Bedrock version**
The version of your Minecraft pe
diff --git a/connector/pom.xml b/connector/pom.xml
index 052ea6c0d..7b295929d 100644
--- a/connector/pom.xml
+++ b/connector/pom.xml
@@ -75,7 +75,7 @@
com.nukkitx.protocol
bedrock-v388
- 2.4.0-SNAPSHOT
+ 2.4.0
compile
@@ -164,4 +164,4 @@
-
\ No newline at end of file
+
diff --git a/connector/src/main/java/org/geysermc/connector/entity/Entity.java b/connector/src/main/java/org/geysermc/connector/entity/Entity.java
index 8824c9534..ba9fe4ab3 100644
--- a/connector/src/main/java/org/geysermc/connector/entity/Entity.java
+++ b/connector/src/main/java/org/geysermc/connector/entity/Entity.java
@@ -25,16 +25,15 @@
package org.geysermc.connector.entity;
-import com.github.steveice10.mc.protocol.packet.ingame.server.entity.ServerEntityPropertiesPacket;
+import com.github.steveice10.mc.protocol.data.game.entity.metadata.EntityMetadata;
+import com.github.steveice10.mc.protocol.data.game.entity.metadata.MetadataType;
+import com.github.steveice10.mc.protocol.data.message.TextMessage;
import com.nukkitx.math.vector.Vector3f;
import com.nukkitx.protocol.bedrock.data.EntityData;
import com.nukkitx.protocol.bedrock.data.EntityDataDictionary;
import com.nukkitx.protocol.bedrock.data.EntityFlag;
import com.nukkitx.protocol.bedrock.data.EntityFlags;
-import com.nukkitx.protocol.bedrock.packet.AddEntityPacket;
-import com.nukkitx.protocol.bedrock.packet.RemoveEntityPacket;
-import com.nukkitx.protocol.bedrock.packet.SetEntityDataPacket;
-import com.nukkitx.protocol.bedrock.packet.UpdateAttributesPacket;
+import com.nukkitx.protocol.bedrock.packet.*;
import lombok.Getter;
import lombok.Setter;
import org.geysermc.connector.console.GeyserLogger;
@@ -43,6 +42,7 @@ import org.geysermc.connector.entity.attribute.AttributeType;
import org.geysermc.connector.entity.type.EntityType;
import org.geysermc.connector.network.session.GeyserSession;
import org.geysermc.connector.utils.AttributeUtils;
+import org.geysermc.connector.utils.MessageUtils;
import java.util.*;
@@ -164,6 +164,36 @@ public class Entity {
updateAttributesPacket.setRuntimeEntityId(geyserId);
updateAttributesPacket.setAttributes(attributes);
session.getUpstream().sendPacket(updateAttributesPacket);
+ }
+
+ public void updateBedrockMetadata(EntityMetadata entityMetadata, GeyserSession session) {
+ switch (entityMetadata.getId()) {
+ case 0:
+ if (entityMetadata.getType() == MetadataType.BYTE) {
+ byte xd = (byte) entityMetadata.getValue();
+ metadata.getFlags().setFlag(EntityFlag.ON_FIRE, (xd & 0x01) == 0x01);
+ metadata.getFlags().setFlag(EntityFlag.SNEAKING, (xd & 0x02) == 0x02);
+ metadata.getFlags().setFlag(EntityFlag.SPRINTING, (xd & 0x08) == 0x08);
+ metadata.getFlags().setFlag(EntityFlag.SWIMMING, (xd & 0x10) == 0x10);
+ metadata.getFlags().setFlag(EntityFlag.GLIDING, (xd & 0x80) == 0x80);
+ metadata.getFlags().setFlag(EntityFlag.INVISIBLE, (xd & 0x20) == 0x20);
+ }
+ break;
+ case 2: // custom name
+ TextMessage name = (TextMessage) entityMetadata.getValue();
+ if (name != null)
+ metadata.put(EntityData.NAMETAG, MessageUtils.getBedrockMessage(name));
+ break;
+ case 3: // is custom name visible
+ metadata.getFlags().setFlag(EntityFlag.ALWAYS_SHOW_NAME, (boolean) entityMetadata.getValue());
+ break;
+ case 4: // silent
+ metadata.getFlags().setFlag(EntityFlag.SILENT, (boolean) entityMetadata.getValue());
+ break;
+ case 5: // no gravity
+ metadata.getFlags().setFlag(EntityFlag.HAS_GRAVITY, !(boolean) entityMetadata.getValue());
+ break;
+ }
SetEntityDataPacket entityDataPacket = new SetEntityDataPacket();
entityDataPacket.setRuntimeEntityId(geyserId);
@@ -171,20 +201,6 @@ public class Entity {
session.getUpstream().sendPacket(entityDataPacket);
}
- // To be used at a later date
- public void updateJavaAttributes(GeyserSession session) {
- List attributes = new ArrayList<>();
- for (Map.Entry entry : this.attributes.entrySet()) {
- if (!entry.getValue().getType().isBedrockAttribute())
- continue;
-
- attributes.add(AttributeUtils.getJavaAttribute(entry.getValue()));
- }
-
- ServerEntityPropertiesPacket entityPropertiesPacket = new ServerEntityPropertiesPacket((int) entityId, attributes);
- session.getDownstream().getSession().send(entityPropertiesPacket);
- }
-
public void setPosition(Vector3f position) {
if (is(PlayerEntity.class)) {
this.position = position.add(0, entityType.getOffset(), 0);
diff --git a/connector/src/main/java/org/geysermc/connector/entity/ItemEntity.java b/connector/src/main/java/org/geysermc/connector/entity/ItemEntity.java
new file mode 100644
index 000000000..78c78f3fd
--- /dev/null
+++ b/connector/src/main/java/org/geysermc/connector/entity/ItemEntity.java
@@ -0,0 +1,58 @@
+/*
+ * Copyright (c) 2019 GeyserMC. http://geysermc.org
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ * @author GeyserMC
+ * @link https://github.com/GeyserMC/Geyser
+ */
+
+package org.geysermc.connector.entity;
+
+import com.github.steveice10.mc.protocol.data.game.entity.metadata.EntityMetadata;
+import com.github.steveice10.mc.protocol.data.game.entity.metadata.ItemStack;
+import com.nukkitx.math.vector.Vector3f;
+import com.nukkitx.protocol.bedrock.packet.AddItemEntityPacket;
+import org.geysermc.connector.entity.type.EntityType;
+import org.geysermc.connector.network.session.GeyserSession;
+import org.geysermc.connector.network.translators.TranslatorsInit;
+
+public class ItemEntity extends Entity {
+
+ public ItemEntity(long entityId, long geyserId, EntityType entityType, Vector3f position, Vector3f motion, Vector3f rotation) {
+ super(entityId, geyserId, entityType, position, motion, rotation);
+ }
+
+ @Override
+ public void updateBedrockMetadata(EntityMetadata entityMetadata, GeyserSession session) {
+ if (entityMetadata.getId() == 7) {
+ AddItemEntityPacket itemPacket = new AddItemEntityPacket();
+ itemPacket.setRuntimeEntityId(geyserId);
+ itemPacket.setPosition(position);
+ itemPacket.setMotion(motion);
+ itemPacket.setUniqueEntityId(geyserId);
+ itemPacket.setFromFishing(false);
+ itemPacket.getMetadata().putAll(metadata);
+ itemPacket.setItemInHand(TranslatorsInit.getItemTranslator().translateToBedrock((ItemStack) entityMetadata.getValue()));
+ session.getUpstream().sendPacket(itemPacket);
+ }
+
+ super.updateBedrockMetadata(entityMetadata, session);
+ }
+}
diff --git a/connector/src/main/java/org/geysermc/connector/entity/PaintingEntity.java b/connector/src/main/java/org/geysermc/connector/entity/PaintingEntity.java
index f9f6e37fd..b598b9bf3 100644
--- a/connector/src/main/java/org/geysermc/connector/entity/PaintingEntity.java
+++ b/connector/src/main/java/org/geysermc/connector/entity/PaintingEntity.java
@@ -1,3 +1,28 @@
+/*
+ * Copyright (c) 2019 GeyserMC. http://geysermc.org
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ * @author GeyserMC
+ * @link https://github.com/GeyserMC/Geyser
+ */
+
package org.geysermc.connector.entity;
import com.nukkitx.math.vector.Vector3f;
diff --git a/connector/src/main/java/org/geysermc/connector/entity/type/EntityType.java b/connector/src/main/java/org/geysermc/connector/entity/type/EntityType.java
index af95536c0..d3286c8d5 100644
--- a/connector/src/main/java/org/geysermc/connector/entity/type/EntityType.java
+++ b/connector/src/main/java/org/geysermc/connector/entity/type/EntityType.java
@@ -87,13 +87,13 @@ public enum EntityType {
TRIPOD_CAMERA(62, 0f),
PLAYER(63, 1.8f, 0.6f, 0.6f, 1.62f),
ITEM(64, 0.25f, 0.25f),
- PRIMED_TNT(65, 0.98f, 0.98f),
+ TNT(65, 0.98f, 0.98f),
FALLING_BLOCK(66, 0.98f, 0.98f),
MOVING_BLOCK(67, 0f),
EXPERIENCE_BOTTLE(68, 0.25f, 0.25f),
EXPERIENCE_ORB(69, 0f),
EYE_OF_ENDER(70, 0f),
- ENDER_CRYSTAL(71, 0f),
+ END_CRYSTAL(71, 0f),
FIREWORK_ROCKET(72, 0f),
TRIDENT(73, 0f),
TURTLE(74, 0.4f, 1.2f),
@@ -108,7 +108,7 @@ public enum EntityType {
EGG(82, 0f),
PAINTING(83, 0f),
MINECART(84, 0f),
- LARGE_FIREBALL(85, 0f),
+ FIREBALL(85, 0f),
SPLASH_POTION(86, 0f),
ENDER_PEARL(87, 0f),
LEASH_KNOT(88, 0f),
@@ -135,7 +135,8 @@ public enum EntityType {
DROWNED(110, 1.95f, 0.6f),
TROPICAL_FISH(111, 0.6f, 0.6f),
COD(112, 0.25f, 0.5f),
- PANDA(113, 1.25f, 1.125f, 1.825f);
+ PANDA(113, 1.25f, 1.125f, 1.825f),
+ FOX(121, 0.5f, 1.25f);
private final int type;
private final float height;
diff --git a/connector/src/main/java/org/geysermc/connector/network/session/GeyserSession.java b/connector/src/main/java/org/geysermc/connector/network/session/GeyserSession.java
index 12fa5e543..da8aaa200 100644
--- a/connector/src/main/java/org/geysermc/connector/network/session/GeyserSession.java
+++ b/connector/src/main/java/org/geysermc/connector/network/session/GeyserSession.java
@@ -145,25 +145,22 @@ public class GeyserSession implements Player {
Vector3f pos = Vector3f.ZERO;
int chunkX = pos.getFloorX() >> 4;
int chunkZ = pos.getFloorZ() >> 4;
- for (int x = -5; x < 5; x++) {
- for (int z = -5; z < 5; z++) {
- NetworkChunkPublisherUpdatePacket chunkPublisherUpdatePacket = new NetworkChunkPublisherUpdatePacket();
- chunkPublisherUpdatePacket.setPosition(pos.toInt());
- chunkPublisherUpdatePacket.setRadius(renderDistance << 4);
- upstream.sendPacket(chunkPublisherUpdatePacket);
+ NetworkChunkPublisherUpdatePacket chunkPublisherUpdatePacket = new NetworkChunkPublisherUpdatePacket();
+ chunkPublisherUpdatePacket.setPosition(pos.toInt());
+ chunkPublisherUpdatePacket.setRadius(renderDistance << 4);
+ upstream.sendPacket(chunkPublisherUpdatePacket);
- LevelChunkPacket data = new LevelChunkPacket();
- data.setChunkX(chunkX + x);
- data.setChunkZ(chunkZ + z);
- data.setSubChunksLength(0);
- data.setData(TranslatorsInit.EMPTY_LEVEL_CHUNK_DATA);
- upstream.sendPacket(data);
- }
- }
+ LevelChunkPacket data = new LevelChunkPacket();
+ data.setChunkX(chunkX);
+ data.setChunkZ(chunkZ);
+ data.setSubChunksLength(0);
+ data.setData(TranslatorsInit.EMPTY_LEVEL_CHUNK_DATA);
+ upstream.sendPacket(data);
BiomeDefinitionListPacket biomePacket = new BiomeDefinitionListPacket();
biomePacket.setTag(CompoundTag.EMPTY);
upstream.sendPacket(biomePacket);
+
AvailableEntityIdentifiersPacket entityPacket = new AvailableEntityIdentifiersPacket();
entityPacket.setTag(CompoundTag.EMPTY);
upstream.sendPacket(entityPacket);
@@ -176,8 +173,6 @@ public class GeyserSession implements Player {
PlayStatusPacket playStatusPacket = new PlayStatusPacket();
playStatusPacket.setStatus(PlayStatusPacket.Status.PLAYER_SPAWN);
upstream.sendPacket(playStatusPacket);
-
- connector.getLogger().debug("play status sent");
}
public void authenticate(String username) {
diff --git a/connector/src/main/java/org/geysermc/connector/network/translators/TranslatorsInit.java b/connector/src/main/java/org/geysermc/connector/network/translators/TranslatorsInit.java
index 7a07d4bcd..535faf5c3 100644
--- a/connector/src/main/java/org/geysermc/connector/network/translators/TranslatorsInit.java
+++ b/connector/src/main/java/org/geysermc/connector/network/translators/TranslatorsInit.java
@@ -28,10 +28,7 @@ package org.geysermc.connector.network.translators;
import com.github.steveice10.mc.protocol.data.game.window.WindowType;
import com.github.steveice10.mc.protocol.packet.ingame.server.*;
import com.github.steveice10.mc.protocol.packet.ingame.server.entity.*;
-import com.github.steveice10.mc.protocol.packet.ingame.server.entity.player.ServerPlayerActionAckPacket;
-import com.github.steveice10.mc.protocol.packet.ingame.server.entity.player.ServerPlayerHealthPacket;
-import com.github.steveice10.mc.protocol.packet.ingame.server.entity.player.ServerPlayerPositionRotationPacket;
-import com.github.steveice10.mc.protocol.packet.ingame.server.entity.player.ServerPlayerSetExperiencePacket;
+import com.github.steveice10.mc.protocol.packet.ingame.server.entity.player.*;
import com.github.steveice10.mc.protocol.packet.ingame.server.entity.spawn.*;
import com.github.steveice10.mc.protocol.packet.ingame.server.scoreboard.ServerDisplayScoreboardPacket;
import com.github.steveice10.mc.protocol.packet.ingame.server.scoreboard.ServerScoreboardObjectivePacket;
@@ -112,6 +109,7 @@ public class TranslatorsInit {
Registry.registerJava(ServerEntityRotationPacket.class, new JavaEntityRotationTranslator());
Registry.registerJava(ServerEntityHeadLookPacket.class, new JavaEntityHeadLookTranslator());
Registry.registerJava(ServerEntityMetadataPacket.class, new JavaEntityMetadataTranslator());
+ Registry.registerJava(ServerEntityStatusPacket.class, new JavaEntityStatusTranslator());
Registry.registerJava(ServerBossBarPacket.class, new JavaBossBarTranslator());
Registry.registerJava(ServerSpawnExpOrbPacket.class, new JavaSpawnExpOrbTranslator());
@@ -126,6 +124,7 @@ public class TranslatorsInit {
Registry.registerJava(ServerPlayerSetExperiencePacket.class, new JavaPlayerSetExperienceTranslator());
Registry.registerJava(ServerPlayerHealthPacket.class, new JavaPlayerHealthTranslator());
Registry.registerJava(ServerPlayerActionAckPacket.class, new JavaPlayerActionAckTranslator());
+ Registry.registerJava(ServerPlayerAbilitiesPacket.class, new JavaPlayerAbilitiesTranslator());
Registry.registerJava(ServerNotifyClientPacket.class, new JavaNotifyClientTranslator());
Registry.registerJava(ServerChunkDataPacket.class, new JavaChunkDataTranslator());
diff --git a/connector/src/main/java/org/geysermc/connector/network/translators/bedrock/BedrockPlayerInitializedTranslator.java b/connector/src/main/java/org/geysermc/connector/network/translators/bedrock/BedrockPlayerInitializedTranslator.java
index 435b192bf..ba2e3c93e 100644
--- a/connector/src/main/java/org/geysermc/connector/network/translators/bedrock/BedrockPlayerInitializedTranslator.java
+++ b/connector/src/main/java/org/geysermc/connector/network/translators/bedrock/BedrockPlayerInitializedTranslator.java
@@ -15,7 +15,6 @@ public class BedrockPlayerInitializedTranslator extends PacketTranslator entity.sendPlayer(session));
}
diff --git a/connector/src/main/java/org/geysermc/connector/network/translators/java/entity/JavaEntityMetadataTranslator.java b/connector/src/main/java/org/geysermc/connector/network/translators/java/entity/JavaEntityMetadataTranslator.java
index f19a29127..85efcc686 100644
--- a/connector/src/main/java/org/geysermc/connector/network/translators/java/entity/JavaEntityMetadataTranslator.java
+++ b/connector/src/main/java/org/geysermc/connector/network/translators/java/entity/JavaEntityMetadataTranslator.java
@@ -26,17 +26,10 @@
package org.geysermc.connector.network.translators.java.entity;
import com.github.steveice10.mc.protocol.data.game.entity.metadata.EntityMetadata;
-import com.github.steveice10.mc.protocol.data.game.entity.metadata.ItemStack;
-import com.github.steveice10.mc.protocol.data.game.entity.metadata.MetadataType;
import com.github.steveice10.mc.protocol.packet.ingame.server.entity.ServerEntityMetadataPacket;
-import com.nukkitx.protocol.bedrock.data.EntityFlag;
-import com.nukkitx.protocol.bedrock.packet.AddItemEntityPacket;
-import com.nukkitx.protocol.bedrock.packet.SetEntityDataPacket;
import org.geysermc.connector.entity.Entity;
-import org.geysermc.connector.entity.type.EntityType;
import org.geysermc.connector.network.session.GeyserSession;
import org.geysermc.connector.network.translators.PacketTranslator;
-import org.geysermc.connector.network.translators.TranslatorsInit;
public class JavaEntityMetadataTranslator extends PacketTranslator {
@@ -49,32 +42,9 @@ public class JavaEntityMetadataTranslator extends PacketTranslator {
+
+ @Override
+ public void translate(ServerEntityStatusPacket packet, GeyserSession session) {
+ Entity entity = session.getEntityCache().getEntityByJavaId(packet.getEntityId());
+ if (packet.getEntityId() == session.getPlayerEntity().getEntityId()) {
+ entity = session.getPlayerEntity();
+ }
+ if (entity == null)
+ return;
+
+ EntityEventPacket entityEventPacket = new EntityEventPacket();
+ entityEventPacket.setRuntimeEntityId(entity.getGeyserId());
+ switch (packet.getStatus()) {
+ case LIVING_HURT:
+ case LIVING_HURT_SWEET_BERRY_BUSH:
+ entityEventPacket.setEvent(EntityEventPacket.Event.HURT_ANIMATION);
+ break;
+ case LIVING_DEATH:
+ entityEventPacket.setEvent(EntityEventPacket.Event.DEATH_ANIMATION);
+ break;
+ case WOLF_SHAKE_WATER:
+ entityEventPacket.setEvent(EntityEventPacket.Event.SHAKE_WET);
+ break;
+ case PLAYER_FINISH_USING_ITEM:
+ entityEventPacket.setEvent(EntityEventPacket.Event.USE_ITEM);
+ break;
+ case FISHING_HOOK_PULL_PLAYER:
+ entityEventPacket.setEvent(EntityEventPacket.Event.FISH_HOOK_LURED);
+ break;
+ case TAMEABLE_TAMING_FAILED:
+ entityEventPacket.setEvent(EntityEventPacket.Event.TAME_FAIL);
+ break;
+ case TAMEABLE_TAMING_SUCCEEDED:
+ entityEventPacket.setEvent(EntityEventPacket.Event.TAME_SUCCESS);
+ case ZOMBIE_VILLAGER_CURE:
+ entityEventPacket.setEvent(EntityEventPacket.Event.ZOMBIE_VILLAGER_CURE);
+ break;
+ case ANIMAL_EMIT_HEARTS:
+ entityEventPacket.setEvent(EntityEventPacket.Event.LOVE_PARTICLES);
+ break;
+ case FIREWORK_EXPLODE:
+ entityEventPacket.setEvent(EntityEventPacket.Event.FIREWORK_PARTICLES);
+ break;
+ case WITCH_EMIT_PARTICLES:
+ entityEventPacket.setEvent(EntityEventPacket.Event.WITCH_SPELL_PARTICLES);
+ break;
+ case TOTEM_OF_UNDYING_MAKE_SOUND:
+ entityEventPacket.setEvent(EntityEventPacket.Event.CONSUME_TOTEM);
+ break;
+ case SHEEP_GRAZE_OR_TNT_CART_EXPLODE:
+ entityEventPacket.setEvent(EntityEventPacket.Event.MINECART_TNT_PRIME_FUSE);
+ break;
+ case IRON_GOLEM_HOLD_POPPY:
+ entityEventPacket.setEvent(EntityEventPacket.Event.IRON_GOLEM_OFFER_FLOWER);
+ break;
+ case IRON_GOLEM_EMPTY_HAND:
+ entityEventPacket.setEvent(EntityEventPacket.Event.IRON_GOLEM_WITHDRAW_FLOWER);
+ break;
+ }
+
+ session.getUpstream().sendPacket(entityEventPacket);
+ }
+}
diff --git a/connector/src/main/java/org/geysermc/connector/network/translators/java/entity/player/JavaPlayerAbilitiesTranslator.java b/connector/src/main/java/org/geysermc/connector/network/translators/java/entity/player/JavaPlayerAbilitiesTranslator.java
new file mode 100644
index 000000000..25ebf1af6
--- /dev/null
+++ b/connector/src/main/java/org/geysermc/connector/network/translators/java/entity/player/JavaPlayerAbilitiesTranslator.java
@@ -0,0 +1,73 @@
+/*
+ * Copyright (c) 2019 GeyserMC. http://geysermc.org
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ * @author GeyserMC
+ * @link https://github.com/GeyserMC/Geyser
+ */
+
+package org.geysermc.connector.network.translators.java.entity.player;
+
+import com.github.steveice10.mc.protocol.packet.ingame.server.entity.player.ServerPlayerAbilitiesPacket;
+import com.nukkitx.protocol.bedrock.data.EntityDataDictionary;
+import com.nukkitx.protocol.bedrock.data.EntityFlag;
+import com.nukkitx.protocol.bedrock.packet.AdventureSettingsPacket;
+import com.nukkitx.protocol.bedrock.packet.SetEntityDataPacket;
+import org.geysermc.connector.entity.Entity;
+import org.geysermc.connector.network.session.GeyserSession;
+import org.geysermc.connector.network.translators.PacketTranslator;
+
+public class JavaPlayerAbilitiesTranslator extends PacketTranslator {
+
+ @Override
+ public void translate(ServerPlayerAbilitiesPacket packet, GeyserSession session) {
+ Entity entity = session.getPlayerEntity();
+ if (entity == null)
+ return;
+
+ EntityDataDictionary metadata = entity.getMetadata();
+ metadata.getFlags().setFlag(EntityFlag.CAN_FLY, packet.isCanFly());
+
+ SetEntityDataPacket entityDataPacket = new SetEntityDataPacket();
+ entityDataPacket.setRuntimeEntityId(entity.getGeyserId());
+ entityDataPacket.getMetadata().putAll(metadata);
+ session.getUpstream().sendPacket(entityDataPacket);
+
+ int playerFlags = 0;
+
+ playerFlags = setPlayerFlag(0x20, true, playerFlags); // auto jump
+ playerFlags = setPlayerFlag(0x40, packet.isCanFly(), playerFlags); // can fly
+ playerFlags = setPlayerFlag(0x200, packet.isFlying(), playerFlags); // is flying
+
+ AdventureSettingsPacket adventureSettingsPacket = new AdventureSettingsPacket();
+ adventureSettingsPacket.setPlayerPermission(1);
+ adventureSettingsPacket.setUniqueEntityId(entity.getGeyserId());
+ adventureSettingsPacket.setPlayerFlags(playerFlags);
+ session.getUpstream().sendPacket(adventureSettingsPacket);
+ }
+
+ private int setPlayerFlag(int flag, boolean value, int playerFlags) {
+ if (value) {
+ return playerFlags | flag;
+ } else {
+ return playerFlags & ~flag;
+ }
+ }
+}
diff --git a/connector/src/main/java/org/geysermc/connector/network/translators/java/entity/player/JavaPlayerHealthTranslator.java b/connector/src/main/java/org/geysermc/connector/network/translators/java/entity/player/JavaPlayerHealthTranslator.java
index 1abd4c1c1..73376385a 100644
--- a/connector/src/main/java/org/geysermc/connector/network/translators/java/entity/player/JavaPlayerHealthTranslator.java
+++ b/connector/src/main/java/org/geysermc/connector/network/translators/java/entity/player/JavaPlayerHealthTranslator.java
@@ -63,7 +63,7 @@ public class JavaPlayerHealthTranslator extends PacketTranslator entity.sendPlayer(session));
+ if (session.getUpstream().isInitialized()) {
+ SkinUtils.requestAndHandleSkinAndCape(entity, session, skinAndCape -> entity.sendPlayer(session));
+ }
}
}
diff --git a/connector/src/main/java/org/geysermc/connector/utils/ProvidedSkin.java b/connector/src/main/java/org/geysermc/connector/utils/ProvidedSkin.java
index 007a9557e..78cd8933d 100644
--- a/connector/src/main/java/org/geysermc/connector/utils/ProvidedSkin.java
+++ b/connector/src/main/java/org/geysermc/connector/utils/ProvidedSkin.java
@@ -19,10 +19,10 @@ public class ProvidedSkin {
for (int y = 0; y < image.getHeight(); y++) {
for (int x = 0; x < image.getWidth(); x++) {
int rgba = image.getRGB(x, y);
- outputStream.write((rgba >> 16) & 0xFF);
- outputStream.write((rgba >> 8) & 0xFF);
- outputStream.write(rgba & 0xFF);
- outputStream.write((rgba >> 24) & 0xFF);
+ outputStream.write((rgba >> 16) & 0xFF); // Red
+ outputStream.write((rgba >> 8) & 0xFF); // Green
+ outputStream.write(rgba & 0xFF); // Blue
+ outputStream.write((rgba >> 24) & 0xFF); // Alpha
}
}
image.flush();
diff --git a/connector/src/main/java/org/geysermc/connector/utils/SkinProvider.java b/connector/src/main/java/org/geysermc/connector/utils/SkinProvider.java
index 2d2aceabf..b2634e3be 100644
--- a/connector/src/main/java/org/geysermc/connector/utils/SkinProvider.java
+++ b/connector/src/main/java/org/geysermc/connector/utils/SkinProvider.java
@@ -22,12 +22,12 @@ public class SkinProvider {
public static final boolean ALLOW_THIRD_PARTY_CAPES = ((GeyserConnector)Geyser.getConnector()).getConfig().isAllowThirdPartyCapes();
private static final ExecutorService EXECUTOR_SERVICE = Executors.newFixedThreadPool(ALLOW_THIRD_PARTY_CAPES ? 21 : 14);
- public static final Skin EMPTY_SKIN = new Skin(-1, "");
public static final byte[] STEVE_SKIN = new ProvidedSkin("bedrock/skin/skin_steve.png").getSkin();
+ public static final Skin EMPTY_SKIN = new Skin(-1, "steve", STEVE_SKIN);
private static Map cachedSkins = new ConcurrentHashMap<>();
private static Map> requestedSkins = new ConcurrentHashMap<>();
- public static final Cape EMPTY_CAPE = new Cape("", new byte[0], -1, true);
+ public static final Cape EMPTY_CAPE = new Cape("", "no-cape", new byte[0], -1, true);
private static Map cachedCapes = new ConcurrentHashMap<>();
private static Map> requestedCapes = new ConcurrentHashMap<>();
@@ -149,8 +149,11 @@ public class SkinProvider {
cape = requestImage(capeUrl, true);
} catch (Exception ignored) {} // just ignore I guess
+ String[] urlSection = capeUrl.split("/"); // A real url is expected at this stage
+
return new Cape(
capeUrl,
+ urlSection[urlSection.length - 1], // get the texture id and use it as cape id
cape.length > 0 ? cape : EMPTY_CAPE.getCapeData(),
System.currentTimeMillis(),
cape.length == 0
@@ -209,13 +212,14 @@ public class SkinProvider {
public static class Skin {
private UUID skinOwner;
private String textureUrl;
- private byte[] skinData = STEVE_SKIN;
+ private byte[] skinData;
private long requestedOn;
private boolean updated;
- private Skin(long requestedOn, String textureUrl) {
+ private Skin(long requestedOn, String textureUrl, byte[] skinData) {
this.requestedOn = requestedOn;
this.textureUrl = textureUrl;
+ this.skinData = skinData;
}
}
@@ -223,6 +227,7 @@ public class SkinProvider {
@Getter
public static class Cape {
private String textureUrl;
+ private String capeId;
private byte[] capeData;
private long requestedOn;
private boolean failed;
diff --git a/connector/src/main/java/org/geysermc/connector/utils/SkinUtils.java b/connector/src/main/java/org/geysermc/connector/utils/SkinUtils.java
index 08b9ed1f4..407212ddc 100644
--- a/connector/src/main/java/org/geysermc/connector/utils/SkinUtils.java
+++ b/connector/src/main/java/org/geysermc/connector/utils/SkinUtils.java
@@ -9,16 +9,19 @@ import lombok.AllArgsConstructor;
import lombok.Getter;
import org.apache.commons.codec.Charsets;
import org.geysermc.api.Geyser;
+import org.geysermc.connector.GeyserConnector;
import org.geysermc.connector.entity.PlayerEntity;
import org.geysermc.connector.network.session.GeyserSession;
import java.util.Base64;
+import java.util.Collections;
import java.util.UUID;
import java.util.function.Consumer;
public class SkinUtils {
public static PlayerListPacket.Entry buildCachedEntry(GameProfile profile, long geyserId) {
GameProfileData data = GameProfileData.from(profile);
+ SkinProvider.Cape cape = SkinProvider.getCachedCape(data.getCapeUrl());
return buildEntryManually(
profile.getId(),
@@ -26,7 +29,8 @@ public class SkinUtils {
geyserId,
profile.getIdAsString(),
SkinProvider.getCachedSkin(profile.getId()).getSkinData(),
- SkinProvider.getCachedCape(data.getCapeUrl()).getCapeData(),
+ cape.getCapeId(),
+ cape.getCapeData(),
getLegacySkinGeometry("geometry.humanoid.custom" + (data.isAlex() ? "Slim" : "")),
""
);
@@ -39,6 +43,7 @@ public class SkinUtils {
geyserId,
profile.getIdAsString(),
SkinProvider.STEVE_SKIN,
+ SkinProvider.EMPTY_CAPE.getCapeId(),
SkinProvider.EMPTY_CAPE.getCapeData(),
getLegacySkinGeometry("geometry.humanoid"),
""
@@ -46,9 +51,13 @@ public class SkinUtils {
}
public static PlayerListPacket.Entry buildEntryManually(UUID uuid, String username, long geyserId,
- String skinId, byte[] skinData, byte[] capeData,
+ String skinId, byte[] skinData,
+ String capeId, byte[] capeData,
String geometryName, String geometryData) {
- SerializedSkin serializedSkin = SerializedSkin.of(skinId, ImageData.of(64, 64, skinData), ImageData.of(64, 32, capeData), geometryName, geometryData, true);
+ SerializedSkin serializedSkin = SerializedSkin.of(
+ skinId, geometryName, ImageData.of(skinData), Collections.emptyList(),
+ ImageData.of(capeData), geometryData, "", true, false, false, capeId, uuid.toString()
+ );
PlayerListPacket.Entry entry = new PlayerListPacket.Entry(uuid);
entry.setName(username);
@@ -87,8 +96,10 @@ public class SkinUtils {
return new GameProfileData(skinUrl, capeUrl, isAlex);
} catch (Exception exception) {
+ if (!((GeyserConnector) Geyser.getConnector()).getConfig().getRemote().getAuthType().equals("offline")) {
+ Geyser.getLogger().debug("Got invalid texture data for " + profile.getName() + " " + exception.getMessage());
+ }
// return default skin with default cape when texture data is invalid
- Geyser.getLogger().debug("Got invalid texture data for " + profile.getName() + " " + exception.getMessage());
return new GameProfileData("", "", false);
}
}
@@ -97,7 +108,7 @@ public class SkinUtils {
public static void requestAndHandleSkinAndCape(PlayerEntity entity, GeyserSession session,
Consumer skinAndCapeConsumer) {
Geyser.getGeneralThreadPool().execute(() -> {
- SkinUtils.GameProfileData data = SkinUtils.GameProfileData.from(entity.getProfile());
+ GameProfileData data = GameProfileData.from(entity.getProfile());
SkinProvider.requestSkinAndCape(entity.getUuid(), data.getSkinUrl(), data.getCapeUrl())
.whenCompleteAsync((skinAndCape, throwable) -> {
@@ -116,12 +127,13 @@ public class SkinUtils {
entity.setLastSkinUpdate(skin.getRequestedOn());
if (session.getUpstream().isInitialized()) {
- PlayerListPacket.Entry updatedEntry = SkinUtils.buildEntryManually(
+ PlayerListPacket.Entry updatedEntry = buildEntryManually(
entity.getUuid(),
entity.getUsername(),
entity.getGeyserId(),
entity.getUuid().toString(),
skin.getSkinData(),
+ cape.getCapeId(),
cape.getCapeData(),
getLegacySkinGeometry("geometry.humanoid.custom" + (data.isAlex() ? "Slim" : "")),
""
diff --git a/connector/src/main/resources/bedrock/creative_items.json b/connector/src/main/resources/bedrock/creative_items.json
index 600739894..8453bf90c 100644
--- a/connector/src/main/resources/bedrock/creative_items.json
+++ b/connector/src/main/resources/bedrock/creative_items.json
@@ -1039,6 +1039,9 @@
{
"id" : 2
},
+ {
+ "id" : 198
+ },
{
"id" : 243
},
@@ -1336,6 +1339,26 @@
"id" : -131,
"damage" : 4
},
+ {
+ "id" : -131,
+ "damage" : 11
+ },
+ {
+ "id" : -131,
+ "damage" : 9
+ },
+ {
+ "id" : -131,
+ "damage" : 10
+ },
+ {
+ "id" : -131,
+ "damage" : 8
+ },
+ {
+ "id" : -131,
+ "damage" : 12
+ },
{
"id" : -133,
"damage" : 3
@@ -1441,6 +1464,9 @@
"id" : 175,
"damage" : 5
},
+ {
+ "id" : -216
+ },
{
"id" : 351,
"damage" : 19
@@ -1748,6 +1774,10 @@
"id" : 383,
"damage" : 113
},
+ {
+ "id" : 383,
+ "damage" : 121
+ },
{
"id" : 383,
"damage" : 33
@@ -2993,15 +3023,15 @@
{
"id" : 54
},
- {
- "id" : -203
- },
{
"id" : 146
},
{
"id" : 130
},
+ {
+ "id" : -203
+ },
{
"id" : 205
},
@@ -3819,32 +3849,25 @@
"id" : 69
},
{
- "id" : 143,
- "damage" : 5
+ "id" : 143
},
{
- "id" : -144,
- "damage" : 5
+ "id" : -144
},
{
- "id" : -141,
- "damage" : 5
+ "id" : -141
},
{
- "id" : -143,
- "damage" : 5
+ "id" : -143
},
{
- "id" : -140,
- "damage" : 5
+ "id" : -140
},
{
- "id" : -142,
- "damage" : 5
+ "id" : -142
},
{
- "id" : 77,
- "damage" : 5
+ "id" : 77
},
{
"id" : 131
diff --git a/connector/src/main/resources/bedrock/items.json b/connector/src/main/resources/bedrock/items.json
index 1c1c2fa15..e4b9e43e8 100644
--- a/connector/src/main/resources/bedrock/items.json
+++ b/connector/src/main/resources/bedrock/items.json
@@ -51,6 +51,10 @@
"name": "minecraft:bread",
"id": 297
},
+ {
+ "name": "minecraft:light_block",
+ "id": -215
+ },
{
"name": "minecraft:porkchop",
"id": 319
@@ -63,10 +67,18 @@
"name": "minecraft:fish",
"id": 349
},
+ {
+ "name": "minecraft:element_52",
+ "id": -63
+ },
{
"name": "minecraft:diamond_sword",
"id": 276
},
+ {
+ "name": "minecraft:element_38",
+ "id": -49
+ },
{
"name": "minecraft:sandstone_stairs",
"id": 128
@@ -87,6 +99,10 @@
"name": "minecraft:horsearmorgold",
"id": 418
},
+ {
+ "name": "minecraft:element_74",
+ "id": -85
+ },
{
"name": "minecraft:pufferfish",
"id": 462
@@ -107,6 +123,10 @@
"name": "minecraft:emerald",
"id": 388
},
+ {
+ "name": "minecraft:element_47",
+ "id": -58
+ },
{
"name": "minecraft:mushroom_stew",
"id": 282
@@ -135,10 +155,22 @@
"name": "minecraft:cooked_fish",
"id": 350
},
+ {
+ "name": "minecraft:element_32",
+ "id": -43
+ },
{
"name": "minecraft:double_stone_slab4",
"id": -166
},
+ {
+ "name": "minecraft:element_5",
+ "id": -16
+ },
+ {
+ "name": "minecraft:element_25",
+ "id": -36
+ },
{
"name": "minecraft:polished_granite_stairs",
"id": -172
@@ -159,10 +191,18 @@
"name": "minecraft:cooked_salmon",
"id": 463
},
+ {
+ "name": "minecraft:element_87",
+ "id": -98
+ },
{
"name": "minecraft:pumpkin_seeds",
"id": 361
},
+ {
+ "name": "minecraft:element_53",
+ "id": -64
+ },
{
"name": "minecraft:dried_kelp",
"id": 464
@@ -219,6 +259,10 @@
"name": "minecraft:chicken",
"id": 365
},
+ {
+ "name": "minecraft:element_31",
+ "id": -42
+ },
{
"name": "minecraft:cooked_chicken",
"id": 366
@@ -243,6 +287,10 @@
"name": "minecraft:diamond_axe",
"id": 279
},
+ {
+ "name": "minecraft:element_105",
+ "id": -116
+ },
{
"name": "minecraft:carrot",
"id": 391
@@ -259,6 +307,10 @@
"name": "minecraft:baked_potato",
"id": 393
},
+ {
+ "name": "minecraft:element_15",
+ "id": -26
+ },
{
"name": "minecraft:carpet",
"id": 171
@@ -367,6 +419,10 @@
"name": "minecraft:arrow",
"id": 262
},
+ {
+ "name": "minecraft:element_97",
+ "id": -108
+ },
{
"name": "minecraft:campfire",
"id": 720
@@ -463,6 +519,10 @@
"name": "minecraft:slime_ball",
"id": 341
},
+ {
+ "name": "minecraft:element_58",
+ "id": -69
+ },
{
"name": "minecraft:golden_sword",
"id": 283
@@ -483,6 +543,10 @@
"name": "minecraft:golden_axe",
"id": 286
},
+ {
+ "name": "minecraft:element_62",
+ "id": -73
+ },
{
"name": "minecraft:string",
"id": 287
@@ -551,14 +615,26 @@
"name": "minecraft:grindstone",
"id": -195
},
+ {
+ "name": "minecraft:element_46",
+ "id": -57
+ },
{
"name": "minecraft:potion",
"id": 373
},
+ {
+ "name": "minecraft:wither_rose",
+ "id": -216
+ },
{
"name": "minecraft:leather_helmet",
"id": 298
},
+ {
+ "name": "minecraft:element_48",
+ "id": -59
+ },
{
"name": "minecraft:leather_chestplate",
"id": 299
@@ -587,6 +663,14 @@
"name": "minecraft:stonebrick",
"id": 98
},
+ {
+ "name": "minecraft:stickypistonarmcollision",
+ "id": -217
+ },
+ {
+ "name": "minecraft:structure_void",
+ "id": 217
+ },
{
"name": "minecraft:chainmail_chestplate",
"id": 303
@@ -595,6 +679,10 @@
"name": "minecraft:lit_blast_furnace",
"id": -214
},
+ {
+ "name": "minecraft:element_11",
+ "id": -22
+ },
{
"name": "minecraft:chainmail_leggings",
"id": 304
@@ -631,6 +719,10 @@
"name": "minecraft:iron_boots",
"id": 309
},
+ {
+ "name": "minecraft:element_104",
+ "id": -115
+ },
{
"name": "minecraft:chorus_fruit_popped",
"id": 433
@@ -643,6 +735,10 @@
"name": "minecraft:diamond_leggings",
"id": 312
},
+ {
+ "name": "minecraft:element_75",
+ "id": -86
+ },
{
"name": "minecraft:diamond_boots",
"id": 313
@@ -787,6 +883,10 @@
"name": "minecraft:flowing_lava",
"id": 10
},
+ {
+ "name": "minecraft:element_86",
+ "id": -97
+ },
{
"name": "minecraft:red_glazed_terracotta",
"id": 234
@@ -831,6 +931,10 @@
"name": "minecraft:clock",
"id": 347
},
+ {
+ "name": "minecraft:element_96",
+ "id": -107
+ },
{
"name": "minecraft:dye",
"id": 351
@@ -859,6 +963,10 @@
"name": "minecraft:cake",
"id": 354
},
+ {
+ "name": "minecraft:element_113",
+ "id": -124
+ },
{
"name": "minecraft:mossy_cobblestone",
"id": 48
@@ -891,6 +999,14 @@
"name": "minecraft:double_stone_slab2",
"id": 182
},
+ {
+ "name": "minecraft:element_3",
+ "id": -14
+ },
+ {
+ "name": "minecraft:element_23",
+ "id": -34
+ },
{
"name": "minecraft:skull",
"id": 397
@@ -939,6 +1055,10 @@
"name": "minecraft:fermented_spider_eye",
"id": 376
},
+ {
+ "name": "minecraft:element_81",
+ "id": -92
+ },
{
"name": "minecraft:monster_egg",
"id": 97
@@ -1019,10 +1139,18 @@
"name": "minecraft:netherstar",
"id": 399
},
+ {
+ "name": "minecraft:element_16",
+ "id": -27
+ },
{
"name": "minecraft:fireworks",
"id": 401
},
+ {
+ "name": "minecraft:element_30",
+ "id": -41
+ },
{
"name": "minecraft:fireworkscharge",
"id": 402
@@ -1047,6 +1175,10 @@
"name": "minecraft:concrete",
"id": 236
},
+ {
+ "name": "minecraft:element_73",
+ "id": -84
+ },
{
"name": "minecraft:quartz",
"id": 406
@@ -1059,10 +1191,18 @@
"name": "minecraft:leaves2",
"id": 161
},
+ {
+ "name": "minecraft:element_102",
+ "id": -113
+ },
{
"name": "minecraft:coral_fan_hang2",
"id": -136
},
+ {
+ "name": "minecraft:element_67",
+ "id": -78
+ },
{
"name": "minecraft:hopper_minecart",
"id": 408
@@ -1107,13 +1247,17 @@
"name": "minecraft:record_13",
"id": 500
},
+ {
+ "name": "minecraft:stone_button",
+ "id": 77
+ },
{
"name": "minecraft:record_cat",
"id": 501
},
{
- "name": "minecraft:stone_button",
- "id": 77
+ "name": "minecraft:element_89",
+ "id": -100
},
{
"name": "minecraft:record_blocks",
@@ -1123,6 +1267,10 @@
"name": "minecraft:bamboo",
"id": -163
},
+ {
+ "name": "minecraft:element_72",
+ "id": -83
+ },
{
"name": "minecraft:record_chirp",
"id": 503
@@ -1187,6 +1335,10 @@
"name": "minecraft:end_crystal",
"id": 426
},
+ {
+ "name": "minecraft:element_55",
+ "id": -66
+ },
{
"name": "minecraft:birch_door",
"id": 428
@@ -1203,6 +1355,10 @@
"name": "minecraft:acacia_door",
"id": 430
},
+ {
+ "name": "minecraft:element_116",
+ "id": -127
+ },
{
"name": "minecraft:chorus_fruit",
"id": 432
@@ -1251,6 +1407,10 @@
"name": "minecraft:prismarine_shard",
"id": 409
},
+ {
+ "name": "minecraft:element_112",
+ "id": -123
+ },
{
"name": "minecraft:totem",
"id": 450
@@ -1263,6 +1423,10 @@
"name": "minecraft:pumpkin_stem",
"id": 104
},
+ {
+ "name": "minecraft:element_50",
+ "id": -61
+ },
{
"name": "minecraft:lever",
"id": 69
@@ -1271,6 +1435,10 @@
"name": "minecraft:heart_of_the_sea",
"id": 467
},
+ {
+ "name": "minecraft:element_92",
+ "id": -103
+ },
{
"name": "minecraft:grass",
"id": 2
@@ -1323,6 +1491,22 @@
"name": "minecraft:banner_pattern",
"id": 434
},
+ {
+ "name": "minecraft:suspicious_stew",
+ "id": 734
+ },
+ {
+ "name": "minecraft:element_4",
+ "id": -15
+ },
+ {
+ "name": "minecraft:element_24",
+ "id": -35
+ },
+ {
+ "name": "minecraft:camera",
+ "id": 498
+ },
{
"name": "minecraft:compound",
"id": 499
@@ -1331,6 +1515,10 @@
"name": "minecraft:bleach",
"id": 451
},
+ {
+ "name": "minecraft:element_40",
+ "id": -51
+ },
{
"name": "minecraft:rapid_fertilizer",
"id": 449
@@ -1399,6 +1587,10 @@
"name": "minecraft:coral_block",
"id": -132
},
+ {
+ "name": "minecraft:element_54",
+ "id": -65
+ },
{
"name": "minecraft:double_stone_slab",
"id": 44
@@ -1407,6 +1599,14 @@
"name": "minecraft:double_stone_slab3",
"id": -162
},
+ {
+ "name": "minecraft:element_2",
+ "id": -13
+ },
+ {
+ "name": "minecraft:element_22",
+ "id": -33
+ },
{
"name": "minecraft:real_double_stone_slab2",
"id": 181
@@ -1423,6 +1623,10 @@
"name": "minecraft:leaves",
"id": 18
},
+ {
+ "name": "minecraft:element_10",
+ "id": -21
+ },
{
"name": "minecraft:birch_button",
"id": -141
@@ -1435,6 +1639,10 @@
"name": "minecraft:red_sandstone",
"id": 179
},
+ {
+ "name": "minecraft:element_91",
+ "id": -102
+ },
{
"name": "minecraft:wooden_slab",
"id": 158
@@ -1463,10 +1671,6 @@
"name": "minecraft:planks",
"id": 5
},
- {
- "name": "minecraft:redstone_torch",
- "id": 76
- },
{
"name": "minecraft:quartz_block",
"id": 155
@@ -1511,6 +1715,10 @@
"name": "minecraft:stained_glass",
"id": 241
},
+ {
+ "name": "minecraft:element_82",
+ "id": -93
+ },
{
"name": "minecraft:stained_glass_pane",
"id": 160
@@ -1523,6 +1731,10 @@
"name": "minecraft:undyed_shulker_box",
"id": 205
},
+ {
+ "name": "minecraft:element_107",
+ "id": -118
+ },
{
"name": "minecraft:piston",
"id": 33
@@ -1567,6 +1779,10 @@
"name": "minecraft:bell",
"id": -206
},
+ {
+ "name": "minecraft:element_42",
+ "id": -53
+ },
{
"name": "minecraft:cartography_table",
"id": -200
@@ -1587,6 +1803,10 @@
"name": "minecraft:chemistry_table",
"id": 238
},
+ {
+ "name": "minecraft:element_70",
+ "id": -81
+ },
{
"name": "minecraft:tnt",
"id": 46
@@ -1603,54 +1823,214 @@
"name": "minecraft:brown_mushroom",
"id": 39
},
+ {
+ "name": "minecraft:element_0",
+ "id": 36
+ },
+ {
+ "name": "minecraft:element_20",
+ "id": -31
+ },
+ {
+ "name": "minecraft:element_1",
+ "id": -12
+ },
+ {
+ "name": "minecraft:element_21",
+ "id": -32
+ },
+ {
+ "name": "minecraft:element_6",
+ "id": -17
+ },
+ {
+ "name": "minecraft:element_26",
+ "id": -37
+ },
+ {
+ "name": "minecraft:element_7",
+ "id": -18
+ },
+ {
+ "name": "minecraft:element_27",
+ "id": -38
+ },
+ {
+ "name": "minecraft:element_8",
+ "id": -19
+ },
+ {
+ "name": "minecraft:element_28",
+ "id": -39
+ },
{
"name": "minecraft:dark_oak_pressure_plate",
"id": -152
},
+ {
+ "name": "minecraft:element_9",
+ "id": -20
+ },
+ {
+ "name": "minecraft:element_29",
+ "id": -40
+ },
{
"name": "minecraft:item.spruce_door",
"id": 193
},
+ {
+ "name": "minecraft:element_12",
+ "id": -23
+ },
{
"name": "minecraft:cyan_glazed_terracotta",
"id": 229
},
+ {
+ "name": "minecraft:element_13",
+ "id": -24
+ },
+ {
+ "name": "minecraft:element_14",
+ "id": -25
+ },
{
"name": "minecraft:iron_ore",
"id": 15
},
+ {
+ "name": "minecraft:element_17",
+ "id": -28
+ },
+ {
+ "name": "minecraft:element_18",
+ "id": -29
+ },
{
"name": "minecraft:birch_pressure_plate",
"id": -151
},
+ {
+ "name": "minecraft:element_19",
+ "id": -30
+ },
{
"name": "minecraft:wooden_pressure_plate",
"id": 72
},
+ {
+ "name": "minecraft:element_33",
+ "id": -44
+ },
+ {
+ "name": "minecraft:element_34",
+ "id": -45
+ },
+ {
+ "name": "minecraft:element_35",
+ "id": -46
+ },
{
"name": "minecraft:composter",
"id": -213
},
+ {
+ "name": "minecraft:element_36",
+ "id": -47
+ },
+ {
+ "name": "minecraft:element_37",
+ "id": -48
+ },
+ {
+ "name": "minecraft:element_39",
+ "id": -50
+ },
+ {
+ "name": "minecraft:element_41",
+ "id": -52
+ },
{
"name": "minecraft:hay_block",
"id": 170
},
+ {
+ "name": "minecraft:element_43",
+ "id": -54
+ },
{
"name": "minecraft:lit_redstone_lamp",
"id": 124
},
+ {
+ "name": "minecraft:element_44",
+ "id": -55
+ },
+ {
+ "name": "minecraft:element_45",
+ "id": -56
+ },
+ {
+ "name": "minecraft:element_49",
+ "id": -60
+ },
+ {
+ "name": "minecraft:element_51",
+ "id": -62
+ },
+ {
+ "name": "minecraft:element_56",
+ "id": -67
+ },
+ {
+ "name": "minecraft:element_57",
+ "id": -68
+ },
+ {
+ "name": "minecraft:element_59",
+ "id": -70
+ },
+ {
+ "name": "minecraft:element_60",
+ "id": -71
+ },
{
"name": "minecraft:dropper",
"id": 125
},
+ {
+ "name": "minecraft:element_61",
+ "id": -72
+ },
+ {
+ "name": "minecraft:element_63",
+ "id": -74
+ },
+ {
+ "name": "minecraft:element_64",
+ "id": -75
+ },
+ {
+ "name": "minecraft:element_65",
+ "id": -76
+ },
{
"name": "minecraft:coral_fan_hang3",
"id": -137
},
+ {
+ "name": "minecraft:element_66",
+ "id": -77
+ },
{
"name": "minecraft:redstone_lamp",
"id": 123
},
+ {
+ "name": "minecraft:element_68",
+ "id": -79
+ },
{
"name": "minecraft:spruce_trapdoor",
"id": -149
@@ -1659,18 +2039,54 @@
"name": "minecraft:purple_glazed_terracotta",
"id": 219
},
+ {
+ "name": "minecraft:element_69",
+ "id": -80
+ },
{
"name": "minecraft:iron_block",
"id": 42
},
+ {
+ "name": "minecraft:element_71",
+ "id": -82
+ },
+ {
+ "name": "minecraft:element_76",
+ "id": -87
+ },
+ {
+ "name": "minecraft:element_77",
+ "id": -88
+ },
{
"name": "minecraft:water",
"id": 9
},
+ {
+ "name": "minecraft:element_78",
+ "id": -89
+ },
+ {
+ "name": "minecraft:element_79",
+ "id": -90
+ },
+ {
+ "name": "minecraft:element_80",
+ "id": -91
+ },
{
"name": "minecraft:netherreactor",
"id": 247
},
+ {
+ "name": "minecraft:element_83",
+ "id": -94
+ },
+ {
+ "name": "minecraft:element_84",
+ "id": -95
+ },
{
"name": "minecraft:jungle_wall_sign",
"id": -189
@@ -1679,6 +2095,18 @@
"name": "minecraft:end_brick_stairs",
"id": -178
},
+ {
+ "name": "minecraft:element_85",
+ "id": -96
+ },
+ {
+ "name": "minecraft:element_88",
+ "id": -99
+ },
+ {
+ "name": "minecraft:element_90",
+ "id": -101
+ },
{
"name": "minecraft:birch_standing_sign",
"id": -186
@@ -1687,6 +2115,18 @@
"name": "minecraft:gold_ore",
"id": 14
},
+ {
+ "name": "minecraft:element_93",
+ "id": -104
+ },
+ {
+ "name": "minecraft:element_94",
+ "id": -105
+ },
+ {
+ "name": "minecraft:element_95",
+ "id": -106
+ },
{
"name": "minecraft:glass",
"id": 20
@@ -1695,10 +2135,62 @@
"name": "minecraft:red_nether_brick",
"id": 215
},
+ {
+ "name": "minecraft:element_98",
+ "id": -109
+ },
+ {
+ "name": "minecraft:element_99",
+ "id": -110
+ },
+ {
+ "name": "minecraft:element_100",
+ "id": -111
+ },
+ {
+ "name": "minecraft:element_101",
+ "id": -112
+ },
+ {
+ "name": "minecraft:element_103",
+ "id": -114
+ },
+ {
+ "name": "minecraft:element_106",
+ "id": -117
+ },
+ {
+ "name": "minecraft:element_108",
+ "id": -119
+ },
+ {
+ "name": "minecraft:element_109",
+ "id": -120
+ },
+ {
+ "name": "minecraft:element_110",
+ "id": -121
+ },
+ {
+ "name": "minecraft:element_111",
+ "id": -122
+ },
+ {
+ "name": "minecraft:element_114",
+ "id": -125
+ },
{
"name": "minecraft:birch_fence_gate",
"id": 184
},
+ {
+ "name": "minecraft:element_115",
+ "id": -126
+ },
+ {
+ "name": "minecraft:element_117",
+ "id": -128
+ },
{
"name": "minecraft:slime",
"id": 165
@@ -1707,6 +2199,10 @@
"name": "minecraft:spruce_standing_sign",
"id": -181
},
+ {
+ "name": "minecraft:element_118",
+ "id": -129
+ },
{
"name": "minecraft:gravel",
"id": 13
@@ -1855,6 +2351,10 @@
"name": "minecraft:red_nether_brick_stairs",
"id": -184
},
+ {
+ "name": "minecraft:redstone_torch",
+ "id": 76
+ },
{
"name": "minecraft:ice",
"id": 79
@@ -2179,6 +2679,14 @@
"name": "minecraft:chorus_plant",
"id": 240
},
+ {
+ "name": "minecraft:fire",
+ "id": 51
+ },
+ {
+ "name": "minecraft:item.camera",
+ "id": 242
+ },
{
"name": "minecraft:stonecutter",
"id": 245
@@ -2203,10 +2711,6 @@
"name": "minecraft:stripped_dark_oak_log",
"id": -9
},
- {
- "name": "minecraft:fire",
- "id": 51
- },
{
"name": "minecraft:hard_glass_pane",
"id": 190
diff --git a/connector/src/main/resources/blocks.json b/connector/src/main/resources/blocks.json
index df9f305c0..0e8f0d0e1 100644
--- a/connector/src/main/resources/blocks.json
+++ b/connector/src/main/resources/blocks.json
@@ -577,339 +577,339 @@
},
"minecraft:oak_leaves[distance=1,persistent=true]": {
"bedrock_identifier": "minecraft:leaves",
- "bedrock_data": 8
+ "bedrock_data": 4
},
"minecraft:oak_leaves[distance=1,persistent=false]": {
"bedrock_identifier": "minecraft:leaves",
- "bedrock_data": 4
+ "bedrock_data": 0
},
"minecraft:oak_leaves[distance=2,persistent=true]": {
"bedrock_identifier": "minecraft:leaves",
- "bedrock_data": 8
+ "bedrock_data": 4
},
"minecraft:oak_leaves[distance=2,persistent=false]": {
"bedrock_identifier": "minecraft:leaves",
- "bedrock_data": 4
+ "bedrock_data": 0
},
"minecraft:oak_leaves[distance=3,persistent=true]": {
"bedrock_identifier": "minecraft:leaves",
- "bedrock_data": 8
+ "bedrock_data": 4
},
"minecraft:oak_leaves[distance=3,persistent=false]": {
"bedrock_identifier": "minecraft:leaves",
- "bedrock_data": 4
+ "bedrock_data": 0
},
"minecraft:oak_leaves[distance=4,persistent=true]": {
"bedrock_identifier": "minecraft:leaves",
- "bedrock_data": 8
+ "bedrock_data": 4
},
"minecraft:oak_leaves[distance=4,persistent=false]": {
"bedrock_identifier": "minecraft:leaves",
- "bedrock_data": 4
+ "bedrock_data": 0
},
"minecraft:oak_leaves[distance=5,persistent=true]": {
"bedrock_identifier": "minecraft:leaves",
- "bedrock_data": 8
+ "bedrock_data": 4
},
"minecraft:oak_leaves[distance=5,persistent=false]": {
"bedrock_identifier": "minecraft:leaves",
- "bedrock_data": 4
+ "bedrock_data": 0
},
"minecraft:oak_leaves[distance=6,persistent=true]": {
"bedrock_identifier": "minecraft:leaves",
- "bedrock_data": 8
+ "bedrock_data": 4
},
"minecraft:oak_leaves[distance=6,persistent=false]": {
"bedrock_identifier": "minecraft:leaves",
- "bedrock_data": 4
+ "bedrock_data": 0
},
"minecraft:oak_leaves[distance=7,persistent=true]": {
"bedrock_identifier": "minecraft:leaves",
- "bedrock_data": 8
+ "bedrock_data": 4
},
"minecraft:oak_leaves[distance=7,persistent=false]": {
"bedrock_identifier": "minecraft:leaves",
- "bedrock_data": 4
+ "bedrock_data": 0
},
"minecraft:spruce_leaves[distance=1,persistent=true]": {
"bedrock_identifier": "minecraft:leaves",
- "bedrock_data": 9
+ "bedrock_data": 5
},
"minecraft:spruce_leaves[distance=1,persistent=false]": {
"bedrock_identifier": "minecraft:leaves",
- "bedrock_data": 5
+ "bedrock_data": 1
},
"minecraft:spruce_leaves[distance=2,persistent=true]": {
"bedrock_identifier": "minecraft:leaves",
- "bedrock_data": 9
+ "bedrock_data": 5
},
"minecraft:spruce_leaves[distance=2,persistent=false]": {
"bedrock_identifier": "minecraft:leaves",
- "bedrock_data": 5
+ "bedrock_data": 1
},
"minecraft:spruce_leaves[distance=3,persistent=true]": {
"bedrock_identifier": "minecraft:leaves",
- "bedrock_data": 9
+ "bedrock_data": 5
},
"minecraft:spruce_leaves[distance=3,persistent=false]": {
"bedrock_identifier": "minecraft:leaves",
- "bedrock_data": 5
+ "bedrock_data": 1
},
"minecraft:spruce_leaves[distance=4,persistent=true]": {
"bedrock_identifier": "minecraft:leaves",
- "bedrock_data": 9
+ "bedrock_data": 5
},
"minecraft:spruce_leaves[distance=4,persistent=false]": {
"bedrock_identifier": "minecraft:leaves",
- "bedrock_data": 5
+ "bedrock_data": 1
},
"minecraft:spruce_leaves[distance=5,persistent=true]": {
"bedrock_identifier": "minecraft:leaves",
- "bedrock_data": 9
+ "bedrock_data": 5
},
"minecraft:spruce_leaves[distance=5,persistent=false]": {
"bedrock_identifier": "minecraft:leaves",
- "bedrock_data": 5
+ "bedrock_data": 1
},
"minecraft:spruce_leaves[distance=6,persistent=true]": {
"bedrock_identifier": "minecraft:leaves",
- "bedrock_data": 9
+ "bedrock_data": 5
},
"minecraft:spruce_leaves[distance=6,persistent=false]": {
"bedrock_identifier": "minecraft:leaves",
- "bedrock_data": 5
+ "bedrock_data": 1
},
"minecraft:spruce_leaves[distance=7,persistent=true]": {
"bedrock_identifier": "minecraft:leaves",
- "bedrock_data": 9
+ "bedrock_data": 5
},
"minecraft:spruce_leaves[distance=7,persistent=false]": {
"bedrock_identifier": "minecraft:leaves",
- "bedrock_data": 5
+ "bedrock_data": 1
},
"minecraft:birch_leaves[distance=1,persistent=true]": {
"bedrock_identifier": "minecraft:leaves",
- "bedrock_data": 10
+ "bedrock_data": 6
},
"minecraft:birch_leaves[distance=1,persistent=false]": {
"bedrock_identifier": "minecraft:leaves",
- "bedrock_data": 6
+ "bedrock_data": 2
},
"minecraft:birch_leaves[distance=2,persistent=true]": {
"bedrock_identifier": "minecraft:leaves",
- "bedrock_data": 10
+ "bedrock_data": 6
},
"minecraft:birch_leaves[distance=2,persistent=false]": {
"bedrock_identifier": "minecraft:leaves",
- "bedrock_data": 6
+ "bedrock_data": 2
},
"minecraft:birch_leaves[distance=3,persistent=true]": {
"bedrock_identifier": "minecraft:leaves",
- "bedrock_data": 10
+ "bedrock_data": 6
},
"minecraft:birch_leaves[distance=3,persistent=false]": {
"bedrock_identifier": "minecraft:leaves",
- "bedrock_data": 6
+ "bedrock_data": 2
},
"minecraft:birch_leaves[distance=4,persistent=true]": {
"bedrock_identifier": "minecraft:leaves",
- "bedrock_data": 10
+ "bedrock_data": 6
},
"minecraft:birch_leaves[distance=4,persistent=false]": {
"bedrock_identifier": "minecraft:leaves",
- "bedrock_data": 6
+ "bedrock_data": 2
},
"minecraft:birch_leaves[distance=5,persistent=true]": {
"bedrock_identifier": "minecraft:leaves",
- "bedrock_data": 10
+ "bedrock_data": 6
},
"minecraft:birch_leaves[distance=5,persistent=false]": {
"bedrock_identifier": "minecraft:leaves",
- "bedrock_data": 6
+ "bedrock_data": 2
},
"minecraft:birch_leaves[distance=6,persistent=true]": {
"bedrock_identifier": "minecraft:leaves",
- "bedrock_data": 10
+ "bedrock_data": 6
},
"minecraft:birch_leaves[distance=6,persistent=false]": {
"bedrock_identifier": "minecraft:leaves",
- "bedrock_data": 6
+ "bedrock_data": 2
},
"minecraft:birch_leaves[distance=7,persistent=true]": {
"bedrock_identifier": "minecraft:leaves",
- "bedrock_data": 10
+ "bedrock_data": 6
},
"minecraft:birch_leaves[distance=7,persistent=false]": {
"bedrock_identifier": "minecraft:leaves",
- "bedrock_data": 6
+ "bedrock_data": 2
},
"minecraft:jungle_leaves[distance=1,persistent=true]": {
"bedrock_identifier": "minecraft:leaves",
- "bedrock_data": 11
+ "bedrock_data": 7
},
"minecraft:jungle_leaves[distance=1,persistent=false]": {
"bedrock_identifier": "minecraft:leaves",
- "bedrock_data": 7
+ "bedrock_data": 3
},
"minecraft:jungle_leaves[distance=2,persistent=true]": {
"bedrock_identifier": "minecraft:leaves",
- "bedrock_data": 11
+ "bedrock_data": 7
},
"minecraft:jungle_leaves[distance=2,persistent=false]": {
"bedrock_identifier": "minecraft:leaves",
- "bedrock_data": 7
+ "bedrock_data": 3
},
"minecraft:jungle_leaves[distance=3,persistent=true]": {
"bedrock_identifier": "minecraft:leaves",
- "bedrock_data": 11
+ "bedrock_data": 7
},
"minecraft:jungle_leaves[distance=3,persistent=false]": {
"bedrock_identifier": "minecraft:leaves",
- "bedrock_data": 7
+ "bedrock_data": 3
},
"minecraft:jungle_leaves[distance=4,persistent=true]": {
"bedrock_identifier": "minecraft:leaves",
- "bedrock_data": 11
+ "bedrock_data": 7
},
"minecraft:jungle_leaves[distance=4,persistent=false]": {
"bedrock_identifier": "minecraft:leaves",
- "bedrock_data": 7
+ "bedrock_data": 3
},
"minecraft:jungle_leaves[distance=5,persistent=true]": {
"bedrock_identifier": "minecraft:leaves",
- "bedrock_data": 11
+ "bedrock_data": 7
},
"minecraft:jungle_leaves[distance=5,persistent=false]": {
"bedrock_identifier": "minecraft:leaves",
- "bedrock_data": 7
+ "bedrock_data": 3
},
"minecraft:jungle_leaves[distance=6,persistent=true]": {
"bedrock_identifier": "minecraft:leaves",
- "bedrock_data": 11
+ "bedrock_data": 7
},
"minecraft:jungle_leaves[distance=6,persistent=false]": {
"bedrock_identifier": "minecraft:leaves",
- "bedrock_data": 7
+ "bedrock_data": 3
},
"minecraft:jungle_leaves[distance=7,persistent=true]": {
"bedrock_identifier": "minecraft:leaves",
- "bedrock_data": 11
+ "bedrock_data": 7
},
"minecraft:jungle_leaves[distance=7,persistent=false]": {
"bedrock_identifier": "minecraft:leaves",
- "bedrock_data": 7
+ "bedrock_data": 3
},
"minecraft:acacia_leaves[distance=1,persistent=true]": {
"bedrock_identifier": "minecraft:leaves2",
- "bedrock_data": 8
+ "bedrock_data": 4
},
"minecraft:acacia_leaves[distance=1,persistent=false]": {
"bedrock_identifier": "minecraft:leaves2",
- "bedrock_data": 4
+ "bedrock_data": 0
},
"minecraft:acacia_leaves[distance=2,persistent=true]": {
"bedrock_identifier": "minecraft:leaves2",
- "bedrock_data": 8
+ "bedrock_data": 4
},
"minecraft:acacia_leaves[distance=2,persistent=false]": {
"bedrock_identifier": "minecraft:leaves2",
- "bedrock_data": 4
+ "bedrock_data": 0
},
"minecraft:acacia_leaves[distance=3,persistent=true]": {
"bedrock_identifier": "minecraft:leaves2",
- "bedrock_data": 8
+ "bedrock_data": 4
},
"minecraft:acacia_leaves[distance=3,persistent=false]": {
"bedrock_identifier": "minecraft:leaves2",
- "bedrock_data": 4
+ "bedrock_data": 0
},
"minecraft:acacia_leaves[distance=4,persistent=true]": {
"bedrock_identifier": "minecraft:leaves2",
- "bedrock_data": 8
+ "bedrock_data": 4
},
"minecraft:acacia_leaves[distance=4,persistent=false]": {
"bedrock_identifier": "minecraft:leaves2",
- "bedrock_data": 4
+ "bedrock_data": 0
},
"minecraft:acacia_leaves[distance=5,persistent=true]": {
"bedrock_identifier": "minecraft:leaves2",
- "bedrock_data": 8
+ "bedrock_data": 4
},
"minecraft:acacia_leaves[distance=5,persistent=false]": {
"bedrock_identifier": "minecraft:leaves2",
- "bedrock_data": 4
+ "bedrock_data": 0
},
"minecraft:acacia_leaves[distance=6,persistent=true]": {
"bedrock_identifier": "minecraft:leaves2",
- "bedrock_data": 8
+ "bedrock_data": 4
},
"minecraft:acacia_leaves[distance=6,persistent=false]": {
"bedrock_identifier": "minecraft:leaves2",
- "bedrock_data": 4
+ "bedrock_data": 0
},
"minecraft:acacia_leaves[distance=7,persistent=true]": {
"bedrock_identifier": "minecraft:leaves2",
- "bedrock_data": 8
+ "bedrock_data": 4
},
"minecraft:acacia_leaves[distance=7,persistent=false]": {
"bedrock_identifier": "minecraft:leaves2",
- "bedrock_data": 4
+ "bedrock_data": 0
},
"minecraft:dark_oak_leaves[distance=1,persistent=true]": {
"bedrock_identifier": "minecraft:leaves2",
- "bedrock_data": 9
+ "bedrock_data": 5
},
"minecraft:dark_oak_leaves[distance=1,persistent=false]": {
"bedrock_identifier": "minecraft:leaves2",
- "bedrock_data": 5
+ "bedrock_data": 1
},
"minecraft:dark_oak_leaves[distance=2,persistent=true]": {
"bedrock_identifier": "minecraft:leaves2",
- "bedrock_data": 9
+ "bedrock_data": 5
},
"minecraft:dark_oak_leaves[distance=2,persistent=false]": {
"bedrock_identifier": "minecraft:leaves2",
- "bedrock_data": 5
+ "bedrock_data": 1
},
"minecraft:dark_oak_leaves[distance=3,persistent=true]": {
"bedrock_identifier": "minecraft:leaves2",
- "bedrock_data": 9
+ "bedrock_data": 5
},
"minecraft:dark_oak_leaves[distance=3,persistent=false]": {
"bedrock_identifier": "minecraft:leaves2",
- "bedrock_data": 5
+ "bedrock_data": 1
},
"minecraft:dark_oak_leaves[distance=4,persistent=true]": {
"bedrock_identifier": "minecraft:leaves2",
- "bedrock_data": 9
+ "bedrock_data": 5
},
"minecraft:dark_oak_leaves[distance=4,persistent=false]": {
"bedrock_identifier": "minecraft:leaves2",
- "bedrock_data": 5
+ "bedrock_data": 1
},
"minecraft:dark_oak_leaves[distance=5,persistent=true]": {
"bedrock_identifier": "minecraft:leaves2",
- "bedrock_data": 9
+ "bedrock_data": 5
},
"minecraft:dark_oak_leaves[distance=5,persistent=false]": {
"bedrock_identifier": "minecraft:leaves2",
- "bedrock_data": 5
+ "bedrock_data": 1
},
"minecraft:dark_oak_leaves[distance=6,persistent=true]": {
"bedrock_identifier": "minecraft:leaves2",
- "bedrock_data": 9
+ "bedrock_data": 5
},
"minecraft:dark_oak_leaves[distance=6,persistent=false]": {
"bedrock_identifier": "minecraft:leaves2",
- "bedrock_data": 5
+ "bedrock_data": 1
},
"minecraft:dark_oak_leaves[distance=7,persistent=true]": {
"bedrock_identifier": "minecraft:leaves2",
- "bedrock_data": 9
+ "bedrock_data": 5
},
"minecraft:dark_oak_leaves[distance=7,persistent=false]": {
"bedrock_identifier": "minecraft:leaves2",
- "bedrock_data": 5
+ "bedrock_data": 1
},
"minecraft:sponge": {
"bedrock_identifier": "minecraft:sponge",
@@ -5688,8 +5688,8 @@
"bedrock_data": 9
},
"minecraft:wither_rose": {
- "bedrock_identifier": "minecraft:red_flower",
- "bedrock_data": 11
+ "bedrock_identifier": "minecraft:wither_rose",
+ "bedrock_data": 0
},
"minecraft:lily_of_the_valley": {
"bedrock_identifier": "minecraft:red_flower",
@@ -34892,7 +34892,7 @@
"bedrock_data": 8
},
"minecraft:structure_void": {
- "bedrock_identifier": "minecraft:air",
+ "bedrock_identifier": "minecraft:structure_void",
"bedrock_data": 0
},
"minecraft:observer[facing=north,powered=true]": {
@@ -35897,23 +35897,23 @@
},
"minecraft:dead_tube_coral_block": {
"bedrock_identifier": "minecraft:coral_block",
- "bedrock_data": 5
+ "bedrock_data": 8
},
"minecraft:dead_brain_coral_block": {
"bedrock_identifier": "minecraft:coral_block",
- "bedrock_data": 6
+ "bedrock_data": 9
},
"minecraft:dead_bubble_coral_block": {
"bedrock_identifier": "minecraft:coral_block",
- "bedrock_data": 7
+ "bedrock_data": 10
},
"minecraft:dead_fire_coral_block": {
"bedrock_identifier": "minecraft:coral_block",
- "bedrock_data": 8
+ "bedrock_data": 11
},
"minecraft:dead_horn_coral_block": {
"bedrock_identifier": "minecraft:coral_block",
- "bedrock_data": 9
+ "bedrock_data": 12
},
"minecraft:tube_coral_block": {
"bedrock_identifier": "minecraft:coral_block",
@@ -35937,43 +35937,43 @@
},
"minecraft:dead_tube_coral[waterlogged=true]": {
"bedrock_identifier": "minecraft:coral",
- "bedrock_data": 0
+ "bedrock_data": 8
},
"minecraft:dead_tube_coral[waterlogged=false]": {
"bedrock_identifier": "minecraft:coral",
- "bedrock_data": 0
+ "bedrock_data": 8
},
"minecraft:dead_brain_coral[waterlogged=true]": {
"bedrock_identifier": "minecraft:coral",
- "bedrock_data": 1
+ "bedrock_data": 9
},
"minecraft:dead_brain_coral[waterlogged=false]": {
"bedrock_identifier": "minecraft:coral",
- "bedrock_data": 1
+ "bedrock_data": 9
},
"minecraft:dead_bubble_coral[waterlogged=true]": {
"bedrock_identifier": "minecraft:coral",
- "bedrock_data": 2
+ "bedrock_data": 10
},
"minecraft:dead_bubble_coral[waterlogged=false]": {
"bedrock_identifier": "minecraft:coral",
- "bedrock_data": 2
+ "bedrock_data": 10
},
"minecraft:dead_fire_coral[waterlogged=true]": {
"bedrock_identifier": "minecraft:coral",
- "bedrock_data": 3
+ "bedrock_data": 11
},
"minecraft:dead_fire_coral[waterlogged=false]": {
"bedrock_identifier": "minecraft:coral",
- "bedrock_data": 3
+ "bedrock_data": 11
},
"minecraft:dead_horn_coral[waterlogged=true]": {
"bedrock_identifier": "minecraft:coral",
- "bedrock_data": 4
+ "bedrock_data": 12
},
"minecraft:dead_horn_coral[waterlogged=false]": {
"bedrock_identifier": "minecraft:coral",
- "bedrock_data": 4
+ "bedrock_data": 12
},
"minecraft:tube_coral[waterlogged=true]": {
"bedrock_identifier": "minecraft:coral",
diff --git a/connector/src/main/resources/items.json b/connector/src/main/resources/items.json
index 86df59916..746b30b4c 100644
--- a/connector/src/main/resources/items.json
+++ b/connector/src/main/resources/items.json
@@ -1,6 +1,6 @@
{
"minecraft:air": {
- "bedrock_id": 0,
+ "bedrock_id": -158,
"bedrock_data": 0
},
"minecraft:stone": {
@@ -176,52 +176,52 @@
"bedrock_data": 0
},
"minecraft:stripped_oak_wood": {
- "bedrock_id": -10,
- "bedrock_data": 0
+ "bedrock_id": -212,
+ "bedrock_data": 8
},
"minecraft:stripped_spruce_wood": {
- "bedrock_id": -5,
- "bedrock_data": 0
+ "bedrock_id": -212,
+ "bedrock_data": 9
},
"minecraft:stripped_birch_wood": {
- "bedrock_id": -6,
- "bedrock_data": 0
+ "bedrock_id": -212,
+ "bedrock_data": 10
},
"minecraft:stripped_jungle_wood": {
- "bedrock_id": -7,
- "bedrock_data": 0
+ "bedrock_id": -212,
+ "bedrock_data": 11
},
"minecraft:stripped_acacia_wood": {
- "bedrock_id": -8,
- "bedrock_data": 0
+ "bedrock_id": -212,
+ "bedrock_data": 12
},
"minecraft:stripped_dark_oak_wood": {
- "bedrock_id": -9,
- "bedrock_data": 0
+ "bedrock_id": -212,
+ "bedrock_data": 13
},
"minecraft:oak_wood": {
- "bedrock_id": 248,
+ "bedrock_id": -212,
"bedrock_data": 0
},
"minecraft:spruce_wood": {
- "bedrock_id": 248,
- "bedrock_data": 0
+ "bedrock_id": -212,
+ "bedrock_data": 1
},
"minecraft:birch_wood": {
- "bedrock_id": 248,
- "bedrock_data": 0
+ "bedrock_id": -212,
+ "bedrock_data": 2
},
"minecraft:jungle_wood": {
- "bedrock_id": 248,
- "bedrock_data": 0
+ "bedrock_id": -212,
+ "bedrock_data": 3
},
"minecraft:acacia_wood": {
- "bedrock_id": 248,
- "bedrock_data": 0
+ "bedrock_id": -212,
+ "bedrock_data": 4
},
"minecraft:dark_oak_wood": {
- "bedrock_id": 248,
- "bedrock_data": 0
+ "bedrock_id": -212,
+ "bedrock_data": 5
},
"minecraft:oak_leaves": {
"bedrock_id": 18,
@@ -269,7 +269,7 @@
},
"minecraft:dispenser": {
"bedrock_id": 23,
- "bedrock_data": 3
+ "bedrock_data": 0
},
"minecraft:sandstone": {
"bedrock_id": 24,
@@ -297,7 +297,7 @@
},
"minecraft:sticky_piston": {
"bedrock_id": 29,
- "bedrock_data": 1
+ "bedrock_data": 0
},
"minecraft:cobweb": {
"bedrock_id": 30,
@@ -325,7 +325,7 @@
},
"minecraft:piston": {
"bedrock_id": 33,
- "bedrock_data": 1
+ "bedrock_data": 0
},
"minecraft:white_wool": {
"bedrock_id": 35,
@@ -432,15 +432,15 @@
"bedrock_data": 8
},
"minecraft:cornflower": {
- "bedrock_id": 248,
- "bedrock_data": 0
+ "bedrock_id": 38,
+ "bedrock_data": 9
},
"minecraft:lily_of_the_valley": {
- "bedrock_id": 248,
- "bedrock_data": 0
+ "bedrock_id": 38,
+ "bedrock_data": 10
},
"minecraft:wither_rose": {
- "bedrock_id": 248,
+ "bedrock_id": -216,
"bedrock_data": 0
},
"minecraft:brown_mushroom": {
@@ -484,11 +484,11 @@
"bedrock_data": 5
},
"minecraft:stone_slab": {
- "bedrock_id": 44,
- "bedrock_data": 0
+ "bedrock_id": -166,
+ "bedrock_data": 2
},
"minecraft:smooth_stone_slab": {
- "bedrock_id": 248,
+ "bedrock_id": 44,
"bedrock_data": 0
},
"minecraft:sandstone_slab": {
@@ -496,8 +496,8 @@
"bedrock_data": 1
},
"minecraft:cut_sandstone_slab": {
- "bedrock_id": 248,
- "bedrock_data": 0
+ "bedrock_id": -166,
+ "bedrock_data": 3
},
"minecraft:petrified_oak_slab": {
"bedrock_id": 44,
@@ -528,8 +528,8 @@
"bedrock_data": 0
},
"minecraft:cut_red_sandstone_slab": {
- "bedrock_id": 248,
- "bedrock_data": 0
+ "bedrock_id": -166,
+ "bedrock_data": 4
},
"minecraft:purpur_slab": {
"bedrock_id": 182,
@@ -548,19 +548,19 @@
"bedrock_data": 3
},
"minecraft:smooth_quartz": {
- "bedrock_id": 248,
- "bedrock_data": 0
+ "bedrock_id": 155,
+ "bedrock_data": 3
},
"minecraft:smooth_red_sandstone": {
- "bedrock_id": 248,
- "bedrock_data": 0
+ "bedrock_id": 179,
+ "bedrock_data": 3
},
"minecraft:smooth_sandstone": {
- "bedrock_id": 248,
- "bedrock_data": 0
+ "bedrock_id": 24,
+ "bedrock_data": 3
},
"minecraft:smooth_stone": {
- "bedrock_id": 248,
+ "bedrock_id": -183,
"bedrock_data": 0
},
"minecraft:bricks": {
@@ -697,7 +697,7 @@
},
"minecraft:stone_button": {
"bedrock_id": 77,
- "bedrock_data": 5
+ "bedrock_data": 0
},
"minecraft:snow": {
"bedrock_id": 78,
@@ -988,56 +988,56 @@
"bedrock_data": 1
},
"minecraft:brick_wall": {
- "bedrock_id": 248,
- "bedrock_data": 0
+ "bedrock_id": 139,
+ "bedrock_data": 6
},
"minecraft:prismarine_wall": {
- "bedrock_id": 248,
- "bedrock_data": 0
+ "bedrock_id": 139,
+ "bedrock_data": 11
},
"minecraft:red_sandstone_wall": {
- "bedrock_id": 248,
- "bedrock_data": 0
+ "bedrock_id": 139,
+ "bedrock_data": 12
},
"minecraft:mossy_stone_brick_wall": {
- "bedrock_id": 248,
- "bedrock_data": 0
+ "bedrock_id": 139,
+ "bedrock_data": 8
},
"minecraft:granite_wall": {
- "bedrock_id": 248,
- "bedrock_data": 0
+ "bedrock_id": 139,
+ "bedrock_data": 2
},
"minecraft:stone_brick_wall": {
- "bedrock_id": 248,
- "bedrock_data": 0
+ "bedrock_id": 139,
+ "bedrock_data": 7
},
"minecraft:nether_brick_wall": {
- "bedrock_id": 248,
- "bedrock_data": 0
+ "bedrock_id": 139,
+ "bedrock_data": 9
},
"minecraft:andesite_wall": {
- "bedrock_id": 248,
- "bedrock_data": 0
+ "bedrock_id": 139,
+ "bedrock_data": 4
},
"minecraft:red_nether_brick_wall": {
- "bedrock_id": 248,
- "bedrock_data": 0
+ "bedrock_id": 139,
+ "bedrock_data": 13
},
"minecraft:sandstone_wall": {
- "bedrock_id": 248,
- "bedrock_data": 0
+ "bedrock_id": 139,
+ "bedrock_data": 5
},
"minecraft:end_stone_brick_wall": {
- "bedrock_id": 248,
- "bedrock_data": 0
+ "bedrock_id": 139,
+ "bedrock_data": 10
},
"minecraft:diorite_wall": {
- "bedrock_id": 248,
- "bedrock_data": 0
+ "bedrock_id": 139,
+ "bedrock_data": 3
},
"minecraft:oak_button": {
"bedrock_id": 143,
- "bedrock_data": 5
+ "bedrock_data": 0
},
"minecraft:spruce_button": {
"bedrock_id": -144,
@@ -1121,7 +1121,7 @@
},
"minecraft:dropper": {
"bedrock_id": 125,
- "bedrock_data": 3
+ "bedrock_data": 0
},
"minecraft:white_terracotta": {
"bedrock_id": 159,
@@ -1188,7 +1188,7 @@
"bedrock_data": 15
},
"minecraft:barrier": {
- "bedrock_id": 95,
+ "bedrock_id": -161,
"bedrock_data": 0
},
"minecraft:iron_trapdoor": {
@@ -1844,24 +1844,24 @@
"bedrock_data": 4
},
"minecraft:dead_brain_coral": {
- "bedrock_id": 248,
- "bedrock_data": 0
+ "bedrock_id": -131,
+ "bedrock_data": 9
},
"minecraft:dead_bubble_coral": {
- "bedrock_id": 248,
- "bedrock_data": 0
+ "bedrock_id": -131,
+ "bedrock_data": 10
},
"minecraft:dead_fire_coral": {
- "bedrock_id": 248,
- "bedrock_data": 0
+ "bedrock_id": -131,
+ "bedrock_data": 11
},
"minecraft:dead_horn_coral": {
- "bedrock_id": 248,
- "bedrock_data": 0
+ "bedrock_id": -131,
+ "bedrock_data": 12
},
"minecraft:dead_tube_coral": {
- "bedrock_id": 248,
- "bedrock_data": 0
+ "bedrock_id": -131,
+ "bedrock_data": 8
},
"minecraft:tube_coral_fan": {
"bedrock_id": -133,
@@ -1912,51 +1912,51 @@
"bedrock_data": 0
},
"minecraft:polished_granite_stairs": {
- "bedrock_id": 248,
+ "bedrock_id": -172,
"bedrock_data": 0
},
"minecraft:smooth_red_sandstone_stairs": {
- "bedrock_id": 248,
+ "bedrock_id": -176,
"bedrock_data": 0
},
"minecraft:mossy_stone_brick_stairs": {
- "bedrock_id": 248,
+ "bedrock_id": -175,
"bedrock_data": 0
},
"minecraft:polished_diorite_stairs": {
- "bedrock_id": 248,
+ "bedrock_id": -173,
"bedrock_data": 0
},
"minecraft:mossy_cobblestone_stairs": {
- "bedrock_id": 248,
+ "bedrock_id": -179,
"bedrock_data": 0
},
"minecraft:end_stone_brick_stairs": {
- "bedrock_id": 248,
+ "bedrock_id": -178,
"bedrock_data": 0
},
"minecraft:stone_stairs": {
- "bedrock_id": 248,
+ "bedrock_id": -180,
"bedrock_data": 0
},
"minecraft:smooth_sandstone_stairs": {
- "bedrock_id": 248,
+ "bedrock_id": -177,
"bedrock_data": 0
},
"minecraft:smooth_quartz_stairs": {
- "bedrock_id": 248,
+ "bedrock_id": -185,
"bedrock_data": 0
},
"minecraft:granite_stairs": {
- "bedrock_id": 248,
+ "bedrock_id": -169,
"bedrock_data": 0
},
"minecraft:andesite_stairs": {
- "bedrock_id": 248,
+ "bedrock_id": -171,
"bedrock_data": 0
},
"minecraft:red_nether_brick_stairs": {
- "bedrock_id": 248,
+ "bedrock_id": -184,
"bedrock_data": 0
},
"minecraft:polished_andesite_stairs": {
@@ -1968,59 +1968,59 @@
"bedrock_data": 0
},
"minecraft:polished_granite_slab": {
- "bedrock_id": 248,
- "bedrock_data": 0
+ "bedrock_id": -162,
+ "bedrock_data": 7
},
"minecraft:smooth_red_sandstone_slab": {
- "bedrock_id": 248,
- "bedrock_data": 0
+ "bedrock_id": -162,
+ "bedrock_data": 1
},
"minecraft:mossy_stone_brick_slab": {
- "bedrock_id": 248,
+ "bedrock_id": -166,
"bedrock_data": 0
},
"minecraft:polished_diorite_slab": {
- "bedrock_id": 248,
- "bedrock_data": 0
+ "bedrock_id": -162,
+ "bedrock_data": 5
},
"minecraft:mossy_cobblestone_slab": {
- "bedrock_id": 248,
- "bedrock_data": 0
+ "bedrock_id": 182,
+ "bedrock_data": 5
},
"minecraft:end_stone_brick_slab": {
- "bedrock_id": 248,
+ "bedrock_id": -162,
"bedrock_data": 0
},
"minecraft:smooth_sandstone_slab": {
- "bedrock_id": 248,
- "bedrock_data": 0
+ "bedrock_id": 182,
+ "bedrock_data": 6
},
"minecraft:smooth_quartz_slab": {
- "bedrock_id": 248,
- "bedrock_data": 0
+ "bedrock_id": -166,
+ "bedrock_data": 1
},
"minecraft:granite_slab": {
- "bedrock_id": 248,
- "bedrock_data": 0
+ "bedrock_id": -162,
+ "bedrock_data": 6
},
"minecraft:andesite_slab": {
- "bedrock_id": 248,
- "bedrock_data": 0
+ "bedrock_id": -162,
+ "bedrock_data": 3
},
"minecraft:red_nether_brick_slab": {
- "bedrock_id": 248,
- "bedrock_data": 0
+ "bedrock_id": 182,
+ "bedrock_data": 7
},
"minecraft:polished_andesite_slab": {
- "bedrock_id": 248,
- "bedrock_data": 0
+ "bedrock_id": -162,
+ "bedrock_data": 2
},
"minecraft:diorite_slab": {
- "bedrock_id": 248,
- "bedrock_data": 0
+ "bedrock_id": -162,
+ "bedrock_data": 4
},
"minecraft:scaffolding": {
- "bedrock_id": 248,
+ "bedrock_id": -165,
"bedrock_data": 0
},
"minecraft:iron_door": {
@@ -2360,7 +2360,7 @@
"bedrock_data": 0
},
"minecraft:spruce_sign": {
- "bedrock_id": 427,
+ "bedrock_id": 472,
"bedrock_data": 0
},
"minecraft:birch_sign": {
@@ -2376,7 +2376,7 @@
"bedrock_data": 0
},
"minecraft:dark_oak_sign": {
- "bedrock_id": 276,
+ "bedrock_id": 476,
"bedrock_data": 0
},
"minecraft:bucket": {
@@ -2588,20 +2588,20 @@
"bedrock_data": 15
},
"minecraft:blue_dye": {
- "bedrock_id": 248,
- "bedrock_data": 0
+ "bedrock_id": 351,
+ "bedrock_data": 18
},
"minecraft:brown_dye": {
- "bedrock_id": 248,
- "bedrock_data": 0
+ "bedrock_id": 351,
+ "bedrock_data": 17
},
"minecraft:black_dye": {
- "bedrock_id": 248,
- "bedrock_data": 0
+ "bedrock_id": 351,
+ "bedrock_data": 16
},
"minecraft:white_dye": {
- "bedrock_id": 248,
- "bedrock_data": 0
+ "bedrock_id": 351,
+ "bedrock_data": 19
},
"minecraft:bone": {
"bedrock_id": 352,
@@ -2796,8 +2796,8 @@
"bedrock_data": 43
},
"minecraft:cat_spawn_egg": {
- "bedrock_id": 248,
- "bedrock_data": 0
+ "bedrock_id": 383,
+ "bedrock_data": 75
},
"minecraft:cave_spider_spawn_egg": {
"bedrock_id": 383,
@@ -2848,8 +2848,8 @@
"bedrock_data": 104
},
"minecraft:fox_spawn_egg": {
- "bedrock_id": 248,
- "bedrock_data": 0
+ "bedrock_id": 383,
+ "bedrock_data": 121
},
"minecraft:ghast_spawn_egg": {
"bedrock_id": 383,
@@ -2888,8 +2888,8 @@
"bedrock_data": 22
},
"minecraft:panda_spawn_egg": {
- "bedrock_id": 248,
- "bedrock_data": 0
+ "bedrock_id": 383,
+ "bedrock_data": 113
},
"minecraft:parrot_spawn_egg": {
"bedrock_id": 383,
@@ -2904,8 +2904,8 @@
"bedrock_data": 12
},
"minecraft:pillager_spawn_egg": {
- "bedrock_id": 248,
- "bedrock_data": 0
+ "bedrock_id": 383,
+ "bedrock_data": 114
},
"minecraft:polar_bear_spawn_egg": {
"bedrock_id": 383,
@@ -2920,8 +2920,8 @@
"bedrock_data": 18
},
"minecraft:ravager_spawn_egg": {
- "bedrock_id": 248,
- "bedrock_data": 0
+ "bedrock_id": 383,
+ "bedrock_data": 59
},
"minecraft:salmon_spawn_egg": {
"bedrock_id": 383,
@@ -2964,8 +2964,8 @@
"bedrock_data": 46
},
"minecraft:trader_llama_spawn_egg": {
- "bedrock_id": 248,
- "bedrock_data": 0
+ "bedrock_id": 383,
+ "bedrock_data": 29
},
"minecraft:tropical_fish_spawn_egg": {
"bedrock_id": 383,
@@ -2988,8 +2988,8 @@
"bedrock_data": 57
},
"minecraft:wandering_trader_spawn_egg": {
- "bedrock_id": 248,
- "bedrock_data": 0
+ "bedrock_id": 383,
+ "bedrock_data": 118
},
"minecraft:witch_spawn_egg": {
"bedrock_id": 383,
@@ -3301,18 +3301,18 @@
},
"minecraft:spectral_arrow": {
"bedrock_id": 262,
- "bedrock_data": 2
+ "bedrock_data": 0
},
"minecraft:tipped_arrow": {
- "bedrock_id": 440,
- "bedrock_data": 1
+ "bedrock_id": 262,
+ "bedrock_data": 0
},
"minecraft:lingering_potion": {
"bedrock_id": 441,
"bedrock_data": 0
},
"minecraft:shield": {
- "bedrock_id": 268,
+ "bedrock_id": 513,
"bedrock_data": 0
},
"minecraft:elytra": {
@@ -3356,7 +3356,7 @@
"bedrock_data": 0
},
"minecraft:debug_stick": {
- "bedrock_id": 248,
+ "bedrock_id": 280,
"bedrock_data": 0
},
"minecraft:music_disc_13": {
@@ -3428,7 +3428,7 @@
"bedrock_data": 0
},
"minecraft:suspicious_stew": {
- "bedrock_id": 248,
+ "bedrock_id": 734,
"bedrock_data": 0
},
"minecraft:loom": {
@@ -3436,75 +3436,75 @@
"bedrock_data": 0
},
"minecraft:flower_banner_pattern": {
- "bedrock_id": 248,
- "bedrock_data": 0
+ "bedrock_id": 434,
+ "bedrock_data": 2
},
"minecraft:creeper_banner_pattern": {
- "bedrock_id": 248,
+ "bedrock_id": 434,
"bedrock_data": 0
},
"minecraft:skull_banner_pattern": {
- "bedrock_id": 248,
- "bedrock_data": 0
+ "bedrock_id": 434,
+ "bedrock_data": 1
},
"minecraft:mojang_banner_pattern": {
- "bedrock_id": 248,
- "bedrock_data": 0
+ "bedrock_id": 434,
+ "bedrock_data": 3
},
"minecraft:globe_banner_pattern": {
- "bedrock_id": 248,
- "bedrock_data": 0
+ "bedrock_id": 434,
+ "bedrock_data": 4
},
"minecraft:barrel": {
- "bedrock_id": 248,
+ "bedrock_id": -203,
"bedrock_data": 0
},
"minecraft:smoker": {
- "bedrock_id": 248,
+ "bedrock_id": -198,
"bedrock_data": 0
},
"minecraft:blast_furnace": {
- "bedrock_id": 248,
+ "bedrock_id": -196,
"bedrock_data": 0
},
"minecraft:cartography_table": {
- "bedrock_id": 248,
+ "bedrock_id": -200,
"bedrock_data": 0
},
"minecraft:fletching_table": {
- "bedrock_id": 248,
+ "bedrock_id": -201,
"bedrock_data": 0
},
"minecraft:grindstone": {
- "bedrock_id": 248,
+ "bedrock_id": -195,
"bedrock_data": 0
},
"minecraft:lectern": {
- "bedrock_id": 248,
+ "bedrock_id": -194,
"bedrock_data": 0
},
"minecraft:smithing_table": {
- "bedrock_id": 248,
+ "bedrock_id": -202,
"bedrock_data": 0
},
"minecraft:stonecutter": {
- "bedrock_id": 248,
+ "bedrock_id": -197,
"bedrock_data": 0
},
"minecraft:bell": {
- "bedrock_id": 248,
+ "bedrock_id": -206,
"bedrock_data": 0
},
"minecraft:lantern": {
- "bedrock_id": 248,
+ "bedrock_id": -208,
"bedrock_data": 0
},
"minecraft:sweet_berries": {
- "bedrock_id": 248,
+ "bedrock_id": 477,
"bedrock_data": 0
},
"minecraft:campfire": {
- "bedrock_id": 248,
+ "bedrock_id": 720,
"bedrock_data": 0
}
}
\ No newline at end of file