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,
LlamaSpit,
MagmaCube,
Marker,
Minecart,
ChestMinecart,
CommandBlockMinecart,

View File

@ -278,6 +278,8 @@ public enum EntityMetaDataFields {
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)
LEGACY_SKELETON_TYPE((byte) 0),
LEGACY_ENDERMAN_CARRIED_BLOCK(0),

View File

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

View File

@ -12,7 +12,9 @@
*/
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.entities.EntityMetaDataFunction
import de.bixilon.minosoft.data.mappings.ResourceLocation
import de.bixilon.minosoft.data.mappings.entities.EntityFactory
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) {
@get:EntityMetaDataFunction(name = "Is screaming")
val isScreaming: Boolean
get() = entityMetaData.sets.getBoolean(EntityMetaDataFields.GOAT_IS_SCREAMING)
companion object : EntityFactory<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;
import de.bixilon.minosoft.data.text.ChatComponent;
import de.bixilon.minosoft.modding.event.events.ResourcePackChangeEvent;
import de.bixilon.minosoft.protocol.network.connection.PlayConnection;
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 static de.bixilon.minosoft.protocol.protocol.ProtocolVersions.V_20W45A;
import static de.bixilon.minosoft.protocol.protocol.ProtocolVersions.V_21W15A;
public class PacketResourcePackSend extends PlayClientboundPacket {
private final String url;
private final String hash;
private boolean forced;
private ChatComponent text; // TODO: rename
public PacketResourcePackSend(PlayInByteBuffer buffer) {
this.url = buffer.readString();
@ -34,6 +37,11 @@ public class PacketResourcePackSend extends PlayClientboundPacket {
if (buffer.getVersionId() >= V_20W45A) {
this.forced = buffer.readBoolean();
}
if (buffer.getVersionId() >= V_21W15A) {
if (buffer.readBoolean()) {
text = buffer.readChatComponent();
}
}
}
@Override

View File

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