painting provider

This commit is contained in:
= 2024-11-14 01:15:24 +02:00
parent e9dc95275c
commit 0d99f705e8
2 changed files with 20 additions and 5 deletions

View file

@ -1,6 +1,7 @@
package me.tofaa.entitylib.meta.other; package me.tofaa.entitylib.meta.other;
import com.github.retrooper.packetevents.protocol.world.Direction; import com.github.retrooper.packetevents.protocol.world.Direction;
import com.github.retrooper.packetevents.protocol.world.PaintingType;
import me.tofaa.entitylib.meta.EntityMeta; import me.tofaa.entitylib.meta.EntityMeta;
import me.tofaa.entitylib.meta.Metadata; import me.tofaa.entitylib.meta.Metadata;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
@ -115,6 +116,10 @@ public class PaintingMeta extends EntityMeta {
return this.height; return this.height;
} }
public PaintingType asProtocolType() {
return PaintingType.getById(this.ordinal());
}
} }
} }

View file

@ -1,15 +1,14 @@
package me.tofaa.entitylib.wrapper.spawning; package me.tofaa.entitylib.wrapper.spawning;
import com.github.retrooper.packetevents.protocol.world.Location; import com.github.retrooper.packetevents.protocol.world.Location;
import com.github.retrooper.packetevents.wrapper.play.server.WrapperPlayServerSpawnEntity; import com.github.retrooper.packetevents.wrapper.play.server.*;
import com.github.retrooper.packetevents.wrapper.play.server.WrapperPlayServerSpawnExperienceOrb; import me.tofaa.entitylib.meta.other.PaintingMeta;
import com.github.retrooper.packetevents.wrapper.play.server.WrapperPlayServerSpawnLivingEntity;
import com.github.retrooper.packetevents.wrapper.play.server.WrapperPlayServerSpawnWeatherEntity;
import me.tofaa.entitylib.utils.Check; import me.tofaa.entitylib.utils.Check;
import me.tofaa.entitylib.wrapper.WrapperExperienceOrbEntity; import me.tofaa.entitylib.wrapper.WrapperExperienceOrbEntity;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import sun.reflect.generics.reflectiveObjects.NotImplementedException; import sun.reflect.generics.reflectiveObjects.NotImplementedException;
import java.awt.*;
import java.util.Optional; import java.util.Optional;
interface SpawnPacketProviders { interface SpawnPacketProviders {
@ -41,9 +40,20 @@ interface SpawnPacketProviders {
); );
}; };
@NotNull SpawnPacketProvider<WrapperPlayServerSpawnWeatherEntity> WEATHER_ENTITY = (user, entity) -> { @NotNull SpawnPacketProvider<WrapperPlayServerSpawnWeatherEntity> LEGACY_WEATHER_ENTITY = (user, entity) -> {
throw new NotImplementedException(); throw new NotImplementedException();
}; };
@NotNull SpawnPacketProvider<WrapperPlayServerSpawnPainting> LEGACY_PAINTING = (user, entity) -> {
Check.stateCondition(!(entity.getEntityMeta() instanceof PaintingMeta), "Attempted to use spawn packet provider for paintings but not using an entity with PaintingMeta.");
PaintingMeta meta = entity.getEntityMeta(PaintingMeta.class);
return new WrapperPlayServerSpawnPainting(
entity.getEntityId(),
entity.getUuid(),
meta.getType().asProtocolType(),
entity.getLocation().getPosition().toVector3i(),
meta.getDirection()
);
};
@NotNull SpawnPacketProvider<WrapperPlayServerSpawnLivingEntity> PRE_1_19_LIVING = (user, entity) -> { @NotNull SpawnPacketProvider<WrapperPlayServerSpawnLivingEntity> PRE_1_19_LIVING = (user, entity) -> {
Location location = entity.getLocation(); Location location = entity.getLocation();