Partial fix for #739, however this cannot be fully fixed due to how llama spit behaves

This commit is contained in:
libraryaddict 2024-01-17 17:56:09 +13:00
parent 6145b20196
commit 4dcc283207
1 changed files with 18 additions and 9 deletions

View File

@ -542,18 +542,27 @@ public class DisguiseListener implements Listener {
DisguiseUtilities.doBoundingBox((TargetedDisguise) disguise);
}
if (DisguiseConfig.isStopShulkerDisguisesFromMoving()) {
Disguise disguise;
Disguise disguise = DisguiseAPI.getDisguise(event.getPlayer());
if ((disguise = DisguiseAPI.getDisguise(event.getPlayer())) != null) {
if (disguise.getType() == DisguiseType.SHULKER) { // Stop Shulker disguises from moving their coordinates
Location from = event.getFrom();
Location to = event.getTo();
if (disguise != null) {
if (DisguiseConfig.isStopShulkerDisguisesFromMoving() &&
disguise.getType() == DisguiseType.SHULKER) { // Stop Shulker disguises from moving their coordinates
Location from = event.getFrom();
Location to = event.getTo();
to.setX(from.getX());
to.setZ(from.getZ());
to.setX(from.getX());
to.setZ(from.getZ());
event.setTo(to);
event.setTo(to);
} else if (disguise.getType() == DisguiseType.LLAMA_SPIT) {
Location from = event.getFrom();
Location to = event.getTo();
// Llama spit disappears when it encounters a solid
if (Math.min(from.getY(), to.getY()) >= from.getWorld().getMinHeight() && Math.max(from.getY(), to.getY()) < from.getWorld().getMaxHeight()) {
if (!from.getBlock().isEmpty() && to.getBlock().isEmpty()) {
DisguiseUtilities.refreshTrackers((TargetedDisguise) disguise);
}
}
}
}