diff --git a/LobbySystem/build.gradle.kts b/LobbySystem/build.gradle.kts index 8662545c..b36a4e79 100644 --- a/LobbySystem/build.gradle.kts +++ b/LobbySystem/build.gradle.kts @@ -27,6 +27,8 @@ java { } dependencies { + compileOnly(libs.classindex) + annotationProcessor(libs.classindex) compileOnly(project(":SpigotCore", "default")) compileOnly(libs.spigotapi) diff --git a/LobbySystem/src/de/steamwar/lobby/Config.java b/LobbySystem/src/de/steamwar/lobby/Config.java index fd8eeb1c..596b6051 100644 --- a/LobbySystem/src/de/steamwar/lobby/Config.java +++ b/LobbySystem/src/de/steamwar/lobby/Config.java @@ -67,6 +67,6 @@ public class Config { yml.set("waitingHallSpawn", waitingHallSpawn); yml.set("jumpPoints", JumpAndRun.actualPoints); - LobbySystem.getPlugin().saveConfig(); + LobbySystem.getInstance().saveConfig(); } } diff --git a/LobbySystem/src/de/steamwar/lobby/Fightserver.java b/LobbySystem/src/de/steamwar/lobby/Fightserver.java index c1ee6f9e..a5b19995 100644 --- a/LobbySystem/src/de/steamwar/lobby/Fightserver.java +++ b/LobbySystem/src/de/steamwar/lobby/Fightserver.java @@ -33,7 +33,7 @@ public class Fightserver { private static final Map servers = new HashMap<>(); public static void init() { - Bukkit.getScheduler().runTaskTimer(LobbySystem.getPlugin(), Fightserver::removeStopped, 20, 20); + Bukkit.getScheduler().runTaskTimer(LobbySystem.getInstance(), Fightserver::removeStopped, 20, 20); } public static void newFightInfo(FightInfoPacket in) { diff --git a/LobbySystem/src/de/steamwar/lobby/LobbyPacketHandler.java b/LobbySystem/src/de/steamwar/lobby/LobbyPacketHandler.java index eb9d5e7c..66638aae 100644 --- a/LobbySystem/src/de/steamwar/lobby/LobbyPacketHandler.java +++ b/LobbySystem/src/de/steamwar/lobby/LobbyPacketHandler.java @@ -19,6 +19,7 @@ package de.steamwar.lobby; +import de.steamwar.linkage.Linked; import de.steamwar.lobby.jumpandrun.JumpAndRun; import de.steamwar.network.packets.PacketHandler; import de.steamwar.network.packets.common.FightInfoPacket; @@ -30,6 +31,7 @@ import org.bukkit.event.player.PlayerTeleportEvent; import java.util.Objects; +@Linked public class LobbyPacketHandler extends PacketHandler { @Handler diff --git a/LobbySystem/src/de/steamwar/lobby/LobbySystem.java b/LobbySystem/src/de/steamwar/lobby/LobbySystem.java index 900d0941..29975e12 100644 --- a/LobbySystem/src/de/steamwar/lobby/LobbySystem.java +++ b/LobbySystem/src/de/steamwar/lobby/LobbySystem.java @@ -21,18 +21,12 @@ package de.steamwar.lobby; import de.steamwar.core.Core; import de.steamwar.entity.REntityServer; -import de.steamwar.lobby.command.FlyCommand; -import de.steamwar.lobby.command.HologramCommand; -import de.steamwar.lobby.command.ModifyCommand; -import de.steamwar.lobby.command.PortalCommand; -import de.steamwar.lobby.jumpandrun.JumpAndRun; -import de.steamwar.lobby.jumpandrun.JumpAndRunCommand; -import de.steamwar.lobby.listener.*; +import de.steamwar.linkage.AbstractLinker; +import de.steamwar.linkage.SpigotLinker; +import de.steamwar.lobby.listener.AlphaWall; import de.steamwar.lobby.map.CustomMap; -import de.steamwar.lobby.particle.ParticleListener; -import de.steamwar.lobby.special.advent.AdventsCalendar; -import de.steamwar.lobby.team.TeamPlayer; import de.steamwar.message.Message; +import org.bukkit.Bukkit; import org.bukkit.plugin.java.JavaPlugin; public class LobbySystem extends JavaPlugin { @@ -43,6 +37,8 @@ public class LobbySystem extends JavaPlugin { private static REntityServer entityServer; private static REntityServer debugEntityServer; + private static SpigotLinker spigotLinker; + @Override public void onLoad() { plugin = this; @@ -56,43 +52,32 @@ public class LobbySystem extends JavaPlugin { Core.setServerName("Lobby"); CustomMap.init(); - Fightserver.init(); - new Portals(); - new PortalCommand(); - new HologramCommand(); - new FlyCommand(); - new ModifyCommand(); - - new JumpAndRun(); - new JumpAndRunCommand(); config = new Config(getConfig()); - new PlayerSpawn(); - new DoubleJumpListener(); - new ParticleListener(); - new InventoryInteraction(); - new WorldInteraction(); - new PlayerSeatListener(); - new MapsRotateListener(); - new TeleporterListener(); - new TeamPlayer(); + spigotLinker = new SpigotLinker(this, message); + try { + spigotLinker.link(); + } catch (AbstractLinker.LinkException e) { + e.printStackTrace(); + Bukkit.shutdown(); + return; + } // EggHunt.init(); - AdventsCalendar.init(); new AlphaWall(l -> l.getX() > 999, AlphaWall.REFLECT_X); new AlphaWall(l -> l.getX() < 2977, AlphaWall.REFLECT_X); new AlphaWall(l -> l.getZ() > 892, AlphaWall.REFLECT_Z); new AlphaWall(l -> l.getZ() < 1794, AlphaWall.REFLECT_Z); - new LobbyPacketHandler().register(); } @Override public void onDisable() { + spigotLinker.unlink(); } - public static LobbySystem getPlugin() { + public static LobbySystem getInstance() { return plugin; } diff --git a/LobbySystem/src/de/steamwar/lobby/boatrace/BoatRace.java b/LobbySystem/src/de/steamwar/lobby/boatrace/BoatRace.java index 18e8db6c..031d8989 100644 --- a/LobbySystem/src/de/steamwar/lobby/boatrace/BoatRace.java +++ b/LobbySystem/src/de/steamwar/lobby/boatrace/BoatRace.java @@ -136,7 +136,7 @@ public class BoatRace implements EventListener, Listener { // boat.setBoatType(Boat.Type.values()[new Random().nextInt(Boat.Type.values().length)]); boat.addPassenger(player); bossBar = Bukkit.createBossBar("", BarColor.BLUE, BarStyle.SOLID); - task = Bukkit.getScheduler().runTaskTimer(LobbySystem.getPlugin(), () -> { + task = Bukkit.getScheduler().runTaskTimer(LobbySystem.getInstance(), () -> { hasBacked = false; if (nextCheckpoint != 0) { double kmh = lastDistance * 20 * 3.6; @@ -144,7 +144,7 @@ public class BoatRace implements EventListener, Listener { bossBar.setTitle(LobbySystem.getMessage().parse("BOAT_RACE_TITLE", player, nextCheckpoint, renderTime(System.currentTimeMillis() - startTime), (int) kmh)); } }, 0, 1); - Bukkit.getPluginManager().registerEvents(this, LobbySystem.getPlugin()); + Bukkit.getPluginManager().registerEvents(this, LobbySystem.getInstance()); } private boolean inRegion(Player p, Location loc1, Location loc2) { diff --git a/LobbySystem/src/de/steamwar/lobby/command/FlyCommand.java b/LobbySystem/src/de/steamwar/lobby/command/FlyCommand.java index e16c6748..56863be7 100644 --- a/LobbySystem/src/de/steamwar/lobby/command/FlyCommand.java +++ b/LobbySystem/src/de/steamwar/lobby/command/FlyCommand.java @@ -20,11 +20,13 @@ package de.steamwar.lobby.command; import de.steamwar.command.SWCommand; +import de.steamwar.linkage.Linked; import de.steamwar.lobby.util.LobbyPlayer; import de.steamwar.sql.SteamwarUser; import de.steamwar.sql.UserPerm; import org.bukkit.entity.Player; +@Linked public class FlyCommand extends SWCommand { public FlyCommand() { diff --git a/LobbySystem/src/de/steamwar/lobby/command/HologramCommand.java b/LobbySystem/src/de/steamwar/lobby/command/HologramCommand.java index bfcc6b79..9166ffaa 100644 --- a/LobbySystem/src/de/steamwar/lobby/command/HologramCommand.java +++ b/LobbySystem/src/de/steamwar/lobby/command/HologramCommand.java @@ -20,10 +20,12 @@ package de.steamwar.lobby.command; import de.steamwar.command.SWCommand; +import de.steamwar.linkage.Linked; import de.steamwar.lobby.LobbySystem; import de.steamwar.lobby.display.Hologram; import org.bukkit.entity.Player; +@Linked public class HologramCommand extends SWCommand { public HologramCommand() { diff --git a/LobbySystem/src/de/steamwar/lobby/command/ModifyCommand.java b/LobbySystem/src/de/steamwar/lobby/command/ModifyCommand.java index d782112d..0233b007 100644 --- a/LobbySystem/src/de/steamwar/lobby/command/ModifyCommand.java +++ b/LobbySystem/src/de/steamwar/lobby/command/ModifyCommand.java @@ -20,6 +20,7 @@ package de.steamwar.lobby.command; import de.steamwar.command.SWCommand; +import de.steamwar.linkage.Linked; import de.steamwar.lobby.LobbySystem; import de.steamwar.lobby.listener.PlayerSpawn; import de.steamwar.sql.SteamwarUser; @@ -35,6 +36,7 @@ import org.bukkit.event.player.PlayerQuitEvent; import java.util.HashSet; import java.util.Set; +@Linked public class ModifyCommand extends SWCommand implements Listener { private static final Set modifying = new HashSet<>(); @@ -45,7 +47,7 @@ public class ModifyCommand extends SWCommand implements Listener { public ModifyCommand() { super("modify"); - Bukkit.getPluginManager().registerEvents(this, LobbySystem.getPlugin()); + Bukkit.getPluginManager().registerEvents(this, LobbySystem.getInstance()); } @Register diff --git a/LobbySystem/src/de/steamwar/lobby/command/PortalCommand.java b/LobbySystem/src/de/steamwar/lobby/command/PortalCommand.java index 637b99e3..7eb1036f 100644 --- a/LobbySystem/src/de/steamwar/lobby/command/PortalCommand.java +++ b/LobbySystem/src/de/steamwar/lobby/command/PortalCommand.java @@ -8,6 +8,7 @@ import com.sk89q.worldedit.regions.CuboidRegion; import com.sk89q.worldedit.regions.RegionSelector; import de.steamwar.command.SWCommand; import de.steamwar.command.TypeMapper; +import de.steamwar.linkage.Linked; import de.steamwar.lobby.LobbySystem; import de.steamwar.lobby.portal.*; import de.steamwar.sql.SteamwarUser; @@ -22,6 +23,7 @@ import org.bukkit.entity.Player; import java.util.ArrayList; import java.util.List; +@Linked public class PortalCommand extends SWCommand { public PortalCommand() { diff --git a/LobbySystem/src/de/steamwar/lobby/jumpandrun/JumpAndRun.java b/LobbySystem/src/de/steamwar/lobby/jumpandrun/JumpAndRun.java index 68097463..4094a5b2 100644 --- a/LobbySystem/src/de/steamwar/lobby/jumpandrun/JumpAndRun.java +++ b/LobbySystem/src/de/steamwar/lobby/jumpandrun/JumpAndRun.java @@ -1,7 +1,7 @@ package de.steamwar.lobby.jumpandrun; +import de.steamwar.linkage.Linked; import de.steamwar.lobby.LobbySystem; -import de.steamwar.lobby.listener.BasicListener; import de.steamwar.lobby.listener.PlayerSpawn; import de.steamwar.lobby.util.Leaderboard; import de.steamwar.sql.UserConfig; @@ -12,6 +12,7 @@ import org.bukkit.Material; import org.bukkit.Sound; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; import org.bukkit.event.block.Action; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.event.player.PlayerMoveEvent; @@ -22,7 +23,8 @@ import org.bukkit.util.Vector; import java.text.SimpleDateFormat; import java.util.*; -public class JumpAndRun extends BasicListener { +@Linked +public class JumpAndRun implements Listener { public static final String JUMP_AND_RUN_CONFIG = "jump_and_run"; @@ -40,7 +42,7 @@ public class JumpAndRun extends BasicListener { private static final Leaderboard LEADERBOARD = new Leaderboard(LobbySystem.getEntityServer(false), JUMP_AND_RUN_CONFIG, new Location(Bukkit.getWorlds().get(0), 2338.5, 42.5, 1231.5), 5); { - Bukkit.getScheduler().runTaskTimer(LobbySystem.getPlugin(), () -> { + Bukkit.getScheduler().runTaskTimer(LobbySystem.getInstance(), () -> { Set toReset = new HashSet<>(); CURRENT_POS.forEach((player, index) -> { if (System.currentTimeMillis() - CLICKED.getOrDefault(player, 0L) > 500) { diff --git a/LobbySystem/src/de/steamwar/lobby/jumpandrun/JumpAndRunCommand.java b/LobbySystem/src/de/steamwar/lobby/jumpandrun/JumpAndRunCommand.java index 7e15b7a8..4b18ef21 100644 --- a/LobbySystem/src/de/steamwar/lobby/jumpandrun/JumpAndRunCommand.java +++ b/LobbySystem/src/de/steamwar/lobby/jumpandrun/JumpAndRunCommand.java @@ -1,6 +1,7 @@ package de.steamwar.lobby.jumpandrun; import de.steamwar.command.SWCommand; +import de.steamwar.linkage.Linked; import de.steamwar.lobby.LobbySystem; import de.steamwar.sql.UserConfig; import org.bukkit.entity.Player; @@ -9,6 +10,7 @@ import java.text.SimpleDateFormat; import java.util.Date; import java.util.Locale; +@Linked public class JumpAndRunCommand extends SWCommand { public JumpAndRunCommand() { diff --git a/LobbySystem/src/de/steamwar/lobby/listener/AlphaWall.java b/LobbySystem/src/de/steamwar/lobby/listener/AlphaWall.java index 502488b5..75ae1875 100644 --- a/LobbySystem/src/de/steamwar/lobby/listener/AlphaWall.java +++ b/LobbySystem/src/de/steamwar/lobby/listener/AlphaWall.java @@ -19,16 +19,19 @@ package de.steamwar.lobby.listener; +import de.steamwar.lobby.LobbySystem; import de.steamwar.lobby.command.ModifyCommand; +import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerMoveEvent; import org.bukkit.event.player.PlayerTeleportEvent; import java.util.function.Function; -public class AlphaWall extends BasicListener { +public class AlphaWall implements Listener { public static float REFLECT_X = 360f; public static float REFLECT_Z = 180f; @@ -39,6 +42,7 @@ public class AlphaWall extends BasicListener { public AlphaWall(Function allowed, float reflect) { this.allowed = allowed; this.reflect = reflect; + Bukkit.getPluginManager().registerEvents(this, LobbySystem.getInstance()); } @EventHandler diff --git a/LobbySystem/src/de/steamwar/lobby/listener/BasicListener.java b/LobbySystem/src/de/steamwar/lobby/listener/BasicListener.java deleted file mode 100644 index 1979b463..00000000 --- a/LobbySystem/src/de/steamwar/lobby/listener/BasicListener.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * This file is a part of the SteamWar software. - * - * Copyright (C) 2021 SteamWar.de-Serverteam - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero 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 Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ - -package de.steamwar.lobby.listener; - -import de.steamwar.lobby.LobbySystem; -import org.bukkit.Bukkit; -import org.bukkit.event.Listener; - -public class BasicListener implements Listener { - - public BasicListener () { - Bukkit.getPluginManager().registerEvents(this, LobbySystem.getPlugin()); - } -} diff --git a/LobbySystem/src/de/steamwar/lobby/listener/DoubleJumpListener.java b/LobbySystem/src/de/steamwar/lobby/listener/DoubleJumpListener.java index ae554f64..47438002 100644 --- a/LobbySystem/src/de/steamwar/lobby/listener/DoubleJumpListener.java +++ b/LobbySystem/src/de/steamwar/lobby/listener/DoubleJumpListener.java @@ -19,6 +19,7 @@ package de.steamwar.lobby.listener; +import de.steamwar.linkage.Linked; import de.steamwar.lobby.jumpandrun.JumpAndRun; import de.steamwar.lobby.util.LobbyPlayer; import org.bukkit.GameMode; @@ -26,12 +27,14 @@ import org.bukkit.Material; import org.bukkit.Sound; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerMoveEvent; import org.bukkit.event.player.PlayerToggleFlightEvent; import org.bukkit.util.Vector; -public class DoubleJumpListener extends BasicListener { +@Linked +public class DoubleJumpListener implements Listener { double multiplyer = 1.4; diff --git a/LobbySystem/src/de/steamwar/lobby/listener/InventoryInteraction.java b/LobbySystem/src/de/steamwar/lobby/listener/InventoryInteraction.java index 14b28d97..c9086aba 100644 --- a/LobbySystem/src/de/steamwar/lobby/listener/InventoryInteraction.java +++ b/LobbySystem/src/de/steamwar/lobby/listener/InventoryInteraction.java @@ -19,6 +19,7 @@ package de.steamwar.lobby.listener; +import de.steamwar.linkage.Linked; import de.steamwar.lobby.LobbySystem; import de.steamwar.lobby.command.ModifyCommand; import de.steamwar.lobby.special.advent.AdventsCalendar; @@ -26,6 +27,7 @@ import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; import org.bukkit.event.block.Action; import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.player.PlayerDropItemEvent; @@ -34,7 +36,8 @@ import org.bukkit.event.player.PlayerPickupItemEvent; import org.bukkit.event.player.PlayerSwapHandItemsEvent; import org.bukkit.inventory.ItemStack; -public class InventoryInteraction extends BasicListener { +@Linked +public class InventoryInteraction implements Listener { @EventHandler public void handlePlayerInteract(PlayerInteractEvent event) { @@ -50,7 +53,7 @@ public class InventoryInteraction extends BasicListener { offset = 0; } - Bukkit.getScheduler().runTaskLater(LobbySystem.getPlugin(), () -> { + Bukkit.getScheduler().runTaskLater(LobbySystem.getInstance(), () -> { event.getPlayer().getInventory().setItem(PlayerSpawn.FIREWORK_SLOT + offset, PlayerSpawn.FIREWORK); }, 1L); return; diff --git a/LobbySystem/src/de/steamwar/lobby/listener/MapsRotateListener.java b/LobbySystem/src/de/steamwar/lobby/listener/MapsRotateListener.java index e098da02..31825344 100644 --- a/LobbySystem/src/de/steamwar/lobby/listener/MapsRotateListener.java +++ b/LobbySystem/src/de/steamwar/lobby/listener/MapsRotateListener.java @@ -19,12 +19,15 @@ package de.steamwar.lobby.listener; +import de.steamwar.linkage.Linked; import de.steamwar.lobby.command.ModifyCommand; import org.bukkit.entity.ItemFrame; import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerInteractEntityEvent; -public class MapsRotateListener extends BasicListener { +@Linked +public class MapsRotateListener implements Listener { @EventHandler public void onPlayerInteractEntity(PlayerInteractEntityEvent event) { diff --git a/LobbySystem/src/de/steamwar/lobby/listener/PlayerSeatListener.java b/LobbySystem/src/de/steamwar/lobby/listener/PlayerSeatListener.java index 45113f57..cd6e7919 100644 --- a/LobbySystem/src/de/steamwar/lobby/listener/PlayerSeatListener.java +++ b/LobbySystem/src/de/steamwar/lobby/listener/PlayerSeatListener.java @@ -19,6 +19,7 @@ package de.steamwar.lobby.listener; +import de.steamwar.linkage.Linked; import de.steamwar.lobby.LobbySystem; import org.bukkit.*; import org.bukkit.block.data.Bisected; @@ -28,6 +29,7 @@ import org.bukkit.entity.Arrow; import org.bukkit.entity.Entity; import org.bukkit.entity.EntityType; import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; import org.bukkit.event.block.Action; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.event.player.PlayerQuitEvent; @@ -37,7 +39,8 @@ import org.spigotmc.event.entity.EntityDismountEvent; import java.util.HashSet; import java.util.Set; -public class PlayerSeatListener extends BasicListener{ +@Linked +public class PlayerSeatListener implements Listener { public static final World world = Bukkit.getWorlds().get(0); @@ -51,7 +54,7 @@ public class PlayerSeatListener extends BasicListener{ arrow.setTicksLived(1); } } - }.runTaskTimer(LobbySystem.getPlugin(), 20*60,20*60); + }.runTaskTimer(LobbySystem.getInstance(), 20*60,20*60); } @EventHandler diff --git a/LobbySystem/src/de/steamwar/lobby/listener/PlayerSpawn.java b/LobbySystem/src/de/steamwar/lobby/listener/PlayerSpawn.java index 3ca809c1..a1734233 100644 --- a/LobbySystem/src/de/steamwar/lobby/listener/PlayerSpawn.java +++ b/LobbySystem/src/de/steamwar/lobby/listener/PlayerSpawn.java @@ -19,6 +19,7 @@ package de.steamwar.lobby.listener; +import de.steamwar.linkage.Linked; import de.steamwar.lobby.LobbySystem; import de.steamwar.lobby.boatrace.BoatRace; import de.steamwar.lobby.special.advent.AdventsCalendar; @@ -31,13 +32,15 @@ import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.inventory.EquipmentSlot; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.PlayerInventory; -public class PlayerSpawn extends BasicListener { +@Linked +public class PlayerSpawn implements Listener { public static final int FIREWORK_SLOT = 2; public static final ItemStack FIREWORK = new ItemBuilder(Material.FIREWORK_ROCKET, 1).setDisplayName("§5Rakete").build(); @@ -62,7 +65,7 @@ public class PlayerSpawn extends BasicListener { LobbySystem.getEntityServer(false).addPlayer(player); BoatRace.boatNpcServer.addPlayer(player); - Bukkit.getScheduler().runTaskLater(LobbySystem.getPlugin(), () -> NetworkSender.send(new ImALobbyPacket(), player), 20); + Bukkit.getScheduler().runTaskLater(LobbySystem.getInstance(), () -> NetworkSender.send(new ImALobbyPacket(), player), 20); } public static void giveItems(Player player) { diff --git a/LobbySystem/src/de/steamwar/lobby/listener/Portals.java b/LobbySystem/src/de/steamwar/lobby/listener/Portals.java index 576d17dc..9a0e07b4 100644 --- a/LobbySystem/src/de/steamwar/lobby/listener/Portals.java +++ b/LobbySystem/src/de/steamwar/lobby/listener/Portals.java @@ -19,10 +19,12 @@ package de.steamwar.lobby.listener; +import de.steamwar.linkage.Linked; import de.steamwar.lobby.portal.Portal; import org.bukkit.Location; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerMoveEvent; import org.bukkit.event.player.PlayerQuitEvent; @@ -32,7 +34,8 @@ import java.util.Deque; import java.util.HashMap; import java.util.Map; -public class Portals extends BasicListener { +@Linked +public class Portals implements Listener { private static final Map> portalStack = new HashMap<>(); diff --git a/LobbySystem/src/de/steamwar/lobby/listener/TeleporterListener.java b/LobbySystem/src/de/steamwar/lobby/listener/TeleporterListener.java index 28909e3c..f6a56116 100644 --- a/LobbySystem/src/de/steamwar/lobby/listener/TeleporterListener.java +++ b/LobbySystem/src/de/steamwar/lobby/listener/TeleporterListener.java @@ -21,13 +21,16 @@ package de.steamwar.lobby.listener; import de.steamwar.inventory.SWInventory; import de.steamwar.inventory.SWItem; +import de.steamwar.linkage.Linked; import org.bukkit.*; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; import org.bukkit.event.inventory.InventoryType; import org.bukkit.event.player.PlayerInteractEvent; -public class TeleporterListener extends BasicListener { +@Linked +public class TeleporterListener implements Listener { private static final World world = Bukkit.getWorlds().get(0); diff --git a/LobbySystem/src/de/steamwar/lobby/listener/WorldInteraction.java b/LobbySystem/src/de/steamwar/lobby/listener/WorldInteraction.java index b4c439fc..7a1f5108 100644 --- a/LobbySystem/src/de/steamwar/lobby/listener/WorldInteraction.java +++ b/LobbySystem/src/de/steamwar/lobby/listener/WorldInteraction.java @@ -19,12 +19,14 @@ package de.steamwar.lobby.listener; +import de.steamwar.linkage.Linked; import de.steamwar.lobby.command.ModifyCommand; import org.bukkit.Material; import org.bukkit.entity.HumanEntity; import org.bukkit.entity.ItemFrame; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; import org.bukkit.event.block.Action; import org.bukkit.event.block.BlockBreakEvent; import org.bukkit.event.block.BlockPhysicsEvent; @@ -33,13 +35,12 @@ import org.bukkit.event.entity.EntityDamageByEntityEvent; import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.event.entity.FoodLevelChangeEvent; import org.bukkit.event.hanging.HangingBreakByEntityEvent; -import org.bukkit.event.hanging.HangingBreakEvent; import org.bukkit.event.player.PlayerArmorStandManipulateEvent; import org.bukkit.event.player.PlayerInteractEvent; -import org.bukkit.event.server.MapInitializeEvent; import org.bukkit.util.Vector; -public class WorldInteraction extends BasicListener { +@Linked +public class WorldInteraction implements Listener { @EventHandler public void onEntityDamageByEntity(EntityDamageByEntityEvent event) { diff --git a/LobbySystem/src/de/steamwar/lobby/map/CustomMap.java b/LobbySystem/src/de/steamwar/lobby/map/CustomMap.java index 70053b87..6587ad2a 100644 --- a/LobbySystem/src/de/steamwar/lobby/map/CustomMap.java +++ b/LobbySystem/src/de/steamwar/lobby/map/CustomMap.java @@ -75,12 +75,12 @@ public class CustomMap implements Listener { itemFrameIndex.put(itemFrames[i], i); } - Bukkit.getScheduler().runTaskTimer(LobbySystem.getPlugin(), () -> { + Bukkit.getScheduler().runTaskTimer(LobbySystem.getInstance(), () -> { long modified = mapFile.lastModified(); if (modified > lastModified) { lastModified = modified; System.out.println("Updating Banner: " + mapFile.getName()); - Bukkit.getScheduler().runTaskAsynchronously(LobbySystem.getPlugin(), () -> { + Bukkit.getScheduler().runTaskAsynchronously(LobbySystem.getInstance(), () -> { try { run(); } catch (IOException e) { @@ -89,7 +89,7 @@ public class CustomMap implements Listener { }); } }, 200L, 200L); - Bukkit.getPluginManager().registerEvents(this, LobbySystem.getPlugin()); + Bukkit.getPluginManager().registerEvents(this, LobbySystem.getInstance()); } @EventHandler @@ -169,7 +169,7 @@ public class CustomMap implements Listener { if (itemFrame == null) continue; int finalX = x; int finalY = y; - Bukkit.getScheduler().runTaskLater(LobbySystem.getPlugin(), () -> { + Bukkit.getScheduler().runTaskLater(LobbySystem.getInstance(), () -> { ItemStack itemStack = itemFrame.getItem(); MapMeta mapMeta = (MapMeta) itemStack.getItemMeta(); MapView mapView = mapMeta.getMapView(); diff --git a/LobbySystem/src/de/steamwar/lobby/particle/ParticleListener.java b/LobbySystem/src/de/steamwar/lobby/particle/ParticleListener.java index 535ebd0b..932b7ef9 100644 --- a/LobbySystem/src/de/steamwar/lobby/particle/ParticleListener.java +++ b/LobbySystem/src/de/steamwar/lobby/particle/ParticleListener.java @@ -19,6 +19,7 @@ package de.steamwar.lobby.particle; +import de.steamwar.linkage.Linked; import de.steamwar.lobby.LobbySystem; import de.steamwar.lobby.jumpandrun.JumpAndRun; import de.steamwar.lobby.listener.BasicListener; @@ -38,6 +39,7 @@ import org.bukkit.event.player.PlayerQuitEvent; import java.util.HashMap; import java.util.Map; +@Linked public class ParticleListener extends BasicListener { private static final int PLAYER_MAX_SIZE = 20; @@ -48,7 +50,7 @@ public class ParticleListener extends BasicListener { private static Map movingPlayers = new HashMap<>(); public ParticleListener() { - Bukkit.getScheduler().runTaskTimer(LobbySystem.getPlugin(), () -> { + Bukkit.getScheduler().runTaskTimer(LobbySystem.getInstance(), () -> { movingPlayers.replaceAll((player, integer) -> integer - 1); movingPlayers.entrySet().removeIf(entry -> entry.getValue() <= 0); deg += 0.1; diff --git a/LobbySystem/src/de/steamwar/lobby/particle/elements/Delayed.java b/LobbySystem/src/de/steamwar/lobby/particle/elements/Delayed.java index 3fb9632e..862fb094 100644 --- a/LobbySystem/src/de/steamwar/lobby/particle/elements/Delayed.java +++ b/LobbySystem/src/de/steamwar/lobby/particle/elements/Delayed.java @@ -28,7 +28,7 @@ public class Delayed extends DelegatingParticleElement { public Delayed(ParticleElement particleElement, int interval) { super(particleElement); - Bukkit.getPluginManager().registerEvents(delayedData, LobbySystem.getPlugin()); + Bukkit.getPluginManager().registerEvents(delayedData, LobbySystem.getInstance()); this.interval = interval; if (interval <= 0) { throw new IllegalArgumentException("Interval must be greater than 0"); diff --git a/LobbySystem/src/de/steamwar/lobby/particle/elements/RandomParticle.java b/LobbySystem/src/de/steamwar/lobby/particle/elements/RandomParticle.java index def3cabb..088ac457 100644 --- a/LobbySystem/src/de/steamwar/lobby/particle/elements/RandomParticle.java +++ b/LobbySystem/src/de/steamwar/lobby/particle/elements/RandomParticle.java @@ -45,7 +45,7 @@ public class RandomParticle implements ParticleElement { throw new IllegalArgumentException("ParticleEnums must not be empty"); } this.randomData = new RandomData(particleEnums.length); - Bukkit.getPluginManager().registerEvents(randomData, LobbySystem.getPlugin()); + Bukkit.getPluginManager().registerEvents(randomData, LobbySystem.getInstance()); this.particleEnums = particleEnums; } diff --git a/LobbySystem/src/de/steamwar/lobby/portal/CommandPortal.java b/LobbySystem/src/de/steamwar/lobby/portal/CommandPortal.java index 36f7862a..f2a07f74 100644 --- a/LobbySystem/src/de/steamwar/lobby/portal/CommandPortal.java +++ b/LobbySystem/src/de/steamwar/lobby/portal/CommandPortal.java @@ -60,7 +60,7 @@ public class CommandPortal implements PortalHandler { String[] pieces = new String[stackIds.length]; while (maxId > 0) { if(!stack.hasNext()) { - LobbySystem.getPlugin().getLogger().log(Level.WARNING, "Stackportal with missing elements: " + player.getName() + " /" + command); + LobbySystem.getInstance().getLogger().log(Level.WARNING, "Stackportal with missing elements: " + player.getName() + " /" + command); player.sendMessage("§cEigentlich solltest du gerade gar nicht durch dieses Portal durchgehen können..."); return; } diff --git a/LobbySystem/src/de/steamwar/lobby/portal/FightserverPortal.java b/LobbySystem/src/de/steamwar/lobby/portal/FightserverPortal.java index 7d82cfdc..66031ec0 100644 --- a/LobbySystem/src/de/steamwar/lobby/portal/FightserverPortal.java +++ b/LobbySystem/src/de/steamwar/lobby/portal/FightserverPortal.java @@ -234,7 +234,7 @@ public class FightserverPortal implements PortalHandler, Comparable presentList = new ArrayList<>(); - private static File file = new File(LobbySystem.getPlugin().getDataFolder(), "presents.yml"); + private static File file = new File(LobbySystem.getInstance().getDataFolder(), "presents.yml"); private static FileConfiguration fileConfiguration = YamlConfiguration.loadConfiguration(file); - public static void init() { - new AdventCommand(); - new AdventListener(); - new PresentClickListener(); - } - static { for (int i = 1; i <= 31; i++) { if (i > 24 && i < 31) continue; diff --git a/LobbySystem/src/de/steamwar/lobby/special/advent/Present.java b/LobbySystem/src/de/steamwar/lobby/special/advent/Present.java index 86884708..780cfeec 100644 --- a/LobbySystem/src/de/steamwar/lobby/special/advent/Present.java +++ b/LobbySystem/src/de/steamwar/lobby/special/advent/Present.java @@ -115,7 +115,7 @@ public class Present { locations.add(point); } generate(); - Bukkit.getScheduler().runTaskLater(LobbySystem.getPlugin(), () -> { + Bukkit.getScheduler().runTaskLater(LobbySystem.getInstance(), () -> { BlockData blockData = location.getBlock().getBlockData(); players.forEach(pl -> { if (pl == player) return; diff --git a/LobbySystem/src/de/steamwar/lobby/special/advent/PresentClickListener.java b/LobbySystem/src/de/steamwar/lobby/special/advent/PresentClickListener.java index 5e788980..79fa339f 100644 --- a/LobbySystem/src/de/steamwar/lobby/special/advent/PresentClickListener.java +++ b/LobbySystem/src/de/steamwar/lobby/special/advent/PresentClickListener.java @@ -19,18 +19,20 @@ package de.steamwar.lobby.special.advent; +import de.steamwar.linkage.Linked; import de.steamwar.lobby.LobbySystem; -import de.steamwar.lobby.listener.BasicListener; import de.steamwar.sql.NodeMember; import de.steamwar.sql.SteamwarUser; import org.bukkit.block.Block; import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.event.player.PlayerJoinEvent; import java.time.LocalDate; -public class PresentClickListener extends BasicListener { +@Linked +public class PresentClickListener implements Listener { @EventHandler public void onPlayerJoin(PlayerJoinEvent event) { diff --git a/LobbySystem/src/de/steamwar/lobby/special/easter/EggHunt.java b/LobbySystem/src/de/steamwar/lobby/special/easter/EggHunt.java index 68f58efc..87a4a2d6 100644 --- a/LobbySystem/src/de/steamwar/lobby/special/easter/EggHunt.java +++ b/LobbySystem/src/de/steamwar/lobby/special/easter/EggHunt.java @@ -22,7 +22,7 @@ public class EggHunt { } static { - File file = new File(LobbySystem.getPlugin().getDataFolder(), "eggs.yml"); + File file = new File(LobbySystem.getInstance().getDataFolder(), "eggs.yml"); FileConfiguration fileConfiguration = YamlConfiguration.loadConfiguration(file); fileConfiguration.getList("eggs") .forEach(o -> { diff --git a/LobbySystem/src/de/steamwar/lobby/team/TeamPlayer.java b/LobbySystem/src/de/steamwar/lobby/team/TeamPlayer.java index ce14aa04..eb51d1cf 100644 --- a/LobbySystem/src/de/steamwar/lobby/team/TeamPlayer.java +++ b/LobbySystem/src/de/steamwar/lobby/team/TeamPlayer.java @@ -19,6 +19,7 @@ package de.steamwar.lobby.team; +import de.steamwar.linkage.Linked; import de.steamwar.lobby.LobbySystem; import de.steamwar.lobby.display.NPC; import de.steamwar.lobby.listener.BasicListener; @@ -44,6 +45,7 @@ import java.util.concurrent.atomic.AtomicInteger; import java.util.logging.Level; import java.util.stream.Collectors; +@Linked public class TeamPlayer extends BasicListener { private static final List cuboids = new ArrayList<>(); @@ -80,8 +82,8 @@ public class TeamPlayer extends BasicListener { }); AtomicInteger count = new AtomicInteger(); - LobbySystem.getPlugin().getLogger().log(Level.INFO, "Loaded " + entities.size() + " team players"); - Bukkit.getScheduler().runTaskTimer(LobbySystem.getPlugin(), () -> { + LobbySystem.getInstance().getLogger().log(Level.INFO, "Loaded " + entities.size() + " team players"); + Bukkit.getScheduler().runTaskTimer(LobbySystem.getInstance(), () -> { Collection active = world.getEntitiesByClass(Villager.class); if (active.size() > entities.size()) { Set duplicates = new HashSet<>(); @@ -109,7 +111,7 @@ public class TeamPlayer extends BasicListener { removed.incrementAndGet(); }); if (added.get() > 0 || removed.get() > 0) { - LobbySystem.getPlugin().getLogger().log(Level.INFO, "Loaded " + added.get() + " team players, removed " + removed.get() + " team players"); + LobbySystem.getInstance().getLogger().log(Level.INFO, "Loaded " + added.get() + " team players, removed " + removed.get() + " team players"); } } world.getEntitiesByClasses(Villager.class).forEach(entity -> { diff --git a/LobbySystem/src/de/steamwar/lobby/util/Leaderboard.java b/LobbySystem/src/de/steamwar/lobby/util/Leaderboard.java index f3182a1c..a8b84f07 100644 --- a/LobbySystem/src/de/steamwar/lobby/util/Leaderboard.java +++ b/LobbySystem/src/de/steamwar/lobby/util/Leaderboard.java @@ -39,7 +39,7 @@ public class Leaderboard implements Listener { this.configKey = configKey; this.location = location; this.best = best; - Bukkit.getPluginManager().registerEvents(this, LobbySystem.getPlugin()); + Bukkit.getPluginManager().registerEvents(this, LobbySystem.getInstance()); update(); }