9
0
mirror of https://github.com/Xiao-MoMi/craft-engine.git synced 2025-12-30 12:29:15 +00:00

Fix Indentation

This commit is contained in:
iqtester
2025-06-24 11:39:39 -04:00
parent 63efa3fd5e
commit 273bd5d292
10 changed files with 910 additions and 907 deletions

View File

@@ -3,14 +3,14 @@ package net.momirealms.craftengine.bukkit.entity.data;
import net.momirealms.craftengine.bukkit.plugin.reflection.minecraft.CoreReflections;
public class PlayerData<T> extends LivingEntityData<T> {
public static final PlayerData<Float> PlayerAbsorption = new PlayerData<>(PlayerData.class, EntityDataValue.Serializers$FLOAT, 0.0f);
public static final PlayerData<Integer> Score = new PlayerData<>(PlayerData.class, EntityDataValue.Serializers$INT, 0);
public static final PlayerData<Byte> PlayerModeCustomisation = new PlayerData<>(PlayerData.class, EntityDataValue.Serializers$BYTE, (byte) 0);
public static final PlayerData<Byte> PlayerMainHand = new PlayerData<>(PlayerData.class, EntityDataValue.Serializers$BYTE, (byte) 1);
public static final PlayerData<Object> ShoulderLeft = new PlayerData<>(PlayerData.class, EntityDataValue.Serializers$COMPOUND_TAG, CoreReflections.instance$CompoundTag$Empty);
public static final PlayerData<Object> ShoulderRight = new PlayerData<>(PlayerData.class, EntityDataValue.Serializers$COMPOUND_TAG, CoreReflections.instance$CompoundTag$Empty);
public static final PlayerData<Float> PlayerAbsorption = new PlayerData<>(PlayerData.class, EntityDataValue.Serializers$FLOAT, 0.0f);
public static final PlayerData<Integer> Score = new PlayerData<>(PlayerData.class, EntityDataValue.Serializers$INT, 0);
public static final PlayerData<Byte> PlayerModeCustomisation = new PlayerData<>(PlayerData.class, EntityDataValue.Serializers$BYTE, (byte) 0);
public static final PlayerData<Byte> PlayerMainHand = new PlayerData<>(PlayerData.class, EntityDataValue.Serializers$BYTE, (byte) 1);
public static final PlayerData<Object> ShoulderLeft = new PlayerData<>(PlayerData.class, EntityDataValue.Serializers$COMPOUND_TAG, CoreReflections.instance$CompoundTag$Empty);
public static final PlayerData<Object> ShoulderRight = new PlayerData<>(PlayerData.class, EntityDataValue.Serializers$COMPOUND_TAG, CoreReflections.instance$CompoundTag$Empty);
public PlayerData(Class<?> clazz, Object serializer, T defaultValue) {
super(clazz, serializer, defaultValue);
}
public PlayerData(Class<?> clazz, Object serializer, T defaultValue) {
super(clazz, serializer, defaultValue);
}
}

View File

