From 6180e049e04e626ea98ed8ffa29c870866ea9ed5 Mon Sep 17 00:00:00 2001 From: Spencer Date: Thu, 10 May 2018 15:50:10 -0400 Subject: [PATCH] Disable the trampoline within 20 blocks from spawn in game lobbies --- .../arcade/managers/lobby/LobbyManager.java | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/lobby/LobbyManager.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/lobby/LobbyManager.java index 9ff49aed2..e56c7b733 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/lobby/LobbyManager.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/lobby/LobbyManager.java @@ -36,9 +36,12 @@ import mineplex.core.common.util.UtilBlockText; import mineplex.core.common.util.UtilBlockText.TextAlign; import mineplex.core.common.util.UtilFirework; import mineplex.core.common.util.UtilLambda; +import mineplex.core.common.util.UtilMath; import mineplex.core.common.util.UtilServer; import mineplex.core.common.util.UtilTime; import mineplex.core.common.util.UtilWorld; +import mineplex.core.gadget.event.GadgetSelectLocationEvent; +import mineplex.core.gadget.gadgets.item.ItemTrampoline; import mineplex.core.game.kit.GameKit; import mineplex.core.game.kit.event.KitNPCInteractEvent; import mineplex.core.game.kit.event.KitSelectEvent; @@ -811,4 +814,24 @@ public abstract class LobbyManager implements Listener { _missions = loc; } + + public boolean isNearSpawn(Location location, int distance) + { + // offsetSquared should be compared to squared distance, obviously... + return UtilMath.offsetSquared(_spawn.clone(), location) < distance*distance; + } + + public boolean isNearSpawn(Location location) + { + // Default to a 10 block radius + return isNearSpawn(location, 10); + } + + @EventHandler + public void blockTrampolineNearSpawn(GadgetSelectLocationEvent event) + { + if (event.getGadget() instanceof ItemTrampoline && isNearSpawn(event.getLocation(), 20)) { + event.setCancelled(true); + } + } }