From ecc180eb885c1e1a25c6fbeb1cc1fb52ddfbcdf0 Mon Sep 17 00:00:00 2001 From: WuzzyLV Date: Thu, 22 Aug 2024 15:24:19 +0300 Subject: [PATCH] feat: add permission-based teleport warmup (#682) * Add permission based tp cooldowns * Add permission based tp cooldowns * Move permission warmup logic to OnlineUser --- .../huskhomes/teleport/TeleportBuilder.java | 2 +- .../net/william278/huskhomes/user/OnlineUser.java | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/common/src/main/java/net/william278/huskhomes/teleport/TeleportBuilder.java b/common/src/main/java/net/william278/huskhomes/teleport/TeleportBuilder.java index b004d5e2..fdb01141 100644 --- a/common/src/main/java/net/william278/huskhomes/teleport/TeleportBuilder.java +++ b/common/src/main/java/net/william278/huskhomes/teleport/TeleportBuilder.java @@ -66,7 +66,7 @@ public TimedTeleport toTimedTeleport() throws IllegalStateException { return new TimedTeleport( executor, onlineTeleporter, target, type, - plugin.getSettings().getGeneral().getTeleportWarmupTime(), + onlineTeleporter.getMaxTeleportWarmup(plugin.getSettings().getGeneral().getTeleportWarmupTime()), updateLastPosition, actions, plugin ); } diff --git a/common/src/main/java/net/william278/huskhomes/user/OnlineUser.java b/common/src/main/java/net/william278/huskhomes/user/OnlineUser.java index 81a9a2b9..5aeb2a5b 100644 --- a/common/src/main/java/net/william278/huskhomes/user/OnlineUser.java +++ b/common/src/main/java/net/william278/huskhomes/user/OnlineUser.java @@ -260,6 +260,20 @@ public int getMaxPublicHomes(final int defaultPublicHomes, final boolean stack) } } + /** + * Get the largest permission node value for teleport warmup. + * + * @param defaultTeleportWarmup the default teleport warmup time, if no perms are set + * @return the largest permission node value for teleport warmup + */ + public int getMaxTeleportWarmup(final int defaultTeleportWarmup) { + final List homes = getNumericalPermissions("huskhomes.teleport_warmup."); + if (homes.isEmpty()) { + return defaultTeleportWarmup; + } + return homes.get(0); + } + /** * Get the number of free home slots this user may set. *