@@ -11,76 +11,76 @@ import org.bukkit.entity.Entity;
import org.joml.Vector3f;
public abstract class BukkitSeatEntity extends BukkitEntity implements SeatEntity {
private final BukkitFurniture furniture;
private final Vector3f vector3f;
private final int playerID;
private boolean destroyed = false;
private final BukkitFurniture furniture;
private final Vector3f vector3f;
private final int playerID;
private boolean destroyed = false;
public BukkitSeatEntity(Entity entity, Furniture furniture, Vector3f vector3f, int playerID) {
super(entity);
this.furniture = (BukkitFurniture) furniture;
this.vector3f = vector3f;
this.playerID = playerID;
}
public BukkitSeatEntity(Entity entity, Furniture furniture, Vector3f vector3f, int playerID) {
super(entity);
this.furniture = (BukkitFurniture) furniture;
this.vector3f = vector3f;
this.playerID = playerID;
}
@Override
public void add(NetWorkUser from, NetWorkUser to) {}
@Override
public void add(NetWorkUser from, NetWorkUser to) {}
@Override
public void dismount(Player player) {
if (player == null || destroyed) return;
player.setSeat(null);
onDismount(player);
destroy();
}
@Override
public void dismount(Player player) {
if (player == null || destroyed) return;
player.setSeat(null);
onDismount(player);
destroy();
}
@Override
public void onDismount(Player player) {
@Override
public void onDismount(Player player) {
}
}
@Override
public void event(Player player, Object event) {}
@Override
public void event(Player player, Object event) {}
@Override
public void destroy() {
if (destroyed) return;
destroyed = true;
@Override
public void destroy() {
if (destroyed) return;
destroyed = true;
org.bukkit.entity.Entity entity = this.literalObject();
if (entity == null) return;
org.bukkit.entity.Entity entity = this.literalObject();
if (entity == null) return;
for (org.bukkit.entity.Entity passenger : entity.getPassengers()) {
entity.removePassenger(passenger);
if (passenger instanceof org.bukkit.entity.Player p && p.getEntityId() == this.playerID) {
Player cePlayer = BukkitAdaptors.adapt(p);
if (cePlayer != null && cePlayer.entityID() == playerID()) {
cePlayer.setSeat(null);
onDismount(cePlayer);
}
}
}
entity.remove();
furniture.removeSeatEntity(playerID());
furniture.removeOccupiedSeat(vector3f());
}
for (org.bukkit.entity.Entity passenger : entity.getPassengers()) {
entity.removePassenger(passenger);
if (passenger instanceof org.bukkit.entity.Player p && p.getEntityId() == this.playerID) {
Player cePlayer = BukkitAdaptors.adapt(p);
if (cePlayer != null && cePlayer.entityID() == playerID()) {
cePlayer.setSeat(null);
onDismount(cePlayer);
}
}
}
entity.remove();
furniture.removeSeatEntity(playerID());
furniture.removeOccupiedSeat(vector3f());
}
public boolean destroyed() {
return destroyed;
}
public boolean destroyed() {
return destroyed;
}
@Override
public BukkitFurniture furniture() {
return this.furniture;
}
@Override
public BukkitFurniture furniture() {
return this.furniture;
}
@Override
public Vector3f vector3f() {
return this.vector3f;
}
@Override
public Vector3f vector3f() {
return this.vector3f;
}
@Override
public int playerID() {
return this.playerID;
}
@Override
public int playerID() {
return this.playerID;
}
}

View File

@@ -4,9 +4,9 @@ import net.momirealms.craftengine.core.entity.furniture.SeatType;
public class BukkitSeatTypes extends SeatType {
public static void init() {
register(SIT, SitSeat.FACTORY);
register(LAY, LaySeat.FACTORY);
register(CRAWL, CrawlSeat.FACTORY);
}
public static void init() {
register(SIT, SitSeat.FACTORY);
register(LAY, LaySeat.FACTORY);
register(CRAWL, CrawlSeat.FACTORY);
}
}

View File

