network: add support for 21w15a

This commit is contained in:
Lukas 2021-04-14 22:40:01 +02:00
parent 0afe128437
commit e70fa9b00b
10 changed files with 40 additions and 4 deletions

View File

@ -97,6 +97,7 @@ object DefaultEntityFactories {
Llama, Llama,
LlamaSpit, LlamaSpit,
MagmaCube, MagmaCube,
Marker,
Minecart, Minecart,
ChestMinecart, ChestMinecart,
CommandBlockMinecart, CommandBlockMinecart,

View File

@ -278,6 +278,8 @@ public enum EntityMetaDataFields {
SKELETON_STRAY_FREEZE_CONVERTING(false), SKELETON_STRAY_FREEZE_CONVERTING(false),
GOAT_IS_SCREAMING(false),
// pretty old stuff here. 1.8 mostly (or even after, I don't know and I don't care) // pretty old stuff here. 1.8 mostly (or even after, I don't know and I don't care)
LEGACY_SKELETON_TYPE((byte) 0), LEGACY_SKELETON_TYPE((byte) 0),
LEGACY_ENDERMAN_CARRIED_BLOCK(0), LEGACY_ENDERMAN_CARRIED_BLOCK(0),

View File

@ -226,7 +226,6 @@ abstract class Entity(
} }
if (delta.x != 0.0f && !xPriority) { if (delta.x != 0.0f && !xPriority) {
delta.x = collisionsToCheck.computeOffset(aabb, deltaPosition.x, Axes.X) delta.x = collisionsToCheck.computeOffset(aabb, deltaPosition.x, Axes.X)
aabb.offsetAssign(delta.x, 0f, 0f)
} }
return delta return delta
} }

View File

@ -12,7 +12,9 @@
*/ */
package de.bixilon.minosoft.data.entities.entities.animal package de.bixilon.minosoft.data.entities.entities.animal
import de.bixilon.minosoft.data.entities.EntityMetaDataFields
import de.bixilon.minosoft.data.entities.EntityRotation import de.bixilon.minosoft.data.entities.EntityRotation
import de.bixilon.minosoft.data.entities.entities.EntityMetaDataFunction
import de.bixilon.minosoft.data.mappings.ResourceLocation import de.bixilon.minosoft.data.mappings.ResourceLocation
import de.bixilon.minosoft.data.mappings.entities.EntityFactory import de.bixilon.minosoft.data.mappings.entities.EntityFactory
import de.bixilon.minosoft.data.mappings.entities.EntityType import de.bixilon.minosoft.data.mappings.entities.EntityType
@ -21,6 +23,10 @@ import glm_.vec3.Vec3
class Goat(connection: PlayConnection, entityType: EntityType, position: Vec3, rotation: EntityRotation) : Animal(connection, entityType, position, rotation) { class Goat(connection: PlayConnection, entityType: EntityType, position: Vec3, rotation: EntityRotation) : Animal(connection, entityType, position, rotation) {
@get:EntityMetaDataFunction(name = "Is screaming")
val isScreaming: Boolean
get() = entityMetaData.sets.getBoolean(EntityMetaDataFields.GOAT_IS_SCREAMING)
companion object : EntityFactory<Goat> { companion object : EntityFactory<Goat> {
override val RESOURCE_LOCATION: ResourceLocation = ResourceLocation("goat") override val RESOURCE_LOCATION: ResourceLocation = ResourceLocation("goat")

View File

@ -0,0 +1,19 @@
package de.bixilon.minosoft.data.entities.entities.decoration
import de.bixilon.minosoft.data.entities.EntityRotation
import de.bixilon.minosoft.data.entities.entities.LivingEntity
import de.bixilon.minosoft.data.mappings.ResourceLocation
import de.bixilon.minosoft.data.mappings.entities.EntityFactory
import de.bixilon.minosoft.data.mappings.entities.EntityType
import de.bixilon.minosoft.protocol.network.connection.PlayConnection
import glm_.vec3.Vec3
class Marker(connection: PlayConnection, entityType: EntityType, position: Vec3, rotation: EntityRotation) : LivingEntity(connection, entityType, position, rotation) {
companion object : EntityFactory<ItemFrame> {
override val RESOURCE_LOCATION: ResourceLocation = ResourceLocation("marker")
override fun build(connection: PlayConnection, entityType: EntityType, position: Vec3, rotation: EntityRotation): ItemFrame {
return ItemFrame(connection, entityType, position, rotation)
}
}
}

View File

@ -13,6 +13,7 @@
package de.bixilon.minosoft.protocol.packets.clientbound.play; package de.bixilon.minosoft.protocol.packets.clientbound.play;
import de.bixilon.minosoft.data.text.ChatComponent;
import de.bixilon.minosoft.modding.event.events.ResourcePackChangeEvent; import de.bixilon.minosoft.modding.event.events.ResourcePackChangeEvent;
import de.bixilon.minosoft.protocol.network.connection.PlayConnection; import de.bixilon.minosoft.protocol.network.connection.PlayConnection;
import de.bixilon.minosoft.protocol.packets.clientbound.PlayClientboundPacket; import de.bixilon.minosoft.protocol.packets.clientbound.PlayClientboundPacket;
@ -21,11 +22,13 @@ import de.bixilon.minosoft.util.Util;
import de.bixilon.minosoft.util.logging.Log; import de.bixilon.minosoft.util.logging.Log;
import static de.bixilon.minosoft.protocol.protocol.ProtocolVersions.V_20W45A; import static de.bixilon.minosoft.protocol.protocol.ProtocolVersions.V_20W45A;
import static de.bixilon.minosoft.protocol.protocol.ProtocolVersions.V_21W15A;
public class PacketResourcePackSend extends PlayClientboundPacket { public class PacketResourcePackSend extends PlayClientboundPacket {
private final String url; private final String url;
private final String hash; private final String hash;
private boolean forced; private boolean forced;
private ChatComponent text; // TODO: rename
public PacketResourcePackSend(PlayInByteBuffer buffer) { public PacketResourcePackSend(PlayInByteBuffer buffer) {
this.url = buffer.readString(); this.url = buffer.readString();
@ -34,6 +37,11 @@ public class PacketResourcePackSend extends PlayClientboundPacket {
if (buffer.getVersionId() >= V_20W45A) { if (buffer.getVersionId() >= V_20W45A) {
this.forced = buffer.readBoolean(); this.forced = buffer.readBoolean();
} }
if (buffer.getVersionId() >= V_21W15A) {
if (buffer.readBoolean()) {
text = buffer.readChatComponent();
}
}
} }
@Override @Override

View File

@ -16,6 +16,7 @@ package de.bixilon.minosoft.protocol.protocol;
@SuppressWarnings("unused") @SuppressWarnings("unused")
public class ProtocolVersions { public class ProtocolVersions {
public static final int public static final int
V_21W15A = 776,
V_21W14A = 775, V_21W14A = 775,
V_21W13A = 773, V_21W13A = 773,
V_21W11A = 772, V_21W11A = 772,

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long