From 0c7f4bb8f75a7a03bd023684e8e0c1af85a2ecdb Mon Sep 17 00:00:00 2001 From: Shane Freeder Date: Wed, 10 Feb 2021 04:48:03 +0000 Subject: [PATCH] Fix TimedHandler not calling delegated handler (#1727) The original commit was calling super, which means that the actual registered handlers were not called, also, added getInvincibility which was originally missing --- .../bukkit/session/TimedHandlerFactory.java | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/session/TimedHandlerFactory.java b/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/session/TimedHandlerFactory.java index 51658e04..0f0c4c3e 100644 --- a/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/session/TimedHandlerFactory.java +++ b/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/session/TimedHandlerFactory.java @@ -25,12 +25,14 @@ import com.sk89q.worldguard.LocalPlayer; import com.sk89q.worldguard.bukkit.WorldGuardPlugin; import com.sk89q.worldguard.protection.ApplicableRegionSet; +import com.sk89q.worldguard.protection.flags.StateFlag; import com.sk89q.worldguard.protection.regions.ProtectedRegion; import com.sk89q.worldguard.session.MoveType; import com.sk89q.worldguard.session.Session; import com.sk89q.worldguard.session.handler.Handler; import org.bukkit.Bukkit; import org.bukkit.plugin.Plugin; +import org.jetbrains.annotations.Nullable; import java.security.CodeSource; import java.util.HashMap; @@ -87,28 +89,36 @@ static class TimedHandler extends Handler { @Override public void initialize(LocalPlayer player, Location current, ApplicableRegionSet set) { try (MCTiming ignored = timing.startTiming()) { - super.initialize(player, current, set); + handler.initialize(player, current, set); } } @Override public boolean testMoveTo(LocalPlayer player, Location from, Location to, ApplicableRegionSet toSet, MoveType moveType) { try (MCTiming ignored = timing.startTiming()) { - return super.testMoveTo(player, from, to, toSet, moveType); + return handler.testMoveTo(player, from, to, toSet, moveType); } } @Override public boolean onCrossBoundary(LocalPlayer player, Location from, Location to, ApplicableRegionSet toSet, Set entered, Set exited, MoveType moveType) { try (MCTiming ignored = timing.startTiming()) { - return super.onCrossBoundary(player, from, to, toSet, entered, exited, moveType); + return handler.onCrossBoundary(player, from, to, toSet, entered, exited, moveType); } } @Override public void tick(LocalPlayer player, ApplicableRegionSet set) { try (MCTiming ignored = timing.startTiming()) { - super.tick(player, set); + handler.tick(player, set); + } + } + + @Nullable + @Override + public StateFlag.State getInvincibility(LocalPlayer player) { + try (MCTiming ignored = timing.startTiming()) { + return handler.getInvincibility(player); } }