@@ -33,124 +33,124 @@ import java.util.UUID;
import java.util.function.Consumer;
public class CrawlSeat extends AbstractSeat {
public static final SeatFactory FACTORY = new Factory();
private static final List<Object> visualData = new ArrayList<>();
private final boolean limitPlayerRotation;
public static final SeatFactory FACTORY = new Factory();
private static final List<Object> visualData = new ArrayList<>();
private final boolean limitPlayerRotation;
static {
ShulkerData.NoGravity.addEntityDataIfNotDefaultValue(true, visualData);
ShulkerData.Silent.addEntityDataIfNotDefaultValue(true, visualData);
ShulkerData.MobFlags.addEntityDataIfNotDefaultValue((byte) 0x01, visualData);
ShulkerData.SharedFlags.addEntityDataIfNotDefaultValue((byte) 0x20, visualData);
}
static {
ShulkerData.NoGravity.addEntityDataIfNotDefaultValue(true, visualData);
ShulkerData.Silent.addEntityDataIfNotDefaultValue(true, visualData);
ShulkerData.MobFlags.addEntityDataIfNotDefaultValue((byte) 0x01, visualData);
ShulkerData.SharedFlags.addEntityDataIfNotDefaultValue((byte) 0x20, visualData);
}
public CrawlSeat(Vector3f offset, float yaw, boolean limitPlayerRotation) {
super(offset, yaw);
this.limitPlayerRotation = limitPlayerRotation;
}
public CrawlSeat(Vector3f offset, float yaw, boolean limitPlayerRotation) {
super(offset, yaw);
this.limitPlayerRotation = limitPlayerRotation;
}
@Override
public SeatEntity spawn(Player player, Furniture furniture) {
return spawn((org.bukkit.entity.Player) player.platformPlayer(), furniture);
}
@Override
public SeatEntity spawn(Player player, Furniture furniture) {
return spawn((org.bukkit.entity.Player) player.platformPlayer(), furniture);
}
public SeatEntity spawn(org.bukkit.entity.Player player, Furniture furniture) {
Location location = ((BukkitFurniture)furniture).calculateSeatLocation(this);
public SeatEntity spawn(org.bukkit.entity.Player player, Furniture furniture) {
Location location = ((BukkitFurniture) furniture).calculateSeatLocation(this);
org.bukkit.entity.Entity seatEntity = BukkitFurniture.spawnSeatEntity(furniture, player.getWorld(), location, this.limitPlayerRotation, null);
if (!seatEntity.addPassenger(player)) {
return null;
};
org.bukkit.entity.Entity seatEntity = BukkitFurniture.spawnSeatEntity(furniture, player.getWorld(), location, this.limitPlayerRotation, null);
if (!seatEntity.addPassenger(player)) {
return null;
}
// Fix Rider Pose
int entityId = CoreReflections.instance$Entity$ENTITY_COUNTER.incrementAndGet();
List<Object> packets = new ArrayList<>();
packets.add(FastNMS.INSTANCE.constructor$ClientboundAddEntityPacket(entityId, UUID.randomUUID(), location.getX(), location.getY(), location.getZ(), location.getPitch(), location.getYaw(),
MEntityTypes.SHULKER, 0, CoreReflections.instance$Vec3$Zero, 0));
packets.add(FastNMS.INSTANCE.constructor$ClientboundSetEntityDataPacket(entityId, List.copyOf(visualData)));
// Fix Rider Pose
int entityId = CoreReflections.instance$Entity$ENTITY_COUNTER.incrementAndGet();
List<Object> packets = new ArrayList<>();
packets.add(FastNMS.INSTANCE.constructor$ClientboundAddEntityPacket(entityId, UUID.randomUUID(), location.getX(), location.getY(), location.getZ(), location.getPitch(), location.getYaw(),
MEntityTypes.SHULKER, 0, CoreReflections.instance$Vec3$Zero, 0));
packets.add(FastNMS.INSTANCE.constructor$ClientboundSetEntityDataPacket(entityId, List.copyOf(visualData)));
try {
if (VersionHelper.isOrAbove1_20_5()) {
Object attributeInstance = CoreReflections.constructor$AttributeInstance.newInstance(MAttributeHolders.SCALE, (Consumer<?>) (o) -> {});
CoreReflections.method$AttributeInstance$setBaseValue.invoke(attributeInstance, 0.6);
packets.add(
NetworkReflections.constructor$ClientboundUpdateAttributesPacket0
.newInstance(entityId, Collections.singletonList(attributeInstance))
);
packets.add(FastNMS.INSTANCE.constructor$ClientboundSetPassengersPacket(seatEntity.getEntityId(), entityId));
}
} catch (Exception e) {
CraftEngine.instance().logger().warn("Failed to add crawl seat attributes", e);
}
try {
if (VersionHelper.isOrAbove1_20_5()) {
Object attributeInstance = CoreReflections.constructor$AttributeInstance.newInstance(MAttributeHolders.SCALE, (Consumer<?>) (o) -> {});
CoreReflections.method$AttributeInstance$setBaseValue.invoke(attributeInstance, 0.6);
packets.add(
NetworkReflections.constructor$ClientboundUpdateAttributesPacket0
.newInstance(entityId, Collections.singletonList(attributeInstance))
);
packets.add(FastNMS.INSTANCE.constructor$ClientboundSetPassengersPacket(seatEntity.getEntityId(), entityId));
}
} catch (Exception e) {
CraftEngine.instance().logger().warn("Failed to add crawl seat attributes", e);
}
Object bundle = FastNMS.INSTANCE.constructor$ClientboundBundlePacket(packets);
BukkitServerPlayer serverPlayer = BukkitAdaptors.adapt(player);
serverPlayer.sendPacket(bundle, true);
Object bundle = FastNMS.INSTANCE.constructor$ClientboundBundlePacket(packets);
BukkitServerPlayer serverPlayer = BukkitAdaptors.adapt(player);
serverPlayer.sendPacket(bundle, true);
// Sync Pose
player.setPose(Pose.SWIMMING, true);
Object syncPosePacket = null;
try {
Object playerData = CoreReflections.method$Entity$getEntityData.invoke(serverPlayer.serverPlayer());
Object dataItem = CoreReflections.method$SynchedEntityData$getItem.invoke(playerData, PlayerData.Pose.entityDataAccessor());
Object dataValue = CoreReflections.method$SynchedEntityData$DataItem$value.invoke(dataItem);
syncPosePacket = FastNMS.INSTANCE.constructor$ClientboundSetEntityDataPacket(serverPlayer.entityID(), List.of(dataValue));
} catch (Exception e) {
CraftEngine.instance().logger().warn("Failed to construct sync pose packet", e);
}
// Sync Pose
player.setPose(Pose.SWIMMING, true);
Object syncPosePacket = null;
try {
Object playerData = CoreReflections.method$Entity$getEntityData.invoke(serverPlayer.serverPlayer());
Object dataItem = CoreReflections.method$SynchedEntityData$getItem.invoke(playerData, PlayerData.Pose.entityDataAccessor());
Object dataValue = CoreReflections.method$SynchedEntityData$DataItem$value.invoke(dataItem);
syncPosePacket = FastNMS.INSTANCE.constructor$ClientboundSetEntityDataPacket(serverPlayer.entityID(), List.of(dataValue));
} catch (Exception e) {
CraftEngine.instance().logger().warn("Failed to construct sync pose packet", e);
}
Object finalSyncPosePacket = syncPosePacket;
BukkitCraftEngine.instance().scheduler().sync().runLater(() -> {
serverPlayer.sendPacket(finalSyncPosePacket, true);
for (org.bukkit.entity.Player p : PlayerUtils.getTrackedBy(player)) {
BukkitNetworkManager.instance().sendPacket(BukkitAdaptors.adapt(p), finalSyncPosePacket, true);
}
}, 1, location.getWorld(), location.getBlockX() >> 4, location.getBlockZ() >> 4);
Object finalSyncPosePacket = syncPosePacket;
BukkitCraftEngine.instance().scheduler().sync().runLater(() -> {
serverPlayer.sendPacket(finalSyncPosePacket, true);
for (org.bukkit.entity.Player p : PlayerUtils.getTrackedBy(player)) {
BukkitNetworkManager.instance().sendPacket(BukkitAdaptors.adapt(p), finalSyncPosePacket, true);
}
}, 1, location.getWorld(), location.getBlockX() >> 4, location.getBlockZ() >> 4);
return new CrawlEntity(seatEntity, furniture, offset(), player.getEntityId(), entityId, syncPosePacket);
}
return new CrawlEntity(seatEntity, furniture, offset(), player.getEntityId(), entityId, syncPosePacket);
}
private static class CrawlEntity extends BukkitSeatEntity {
private final int entityId;
private final Object syncPosePacket;
private static class CrawlEntity extends BukkitSeatEntity {
private final int entityId;
private final Object syncPosePacket;
public CrawlEntity(Entity entity, Furniture furniture, Vector3f vector3f, int playerID, int entityId, Object fixPosePacket) {
super(entity, furniture, vector3f, playerID);
this.entityId = entityId;
this.syncPosePacket = fixPosePacket;
}
public CrawlEntity(Entity entity, Furniture furniture, Vector3f vector3f, int playerID, int entityId, Object fixPosePacket) {
super(entity, furniture, vector3f, playerID);
this.entityId = entityId;
this.syncPosePacket = fixPosePacket;
}
@Override
public void add(NetWorkUser from, NetWorkUser to) {
to.sendPacket(syncPosePacket, false);
}
@Override
public void add(NetWorkUser from, NetWorkUser to) {
to.sendPacket(syncPosePacket, false);
}
@Override
public void onDismount(Player player) {
if (player == null) return;
org.bukkit.entity.Player bukkitPlayer = (org.bukkit.entity.Player) player.platformPlayer();
bukkitPlayer.setPose(Pose.STANDING, false);
try {
Object packet = NetworkReflections.constructor$ClientboundRemoveEntitiesPacket.newInstance((Object) new int[]{entityId});
player.sendPacket(packet, false);
} catch (Exception e) {
BukkitCraftEngine.instance().logger().warn("Failed to dismount from CrawlEntity", e);
}
}
@Override
public void onDismount(Player player) {
if (player == null) return;
org.bukkit.entity.Player bukkitPlayer = (org.bukkit.entity.Player) player.platformPlayer();
bukkitPlayer.setPose(Pose.STANDING, false);
try {
Object packet = NetworkReflections.constructor$ClientboundRemoveEntitiesPacket.newInstance((Object) new int[]{entityId});
player.sendPacket(packet, false);
} catch (Exception e) {
BukkitCraftEngine.instance().logger().warn("Failed to dismount from CrawlEntity", e);
}
}
@Override
public Key type() {
return SeatType.CRAWL;
}
}
@Override
public Key type() {
return SeatType.CRAWL;
}
}
public static class Factory implements SeatFactory {
public static class Factory implements SeatFactory {
@Override
public Seat create(List<String> args) {
if (args.size() == 1) return new CrawlSeat(MiscUtils.getAsVector3f(args.getFirst(), "seats"), 0, false);
return new CrawlSeat(MiscUtils.getAsVector3f(args.getFirst(), "seats"), Float.parseFloat(args.get(1)), true);
}
}
@Override
public Seat create(List<String> args) {
if (args.size() == 1) return new CrawlSeat(MiscUtils.getAsVector3f(args.getFirst(), "seats"), 0, false);
return new CrawlSeat(MiscUtils.getAsVector3f(args.getFirst(), "seats"), Float.parseFloat(args.get(1)), true);
}
}
}

