2525import com .viaversion .viaversion .api .minecraft .Holder ;
2626import com .viaversion .viaversion .api .minecraft .SoundEvent ;
2727import com .viaversion .viaversion .api .minecraft .codec .Ops ;
28+ import com .viaversion .viaversion .api .type .OptionalType ;
2829import com .viaversion .viaversion .api .type .Type ;
2930import com .viaversion .viaversion .api .type .Types ;
3031import io .netty .buffer .ByteBuf ;
@@ -40,9 +41,9 @@ public record KineticWeapon(int contactCooldownTicks, int delayTicks, @Nullable
4041 public KineticWeapon read (final ByteBuf buffer ) {
4142 final int contactCooldownTicks = Types .VAR_INT .readPrimitive (buffer );
4243 final int delayTicks = Types .VAR_INT .readPrimitive (buffer );
43- final Condition dismountConditions = Condition .TYPE .read (buffer );
44- final Condition knockbackConditions = Condition .TYPE .read (buffer );
45- final Condition damageConditions = Condition .TYPE .read (buffer );
44+ final Condition dismountConditions = Condition .OPTIONAL_TYPE .read (buffer );
45+ final Condition knockbackConditions = Condition .OPTIONAL_TYPE .read (buffer );
46+ final Condition damageConditions = Condition .OPTIONAL_TYPE .read (buffer );
4647 final float forwardMovement = Types .FLOAT .readPrimitive (buffer );
4748 final float damageMultiplier = Types .FLOAT .readPrimitive (buffer );
4849 final Holder <SoundEvent > sound = Types .OPTIONAL_SOUND_EVENT .read (buffer );
@@ -54,9 +55,9 @@ public KineticWeapon read(final ByteBuf buffer) {
5455 public void write (final ByteBuf buffer , final KineticWeapon value ) {
5556 Types .VAR_INT .writePrimitive (buffer , value .contactCooldownTicks );
5657 Types .VAR_INT .writePrimitive (buffer , value .delayTicks );
57- Condition .TYPE .write (buffer , value .dismountConditions );
58- Condition .TYPE .write (buffer , value .knockbackConditions );
59- Condition .TYPE .write (buffer , value .damageConditions );
58+ Condition .OPTIONAL_TYPE .write (buffer , value .dismountConditions );
59+ Condition .OPTIONAL_TYPE .write (buffer , value .knockbackConditions );
60+ Condition .OPTIONAL_TYPE .write (buffer , value .damageConditions );
6061 Types .FLOAT .writePrimitive (buffer , value .forwardMovement );
6162 Types .FLOAT .writePrimitive (buffer , value .damageMultiplier );
6263 Types .OPTIONAL_SOUND_EVENT .write (buffer , value .sound );
@@ -106,5 +107,7 @@ public void write(final Ops ops, final Condition value) {
106107 );
107108 }
108109 };
110+ public static final Type <Condition > OPTIONAL_TYPE = new OptionalType <>(TYPE ) {
111+ };
109112 }
110113}
0 commit comments