diff --git a/SpigotCore/SpigotCore_Main/build.gradle.kts b/SpigotCore/SpigotCore_Main/build.gradle.kts index cc941d8c..bc0ff779 100644 --- a/SpigotCore/SpigotCore_Main/build.gradle.kts +++ b/SpigotCore/SpigotCore_Main/build.gradle.kts @@ -26,6 +26,8 @@ tasks.compileJava { } dependencies { + compileOnly(libs.classindex) + annotationProcessor(libs.classindex) compileOnly(project(":CommonCore", "default")) compileOnly(project(":CommandFramework", "default")) compileOnly(project(":SpigotCore:CRIUDummy", "default")) diff --git a/Teamserver/build.gradle.kts b/Teamserver/build.gradle.kts index 44d3e49d..c0e5c933 100644 --- a/Teamserver/build.gradle.kts +++ b/Teamserver/build.gradle.kts @@ -22,6 +22,8 @@ plugins { } dependencies { + compileOnly(libs.classindex) + annotationProcessor(libs.classindex) compileOnly(project(":SpigotCore", "default")) compileOnly(libs.spigotapi) diff --git a/Teamserver/src/de/steamwar/teamserver/Builder.java b/Teamserver/src/de/steamwar/teamserver/Builder.java index 94dadf8a..3400ff98 100644 --- a/Teamserver/src/de/steamwar/teamserver/Builder.java +++ b/Teamserver/src/de/steamwar/teamserver/Builder.java @@ -19,14 +19,10 @@ package de.steamwar.teamserver; -import de.steamwar.core.Core; import de.steamwar.core.WorldEditRendererCUIEditor; +import de.steamwar.linkage.AbstractLinker; +import de.steamwar.linkage.SpigotLinker; import de.steamwar.message.Message; -import de.steamwar.teamserver.command.*; -import de.steamwar.teamserver.listener.AxiomHandshakeListener; -import de.steamwar.teamserver.listener.FreezeListener; -import de.steamwar.teamserver.listener.PlayerChange; -import de.steamwar.teamserver.listener.SelectAdjacent; import org.bukkit.Bukkit; import org.bukkit.GameRule; import org.bukkit.plugin.java.JavaPlugin; @@ -45,27 +41,17 @@ public final class Builder extends JavaPlugin { MESSAGE = new Message("de.steamwar.teamserver.Teamserver", getClassLoader()); - new GamemodeCommand(); - new SpeedCommand(); - new FreezeCommand(); - new ArenaconfigCommand(); - - if (Bukkit.getPluginManager().getPlugin("AxiomPaper") != null) { - Bukkit.getPluginManager().registerEvents(new AxiomHandshakeListener(), this); + SpigotLinker spigotLinker = new SpigotLinker(this, MESSAGE); + try { + spigotLinker.link(); + } catch (AbstractLinker.LinkException e) { + e.printStackTrace(); + Bukkit.shutdown(); + return; } - Bukkit.getPluginManager().registerEvents(new PlayerChange(), this); - Bukkit.getPluginManager().registerEvents(new FreezeListener(), this); - - MaterialCommand materialCommand = new MaterialCommand(); - Bukkit.getPluginManager().registerEvents(materialCommand, this); - Bukkit.getWorlds().get(0).setGameRule(GameRule.REDUCED_DEBUG_INFO, false); new WorldEditRendererCUIEditor(); - - if (Core.getVersion() >= 20) { - Bukkit.getPluginManager().registerEvents(new SelectAdjacent(), this); - } } @Override diff --git a/Teamserver/src/de/steamwar/teamserver/command/ArenaconfigCommand.java b/Teamserver/src/de/steamwar/teamserver/command/ArenaconfigCommand.java index 6851610c..23d7fa4e 100644 --- a/Teamserver/src/de/steamwar/teamserver/command/ArenaconfigCommand.java +++ b/Teamserver/src/de/steamwar/teamserver/command/ArenaconfigCommand.java @@ -26,6 +26,7 @@ import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.regions.CuboidRegion; import com.sk89q.worldedit.regions.RegionSelector; import de.steamwar.command.SWCommand; +import de.steamwar.linkage.Linked; import de.steamwar.teamserver.Builder; import org.bukkit.Bukkit; import org.bukkit.configuration.file.YamlConfiguration; @@ -34,6 +35,7 @@ import org.bukkit.entity.Player; import java.io.File; import java.io.IOException; +@Linked public class ArenaconfigCommand extends SWCommand { public ArenaconfigCommand() { diff --git a/Teamserver/src/de/steamwar/teamserver/command/FreezeCommand.java b/Teamserver/src/de/steamwar/teamserver/command/FreezeCommand.java index 814069c4..91692877 100644 --- a/Teamserver/src/de/steamwar/teamserver/command/FreezeCommand.java +++ b/Teamserver/src/de/steamwar/teamserver/command/FreezeCommand.java @@ -20,12 +20,14 @@ package de.steamwar.teamserver.command; import de.steamwar.command.SWCommand; +import de.steamwar.linkage.Linked; import de.steamwar.teamserver.Builder; import de.steamwar.teamserver.listener.FreezeListener; import net.md_5.bungee.api.ChatMessageType; import org.bukkit.Bukkit; import org.bukkit.entity.Player; +@Linked public class FreezeCommand extends SWCommand { public FreezeCommand() { diff --git a/Teamserver/src/de/steamwar/teamserver/command/GamemodeCommand.java b/Teamserver/src/de/steamwar/teamserver/command/GamemodeCommand.java index ed4fc4ff..93b35455 100644 --- a/Teamserver/src/de/steamwar/teamserver/command/GamemodeCommand.java +++ b/Teamserver/src/de/steamwar/teamserver/command/GamemodeCommand.java @@ -20,9 +20,11 @@ package de.steamwar.teamserver.command; import de.steamwar.command.SWCommand; +import de.steamwar.linkage.Linked; import org.bukkit.GameMode; import org.bukkit.entity.Player; +@Linked public class GamemodeCommand extends SWCommand { public GamemodeCommand() { diff --git a/Teamserver/src/de/steamwar/teamserver/command/MaterialCommand.java b/Teamserver/src/de/steamwar/teamserver/command/MaterialCommand.java index 808a5469..13c26699 100644 --- a/Teamserver/src/de/steamwar/teamserver/command/MaterialCommand.java +++ b/Teamserver/src/de/steamwar/teamserver/command/MaterialCommand.java @@ -25,6 +25,7 @@ import de.steamwar.inventory.SWAnvilInv; import de.steamwar.inventory.SWInventory; import de.steamwar.inventory.SWItem; import de.steamwar.inventory.SWListInv; +import de.steamwar.linkage.Linked; import de.steamwar.teamserver.Builder; import org.bukkit.Material; import org.bukkit.block.data.BlockData; @@ -41,6 +42,7 @@ import java.util.List; import java.util.Map; import java.util.regex.Pattern; +@Linked public class MaterialCommand extends SWCommand implements Listener { public MaterialCommand() { diff --git a/Teamserver/src/de/steamwar/teamserver/command/SpeedCommand.java b/Teamserver/src/de/steamwar/teamserver/command/SpeedCommand.java index 412886fd..2b22626f 100644 --- a/Teamserver/src/de/steamwar/teamserver/command/SpeedCommand.java +++ b/Teamserver/src/de/steamwar/teamserver/command/SpeedCommand.java @@ -20,8 +20,10 @@ package de.steamwar.teamserver.command; import de.steamwar.command.SWCommand; +import de.steamwar.linkage.Linked; import org.bukkit.entity.Player; +@Linked public class SpeedCommand extends SWCommand { public SpeedCommand() { diff --git a/Teamserver/src/de/steamwar/teamserver/listener/AxiomHandshakeListener.java b/Teamserver/src/de/steamwar/teamserver/listener/AxiomHandshakeListener.java index b68e6fcf..21fae69f 100644 --- a/Teamserver/src/de/steamwar/teamserver/listener/AxiomHandshakeListener.java +++ b/Teamserver/src/de/steamwar/teamserver/listener/AxiomHandshakeListener.java @@ -20,9 +20,13 @@ package de.steamwar.teamserver.listener; import com.moulberry.axiom.event.AxiomHandshakeEvent; +import de.steamwar.linkage.Linked; +import de.steamwar.linkage.PluginCheck; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; +@Linked +@PluginCheck("AxiomPaper") public class AxiomHandshakeListener implements Listener { @EventHandler diff --git a/Teamserver/src/de/steamwar/teamserver/listener/FreezeListener.java b/Teamserver/src/de/steamwar/teamserver/listener/FreezeListener.java index 7d576d2f..575cb513 100644 --- a/Teamserver/src/de/steamwar/teamserver/listener/FreezeListener.java +++ b/Teamserver/src/de/steamwar/teamserver/listener/FreezeListener.java @@ -21,6 +21,7 @@ package de.steamwar.teamserver.listener; import de.steamwar.core.Core; import de.steamwar.core.TrickyTrialsWrapper; +import de.steamwar.linkage.Linked; import de.steamwar.teamserver.Builder; import net.md_5.bungee.api.ChatMessageType; import net.md_5.bungee.api.chat.BaseComponent; @@ -39,6 +40,7 @@ import org.bukkit.event.entity.EntitySpawnEvent; import org.bukkit.event.inventory.InventoryMoveItemEvent; import org.bukkit.event.player.PlayerInteractEvent; +@Linked public class FreezeListener implements Listener { public static boolean freeze = true; diff --git a/Teamserver/src/de/steamwar/teamserver/listener/PlayerChange.java b/Teamserver/src/de/steamwar/teamserver/listener/PlayerChange.java index 63016c00..71493f64 100644 --- a/Teamserver/src/de/steamwar/teamserver/listener/PlayerChange.java +++ b/Teamserver/src/de/steamwar/teamserver/listener/PlayerChange.java @@ -19,12 +19,14 @@ package de.steamwar.teamserver.listener; +import de.steamwar.linkage.Linked; import org.bukkit.Bukkit; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerQuitEvent; +@Linked public class PlayerChange implements Listener { @EventHandler diff --git a/Teamserver/src/de/steamwar/teamserver/listener/SelectAdjacent.java b/Teamserver/src/de/steamwar/teamserver/listener/SelectAdjacent.java index 2fbebbf3..6a94f635 100644 --- a/Teamserver/src/de/steamwar/teamserver/listener/SelectAdjacent.java +++ b/Teamserver/src/de/steamwar/teamserver/listener/SelectAdjacent.java @@ -25,6 +25,8 @@ import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.regions.selector.CuboidRegionSelector; import com.sk89q.worldedit.world.World; import de.steamwar.core.WorldEditRenderer; +import de.steamwar.linkage.Linked; +import de.steamwar.linkage.MinVersion; import de.steamwar.teamserver.Builder; import org.bukkit.Bukkit; import org.bukkit.Location; @@ -43,6 +45,8 @@ import org.bukkit.util.Vector; import java.util.*; import java.util.function.Predicate; +@Linked +@MinVersion(20) public class SelectAdjacent implements Listener { private Vector[] FACES = {