mirror of
https://github.com/GeyserMC/MCProtocolLib.git
synced 2024-11-14 19:34:58 -05:00
Update to 1.19.3-rc1
This commit is contained in:
parent
685882b90a
commit
bb9b7e8299
8 changed files with 71 additions and 70 deletions
|
@ -195,9 +195,9 @@ public class MinecraftCodec {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final PacketCodec CODEC = PacketCodec.builder()
|
public static final PacketCodec CODEC = PacketCodec.builder()
|
||||||
.protocolVersion((1 << 30) | 111)
|
.protocolVersion((1 << 30) | 112)
|
||||||
.helper(() -> new MinecraftCodecHelper(LEVEL_EVENTS, SOUND_NAMES))
|
.helper(() -> new MinecraftCodecHelper(LEVEL_EVENTS, SOUND_NAMES))
|
||||||
.minecraftVersion("1.19.3-pre3")
|
.minecraftVersion("1.19.3-rc1")
|
||||||
.state(ProtocolState.HANDSHAKE, PacketStateCodec.builder()
|
.state(ProtocolState.HANDSHAKE, PacketStateCodec.builder()
|
||||||
.registerServerboundPacket(0x00, ClientIntentionPacket.class, ClientIntentionPacket::new)
|
.registerServerboundPacket(0x00, ClientIntentionPacket.class, ClientIntentionPacket::new)
|
||||||
)
|
)
|
||||||
|
|
|
@ -25,6 +25,8 @@ import com.github.steveice10.mc.protocol.data.game.level.particle.positionsource
|
||||||
import com.github.steveice10.mc.protocol.data.game.level.particle.positionsource.PositionSource;
|
import com.github.steveice10.mc.protocol.data.game.level.particle.positionsource.PositionSource;
|
||||||
import com.github.steveice10.mc.protocol.data.game.level.particle.positionsource.PositionSourceType;
|
import com.github.steveice10.mc.protocol.data.game.level.particle.positionsource.PositionSourceType;
|
||||||
import com.github.steveice10.mc.protocol.data.game.level.sound.BuiltinSound;
|
import com.github.steveice10.mc.protocol.data.game.level.sound.BuiltinSound;
|
||||||
|
import com.github.steveice10.mc.protocol.data.game.level.sound.CustomSound;
|
||||||
|
import com.github.steveice10.mc.protocol.data.game.level.sound.Sound;
|
||||||
import com.github.steveice10.mc.protocol.data.game.level.sound.SoundCategory;
|
import com.github.steveice10.mc.protocol.data.game.level.sound.SoundCategory;
|
||||||
import com.github.steveice10.mc.protocol.data.game.recipe.Ingredient;
|
import com.github.steveice10.mc.protocol.data.game.recipe.Ingredient;
|
||||||
import com.github.steveice10.mc.protocol.data.game.statistic.StatisticCategory;
|
import com.github.steveice10.mc.protocol.data.game.statistic.StatisticCategory;
|
||||||
|
@ -84,6 +86,14 @@ public class MinecraftCodecHelper extends BasePacketCodecHelper {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String readResourceLocation(ByteBuf buf) {
|
||||||
|
return Identifier.formalize(this.readString(buf));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void writeResourceLocation(ByteBuf buf, String location) {
|
||||||
|
this.writeString(buf, location);
|
||||||
|
}
|
||||||
|
|
||||||
public UUID readUUID(ByteBuf buf) {
|
public UUID readUUID(ByteBuf buf) {
|
||||||
return new UUID(buf.readLong(), buf.readLong());
|
return new UUID(buf.readLong(), buf.readLong());
|
||||||
}
|
}
|
||||||
|
@ -595,14 +605,6 @@ public class MinecraftCodecHelper extends BasePacketCodecHelper {
|
||||||
this.writeEnum(buf, category);
|
this.writeEnum(buf, category);
|
||||||
}
|
}
|
||||||
|
|
||||||
public BuiltinSound readBuiltinSound(ByteBuf buf) {
|
|
||||||
return BuiltinSound.from(this.readVarInt(buf));
|
|
||||||
}
|
|
||||||
|
|
||||||
public void writeBuiltinSound(ByteBuf buf, BuiltinSound sound) {
|
|
||||||
this.writeEnum(buf, sound);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
public BuiltinSound getBuiltinSound(String name) {
|
public BuiltinSound getBuiltinSound(String name) {
|
||||||
return this.soundNames.get(name);
|
return this.soundNames.get(name);
|
||||||
|
@ -737,26 +739,6 @@ public class MinecraftCodecHelper extends BasePacketCodecHelper {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public GameProfile readGameProfile(ByteBuf buf) {
|
|
||||||
UUID uuid = this.readUUID(buf);
|
|
||||||
String name = this.readString(buf);
|
|
||||||
GameProfile profile = new GameProfile(uuid, name);
|
|
||||||
int propertyCount = this.readVarInt(buf);
|
|
||||||
for (int i = 0; i < propertyCount; i++) {
|
|
||||||
profile.getProperties().add(this.readProperty(buf));
|
|
||||||
}
|
|
||||||
return profile;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void writeGameProfile(ByteBuf buf, GameProfile profile) {
|
|
||||||
this.writeUUID(buf, profile.getId());
|
|
||||||
this.writeString(buf, profile.getName());
|
|
||||||
this.writeVarInt(buf, profile.getProperties().size());
|
|
||||||
for (GameProfile.Property property : profile.getProperties()) {
|
|
||||||
this.writeProperty(buf, property);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public GameProfile.Property readProperty(ByteBuf buf) {
|
public GameProfile.Property readProperty(ByteBuf buf) {
|
||||||
String name = this.readString(buf);
|
String name = this.readString(buf);
|
||||||
String value = this.readString(buf);
|
String value = this.readString(buf);
|
||||||
|
@ -776,6 +758,28 @@ public class MinecraftCodecHelper extends BasePacketCodecHelper {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public <T> T readById(ByteBuf buf, IntFunction<T> registry, Function<ByteBuf, T> custom) {
|
||||||
|
int id = this.readVarInt(buf);
|
||||||
|
if (id == 0) {
|
||||||
|
return custom.apply(buf);
|
||||||
|
}
|
||||||
|
return registry.apply(id - 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
public CustomSound readSoundEvent(ByteBuf buf) {
|
||||||
|
String name = this.readString(buf);
|
||||||
|
boolean isNewSystem = buf.readBoolean();
|
||||||
|
return new CustomSound(name, isNewSystem, isNewSystem ? buf.readFloat() : 16.0F);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void writeSoundEvent(ByteBuf buf, Sound soundEvent) {
|
||||||
|
writeString(buf, soundEvent.getName());
|
||||||
|
buf.writeBoolean(soundEvent.isNewSystem());
|
||||||
|
if (soundEvent.isNewSystem()) {
|
||||||
|
buf.writeFloat(soundEvent.getRange());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public NibbleArray3d readNibbleArray(ByteBuf buf, int size) {
|
public NibbleArray3d readNibbleArray(ByteBuf buf, int size) {
|
||||||
return new NibbleArray3d(this.readByteArray(buf, ignored -> size));
|
return new NibbleArray3d(this.readByteArray(buf, ignored -> size));
|
||||||
}
|
}
|
||||||
|
|
|
@ -1402,6 +1402,16 @@ public enum BuiltinSound implements Sound {
|
||||||
|
|
||||||
private final @NonNull String name;
|
private final @NonNull String name;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isNewSystem() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float getRange() {
|
||||||
|
return 16F;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* For grabbing when the SoundPacket is sent.
|
* For grabbing when the SoundPacket is sent.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -2,10 +2,12 @@ package com.github.steveice10.mc.protocol.data.game.level.sound;
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.NonNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
public class CustomSound implements Sound {
|
public class CustomSound implements Sound {
|
||||||
private final @NonNull String name;
|
private final @NotNull String name;
|
||||||
|
private final boolean newSystem;
|
||||||
|
private final float range;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,9 @@
|
||||||
package com.github.steveice10.mc.protocol.data.game.level.sound;
|
package com.github.steveice10.mc.protocol.data.game.level.sound;
|
||||||
|
|
||||||
public interface Sound {
|
public interface Sound {
|
||||||
|
String getName();
|
||||||
|
|
||||||
|
boolean isNewSystem();
|
||||||
|
|
||||||
|
float getRange();
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,6 +3,8 @@ package com.github.steveice10.mc.protocol.packet.ingame.clientbound;
|
||||||
import com.github.steveice10.mc.protocol.codec.MinecraftCodecHelper;
|
import com.github.steveice10.mc.protocol.codec.MinecraftCodecHelper;
|
||||||
import com.github.steveice10.mc.protocol.codec.MinecraftPacket;
|
import com.github.steveice10.mc.protocol.codec.MinecraftPacket;
|
||||||
import com.github.steveice10.mc.protocol.data.game.level.sound.BuiltinSound;
|
import com.github.steveice10.mc.protocol.data.game.level.sound.BuiltinSound;
|
||||||
|
import com.github.steveice10.mc.protocol.data.game.level.sound.CustomSound;
|
||||||
|
import com.github.steveice10.mc.protocol.data.game.level.sound.Sound;
|
||||||
import com.github.steveice10.mc.protocol.data.game.level.sound.SoundCategory;
|
import com.github.steveice10.mc.protocol.data.game.level.sound.SoundCategory;
|
||||||
import io.netty.buffer.ByteBuf;
|
import io.netty.buffer.ByteBuf;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
|
@ -16,15 +18,15 @@ import java.io.IOException;
|
||||||
@With
|
@With
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
public class ClientboundSoundEntityPacket implements MinecraftPacket {
|
public class ClientboundSoundEntityPacket implements MinecraftPacket {
|
||||||
private final @NonNull BuiltinSound sound;
|
private final @NonNull Sound sound;
|
||||||
private final @NonNull SoundCategory category;
|
private final @NonNull SoundCategory category;
|
||||||
private final int entityId;
|
private final int entityId;
|
||||||
private final float volume;
|
private final float volume;
|
||||||
private final float pitch;
|
private final float pitch;
|
||||||
private final long seed;
|
private final long seed;
|
||||||
|
|
||||||
public ClientboundSoundEntityPacket(ByteBuf in, MinecraftCodecHelper helper) throws IOException {
|
public ClientboundSoundEntityPacket(ByteBuf in, MinecraftCodecHelper helper) {
|
||||||
this.sound = helper.readBuiltinSound(in);
|
this.sound = helper.readById(in, BuiltinSound::from, helper::readSoundEvent);
|
||||||
this.category = helper.readSoundCategory(in);
|
this.category = helper.readSoundCategory(in);
|
||||||
this.entityId = helper.readVarInt(in);
|
this.entityId = helper.readVarInt(in);
|
||||||
this.volume = in.readFloat();
|
this.volume = in.readFloat();
|
||||||
|
@ -34,7 +36,12 @@ public class ClientboundSoundEntityPacket implements MinecraftPacket {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void serialize(ByteBuf out, MinecraftCodecHelper helper) throws IOException {
|
public void serialize(ByteBuf out, MinecraftCodecHelper helper) throws IOException {
|
||||||
helper.writeBuiltinSound(out, this.sound);
|
if (this.sound instanceof CustomSound) {
|
||||||
|
helper.writeVarInt(out, 0);
|
||||||
|
helper.writeSoundEvent(out, this.sound);
|
||||||
|
} else {
|
||||||
|
helper.writeVarInt(out, ((BuiltinSound) this.sound).ordinal() + 1);
|
||||||
|
}
|
||||||
helper.writeSoundCategory(out, this.category);
|
helper.writeSoundCategory(out, this.category);
|
||||||
helper.writeVarInt(out, this.entityId);
|
helper.writeVarInt(out, this.entityId);
|
||||||
out.writeFloat(this.volume);
|
out.writeFloat(this.volume);
|
||||||
|
|
|
@ -22,7 +22,7 @@ public class ClientboundStopSoundPacket implements MinecraftPacket {
|
||||||
private static final int FLAG_SOUND = 0x02;
|
private static final int FLAG_SOUND = 0x02;
|
||||||
|
|
||||||
private final @Nullable SoundCategory category;
|
private final @Nullable SoundCategory category;
|
||||||
private final @Nullable Sound sound;
|
private final @Nullable String sound;
|
||||||
|
|
||||||
public ClientboundStopSoundPacket(ByteBuf in, MinecraftCodecHelper helper) throws IOException {
|
public ClientboundStopSoundPacket(ByteBuf in, MinecraftCodecHelper helper) throws IOException {
|
||||||
int flags = in.readByte();
|
int flags = in.readByte();
|
||||||
|
@ -33,13 +33,7 @@ public class ClientboundStopSoundPacket implements MinecraftPacket {
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((flags & FLAG_SOUND) != 0) {
|
if ((flags & FLAG_SOUND) != 0) {
|
||||||
String value = helper.readString(in);
|
this.sound = helper.readResourceLocation(in);
|
||||||
Sound sound = helper.getBuiltinSound(value);
|
|
||||||
if (sound != null) {
|
|
||||||
this.sound = sound;
|
|
||||||
} else {
|
|
||||||
this.sound = new CustomSound(value);
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
this.sound = null;
|
this.sound = null;
|
||||||
}
|
}
|
||||||
|
@ -62,14 +56,7 @@ public class ClientboundStopSoundPacket implements MinecraftPacket {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.sound != null) {
|
if (this.sound != null) {
|
||||||
String value = "";
|
helper.writeResourceLocation(out, this.sound);
|
||||||
if (this.sound instanceof CustomSound) {
|
|
||||||
value = ((CustomSound) this.sound).getName();
|
|
||||||
} else if (this.sound instanceof BuiltinSound) {
|
|
||||||
value = ((BuiltinSound) this.sound).getName();
|
|
||||||
}
|
|
||||||
|
|
||||||
helper.writeString(out, value);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,8 +19,6 @@ import java.io.IOException;
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
public class ClientboundSoundPacket implements MinecraftPacket {
|
public class ClientboundSoundPacket implements MinecraftPacket {
|
||||||
private final @NonNull Sound sound;
|
private final @NonNull Sound sound;
|
||||||
private final float range;
|
|
||||||
private final boolean isNewSystem;
|
|
||||||
private final @NonNull SoundCategory category;
|
private final @NonNull SoundCategory category;
|
||||||
private final double x;
|
private final double x;
|
||||||
private final double y;
|
private final double y;
|
||||||
|
@ -29,17 +27,8 @@ public class ClientboundSoundPacket implements MinecraftPacket {
|
||||||
private final float pitch;
|
private final float pitch;
|
||||||
private final long seed;
|
private final long seed;
|
||||||
|
|
||||||
public ClientboundSoundPacket(ByteBuf in, MinecraftCodecHelper helper) throws IOException {
|
public ClientboundSoundPacket(ByteBuf in, MinecraftCodecHelper helper) {
|
||||||
int id = helper.readVarInt(in);
|
this.sound = helper.readById(in, BuiltinSound::from, helper::readSoundEvent);
|
||||||
if (id == 0) {
|
|
||||||
this.sound = new CustomSound(helper.readString(in));
|
|
||||||
this.isNewSystem = in.readBoolean();
|
|
||||||
this.range = this.isNewSystem ? in.readFloat() : 16.0F;
|
|
||||||
} else {
|
|
||||||
this.sound = BuiltinSound.from(id - 1);
|
|
||||||
this.isNewSystem = false;
|
|
||||||
this.range = 16.0F;
|
|
||||||
}
|
|
||||||
this.category = helper.readSoundCategory(in);
|
this.category = helper.readSoundCategory(in);
|
||||||
this.x = in.readInt() / 8D;
|
this.x = in.readInt() / 8D;
|
||||||
this.y = in.readInt() / 8D;
|
this.y = in.readInt() / 8D;
|
||||||
|
@ -53,12 +42,9 @@ public class ClientboundSoundPacket implements MinecraftPacket {
|
||||||
public void serialize(ByteBuf out, MinecraftCodecHelper helper) throws IOException {
|
public void serialize(ByteBuf out, MinecraftCodecHelper helper) throws IOException {
|
||||||
if (this.sound instanceof CustomSound) {
|
if (this.sound instanceof CustomSound) {
|
||||||
helper.writeVarInt(out, 0);
|
helper.writeVarInt(out, 0);
|
||||||
helper.writeString(out, ((CustomSound) this.sound).getName());
|
helper.writeSoundEvent(out, this.sound);
|
||||||
if (this.isNewSystem) {
|
|
||||||
out.writeFloat(this.range);
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
helper.writeVarInt(out, ((BuiltinSound)this.sound).ordinal() + 1);
|
helper.writeVarInt(out, ((BuiltinSound) this.sound).ordinal() + 1);
|
||||||
}
|
}
|
||||||
helper.writeSoundCategory(out, this.category);
|
helper.writeSoundCategory(out, this.category);
|
||||||
out.writeInt((int) (this.x * 8));
|
out.writeInt((int) (this.x * 8));
|
||||||
|
|
Loading…
Reference in a new issue