diff --git a/MissileWars/build.gradle.kts b/MissileWars/build.gradle.kts index f393ea31..36470f84 100644 --- a/MissileWars/build.gradle.kts +++ b/MissileWars/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/MissileWars/src/de/steamwar/misslewars/FightScoreboard.java b/MissileWars/src/de/steamwar/misslewars/FightScoreboard.java index ca217fe2..b8fe1aaa 100644 --- a/MissileWars/src/de/steamwar/misslewars/FightScoreboard.java +++ b/MissileWars/src/de/steamwar/misslewars/FightScoreboard.java @@ -19,6 +19,7 @@ package de.steamwar.misslewars; +import de.steamwar.linkage.Linked; import de.steamwar.scoreboard.SWScoreboard; import de.steamwar.scoreboard.ScoreboardCallback; import org.bukkit.Bukkit; @@ -37,6 +38,7 @@ import java.util.Objects; /** * Modified Version of the Fight-System Scoreboard */ +@Linked class FightScoreboard implements Listener { public FightScoreboard() { diff --git a/MissileWars/src/de/steamwar/misslewars/MissileWars.java b/MissileWars/src/de/steamwar/misslewars/MissileWars.java index 2dab0597..c36dfbb3 100644 --- a/MissileWars/src/de/steamwar/misslewars/MissileWars.java +++ b/MissileWars/src/de/steamwar/misslewars/MissileWars.java @@ -19,18 +19,10 @@ package de.steamwar.misslewars; -import de.steamwar.misslewars.commands.AcceptCommand; -import de.steamwar.misslewars.commands.DeclineCommand; -import de.steamwar.misslewars.commands.InviteCommand; -import de.steamwar.misslewars.commands.SpectateCommand; -import de.steamwar.misslewars.countdowns.EndCountdown; -import de.steamwar.misslewars.countdowns.ItemCountdown; -import de.steamwar.misslewars.countdowns.WaitingCountdown; +import de.steamwar.linkage.AbstractLinker; +import de.steamwar.linkage.SpigotLinker; import de.steamwar.misslewars.items.CustomItem; import de.steamwar.misslewars.items.Missile; -import de.steamwar.misslewars.listener.*; -import de.steamwar.misslewars.listener.special.BarrierListener; -import de.steamwar.misslewars.listener.special.SpaceListener; import de.steamwar.misslewars.slowmo.SlowMoRunner; import de.steamwar.network.NetworkSender; import de.steamwar.network.packets.common.FightEndsPacket; @@ -63,37 +55,26 @@ public class MissileWars extends JavaPlugin { public void onEnable() { redTeam = new MWTeam(Config.TeamRedColor, Config.RedSpawn, Config.TeamRedName, Config.RedPortalZ); blueTeam = new MWTeam(Config.TeamBlueColor, Config.BlueSpawn, Config.TeamBlueName, Config.BluePortalZ); - new BreakListener(); - new DeathListener(); - new ItemListener(); - new ArenaListener(); - new ConnectionListener(); - new JoinListener(); - new EndListener(); - new PortalDestructListener(); - new WaitingListener(); - new FightListener(); - new ChatListener(); - new SpectateCommand(); - // Invitation Commands - new InviteCommand(); - new AcceptCommand(); - new DeclineCommand(); + SpigotLinker spigotLinker = new SpigotLinker(this, null) { + @Override + protected void linkObject(Object any) { + // No Init needed for MissileWars! + } + }; + try { + spigotLinker.link(); + } catch (AbstractLinker.LinkException e) { + e.printStackTrace(); + Bukkit.shutdown(); + return; + } - new WaitingCountdown(); - new ItemCountdown(); - new EndCountdown(); - - new FightScoreboard(); - Missile.init(); + Missile.init(); CustomItem.init(); StateDependent.setupState(fightState); - new BarrierListener(); - new SpaceListener(); - Bukkit.getScheduler().runTaskTimer(this, new FightInfoPacketSender(), 20, 20); Bukkit.getWorlds().forEach(world -> { diff --git a/MissileWars/src/de/steamwar/misslewars/commands/AcceptCommand.java b/MissileWars/src/de/steamwar/misslewars/commands/AcceptCommand.java index 60b4b056..f2cb1069 100644 --- a/MissileWars/src/de/steamwar/misslewars/commands/AcceptCommand.java +++ b/MissileWars/src/de/steamwar/misslewars/commands/AcceptCommand.java @@ -22,12 +22,14 @@ package de.steamwar.misslewars.commands; import de.steamwar.command.SWCommand; import de.steamwar.command.TypeValidator; +import de.steamwar.linkage.Linked; import de.steamwar.misslewars.Config; import de.steamwar.misslewars.MWTeam; import de.steamwar.misslewars.MissileWars; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +@Linked public class AcceptCommand extends SWCommand { public AcceptCommand() { diff --git a/MissileWars/src/de/steamwar/misslewars/commands/DeclineCommand.java b/MissileWars/src/de/steamwar/misslewars/commands/DeclineCommand.java index f0df4aa9..0e0742a2 100644 --- a/MissileWars/src/de/steamwar/misslewars/commands/DeclineCommand.java +++ b/MissileWars/src/de/steamwar/misslewars/commands/DeclineCommand.java @@ -22,12 +22,14 @@ package de.steamwar.misslewars.commands; import de.steamwar.command.SWCommand; import de.steamwar.command.TypeValidator; +import de.steamwar.linkage.Linked; import de.steamwar.misslewars.Config; import de.steamwar.misslewars.MWTeam; import de.steamwar.misslewars.MissileWars; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +@Linked public class DeclineCommand extends SWCommand { public DeclineCommand() { diff --git a/MissileWars/src/de/steamwar/misslewars/commands/InviteCommand.java b/MissileWars/src/de/steamwar/misslewars/commands/InviteCommand.java index b0925723..954a1a34 100644 --- a/MissileWars/src/de/steamwar/misslewars/commands/InviteCommand.java +++ b/MissileWars/src/de/steamwar/misslewars/commands/InviteCommand.java @@ -24,6 +24,7 @@ import de.steamwar.command.PreviousArguments; import de.steamwar.command.SWCommand; import de.steamwar.command.TypeMapper; import de.steamwar.command.TypeValidator; +import de.steamwar.linkage.Linked; import de.steamwar.misslewars.Config; import de.steamwar.misslewars.MWTeam; import de.steamwar.misslewars.MissileWars; @@ -34,6 +35,7 @@ import org.bukkit.entity.Player; import java.util.Collection; import java.util.stream.Collectors; +@Linked public class InviteCommand extends SWCommand { public InviteCommand() { diff --git a/MissileWars/src/de/steamwar/misslewars/commands/SpectateCommand.java b/MissileWars/src/de/steamwar/misslewars/commands/SpectateCommand.java index f70fb063..19c51172 100644 --- a/MissileWars/src/de/steamwar/misslewars/commands/SpectateCommand.java +++ b/MissileWars/src/de/steamwar/misslewars/commands/SpectateCommand.java @@ -22,6 +22,7 @@ package de.steamwar.misslewars.commands; import de.steamwar.command.SWCommand; import de.steamwar.command.TypeValidator; +import de.steamwar.linkage.Linked; import de.steamwar.misslewars.Config; import de.steamwar.misslewars.MWTeam; import de.steamwar.misslewars.MissileWars; @@ -29,6 +30,7 @@ import org.bukkit.GameMode; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +@Linked public class SpectateCommand extends SWCommand { public SpectateCommand() { diff --git a/MissileWars/src/de/steamwar/misslewars/countdowns/EndCountdown.java b/MissileWars/src/de/steamwar/misslewars/countdowns/EndCountdown.java index f2d3183b..5a1dc8d1 100644 --- a/MissileWars/src/de/steamwar/misslewars/countdowns/EndCountdown.java +++ b/MissileWars/src/de/steamwar/misslewars/countdowns/EndCountdown.java @@ -19,6 +19,7 @@ package de.steamwar.misslewars.countdowns; +import de.steamwar.linkage.Linked; import de.steamwar.misslewars.*; import de.steamwar.misslewars.listener.JoinListener; import org.bukkit.Bukkit; @@ -26,6 +27,7 @@ import org.bukkit.scheduler.BukkitTask; import java.util.EnumSet; +@Linked public class EndCountdown extends StateDependent { private BukkitTask task; diff --git a/MissileWars/src/de/steamwar/misslewars/countdowns/ItemCountdown.java b/MissileWars/src/de/steamwar/misslewars/countdowns/ItemCountdown.java index 5270934d..ef66b733 100644 --- a/MissileWars/src/de/steamwar/misslewars/countdowns/ItemCountdown.java +++ b/MissileWars/src/de/steamwar/misslewars/countdowns/ItemCountdown.java @@ -19,6 +19,7 @@ package de.steamwar.misslewars.countdowns; +import de.steamwar.linkage.Linked; import de.steamwar.misslewars.Config; import de.steamwar.misslewars.FightState; import de.steamwar.misslewars.MissileWars; @@ -30,6 +31,7 @@ import org.bukkit.scheduler.BukkitTask; import java.util.EnumSet; +@Linked public class ItemCountdown extends StateDependent { private BukkitTask task; diff --git a/MissileWars/src/de/steamwar/misslewars/countdowns/WaitingCountdown.java b/MissileWars/src/de/steamwar/misslewars/countdowns/WaitingCountdown.java index 57c85f77..3c4b8ddc 100644 --- a/MissileWars/src/de/steamwar/misslewars/countdowns/WaitingCountdown.java +++ b/MissileWars/src/de/steamwar/misslewars/countdowns/WaitingCountdown.java @@ -19,6 +19,7 @@ package de.steamwar.misslewars.countdowns; +import de.steamwar.linkage.Linked; import de.steamwar.misslewars.Config; import de.steamwar.misslewars.FightState; import de.steamwar.misslewars.MissileWars; @@ -28,6 +29,7 @@ import org.bukkit.scheduler.BukkitTask; import java.util.EnumSet; +@Linked public class WaitingCountdown extends StateDependent { private BukkitTask task; diff --git a/MissileWars/src/de/steamwar/misslewars/listener/ArenaListener.java b/MissileWars/src/de/steamwar/misslewars/listener/ArenaListener.java index 4d7a7ecc..4efff8e4 100644 --- a/MissileWars/src/de/steamwar/misslewars/listener/ArenaListener.java +++ b/MissileWars/src/de/steamwar/misslewars/listener/ArenaListener.java @@ -19,6 +19,7 @@ package de.steamwar.misslewars.listener; +import de.steamwar.linkage.Linked; import de.steamwar.misslewars.Config; import de.steamwar.misslewars.FightState; import de.steamwar.misslewars.MWTeam; @@ -40,6 +41,7 @@ import java.util.EnumSet; import java.util.Map; import java.util.Objects; +@Linked public class ArenaListener extends BasicListener { public ArenaListener() { diff --git a/MissileWars/src/de/steamwar/misslewars/listener/BreakListener.java b/MissileWars/src/de/steamwar/misslewars/listener/BreakListener.java index bbaf1a65..fae3c8c3 100644 --- a/MissileWars/src/de/steamwar/misslewars/listener/BreakListener.java +++ b/MissileWars/src/de/steamwar/misslewars/listener/BreakListener.java @@ -21,12 +21,14 @@ package de.steamwar.misslewars.listener; +import de.steamwar.linkage.Linked; import de.steamwar.misslewars.FightState; import org.bukkit.event.EventHandler; import org.bukkit.event.block.BlockBreakEvent; import java.util.EnumSet; +@Linked public class BreakListener extends BasicListener { public BreakListener() { diff --git a/MissileWars/src/de/steamwar/misslewars/listener/ChatListener.java b/MissileWars/src/de/steamwar/misslewars/listener/ChatListener.java index 3e039b7b..f2077032 100644 --- a/MissileWars/src/de/steamwar/misslewars/listener/ChatListener.java +++ b/MissileWars/src/de/steamwar/misslewars/listener/ChatListener.java @@ -19,6 +19,7 @@ package de.steamwar.misslewars.listener; +import de.steamwar.linkage.Linked; import de.steamwar.misslewars.FightState; import de.steamwar.misslewars.MWTeam; import de.steamwar.misslewars.MissileWars; @@ -29,6 +30,7 @@ import org.bukkit.event.player.AsyncPlayerChatEvent; import java.util.EnumSet; +@Linked public class ChatListener extends BasicListener { public ChatListener() { diff --git a/MissileWars/src/de/steamwar/misslewars/listener/ConnectionListener.java b/MissileWars/src/de/steamwar/misslewars/listener/ConnectionListener.java index dab36fa4..9663dbbe 100644 --- a/MissileWars/src/de/steamwar/misslewars/listener/ConnectionListener.java +++ b/MissileWars/src/de/steamwar/misslewars/listener/ConnectionListener.java @@ -19,6 +19,7 @@ package de.steamwar.misslewars.listener; +import de.steamwar.linkage.Linked; import de.steamwar.misslewars.Config; import de.steamwar.misslewars.FightState; import de.steamwar.misslewars.MWTeam; @@ -32,6 +33,7 @@ import org.bukkit.event.player.PlayerQuitEvent; import java.util.EnumSet; +@Linked public class ConnectionListener extends BasicListener{ public ConnectionListener(){ diff --git a/MissileWars/src/de/steamwar/misslewars/listener/DeathListener.java b/MissileWars/src/de/steamwar/misslewars/listener/DeathListener.java index 5e77523a..1f3008e9 100644 --- a/MissileWars/src/de/steamwar/misslewars/listener/DeathListener.java +++ b/MissileWars/src/de/steamwar/misslewars/listener/DeathListener.java @@ -19,6 +19,7 @@ package de.steamwar.misslewars.listener; +import de.steamwar.linkage.Linked; import de.steamwar.misslewars.FightState; import de.steamwar.misslewars.MWTeam; import de.steamwar.misslewars.MissileWars; @@ -38,6 +39,7 @@ import java.util.EnumSet; import java.util.HashSet; import java.util.Set; +@Linked public class DeathListener extends BasicListener { private static final Vector ZERO = new Vector(0, 0, 0); diff --git a/MissileWars/src/de/steamwar/misslewars/listener/EndListener.java b/MissileWars/src/de/steamwar/misslewars/listener/EndListener.java index 14833544..36121665 100644 --- a/MissileWars/src/de/steamwar/misslewars/listener/EndListener.java +++ b/MissileWars/src/de/steamwar/misslewars/listener/EndListener.java @@ -19,6 +19,7 @@ package de.steamwar.misslewars.listener; +import de.steamwar.linkage.Linked; import de.steamwar.misslewars.FightState; import org.bukkit.GameMode; import org.bukkit.event.EventHandler; @@ -26,6 +27,7 @@ import org.bukkit.event.player.PlayerJoinEvent; import java.util.EnumSet; +@Linked public class EndListener extends BasicListener { public EndListener(){ diff --git a/MissileWars/src/de/steamwar/misslewars/listener/FightListener.java b/MissileWars/src/de/steamwar/misslewars/listener/FightListener.java index 7ed369f8..6ce9aaca 100644 --- a/MissileWars/src/de/steamwar/misslewars/listener/FightListener.java +++ b/MissileWars/src/de/steamwar/misslewars/listener/FightListener.java @@ -19,6 +19,7 @@ package de.steamwar.misslewars.listener; +import de.steamwar.linkage.Linked; import de.steamwar.misslewars.FightState; import de.steamwar.misslewars.MissileWars; import org.bukkit.entity.Player; @@ -27,6 +28,7 @@ import org.bukkit.event.entity.EntityDamageByEntityEvent; import java.util.EnumSet; +@Linked public class FightListener extends BasicListener { public FightListener() { diff --git a/MissileWars/src/de/steamwar/misslewars/listener/ItemListener.java b/MissileWars/src/de/steamwar/misslewars/listener/ItemListener.java index 4856dc17..4af2411c 100644 --- a/MissileWars/src/de/steamwar/misslewars/listener/ItemListener.java +++ b/MissileWars/src/de/steamwar/misslewars/listener/ItemListener.java @@ -19,6 +19,7 @@ package de.steamwar.misslewars.listener; +import de.steamwar.linkage.Linked; import de.steamwar.misslewars.FightState; import de.steamwar.misslewars.MWTeam; import de.steamwar.misslewars.MissileWars; @@ -39,6 +40,7 @@ import java.util.EnumSet; import java.util.HashSet; import java.util.Set; +@Linked public class ItemListener extends BasicListener { private Set RED_ITEMS = new HashSet<>(); diff --git a/MissileWars/src/de/steamwar/misslewars/listener/JoinListener.java b/MissileWars/src/de/steamwar/misslewars/listener/JoinListener.java index 5947da8f..4f56cacb 100644 --- a/MissileWars/src/de/steamwar/misslewars/listener/JoinListener.java +++ b/MissileWars/src/de/steamwar/misslewars/listener/JoinListener.java @@ -19,6 +19,7 @@ package de.steamwar.misslewars.listener; +import de.steamwar.linkage.Linked; import de.steamwar.misslewars.Config; import de.steamwar.misslewars.FightState; import de.steamwar.misslewars.MissileWars; @@ -30,6 +31,7 @@ import org.bukkit.event.player.PlayerJoinEvent; import java.util.EnumSet; +@Linked public class JoinListener extends BasicListener { public JoinListener(){ diff --git a/MissileWars/src/de/steamwar/misslewars/listener/PortalDestructListener.java b/MissileWars/src/de/steamwar/misslewars/listener/PortalDestructListener.java index c235ff35..056b7259 100644 --- a/MissileWars/src/de/steamwar/misslewars/listener/PortalDestructListener.java +++ b/MissileWars/src/de/steamwar/misslewars/listener/PortalDestructListener.java @@ -19,6 +19,7 @@ package de.steamwar.misslewars.listener; +import de.steamwar.linkage.Linked; import de.steamwar.misslewars.Config; import de.steamwar.misslewars.FightState; import de.steamwar.misslewars.MissileWars; @@ -31,6 +32,7 @@ import org.bukkit.event.entity.EntityExplodeEvent; import java.util.EnumSet; +@Linked public class PortalDestructListener extends BasicListener { public PortalDestructListener(){ diff --git a/MissileWars/src/de/steamwar/misslewars/listener/WaitingListener.java b/MissileWars/src/de/steamwar/misslewars/listener/WaitingListener.java index 1180edc3..1d9688b3 100644 --- a/MissileWars/src/de/steamwar/misslewars/listener/WaitingListener.java +++ b/MissileWars/src/de/steamwar/misslewars/listener/WaitingListener.java @@ -19,6 +19,7 @@ package de.steamwar.misslewars.listener; +import de.steamwar.linkage.Linked; import de.steamwar.misslewars.FightState; import org.bukkit.Bukkit; import org.bukkit.event.EventHandler; @@ -27,6 +28,7 @@ import org.bukkit.event.player.PlayerQuitEvent; import java.util.EnumSet; +@Linked public class WaitingListener extends BasicListener { public WaitingListener() { super(EnumSet.of(FightState.WAITING)); diff --git a/MissileWars/src/de/steamwar/misslewars/listener/special/BarrierListener.java b/MissileWars/src/de/steamwar/misslewars/listener/special/BarrierListener.java index 5220778c..e4ab3cf4 100644 --- a/MissileWars/src/de/steamwar/misslewars/listener/special/BarrierListener.java +++ b/MissileWars/src/de/steamwar/misslewars/listener/special/BarrierListener.java @@ -21,6 +21,7 @@ package de.steamwar.misslewars.listener.special; +import de.steamwar.linkage.Linked; import de.steamwar.misslewars.Config; import de.steamwar.misslewars.FightState; import de.steamwar.misslewars.listener.BasicListener; @@ -31,6 +32,7 @@ import org.bukkit.event.block.BlockPhysicsEvent; import java.util.EnumSet; +@Linked public class BarrierListener extends BasicListener { public BarrierListener() { diff --git a/MissileWars/src/de/steamwar/misslewars/listener/special/SpaceListener.java b/MissileWars/src/de/steamwar/misslewars/listener/special/SpaceListener.java index 654811ab..d6c06104 100644 --- a/MissileWars/src/de/steamwar/misslewars/listener/special/SpaceListener.java +++ b/MissileWars/src/de/steamwar/misslewars/listener/special/SpaceListener.java @@ -21,6 +21,7 @@ package de.steamwar.misslewars.listener.special; +import de.steamwar.linkage.Linked; import de.steamwar.misslewars.Config; import de.steamwar.misslewars.FightState; import de.steamwar.misslewars.MissileWars; @@ -38,6 +39,7 @@ import org.bukkit.util.Vector; import java.util.EnumSet; +@Linked public class SpaceListener extends BasicListener { public SpaceListener() {