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); DisguiseUtilities.doBoundingBox((TargetedDisguise) disguise);
} }
if (DisguiseConfig.isStopShulkerDisguisesFromMoving()) { Disguise disguise = DisguiseAPI.getDisguise(event.getPlayer());
Disguise disguise;
if ((disguise = DisguiseAPI.getDisguise(event.getPlayer())) != null) { if (disguise != null) {
if (disguise.getType() == DisguiseType.SHULKER) { // Stop Shulker disguises from moving their coordinates if (DisguiseConfig.isStopShulkerDisguisesFromMoving() &&
Location from = event.getFrom(); disguise.getType() == DisguiseType.SHULKER) { // Stop Shulker disguises from moving their coordinates
Location to = event.getTo(); Location from = event.getFrom();
Location to = event.getTo();
to.setX(from.getX()); to.setX(from.getX());
to.setZ(from.getZ()); 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);
}
} }
} }
} }