diff --git a/config/checkstyle/import-control.xml b/config/checkstyle/import-control.xml index a5053d0b..b00f80c2 100644 --- a/config/checkstyle/import-control.xml +++ b/config/checkstyle/import-control.xml @@ -31,7 +31,6 @@ - diff --git a/worldguard-bukkit/build.gradle.kts b/worldguard-bukkit/build.gradle.kts index 8d7f57c8..e7d66697 100644 --- a/worldguard-bukkit/build.gradle.kts +++ b/worldguard-bukkit/build.gradle.kts @@ -12,10 +12,6 @@ repositories { name = "paper" url = uri("https://repo.papermc.io/repository/maven-public/") } - maven { - name = "aikar-timings" - url = uri("https://repo.aikar.co/nexus/content/groups/aikar/") - } } configurations { @@ -33,7 +29,6 @@ dependencies { "compileOnly"("com.sk89q:commandbook:2.3") { isTransitive = false } "shadeOnly"("io.papermc:paperlib:1.0.8") "shadeOnly"("org.bstats:bstats-bukkit:3.0.1") - "shadeOnly"("co.aikar:minecraft-timings:1.0.4") } tasks.named("processResources") { diff --git a/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/BukkitConfigurationManager.java b/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/BukkitConfigurationManager.java index 506ece66..3e898e19 100644 --- a/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/BukkitConfigurationManager.java +++ b/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/BukkitConfigurationManager.java @@ -37,7 +37,6 @@ public class BukkitConfigurationManager extends YamlConfigurationManager { private boolean hasCommandBookGodMode; boolean extraStats; - boolean timedSessionHandlers; /** * Construct the object. @@ -57,7 +56,6 @@ public class BukkitConfigurationManager extends YamlConfigurationManager { public void load() { super.load(); this.extraStats = getConfig().getBoolean("custom-metrics-charts", true); - this.timedSessionHandlers = getConfig().getBoolean("extra-timings.session-handlers", true); } @Override diff --git a/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/BukkitWorldGuardPlatform.java b/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/BukkitWorldGuardPlatform.java index 0da78f7d..aeee1a44 100644 --- a/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/BukkitWorldGuardPlatform.java +++ b/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/BukkitWorldGuardPlatform.java @@ -139,7 +139,6 @@ public class BukkitWorldGuardPlatform implements WorldGuardPlatform { sessionManager = new BukkitSessionManager(); configuration = new BukkitConfigurationManager(WorldGuardPlugin.inst()); configuration.load(); - sessionManager.setUsingTimings(configuration.timedSessionHandlers); regionContainer = new BukkitRegionContainer(WorldGuardPlugin.inst()); regionContainer.initialize(); debugHandler = new BukkitDebugHandler(WorldGuardPlugin.inst()); diff --git a/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/session/BukkitSessionManager.java b/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/session/BukkitSessionManager.java index e01d5a35..df589cbc 100644 --- a/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/session/BukkitSessionManager.java +++ b/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/session/BukkitSessionManager.java @@ -28,7 +28,6 @@ import com.sk89q.worldguard.bukkit.event.player.ProcessPlayerEvent; import com.sk89q.worldguard.bukkit.util.Entities; import com.sk89q.worldguard.session.AbstractSessionManager; import com.sk89q.worldguard.session.Session; -import com.sk89q.worldguard.session.handler.Handler; import org.bukkit.Bukkit; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; @@ -42,13 +41,6 @@ import java.util.Collection; */ public class BukkitSessionManager extends AbstractSessionManager implements Runnable, Listener { - private boolean useTimings; - - @Override - protected Handler.Factory wrapForRegistration(Handler.Factory factory) { - return useTimings ? new TimedHandlerFactory(factory) : factory; - } - /** * Re-initialize handlers and clear "last position," "last state," etc. * information for all players. @@ -94,14 +86,6 @@ public class BukkitSessionManager extends AbstractSessionManager implements Runn return super.hasBypass(player, world); } - public boolean isUsingTimings() { - return useTimings; - } - - public void setUsingTimings(boolean useTimings) { - this.useTimings = useTimings; - } - public void shutdown() { for (Player player : Bukkit.getServer().getOnlinePlayers()) { LocalPlayer localPlayer = WorldGuardPlugin.inst().wrapPlayer(player); 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 deleted file mode 100644 index 4db5118c..00000000 --- a/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/session/TimedHandlerFactory.java +++ /dev/null @@ -1,132 +0,0 @@ -/* - * WorldGuard, a suite of tools for Minecraft - * Copyright (C) sk89q - * Copyright (C) WorldGuard team and contributors - * - * This program is free software: you can redistribute it and/or modify it - * under the terms of the GNU Lesser General Public License as published by the - * Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License - * for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, see . - */ - -package com.sk89q.worldguard.bukkit.session; - -import co.aikar.timings.lib.MCTiming; -import co.aikar.timings.lib.TimingManager; -import com.sk89q.worldedit.util.Location; -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 javax.annotation.Nullable; -import java.security.CodeSource; -import java.util.HashMap; -import java.util.Map; -import java.util.Objects; -import java.util.Set; - -class TimedHandlerFactory extends Handler.Factory { - - private static final TimingManager TIMINGS = TimingManager.of(WorldGuardPlugin.inst()); - private static final MCTiming UNKNOWN_SOURCE = TIMINGS.of("Third-Party Session Handlers"); - private static final Map PLUGIN_SOURCES = new HashMap<>(); - - private final Handler.Factory factory; - private final MCTiming timing; - - TimedHandlerFactory(Handler.Factory factory) { - this.factory = factory; - this.timing = makeTiming(); - } - - private MCTiming makeTiming() { - CodeSource codeSource = factory.getClass().getProtectionDomain().getCodeSource(); - TimingManager owner = PLUGIN_SOURCES.computeIfAbsent(codeSource, source -> { - for (Plugin plugin : Bukkit.getPluginManager().getPlugins()) { - CodeSource pluginSource = plugin.getClass().getProtectionDomain().getCodeSource(); - if (Objects.equals(pluginSource, source)) { - return TimingManager.of(plugin); - } - } - return null; - }); - String handlerName = factory.getClass().getEnclosingClass().getSimpleName(); - return owner == null - ? TIMINGS.of(handlerName, UNKNOWN_SOURCE) - : owner.of(handlerName, owner.of("Session Handlers")); - } - - @Override - public Handler create(Session session) { - return new TimedHandler(factory.create(session), session, timing); - } - - static class TimedHandler extends Handler { - private final Handler handler; - private final MCTiming timing; - - TimedHandler(Handler innerHandler, Session session, MCTiming timing) { - super(session); - this.handler = innerHandler; - this.timing = timing; - } - - @Override - public void initialize(LocalPlayer player, Location current, ApplicableRegionSet set) { - try (MCTiming ignored = timing.startTiming()) { - 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 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 handler.onCrossBoundary(player, from, to, toSet, entered, exited, moveType); - } - } - - @Override - public void tick(LocalPlayer player, ApplicableRegionSet set) { - try (MCTiming ignored = timing.startTiming()) { - handler.tick(player, set); - } - } - - @Nullable - @Override - public StateFlag.State getInvincibility(LocalPlayer player) { - try (MCTiming ignored = timing.startTiming()) { - return handler.getInvincibility(player); - } - } - - @Override - public Handler getWrappedHandler() { - return handler; - } - } - -} diff --git a/worldguard-core/src/main/java/com/sk89q/worldguard/session/AbstractSessionManager.java b/worldguard-core/src/main/java/com/sk89q/worldguard/session/AbstractSessionManager.java index 19618d5d..68bfac19 100644 --- a/worldguard-core/src/main/java/com/sk89q/worldguard/session/AbstractSessionManager.java +++ b/worldguard-core/src/main/java/com/sk89q/worldguard/session/AbstractSessionManager.java @@ -44,10 +44,8 @@ import com.sk89q.worldguard.session.handler.WeatherLockFlag; import javax.annotation.Nullable; import java.lang.ref.WeakReference; import java.util.Arrays; -import java.util.HashMap; import java.util.LinkedList; import java.util.List; -import java.util.Map; import java.util.UUID; import java.util.concurrent.TimeUnit; import java.util.function.BiPredicate; @@ -75,8 +73,6 @@ public abstract class AbstractSessionManager implements SessionManager { createSession(key.playerRef.get()))); private boolean hasCustom = false; - // - private Map, Handler.Factory> wrappedHandlers = new HashMap<>(); private List> handlers = new LinkedList<>(); private static final List> defaultHandlers = new LinkedList<>(); @@ -110,27 +106,20 @@ public abstract class AbstractSessionManager implements SessionManager { return hasCustom; } - protected Handler.Factory wrapForRegistration(Handler.Factory factory) { - return factory; - } - @Override public boolean registerHandler(Handler.Factory factory, @Nullable Handler.Factory after) { if (factory == null) return false; WorldGuard.logger.log(Level.INFO, "Registering session handler " + factory.getClass().getEnclosingClass().getName()); hasCustom = true; - Handler.Factory wrappedFactory = wrapForRegistration(factory); if (after == null) { - handlers.add(wrappedFactory); + handlers.add(factory); } else { - Handler.Factory wrappedAfter = wrappedHandlers.get(after); - int index = handlers.indexOf(wrappedAfter != null ? wrappedAfter : after); + int index = handlers.indexOf(after); if (index == -1) return false; handlers.add(index + 1, factory); // shifts "after" right one, and everything after "after" right one } - wrappedHandlers.put(factory, wrappedFactory); return true; } @@ -142,7 +131,6 @@ public abstract class AbstractSessionManager implements SessionManager { } else { WorldGuard.logger.log(Level.INFO, "Unregistering session handler " + factory.getClass().getEnclosingClass().getName()); - factory = wrappedHandlers.remove(factory); } return handlers.remove(factory); } diff --git a/worldguard-core/src/main/java/com/sk89q/worldguard/session/Session.java b/worldguard-core/src/main/java/com/sk89q/worldguard/session/Session.java index f1f3166b..cdc8401a 100644 --- a/worldguard-core/src/main/java/com/sk89q/worldguard/session/Session.java +++ b/worldguard-core/src/main/java/com/sk89q/worldguard/session/Session.java @@ -34,10 +34,10 @@ import com.sk89q.worldguard.protection.regions.RegionQuery; import com.sk89q.worldguard.session.handler.Handler; import com.sk89q.worldguard.util.Locations; +import javax.annotation.Nullable; import java.util.HashMap; import java.util.Set; import java.util.concurrent.atomic.AtomicBoolean; -import javax.annotation.Nullable; import static com.google.common.base.Preconditions.checkNotNull; @@ -69,7 +69,7 @@ public class Session { * @param handler A new handler */ public void register(Handler handler) { - handlers.put(handler.getWrappedHandler().getClass(), handler); + handlers.put(handler.getClass(), handler); } /** @@ -91,7 +91,7 @@ public class Session { @Nullable @SuppressWarnings("unchecked") public T getHandler(Class type) { - return (T) handlers.get(type).getWrappedHandler(); + return (T) handlers.get(type); } /** diff --git a/worldguard-core/src/main/java/com/sk89q/worldguard/session/handler/Handler.java b/worldguard-core/src/main/java/com/sk89q/worldguard/session/handler/Handler.java index 92962de2..de9ec544 100644 --- a/worldguard-core/src/main/java/com/sk89q/worldguard/session/handler/Handler.java +++ b/worldguard-core/src/main/java/com/sk89q/worldguard/session/handler/Handler.java @@ -148,11 +148,4 @@ public abstract class Handler { return null; } - /** - * Get the handler wrapped by this handler object, if applicable, or just return this if no handler is wrapped. - * @return any wrapped handler, or this handler itself - */ - public Handler getWrappedHandler() { - return this; - } }