diff --git a/src/main/java/dev/plex/extras/TFMExtras.java b/src/main/java/dev/plex/extras/TFMExtras.java index 766ac3a..36fd8a0 100755 --- a/src/main/java/dev/plex/extras/TFMExtras.java +++ b/src/main/java/dev/plex/extras/TFMExtras.java @@ -1,8 +1,5 @@ package dev.plex.extras; -import com.google.common.collect.ImmutableSet; -import com.google.common.reflect.ClassPath; -import dev.plex.api.PlexApi; import dev.plex.config.ModuleConfig; import dev.plex.extras.command.AdminInfoCommand; import dev.plex.extras.command.AutoClearCommand; @@ -20,14 +17,12 @@ import dev.plex.extras.command.JumpPadsCommand; import dev.plex.extras.command.OrbitCommand; import dev.plex.extras.command.RandomFishCommand; import dev.plex.extras.jumppads.JumpPads; -import dev.plex.listener.PlexListener; +import dev.plex.extras.listener.ClownfishListener; +import dev.plex.extras.listener.JumpPadsListener; +import dev.plex.extras.listener.OrbitEffectListener; +import dev.plex.extras.listener.PlayerListener; import dev.plex.module.PlexModule; -import java.io.IOException; -import java.lang.reflect.InvocationTargetException; -import java.util.Collections; -import java.util.HashSet; import java.util.List; -import java.util.Set; import java.util.concurrent.ThreadLocalRandom; import lombok.Getter; import org.bukkit.Location; @@ -36,65 +31,47 @@ import org.bukkit.World; public class TFMExtras extends PlexModule { @Getter - private static TFMExtras module; - - public JumpPads jumpPads; + private JumpPads jumpPads; @Getter private ModuleConfig config; - public static PlexApi plexApi() - { - return module.api(); - } - @Override public void load() { - module = this; config = new ModuleConfig(this, "tfmextras/config.yml", "config.yml"); config.load(); loadMessages("tfmextras/messages.yml"); - jumpPads = new JumpPads(); + jumpPads = new JumpPads(config.getInt("server.jumppad_strength", 1)); } @Override public void enable() { List.of( - new AdminInfoCommand(), - new AutoClearCommand(), - new AutoTeleportCommand(), + new AdminInfoCommand(this), + new AutoClearCommand(this), + new AutoTeleportCommand(this), new CakeCommand(), new CartSitCommand(), new ClearChatCommand(), - new ClownfishCommand(), + new ClownfishCommand(this), new CloudClearCommand(), new EjectCommand(), new EnchantCommand(), new EnglishMfCommand(), new ExpelCommand(), - new JumpPadsCommand(), + new JumpPadsCommand(this), new OrbitCommand(), new RandomFishCommand() ).forEach(this::registerCommand); - getClassesFrom("dev.plex.extras.listener").forEach(aClass -> - { - if (PlexListener.class.isAssignableFrom(aClass)) - { - try - { - PlexListener plexListener = (PlexListener)aClass.getConstructors()[0].newInstance(); - registerListener(plexListener); - } - catch (InstantiationException | IllegalAccessException | InvocationTargetException e) - { - throw new RuntimeException(e); - } - } - }); - + List.of( + new ClownfishListener(this), + new JumpPadsListener(this), + new OrbitEffectListener(this), + new PlayerListener(this) + ).forEach(this::registerListener); } @Override @@ -103,42 +80,11 @@ public class TFMExtras extends PlexModule // Unregistering listeners / commands is handled by Plex } - public static Location getRandomLocation(World world) + public Location getRandomLocation(World world) { double x = ThreadLocalRandom.current().nextDouble(-100000, 100000); double z = ThreadLocalRandom.current().nextDouble(-100000, 100000); double y = world.getHighestBlockYAt((int)x, (int)z) + 1; return new Location(world, x, y, z); } - - private Set> getClassesFrom(String packageName) - { - Set> classes = new HashSet<>(); - - try - { - ClassPath path = ClassPath.from(TFMExtras.class.getClassLoader()); - ImmutableSet infoSet = path.getTopLevelClasses(packageName); - infoSet.forEach((info) -> - { - try - { - Class clazz = Class.forName(info.getName()); - classes.add(clazz); - } - catch (ClassNotFoundException var4) - { - plexApi().logging().error("Unable to find class {0} in {1}", info.getName(), packageName); - } - - }); - } - catch (IOException var4) - { - plexApi().logging().error("Something went wrong while fetching classes from {0}", packageName); - throw new RuntimeException(var4); - } - - return Collections.unmodifiableSet(classes); - } } diff --git a/src/main/java/dev/plex/extras/command/AdminInfoCommand.java b/src/main/java/dev/plex/extras/command/AdminInfoCommand.java index b5e4e06..668f57b 100755 --- a/src/main/java/dev/plex/extras/command/AdminInfoCommand.java +++ b/src/main/java/dev/plex/extras/command/AdminInfoCommand.java @@ -13,25 +13,28 @@ import org.jetbrains.annotations.Nullable; public class AdminInfoCommand extends SimplePlexCommand { - public AdminInfoCommand() + private final TFMExtras module; + + public AdminInfoCommand(TFMExtras module) { super(command("admininfo") .description("Information on how to apply for admin") .aliases("ai,si,staffinfo") .permission("plex.tfmextras.admininfo") .build()); + this.module = module; } - private static final List ADMIN_INFO = TFMExtras.getModule().getConfig().getStringList("server.admininfo") - .stream().map(info -> MiniMessage.miniMessage().deserialize(info)).toList(); @Override protected Component execute(@NotNull CommandSender sender, @Nullable Player player, @NotNull String[] args) { - if (ADMIN_INFO.isEmpty()) + List adminInfo = module.getConfig().getStringList("server.admininfo") + .stream().map(info -> MiniMessage.miniMessage().deserialize(info)).toList(); + if (adminInfo.isEmpty()) { return messageComponent("emptyAdminInfo"); } - ADMIN_INFO.forEach(component -> send(sender, component)); + adminInfo.forEach(component -> send(sender, component)); return null; } diff --git a/src/main/java/dev/plex/extras/command/AutoClearCommand.java b/src/main/java/dev/plex/extras/command/AutoClearCommand.java index bb91647..88bba77 100755 --- a/src/main/java/dev/plex/extras/command/AutoClearCommand.java +++ b/src/main/java/dev/plex/extras/command/AutoClearCommand.java @@ -14,7 +14,9 @@ import org.jetbrains.annotations.Nullable; public class AutoClearCommand extends SimplePlexCommand { - public AutoClearCommand() + private final TFMExtras module; + + public AutoClearCommand(TFMExtras module) { super(command("autoclear") .description("Toggle whether or not a player has their inventory automatically cleared when they join") @@ -22,7 +24,9 @@ public class AutoClearCommand extends SimplePlexCommand .aliases("aclear,ac") .permission("plex.tfmextras.autoclear") .build()); + this.module = module; } + @Override protected Component execute(@NotNull CommandSender sender, @Nullable Player player, @NotNull String[] args) { @@ -30,8 +34,8 @@ public class AutoClearCommand extends SimplePlexCommand { return usage(); } - PlexPlayerView target = TFMExtras.plexApi().players().byName(args[0]).orElseThrow(PlayerNotFoundException::new); - List names = TFMExtras.getModule().getConfig().getStringList("server.clear-on-join"); + PlexPlayerView target = api().players().byName(args[0]).orElseThrow(PlayerNotFoundException::new); + List names = module.getConfig().getStringList("server.clear-on-join"); boolean isEnabled = names.contains(target.name()); if (!isEnabled) { @@ -41,8 +45,8 @@ public class AutoClearCommand extends SimplePlexCommand { names.remove(target.name()); } - TFMExtras.getModule().getConfig().set("server.clear-on-join", names); - TFMExtras.getModule().getConfig().save(); + module.getConfig().set("server.clear-on-join", names); + module.getConfig().save(); isEnabled = !isEnabled; return messageComponent("modifiedAutoClear", target.name(), isEnabled ? "now" : "no longer"); } diff --git a/src/main/java/dev/plex/extras/command/AutoTeleportCommand.java b/src/main/java/dev/plex/extras/command/AutoTeleportCommand.java index 5be275b..2c3af05 100755 --- a/src/main/java/dev/plex/extras/command/AutoTeleportCommand.java +++ b/src/main/java/dev/plex/extras/command/AutoTeleportCommand.java @@ -15,7 +15,9 @@ import org.jetbrains.annotations.Nullable; public class AutoTeleportCommand extends SimplePlexCommand { - public AutoTeleportCommand() + private final TFMExtras module; + + public AutoTeleportCommand(TFMExtras module) { super(command("autoteleport") .description("If a player is specified, it will toggle whether or not the player is automatically teleported when they join. If no player is specified, you will be randomly teleported") @@ -23,7 +25,9 @@ public class AutoTeleportCommand extends SimplePlexCommand .aliases("autotp,rtp,randomtp,tpr") .permission("plex.tfmextras.autotp") .build()); + this.module = module; } + @Override protected Component execute(@NotNull CommandSender sender, @Nullable Player player, @NotNull String[] args) { @@ -33,12 +37,12 @@ public class AutoTeleportCommand extends SimplePlexCommand { return usage(); } - TFMExtras.plexApi().scheduler().runEntity(player, () -> player.teleportAsync(TFMExtras.getRandomLocation(player.getWorld()))); + api().scheduler().runEntity(player, () -> player.teleportAsync(module.getRandomLocation(player.getWorld()))); return null; } checkPermission(sender, "plex.tfmextras.autotp.other"); - PlexPlayerView target = TFMExtras.plexApi().players().byName(args[0]).orElseThrow(PlayerNotFoundException::new); - List names = TFMExtras.getModule().getConfig().getStringList("server.teleport-on-join"); + PlexPlayerView target = api().players().byName(args[0]).orElseThrow(PlayerNotFoundException::new); + List names = module.getConfig().getStringList("server.teleport-on-join"); boolean isEnabled = names.contains(target.name()); if (!isEnabled) { @@ -48,8 +52,8 @@ public class AutoTeleportCommand extends SimplePlexCommand { names.remove(target.name()); } - TFMExtras.getModule().getConfig().set("server.teleport-on-join", names); - TFMExtras.getModule().getConfig().save(); + module.getConfig().set("server.teleport-on-join", names); + module.getConfig().save(); isEnabled = !isEnabled; return messageComponent("modifiedAutoTeleport", target.name(), isEnabled ? "now" : "no longer"); } diff --git a/src/main/java/dev/plex/extras/command/CakeCommand.java b/src/main/java/dev/plex/extras/command/CakeCommand.java index bdae380..30056c6 100755 --- a/src/main/java/dev/plex/extras/command/CakeCommand.java +++ b/src/main/java/dev/plex/extras/command/CakeCommand.java @@ -1,7 +1,6 @@ package dev.plex.extras.command; import dev.plex.command.SimplePlexCommand; -import dev.plex.extras.TFMExtras; import java.util.Collections; import java.util.List; import net.kyori.adventure.text.Component; @@ -29,7 +28,7 @@ public class CakeCommand extends SimplePlexCommand @Override protected Component execute(@NotNull CommandSender sender, @Nullable Player player, @NotNull String[] args) { - Bukkit.getOnlinePlayers().forEach(p -> TFMExtras.plexApi().scheduler().runEntity(p, () -> p.getInventory().addItem(CAKE.clone()))); + Bukkit.getOnlinePlayers().forEach(p -> api().scheduler().runEntity(p, () -> p.getInventory().addItem(CAKE.clone()))); broadcast(messageComponent("cakeLyrics")); return null; } diff --git a/src/main/java/dev/plex/extras/command/CartSitCommand.java b/src/main/java/dev/plex/extras/command/CartSitCommand.java index d62a8b7..cc302ea 100755 --- a/src/main/java/dev/plex/extras/command/CartSitCommand.java +++ b/src/main/java/dev/plex/extras/command/CartSitCommand.java @@ -2,7 +2,6 @@ package dev.plex.extras.command; import com.google.common.collect.ImmutableList; import dev.plex.command.SimplePlexCommand; -import dev.plex.extras.TFMExtras; import java.util.Comparator; import java.util.List; import java.util.stream.Collectors; @@ -46,7 +45,7 @@ public class CartSitCommand extends SimplePlexCommand return MiniMessage.miniMessage().deserialize("Could not find a nearby minecart!"); } Entity entity = findNearestEntity(player, minecart); - TFMExtras.plexApi().scheduler().runEntity(entity, () -> entity.addPassenger(player)); + api().scheduler().runEntity(entity, () -> entity.addPassenger(player)); return null; } Player target = getNonNullPlayer(args[0]); @@ -60,7 +59,7 @@ public class CartSitCommand extends SimplePlexCommand return MiniMessage.miniMessage().deserialize("Could not find a nearby minecart near " + target.getName() + "!"); } Entity entity = findNearestEntity(target, minecart); - TFMExtras.plexApi().scheduler().runEntity(entity, () -> entity.addPassenger(target)); + api().scheduler().runEntity(entity, () -> entity.addPassenger(target)); return null; } diff --git a/src/main/java/dev/plex/extras/command/ClearChatCommand.java b/src/main/java/dev/plex/extras/command/ClearChatCommand.java index 9ee54da..275187e 100755 --- a/src/main/java/dev/plex/extras/command/ClearChatCommand.java +++ b/src/main/java/dev/plex/extras/command/ClearChatCommand.java @@ -1,7 +1,6 @@ package dev.plex.extras.command; import dev.plex.command.SimplePlexCommand; -import dev.plex.extras.TFMExtras; import java.util.Collections; import java.util.List; import net.kyori.adventure.text.Component; @@ -27,7 +26,7 @@ public class ClearChatCommand extends SimplePlexCommand Bukkit.getOnlinePlayers().stream().filter(p -> !silentCheckPermission(p, "plex.tfmextras.clearchat")) .forEach(p -> { - TFMExtras.plexApi().scheduler().runEntity(p, () -> + api().scheduler().runEntity(p, () -> { for (int i = 0; i < 100; i++) { diff --git a/src/main/java/dev/plex/extras/command/CloudClearCommand.java b/src/main/java/dev/plex/extras/command/CloudClearCommand.java index b44abf3..114d2c6 100755 --- a/src/main/java/dev/plex/extras/command/CloudClearCommand.java +++ b/src/main/java/dev/plex/extras/command/CloudClearCommand.java @@ -1,7 +1,6 @@ package dev.plex.extras.command; import dev.plex.command.SimplePlexCommand; -import dev.plex.extras.TFMExtras; import java.util.Collection; import java.util.Collections; import java.util.List; @@ -33,7 +32,7 @@ public class CloudClearCommand extends SimplePlexCommand Bukkit.getWorlds().stream().map(World::getEntities).flatMap(Collection::stream).filter(entity -> entity.getType() == EntityType.AREA_EFFECT_CLOUD).forEach(entity -> { removed.incrementAndGet(); - TFMExtras.plexApi().scheduler().runEntity(entity, entity::remove); + api().scheduler().runEntity(entity, entity::remove); }); broadcast(messageComponent("areaEffectCloudClear", sender.getName())); return MiniMessage.miniMessage().deserialize("" + removed.get() + " area effect clouds removed."); diff --git a/src/main/java/dev/plex/extras/command/ClownfishCommand.java b/src/main/java/dev/plex/extras/command/ClownfishCommand.java index 8c4a646..991cd6e 100644 --- a/src/main/java/dev/plex/extras/command/ClownfishCommand.java +++ b/src/main/java/dev/plex/extras/command/ClownfishCommand.java @@ -20,14 +20,18 @@ import java.util.List; public class ClownfishCommand extends SimplePlexCommand { - public ClownfishCommand() + private final TFMExtras module; + + public ClownfishCommand(TFMExtras module) { super(command("clownfish") .description("Gives a player a clownfish capable of knocking people back") .usage("/ []") .permission("plex.tfmextras.clownfish") .build()); + this.module = module; } + @Override protected Component execute(@NotNull CommandSender commandSender, @Nullable Player player, @NotNull String[] args) { @@ -39,12 +43,12 @@ public class ClownfishCommand extends SimplePlexCommand meta.displayName(Component.text("Clownfish")); clownfish.setItemMeta(meta); - TFMExtras.plexApi().scheduler().runEntity(player, () -> player.getInventory().addItem(clownfish)); + api().scheduler().runEntity(player, () -> player.getInventory().addItem(clownfish)); return MiniMessage.miniMessage().deserialize("blub blub... ><_>"); } else if (args[0].equals("toggle")) { - List toggledPlayers = TFMExtras.getModule().getConfig().getStringList("server.clownfish.toggled_players"); + List toggledPlayers = module.getConfig().getStringList("server.clownfish.toggled_players"); boolean isToggled = toggledPlayers.contains(player.getUniqueId().toString()); if (isToggled) @@ -56,8 +60,8 @@ public class ClownfishCommand extends SimplePlexCommand toggledPlayers.add(player.getUniqueId().toString()); } - TFMExtras.getModule().getConfig().set("server.clownfish.toggled_players", toggledPlayers); - TFMExtras.getModule().getConfig().save(); + module.getConfig().set("server.clownfish.toggled_players", toggledPlayers); + module.getConfig().save(); return messageComponent("toggleClownfish", isToggled ? "now" : "no longer"); } @@ -65,9 +69,9 @@ public class ClownfishCommand extends SimplePlexCommand { if (silentCheckPermission(commandSender, "plex.tfmextras.clownfish.restrict")) { - PlexPlayerView target = TFMExtras.plexApi().players().byName(args[1]).orElseThrow(PlayerNotFoundException::new); + PlexPlayerView target = api().players().byName(args[1]).orElseThrow(PlayerNotFoundException::new); - List restrictedPlayers = TFMExtras.getModule().getConfig().getStringList("server.clownfish.restricted"); + List restrictedPlayers = module.getConfig().getStringList("server.clownfish.restricted"); boolean isRestricted = restrictedPlayers.contains(target.uuid().toString()); if (isRestricted) @@ -79,8 +83,8 @@ public class ClownfishCommand extends SimplePlexCommand restrictedPlayers.add(target.uuid().toString()); } - TFMExtras.getModule().getConfig().set("server.clownfish.restricted", restrictedPlayers); - TFMExtras.getModule().getConfig().save(); + module.getConfig().set("server.clownfish.restricted", restrictedPlayers); + module.getConfig().save(); return messageComponent("restrictClownfish", target.name(), isRestricted ? "now" : "no longer"); } diff --git a/src/main/java/dev/plex/extras/command/EjectCommand.java b/src/main/java/dev/plex/extras/command/EjectCommand.java index 509beb3..eaccca1 100755 --- a/src/main/java/dev/plex/extras/command/EjectCommand.java +++ b/src/main/java/dev/plex/extras/command/EjectCommand.java @@ -2,7 +2,6 @@ package dev.plex.extras.command; import dev.plex.command.SimplePlexCommand; import dev.plex.command.source.RequiredCommandSource; -import dev.plex.extras.TFMExtras; import java.util.Collections; import java.util.List; import net.kyori.adventure.text.Component; @@ -26,7 +25,7 @@ public class EjectCommand extends SimplePlexCommand protected Component execute(@NotNull CommandSender sender, @Nullable Player player, @NotNull String[] args) { final int passengers = player.getPassengers().size(); - TFMExtras.plexApi().scheduler().runEntity(player, player::eject); + api().scheduler().runEntity(player, player::eject); return MiniMessage.miniMessage().deserialize("Ejected " + passengers + " passengers."); } diff --git a/src/main/java/dev/plex/extras/command/EnglishMfCommand.java b/src/main/java/dev/plex/extras/command/EnglishMfCommand.java index 0af2c7c..c05f1ae 100755 --- a/src/main/java/dev/plex/extras/command/EnglishMfCommand.java +++ b/src/main/java/dev/plex/extras/command/EnglishMfCommand.java @@ -2,7 +2,6 @@ package dev.plex.extras.command; import com.google.common.collect.ImmutableList; import dev.plex.command.SimplePlexCommand; -import dev.plex.extras.TFMExtras; import java.util.List; import net.kyori.adventure.text.Component; import org.bukkit.command.CommandSender; @@ -33,7 +32,7 @@ public class EnglishMfCommand extends SimplePlexCommand return usage(); } Player target = getNonNullPlayer(args[0]); - TFMExtras.plexApi().scheduler().runEntity(target, () -> + api().scheduler().runEntity(target, () -> { target.sendMessage(mmString("ENGLISH MOTHERFUCKER, Do you speak it!?")); target.setHealth(0); diff --git a/src/main/java/dev/plex/extras/command/JumpPadsCommand.java b/src/main/java/dev/plex/extras/command/JumpPadsCommand.java index a455d67..ee6ed48 100755 --- a/src/main/java/dev/plex/extras/command/JumpPadsCommand.java +++ b/src/main/java/dev/plex/extras/command/JumpPadsCommand.java @@ -18,7 +18,9 @@ import org.jetbrains.annotations.Nullable; public class JumpPadsCommand extends SimplePlexCommand { - public JumpPadsCommand() + private final JumpPads jumpPads; + + public JumpPadsCommand(TFMExtras module) { super(command("jumppads") .description("Enables jump pads for yourself or another player. Mode types available: none, regular, enhanced, extreme") @@ -26,8 +28,8 @@ public class JumpPadsCommand extends SimplePlexCommand .aliases("jp,pads,launchpads") .permission("plex.tfmextras.jumppads") .build()); + this.jumpPads = module.getJumpPads(); } - JumpPads jumpPads = TFMExtras.getModule().jumpPads; @Override protected Component execute(@NotNull CommandSender sender, @Nullable Player player, @NotNull String[] args) diff --git a/src/main/java/dev/plex/extras/command/OrbitCommand.java b/src/main/java/dev/plex/extras/command/OrbitCommand.java index a770b7e..cb22e8b 100644 --- a/src/main/java/dev/plex/extras/command/OrbitCommand.java +++ b/src/main/java/dev/plex/extras/command/OrbitCommand.java @@ -2,7 +2,6 @@ package dev.plex.extras.command; import com.google.common.collect.ImmutableList; import dev.plex.command.SimplePlexCommand; -import dev.plex.extras.TFMExtras; import net.kyori.adventure.text.Component; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @@ -85,7 +84,7 @@ public class OrbitCommand extends SimplePlexCommand private void startOrbiting(Player player, int strength) { - TFMExtras.plexApi().scheduler().runEntity(player, () -> + api().scheduler().runEntity(player, () -> { player.setGameMode(org.bukkit.GameMode.SURVIVAL); player.addPotionEffect(new PotionEffect(PotionEffectType.LEVITATION, Integer.MAX_VALUE, strength, false, false)); @@ -96,7 +95,7 @@ public class OrbitCommand extends SimplePlexCommand private void stopOrbiting(Player player) { isOrbited.remove(player.getUniqueId()); - TFMExtras.plexApi().scheduler().runEntity(player, () -> player.removePotionEffect(PotionEffectType.LEVITATION)); + api().scheduler().runEntity(player, () -> player.removePotionEffect(PotionEffectType.LEVITATION)); } public static boolean isPlayerOrbited(UUID playerId) diff --git a/src/main/java/dev/plex/extras/command/RandomFishCommand.java b/src/main/java/dev/plex/extras/command/RandomFishCommand.java index 58398ab..0cdf599 100755 --- a/src/main/java/dev/plex/extras/command/RandomFishCommand.java +++ b/src/main/java/dev/plex/extras/command/RandomFishCommand.java @@ -2,7 +2,6 @@ package dev.plex.extras.command; import dev.plex.command.SimplePlexCommand; import dev.plex.command.source.RequiredCommandSource; -import dev.plex.extras.TFMExtras; import java.util.Arrays; import java.util.Collections; import java.util.List; @@ -39,7 +38,7 @@ public class RandomFishCommand extends SimplePlexCommand return MiniMessage.miniMessage().deserialize("There is no block within 15 blocks of you."); } Location location = block.getLocation().add(0, 1, 0); - TFMExtras.plexApi().scheduler().runRegion(location, () -> location.getWorld().spawnEntity(location, randomFish())); + api().scheduler().runRegion(location, () -> location.getWorld().spawnEntity(location, randomFish())); return MiniMessage.miniMessage().deserialize(":goodbird:"); } diff --git a/src/main/java/dev/plex/extras/jumppads/JumpPads.java b/src/main/java/dev/plex/extras/jumppads/JumpPads.java index bd4b672..34ccf24 100755 --- a/src/main/java/dev/plex/extras/jumppads/JumpPads.java +++ b/src/main/java/dev/plex/extras/jumppads/JumpPads.java @@ -1,6 +1,5 @@ package dev.plex.extras.jumppads; -import dev.plex.extras.TFMExtras; import java.util.HashMap; import java.util.Map; import java.util.UUID; @@ -17,10 +16,16 @@ public class JumpPads { public final Map playerModeMap = new ConcurrentHashMap<>(); public final double SCALAR = 0.8; - public final double STRENGTH = TFMExtras.getModule().getConfig().getInt("server.jumppad_strength", 1) + 0.1F; - public final double EXTREME = STRENGTH + 0.5; + public final double STRENGTH; + public final double EXTREME; public final Tag wool = Tag.WOOL; + public JumpPads(double strength) + { + STRENGTH = strength + 0.1F; + EXTREME = STRENGTH + 0.5; + } + public Vector extreme(Vector vector) { return vector.multiply(STRENGTH * SCALAR * ThreadLocalRandom.current().nextInt(3, 6)); diff --git a/src/main/java/dev/plex/extras/listener/ClownfishListener.java b/src/main/java/dev/plex/extras/listener/ClownfishListener.java index 641e114..629fad0 100644 --- a/src/main/java/dev/plex/extras/listener/ClownfishListener.java +++ b/src/main/java/dev/plex/extras/listener/ClownfishListener.java @@ -26,6 +26,12 @@ import java.util.Random; public class ClownfishListener extends PlexListener { + private final TFMExtras module; + + public ClownfishListener(TFMExtras module) + { + this.module = module; + } @EventHandler public void onPlayerInteract(PlayerInteractEvent event) @@ -47,20 +53,20 @@ public class ClownfishListener extends PlexListener if (meta.hasDisplayName() && Objects.equals(meta.displayName(), Component.text("Clownfish"))) { - final List restrictedPlayers = TFMExtras.getModule().getConfig().getStringList("server.clownfish.restricted"); + final List restrictedPlayers = module.getConfig().getStringList("server.clownfish.restricted"); if (restrictedPlayers.contains(player.getUniqueId().toString())) { player.sendMessage(MiniMessage.miniMessage().deserialize("You have been restricted from using the clownfish")); return; } - double radius = TFMExtras.getModule().getConfig().getInt("server.clownfish.radius"); - double strength = TFMExtras.getModule().getConfig().getInt("server.clownfish.strength"); + double radius = module.getConfig().getInt("server.clownfish.radius"); + double strength = module.getConfig().getInt("server.clownfish.strength"); List pushedPlayers = new ArrayList<>(); final Vector senderPos = player.getLocation().toVector(); final List players = player.getWorld().getPlayers(); - final List toggledPlayers = TFMExtras.getModule().getConfig().getStringList("server.clownfish.toggled_players"); + final List toggledPlayers = module.getConfig().getStringList("server.clownfish.toggled_players"); for (final Player target : players) { diff --git a/src/main/java/dev/plex/extras/listener/JumpPadsListener.java b/src/main/java/dev/plex/extras/listener/JumpPadsListener.java index a5edb5f..c8917c6 100755 --- a/src/main/java/dev/plex/extras/listener/JumpPadsListener.java +++ b/src/main/java/dev/plex/extras/listener/JumpPadsListener.java @@ -16,7 +16,14 @@ import org.bukkit.util.Vector; public class JumpPadsListener extends PlexListener { - JumpPads jumpPads = TFMExtras.getModule().jumpPads; + private final TFMExtras module; + private final JumpPads jumpPads; + + public JumpPadsListener(TFMExtras module) + { + this.module = module; + this.jumpPads = module.getJumpPads(); + } @EventHandler(priority = EventPriority.NORMAL) public void jumppadsAction(PlayerMoveEvent event) @@ -43,7 +50,7 @@ public class JumpPadsListener extends PlexListener { vector = vector.multiply(new Vector(0, -1, 0)); } - TFMExtras.plexApi().logging().debug("New Velocity: {0}", vector.toString()); + module.api().logging().debug("New Velocity: {0}", vector.toString()); player.setFallDistance(0); player.setVelocity(vector); } diff --git a/src/main/java/dev/plex/extras/listener/OrbitEffectListener.java b/src/main/java/dev/plex/extras/listener/OrbitEffectListener.java index 0c2beb8..91466fc 100644 --- a/src/main/java/dev/plex/extras/listener/OrbitEffectListener.java +++ b/src/main/java/dev/plex/extras/listener/OrbitEffectListener.java @@ -14,6 +14,13 @@ import org.bukkit.potion.PotionEffectType; public class OrbitEffectListener extends PlexListener { + private final TFMExtras module; + + public OrbitEffectListener(TFMExtras module) + { + this.module = module; + } + @EventHandler(priority = EventPriority.LOWEST) public void onPotionEffectRemove(EntityPotionEffectEvent event) { @@ -22,7 +29,7 @@ public class OrbitEffectListener extends PlexListener if ((event.getAction() == EntityPotionEffectEvent.Action.CLEARED || event.getAction() == EntityPotionEffectEvent.Action.REMOVED) && event.getModifiedType() == PotionEffectType.LEVITATION) { - TFMExtras.plexApi().scheduler().runEntityLater(player, () -> + module.api().scheduler().runEntityLater(player, () -> { if (OrbitCommand.isPlayerOrbited(player.getUniqueId())) { @@ -40,7 +47,7 @@ public class OrbitEffectListener extends PlexListener Player player = event.getPlayer(); GameMode newGameMode = event.getNewGameMode(); - TFMExtras.plexApi().scheduler().runEntityLater(player, () -> + module.api().scheduler().runEntityLater(player, () -> { if (OrbitCommand.isPlayerOrbited(player.getUniqueId()) && newGameMode != GameMode.SURVIVAL) { diff --git a/src/main/java/dev/plex/extras/listener/PlayerListener.java b/src/main/java/dev/plex/extras/listener/PlayerListener.java index 6d14e03..a81e30d 100755 --- a/src/main/java/dev/plex/extras/listener/PlayerListener.java +++ b/src/main/java/dev/plex/extras/listener/PlayerListener.java @@ -7,16 +7,23 @@ import org.bukkit.event.player.PlayerJoinEvent; public class PlayerListener extends PlexListener { + private final TFMExtras module; + + public PlayerListener(TFMExtras module) + { + this.module = module; + } + @EventHandler public void onAuto(PlayerJoinEvent event) { - if (TFMExtras.getModule().getConfig().getStringList("server.clear-on-join").contains(event.getPlayer().getName())) + if (module.getConfig().getStringList("server.clear-on-join").contains(event.getPlayer().getName())) { - TFMExtras.plexApi().scheduler().runEntityLater(event.getPlayer(), () -> event.getPlayer().getInventory().clear(), 1); + module.api().scheduler().runEntityLater(event.getPlayer(), () -> event.getPlayer().getInventory().clear(), 1); } - if (TFMExtras.getModule().getConfig().getStringList("server.teleport-on-join").contains(event.getPlayer().getName())) + if (module.getConfig().getStringList("server.teleport-on-join").contains(event.getPlayer().getName())) { - TFMExtras.plexApi().scheduler().runEntityLater(event.getPlayer(), () -> event.getPlayer().teleportAsync(TFMExtras.getRandomLocation(event.getPlayer().getWorld())), 1); + module.api().scheduler().runEntityLater(event.getPlayer(), () -> event.getPlayer().teleportAsync(module.getRandomLocation(event.getPlayer().getWorld())), 1); } }