fix: add nms Pose registry to BukkitRegistry
Some checks failed
Java CI with Gradle / build (push) Has been cancelled
Some checks failed
Java CI with Gradle / build (push) Has been cancelled
This commit is contained in:
parent
fded76e5ac
commit
e79a3a5aa3
@ -11,6 +11,7 @@ import io.izzel.arclight.common.bridge.core.entity.player.ServerPlayerEntityBrid
|
||||
import io.izzel.arclight.common.bridge.core.network.datasync.EntityDataManagerBridge;
|
||||
import io.izzel.arclight.common.bridge.core.world.TeleporterBridge;
|
||||
import io.izzel.arclight.common.bridge.core.world.WorldBridge;
|
||||
import io.izzel.arclight.common.mod.server.BukkitRegistry;
|
||||
import io.izzel.arclight.common.mod.util.ArclightCaptures;
|
||||
import net.minecraft.BlockUtil;
|
||||
import net.minecraft.commands.CommandSourceStack;
|
||||
@ -290,7 +291,7 @@ public abstract class EntityMixin implements InternalEntityBridge, EntityBridge,
|
||||
callbackInfo.cancel();
|
||||
return;
|
||||
}
|
||||
EntityPoseChangeEvent event = new EntityPoseChangeEvent(this.internal$getBukkitEntity(), org.bukkit.entity.Pose.values()[poseIn.ordinal()]);
|
||||
EntityPoseChangeEvent event = new EntityPoseChangeEvent(this.internal$getBukkitEntity(), BukkitRegistry.toBukkitPose(poseIn));
|
||||
Bukkit.getPluginManager().callEvent(event);
|
||||
}
|
||||
|
||||
|
||||
@ -56,6 +56,7 @@ import org.bukkit.enchantments.Enchantment;
|
||||
import org.bukkit.entity.EnderDragon;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.EntityType;
|
||||
import org.bukkit.entity.Pose;
|
||||
import org.bukkit.entity.SpawnCategory;
|
||||
import org.bukkit.entity.Villager;
|
||||
import org.bukkit.inventory.CreativeCategory;
|
||||
@ -119,6 +120,21 @@ public class BukkitRegistry {
|
||||
}
|
||||
}
|
||||
|
||||
public static Pose toBukkitPose(net.minecraft.world.entity.Pose nms) {
|
||||
if (Pose.values().length <= nms.ordinal()) {
|
||||
var newTypes = new ArrayList<Pose>();
|
||||
var forgeCount = net.minecraft.world.entity.Pose.values().length;
|
||||
for (var id = Pose.values().length; id < forgeCount; id++) {
|
||||
var name = net.minecraft.world.entity.Pose.values()[id].name();
|
||||
var newPhase = EnumHelper.makeEnum(Pose.class, name, id, List.of(), List.of());
|
||||
newTypes.add(newPhase);
|
||||
ArclightMod.LOGGER.debug("Registered {} as pose {}", name, newPhase);
|
||||
}
|
||||
EnumHelper.addEnums(Pose.class, newTypes);
|
||||
}
|
||||
return org.bukkit.entity.Pose.values()[nms.ordinal()];
|
||||
}
|
||||
|
||||
private static void loadEndDragonPhase() {
|
||||
var max = EnderDragonPhase.getCount();
|
||||
var newTypes = new ArrayList<EnderDragon.Phase>();
|
||||
|
||||
Loading…
Reference in New Issue
Block a user