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
api/src/main/java/me/tofaa/entitylib

View file

@ -1,6 +1,7 @@
package me.tofaa.entitylib.meta.other;
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.Metadata;
import org.jetbrains.annotations.NotNull;
@ -115,6 +116,10 @@ public class PaintingMeta extends EntityMeta {
return this.height;
}
public PaintingType asProtocolType() {
return PaintingType.getById(this.ordinal());
}
}
}

View file

@ -1,15 +1,14 @@
package me.tofaa.entitylib.wrapper.spawning;
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.WrapperPlayServerSpawnExperienceOrb;
import com.github.retrooper.packetevents.wrapper.play.server.WrapperPlayServerSpawnLivingEntity;
import com.github.retrooper.packetevents.wrapper.play.server.WrapperPlayServerSpawnWeatherEntity;
import com.github.retrooper.packetevents.wrapper.play.server.*;
import me.tofaa.entitylib.meta.other.PaintingMeta;
import me.tofaa.entitylib.utils.Check;
import me.tofaa.entitylib.wrapper.WrapperExperienceOrbEntity;
import org.jetbrains.annotations.NotNull;
import sun.reflect.generics.reflectiveObjects.NotImplementedException;
import java.awt.*;
import java.util.Optional;
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();
};
@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) -> {
Location location = entity.getLocation();