mirror of
https://github.com/Xiao-MoMi/craft-engine.git
synced 2025-12-19 15:09:15 +00:00
Merge branch 'dev' of https://github.com/Xiao-MoMi/craft-engine into dev
This commit is contained in:
@@ -217,6 +217,9 @@ fun registerPaperTask(
|
||||
languageVersion = JavaLanguageVersion.of(javaVersion)
|
||||
}
|
||||
systemProperties["com.mojang.eula.agree"] = true
|
||||
systemProperties["net.momirealms.craftengine.dev"] = true
|
||||
jvmArgs("-Dsun.stdout.encoding=UTF-8")
|
||||
jvmArgs("-Dsun.stderr.encoding=UTF-8")
|
||||
jvmArgs("-Ddisable.watchdog=true")
|
||||
jvmArgs("-Xlog:redefine+class*=info")
|
||||
jvmArgs("-XX:+AllowEnhancedClassRedefinition")
|
||||
|
||||
@@ -1,8 +1,16 @@
|
||||
package net.momirealms.craftengine.bukkit.entity.data;
|
||||
|
||||
import net.momirealms.craftengine.bukkit.plugin.reflection.minecraft.CoreReflections;
|
||||
|
||||
public class ArmorStandData<T> extends LivingEntityData<T> {
|
||||
public static final ArmorStandData<Byte> ArmorStandFlags = new ArmorStandData<>(ArmorStandData.class, EntityDataValue.Serializers$BYTE, (byte) 0);
|
||||
// rotations
|
||||
public static final ArmorStandData<Object> HeadPose = new ArmorStandData<>(ArmorStandData.class, EntityDataValue.Serializers$ROTATIONS, CoreReflections.instance$ArmorStand$DEFAULT_HEAD_POSE);
|
||||
public static final ArmorStandData<Object> BodyPose = new ArmorStandData<>(ArmorStandData.class, EntityDataValue.Serializers$ROTATIONS, CoreReflections.instance$ArmorStand$DEFAULT_BODY_POSE);
|
||||
public static final ArmorStandData<Object> LeftArmPose = new ArmorStandData<>(ArmorStandData.class, EntityDataValue.Serializers$ROTATIONS, CoreReflections.instance$ArmorStand$DEFAULT_LEFT_ARM_POSE);
|
||||
public static final ArmorStandData<Object> RightArmPose = new ArmorStandData<>(ArmorStandData.class, EntityDataValue.Serializers$ROTATIONS, CoreReflections.instance$ArmorStand$DEFAULT_RIGHT_ARM_POSE);
|
||||
public static final ArmorStandData<Object> LeftLegPose = new ArmorStandData<>(ArmorStandData.class, EntityDataValue.Serializers$ROTATIONS, CoreReflections.instance$ArmorStand$DEFAULT_LEFT_LEG_POSE);
|
||||
public static final ArmorStandData<Object> RightLegPose = new ArmorStandData<>(ArmorStandData.class, EntityDataValue.Serializers$ROTATIONS, CoreReflections.instance$ArmorStand$DEFAULT_RIGHT_LEG_POSE);
|
||||
|
||||
public ArmorStandData(Class<?> clazz, Object serializer, T defaultValue) {
|
||||
super(clazz, serializer, defaultValue);
|
||||
|
||||
@@ -4644,4 +4644,35 @@ public final class CoreReflections {
|
||||
"world.scores.PlayerTeam"
|
||||
)
|
||||
);
|
||||
|
||||
public static final Class<?> clazz$Rotations = requireNonNull(
|
||||
BukkitReflectionUtils.findReobfOrMojmapClass(
|
||||
"core.Vector3f",
|
||||
"core.Rotations"
|
||||
)
|
||||
);
|
||||
|
||||
public static final Constructor<?> constructor$Rotations = requireNonNull(
|
||||
ReflectionUtils.getConstructor(clazz$Rotations, float.class, float.class, float.class)
|
||||
);
|
||||
|
||||
public static final Object instance$ArmorStand$DEFAULT_HEAD_POSE;
|
||||
public static final Object instance$ArmorStand$DEFAULT_BODY_POSE;
|
||||
public static final Object instance$ArmorStand$DEFAULT_LEFT_ARM_POSE;
|
||||
public static final Object instance$ArmorStand$DEFAULT_RIGHT_ARM_POSE;
|
||||
public static final Object instance$ArmorStand$DEFAULT_LEFT_LEG_POSE;
|
||||
public static final Object instance$ArmorStand$DEFAULT_RIGHT_LEG_POSE;
|
||||
|
||||
static {
|
||||
try {
|
||||
instance$ArmorStand$DEFAULT_HEAD_POSE = constructor$Rotations.newInstance(0.0F, 0.0F, 0.0F);
|
||||
instance$ArmorStand$DEFAULT_BODY_POSE = constructor$Rotations.newInstance(0.0F, 0.0F, 0.0F);
|
||||
instance$ArmorStand$DEFAULT_LEFT_ARM_POSE = constructor$Rotations.newInstance(-10.0F, 0.0F, -10.0F);
|
||||
instance$ArmorStand$DEFAULT_RIGHT_ARM_POSE = constructor$Rotations.newInstance(-15.0F, 0.0F, 10.0F);
|
||||
instance$ArmorStand$DEFAULT_LEFT_LEG_POSE = constructor$Rotations.newInstance(-1.0F, 0.0F, -1.0F);
|
||||
instance$ArmorStand$DEFAULT_RIGHT_LEG_POSE = constructor$Rotations.newInstance(1.0F, 0.0F, 1.0F);
|
||||
} catch (ReflectiveOperationException e) {
|
||||
throw new ReflectionInitException("Failed to init ArmorStand", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -168,6 +168,8 @@ public class BukkitServerPlayer extends Player {
|
||||
private int lastHitFurnitureTick;
|
||||
// 控制展示实体可见距离
|
||||
private double displayEntityViewDistance;
|
||||
// 是否是基岩版
|
||||
private Tristate isBedrock = Tristate.UNDEFINED;
|
||||
|
||||
public BukkitServerPlayer(BukkitCraftEngine plugin, @Nullable Channel channel) {
|
||||
this.channel = channel;
|
||||
@@ -1517,6 +1519,14 @@ public class BukkitServerPlayer extends Player {
|
||||
return FastNMS.INSTANCE.method$Inventory$clearOrCountMatchingItems(inventory, predicate, count, craftSlots);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isBedrock() {
|
||||
if (this.isBedrock == Tristate.UNDEFINED) {
|
||||
this.isBedrock = Tristate.of(this.plugin.compatibilityManager().isBedrockPlayer(this));
|
||||
}
|
||||
return this.isBedrock.asBoolean();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addTrackedFurniture(int entityId, Furniture furniture) {
|
||||
this.trackedFurniture.put(entityId, new VirtualCullableObject(furniture));
|
||||
|
||||
Reference in New Issue
Block a user