diff --git a/src/main/java/de/bixilon/minosoft/game/datatypes/entities/Objects.java b/src/main/java/de/bixilon/minosoft/game/datatypes/entities/Objects.java
index e2ef2a6d2..95186010e 100644
--- a/src/main/java/de/bixilon/minosoft/game/datatypes/entities/Objects.java
+++ b/src/main/java/de/bixilon/minosoft/game/datatypes/entities/Objects.java
@@ -31,7 +31,14 @@ public enum Objects implements EntityEnumInterface {
WITHER_SKULL(new Identifier("wither_skull"), 66, WitherSkull.class),
FALLING_BLOCK(new Identifier("falling_block"), 70, FallingBlock.class),
ITEM_FRAME(new Identifier("item_frame"), 71, ItemFrame.class),
- ;
+ EYE_OF_ENDER(new Identifier("eye_of_ender"), 72, EyeOfEnder.class),
+ THROWN_POTION(new Identifier("thrown_potion"), 73, ThrownPotion.class),
+ FALLING_DRAGON_EGG(new Identifier("falling_dragon_eg"), 74, FallingDragonEgg.class),
+ THROWN_EXP_BOTTLE(null, 75, ThrownExpBottle.class),
+ FIREWORK(new Identifier("firework"), 76, Firework.class),
+ LEASH_KNOT(new Identifier("firework"), 77, LeashKnot.class),
+ FISHING_FLOAT(null, 90, FishingFloat.class);
+ //ToDo: identifier
final Identifier identifier;
final int type;
diff --git a/src/main/java/de/bixilon/minosoft/game/datatypes/entities/objects/FallingDragonEgg.java b/src/main/java/de/bixilon/minosoft/game/datatypes/entities/objects/FallingDragonEgg.java
new file mode 100644
index 000000000..4ba938033
--- /dev/null
+++ b/src/main/java/de/bixilon/minosoft/game/datatypes/entities/objects/FallingDragonEgg.java
@@ -0,0 +1,62 @@
+/*
+ * Codename Minosoft
+ * Copyright (C) 2020 Moritz Zwerger
+ *
+ * This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along with this program. If not, see .
+ *
+ * This software is not affiliated with Mojang AB, the original developer of Minecraft.
+ */
+
+package de.bixilon.minosoft.game.datatypes.entities.objects;
+
+import de.bixilon.minosoft.game.datatypes.entities.EntityObject;
+import de.bixilon.minosoft.game.datatypes.entities.Location;
+import de.bixilon.minosoft.game.datatypes.entities.ObjectInterface;
+import de.bixilon.minosoft.game.datatypes.entities.Objects;
+import de.bixilon.minosoft.game.datatypes.entities.meta.EntityMetaData;
+import de.bixilon.minosoft.protocol.protocol.ProtocolVersion;
+
+public class FallingDragonEgg extends EntityObject implements ObjectInterface {
+ EntityMetaData metaData;
+
+ public FallingDragonEgg(int id, Location location, int yaw, int pitch, int additionalInt, ProtocolVersion v) {
+ super(id, location, yaw, pitch, null);
+ // objects do not spawn with metadata... reading additional info from the following int
+ // tnt does not have any additional info
+ }
+
+ @Override
+ public Objects getEntityType() {
+ return Objects.FALLING_DRAGON_EGG;
+ }
+
+ @Override
+ public EntityMetaData getMetaData() {
+ return metaData;
+ }
+
+ @Override
+ public void setMetaData(EntityMetaData metaData) {
+ this.metaData = metaData;
+ }
+
+ @Override
+ public float getWidth() {
+ return 0.98F;
+ }
+
+ @Override
+ public float getHeight() {
+ return 0.98F;
+ }
+
+ @Override
+ public Class extends EntityMetaData> getMetaDataClass() {
+ return EntityMetaData.class;
+ }
+
+}
diff --git a/src/main/java/de/bixilon/minosoft/game/datatypes/entities/objects/Firework.java b/src/main/java/de/bixilon/minosoft/game/datatypes/entities/objects/Firework.java
new file mode 100644
index 000000000..22edd2f6c
--- /dev/null
+++ b/src/main/java/de/bixilon/minosoft/game/datatypes/entities/objects/Firework.java
@@ -0,0 +1,63 @@
+/*
+ * Codename Minosoft
+ * Copyright (C) 2020 Moritz Zwerger
+ *
+ * This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along with this program. If not, see .
+ *
+ * This software is not affiliated with Mojang AB, the original developer of Minecraft.
+ */
+
+package de.bixilon.minosoft.game.datatypes.entities.objects;
+
+import de.bixilon.minosoft.game.datatypes.entities.EntityObject;
+import de.bixilon.minosoft.game.datatypes.entities.Location;
+import de.bixilon.minosoft.game.datatypes.entities.ObjectInterface;
+import de.bixilon.minosoft.game.datatypes.entities.Objects;
+import de.bixilon.minosoft.game.datatypes.entities.meta.EntityMetaData;
+import de.bixilon.minosoft.game.datatypes.entities.meta.FireworkMetaData;
+import de.bixilon.minosoft.protocol.protocol.ProtocolVersion;
+
+public class Firework extends EntityObject implements ObjectInterface {
+ FireworkMetaData metaData;
+
+ public Firework(int id, Location location, int yaw, int pitch, int additionalInt, ProtocolVersion v) {
+ super(id, location, yaw, pitch, null);
+ // objects do not spawn with metadata... reading additional info from the following int
+ // tnt does not have any additional info
+ }
+
+ @Override
+ public Objects getEntityType() {
+ return Objects.FIREWORK;
+ }
+
+ @Override
+ public FireworkMetaData getMetaData() {
+ return metaData;
+ }
+
+ @Override
+ public void setMetaData(EntityMetaData metaData) {
+ this.metaData = (FireworkMetaData) metaData;
+ }
+
+ @Override
+ public float getWidth() {
+ return 0.25F;
+ }
+
+ @Override
+ public float getHeight() {
+ return 0.25F;
+ }
+
+ @Override
+ public Class extends EntityMetaData> getMetaDataClass() {
+ return FireworkMetaData.class;
+ }
+
+}
diff --git a/src/main/java/de/bixilon/minosoft/game/datatypes/entities/objects/FishingFloat.java b/src/main/java/de/bixilon/minosoft/game/datatypes/entities/objects/FishingFloat.java
new file mode 100644
index 000000000..e768410b1
--- /dev/null
+++ b/src/main/java/de/bixilon/minosoft/game/datatypes/entities/objects/FishingFloat.java
@@ -0,0 +1,67 @@
+/*
+ * Codename Minosoft
+ * Copyright (C) 2020 Moritz Zwerger
+ *
+ * This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along with this program. If not, see .
+ *
+ * This software is not affiliated with Mojang AB, the original developer of Minecraft.
+ */
+
+package de.bixilon.minosoft.game.datatypes.entities.objects;
+
+import de.bixilon.minosoft.game.datatypes.entities.EntityObject;
+import de.bixilon.minosoft.game.datatypes.entities.Location;
+import de.bixilon.minosoft.game.datatypes.entities.ObjectInterface;
+import de.bixilon.minosoft.game.datatypes.entities.Objects;
+import de.bixilon.minosoft.game.datatypes.entities.meta.EntityMetaData;
+import de.bixilon.minosoft.protocol.protocol.ProtocolVersion;
+
+public class FishingFloat extends EntityObject implements ObjectInterface {
+ EntityMetaData metaData;
+ int owner;
+
+ public FishingFloat(int id, Location location, int yaw, int pitch, int additionalInt, ProtocolVersion v) {
+ super(id, location, yaw, pitch, null);
+ // objects do not spawn with metadata... reading additional info from the following int
+ // tnt does not have any additional info
+ this.owner = additionalInt;
+ }
+
+ @Override
+ public Objects getEntityType() {
+ return Objects.FISHING_FLOAT;
+ }
+
+ @Override
+ public EntityMetaData getMetaData() {
+ return metaData;
+ }
+
+ @Override
+ public void setMetaData(EntityMetaData metaData) {
+ this.metaData = metaData;
+ }
+
+ @Override
+ public float getWidth() {
+ return 0.25F;
+ }
+
+ @Override
+ public float getHeight() {
+ return 0.25F;
+ }
+
+ @Override
+ public Class extends EntityMetaData> getMetaDataClass() {
+ return EntityMetaData.class;
+ }
+
+ public int getOwner() {
+ return owner;
+ }
+}
diff --git a/src/main/java/de/bixilon/minosoft/game/datatypes/entities/objects/LeashKnot.java b/src/main/java/de/bixilon/minosoft/game/datatypes/entities/objects/LeashKnot.java
new file mode 100644
index 000000000..46ef7016c
--- /dev/null
+++ b/src/main/java/de/bixilon/minosoft/game/datatypes/entities/objects/LeashKnot.java
@@ -0,0 +1,62 @@
+/*
+ * Codename Minosoft
+ * Copyright (C) 2020 Moritz Zwerger
+ *
+ * This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along with this program. If not, see .
+ *
+ * This software is not affiliated with Mojang AB, the original developer of Minecraft.
+ */
+
+package de.bixilon.minosoft.game.datatypes.entities.objects;
+
+import de.bixilon.minosoft.game.datatypes.entities.EntityObject;
+import de.bixilon.minosoft.game.datatypes.entities.Location;
+import de.bixilon.minosoft.game.datatypes.entities.ObjectInterface;
+import de.bixilon.minosoft.game.datatypes.entities.Objects;
+import de.bixilon.minosoft.game.datatypes.entities.meta.EntityMetaData;
+import de.bixilon.minosoft.protocol.protocol.ProtocolVersion;
+
+public class LeashKnot extends EntityObject implements ObjectInterface {
+ EntityMetaData metaData;
+
+ public LeashKnot(int id, Location location, int yaw, int pitch, int additionalInt, ProtocolVersion v) {
+ super(id, location, yaw, pitch, null);
+ // objects do not spawn with metadata... reading additional info from the following int
+ // tnt does not have any additional info
+ }
+
+ @Override
+ public Objects getEntityType() {
+ return Objects.LEASH_KNOT;
+ }
+
+ @Override
+ public EntityMetaData getMetaData() {
+ return metaData;
+ }
+
+ @Override
+ public void setMetaData(EntityMetaData metaData) {
+ this.metaData = metaData;
+ }
+
+ @Override
+ public float getWidth() {
+ return 0.5F;
+ }
+
+ @Override
+ public float getHeight() {
+ return 0.5F;
+ }
+
+ @Override
+ public Class extends EntityMetaData> getMetaDataClass() {
+ return EntityMetaData.class;
+ }
+
+}
diff --git a/src/main/java/de/bixilon/minosoft/game/datatypes/entities/objects/ThrownExpBottle.java b/src/main/java/de/bixilon/minosoft/game/datatypes/entities/objects/ThrownExpBottle.java
new file mode 100644
index 000000000..7bddcdbbb
--- /dev/null
+++ b/src/main/java/de/bixilon/minosoft/game/datatypes/entities/objects/ThrownExpBottle.java
@@ -0,0 +1,62 @@
+/*
+ * Codename Minosoft
+ * Copyright (C) 2020 Moritz Zwerger
+ *
+ * This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along with this program. If not, see .
+ *
+ * This software is not affiliated with Mojang AB, the original developer of Minecraft.
+ */
+
+package de.bixilon.minosoft.game.datatypes.entities.objects;
+
+import de.bixilon.minosoft.game.datatypes.entities.EntityObject;
+import de.bixilon.minosoft.game.datatypes.entities.Location;
+import de.bixilon.minosoft.game.datatypes.entities.ObjectInterface;
+import de.bixilon.minosoft.game.datatypes.entities.Objects;
+import de.bixilon.minosoft.game.datatypes.entities.meta.EntityMetaData;
+import de.bixilon.minosoft.protocol.protocol.ProtocolVersion;
+
+public class ThrownExpBottle extends EntityObject implements ObjectInterface {
+ EntityMetaData metaData;
+
+ public ThrownExpBottle(int id, Location location, int yaw, int pitch, int additionalInt, ProtocolVersion v) {
+ super(id, location, yaw, pitch, null);
+ // objects do not spawn with metadata... reading additional info from the following int
+ // tnt does not have any additional info
+ }
+
+ @Override
+ public Objects getEntityType() {
+ return Objects.THROWN_EXP_BOTTLE;
+ }
+
+ @Override
+ public EntityMetaData getMetaData() {
+ return metaData;
+ }
+
+ @Override
+ public void setMetaData(EntityMetaData metaData) {
+ this.metaData = metaData;
+ }
+
+ @Override
+ public float getWidth() {
+ return 0.25F;
+ }
+
+ @Override
+ public float getHeight() {
+ return 0.25F;
+ }
+
+ @Override
+ public Class extends EntityMetaData> getMetaDataClass() {
+ return EntityMetaData.class;
+ }
+
+}
diff --git a/src/main/java/de/bixilon/minosoft/game/datatypes/entities/objects/ThrownPotion.java b/src/main/java/de/bixilon/minosoft/game/datatypes/entities/objects/ThrownPotion.java
new file mode 100644
index 000000000..80151ef99
--- /dev/null
+++ b/src/main/java/de/bixilon/minosoft/game/datatypes/entities/objects/ThrownPotion.java
@@ -0,0 +1,64 @@
+/*
+ * Codename Minosoft
+ * Copyright (C) 2020 Moritz Zwerger
+ *
+ * This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along with this program. If not, see .
+ *
+ * This software is not affiliated with Mojang AB, the original developer of Minecraft.
+ */
+
+package de.bixilon.minosoft.game.datatypes.entities.objects;
+
+import de.bixilon.minosoft.game.datatypes.entities.EntityObject;
+import de.bixilon.minosoft.game.datatypes.entities.Location;
+import de.bixilon.minosoft.game.datatypes.entities.ObjectInterface;
+import de.bixilon.minosoft.game.datatypes.entities.Objects;
+import de.bixilon.minosoft.game.datatypes.entities.meta.EntityMetaData;
+import de.bixilon.minosoft.protocol.protocol.ProtocolVersion;
+
+public class ThrownPotion extends EntityObject implements ObjectInterface {
+ EntityMetaData metaData;
+ int potion; //ToDo
+
+ public ThrownPotion(int id, Location location, int yaw, int pitch, int additionalInt, ProtocolVersion v) {
+ super(id, location, yaw, pitch, null);
+ // objects do not spawn with metadata... reading additsional info from the following int
+ // tnt does not have any additional info
+ this.potion = additionalInt;
+ }
+
+ @Override
+ public Objects getEntityType() {
+ return Objects.THROWN_POTION;
+ }
+
+ @Override
+ public EntityMetaData getMetaData() {
+ return metaData;
+ }
+
+ @Override
+ public void setMetaData(EntityMetaData metaData) {
+ this.metaData = metaData;
+ }
+
+ @Override
+ public float getWidth() {
+ return 0.25F;
+ }
+
+ @Override
+ public float getHeight() {
+ return 0.25F;
+ }
+
+ @Override
+ public Class extends EntityMetaData> getMetaDataClass() {
+ return EntityMetaData.class;
+ }
+
+}