View File

@@ -13,46 +13,46 @@ import org.joml.Vector3f;
import java.util.List;
public class SitSeat extends AbstractSeat {
public static final SeatFactory FACTORY = new Factory();
private final boolean limitPlayerRotation;
public static final SeatFactory FACTORY = new Factory();
private final boolean limitPlayerRotation;
public SitSeat(Vector3f offset, float yaw, boolean limitPlayerRotation) {
super(offset, yaw);
this.limitPlayerRotation = limitPlayerRotation;
}
public SitSeat(Vector3f offset, float yaw, boolean limitPlayerRotation) {
super(offset, yaw);
this.limitPlayerRotation = limitPlayerRotation;
}
@Override
public SeatEntity spawn(Player player, Furniture furniture) {
return spawn((org.bukkit.entity.Player) player.platformPlayer(), furniture);
}
@Override
public SeatEntity spawn(Player player, Furniture furniture) {
return spawn((org.bukkit.entity.Player) player.platformPlayer(), furniture);
}
public SeatEntity spawn(org.bukkit.entity.Player player, Furniture furniture) {
Location location = ((BukkitFurniture)furniture).calculateSeatLocation(this);
org.bukkit.entity.Entity seatEntity = BukkitFurniture.spawnSeatEntity(furniture, player.getWorld(), location, this.limitPlayerRotation, null);
if (!seatEntity.addPassenger(player)) {
return null;
};
return new SitEntity(seatEntity, furniture, offset(), player.getEntityId());
}
public SeatEntity spawn(org.bukkit.entity.Player player, Furniture furniture) {
Location location = ((BukkitFurniture) furniture).calculateSeatLocation(this);
org.bukkit.entity.Entity seatEntity = BukkitFurniture.spawnSeatEntity(furniture, player.getWorld(), location, this.limitPlayerRotation, null);
if (!seatEntity.addPassenger(player)) {
return null;
}
return new SitEntity(seatEntity, furniture, offset(), player.getEntityId());
}
private static class SitEntity extends BukkitSeatEntity {
private static class SitEntity extends BukkitSeatEntity {
public SitEntity(Entity entity, Furniture furniture, Vector3f vector3f, int playerID) {
super(entity, furniture, vector3f, playerID);
}
public SitEntity(Entity entity, Furniture furniture, Vector3f vector3f, int playerID) {
super(entity, furniture, vector3f, playerID);
}
@Override
public Key type() {
return SeatType.SIT;
}
}
@Override
public Key type() {
return SeatType.SIT;
}
}
public static class Factory implements SeatFactory {
public static class Factory implements SeatFactory {
@Override
public Seat create(List<String> args) {
if (args.size() == 1) return new SitSeat(MiscUtils.getAsVector3f(args.getFirst(), "seats"), 0, false);
return new SitSeat(MiscUtils.getAsVector3f(args.getFirst(), "seats"), Float.parseFloat(args.get(1)), true);
}
}
@Override
public Seat create(List<String> args) {
if (args.size() == 1) return new SitSeat(MiscUtils.getAsVector3f(args.getFirst(), "seats"), 0, false);
return new SitSeat(MiscUtils.getAsVector3f(args.getFirst(), "seats"), Float.parseFloat(args.get(1)), true);
}
}
}