Implement Linkage for MissileWars

This commit is contained in:
2025-10-03 13:30:38 +02:00
parent 33b606060a
commit 91a5da9cd2
23 changed files with 60 additions and 35 deletions
+2
View File
@@ -27,6 +27,8 @@ java {
} }
dependencies { dependencies {
compileOnly(libs.classindex)
annotationProcessor(libs.classindex)
compileOnly(project(":SpigotCore", "default")) compileOnly(project(":SpigotCore", "default"))
compileOnly(libs.spigotapi) compileOnly(libs.spigotapi)
@@ -19,6 +19,7 @@
package de.steamwar.misslewars; package de.steamwar.misslewars;
import de.steamwar.linkage.Linked;
import de.steamwar.scoreboard.SWScoreboard; import de.steamwar.scoreboard.SWScoreboard;
import de.steamwar.scoreboard.ScoreboardCallback; import de.steamwar.scoreboard.ScoreboardCallback;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
@@ -37,6 +38,7 @@ import java.util.Objects;
/** /**
* Modified Version of the Fight-System Scoreboard * Modified Version of the Fight-System Scoreboard
*/ */
@Linked
class FightScoreboard implements Listener { class FightScoreboard implements Listener {
public FightScoreboard() { public FightScoreboard() {
@@ -19,18 +19,10 @@
package de.steamwar.misslewars; package de.steamwar.misslewars;
import de.steamwar.misslewars.commands.AcceptCommand; import de.steamwar.linkage.AbstractLinker;
import de.steamwar.misslewars.commands.DeclineCommand; import de.steamwar.linkage.SpigotLinker;
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.misslewars.items.CustomItem; import de.steamwar.misslewars.items.CustomItem;
import de.steamwar.misslewars.items.Missile; 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.misslewars.slowmo.SlowMoRunner;
import de.steamwar.network.NetworkSender; import de.steamwar.network.NetworkSender;
import de.steamwar.network.packets.common.FightEndsPacket; import de.steamwar.network.packets.common.FightEndsPacket;
@@ -63,37 +55,26 @@ public class MissileWars extends JavaPlugin {
public void onEnable() { public void onEnable() {
redTeam = new MWTeam(Config.TeamRedColor, Config.RedSpawn, Config.TeamRedName, Config.RedPortalZ); redTeam = new MWTeam(Config.TeamRedColor, Config.RedSpawn, Config.TeamRedName, Config.RedPortalZ);
blueTeam = new MWTeam(Config.TeamBlueColor, Config.BlueSpawn, Config.TeamBlueName, Config.BluePortalZ); 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 SpigotLinker spigotLinker = new SpigotLinker(this, null) {
new InviteCommand(); @Override
new AcceptCommand(); protected void linkObject(Object any) {
new DeclineCommand(); // No Init needed for MissileWars!
}
};
try {
spigotLinker.link();
} catch (AbstractLinker.LinkException e) {
e.printStackTrace();
Bukkit.shutdown();
return;
}
new WaitingCountdown(); Missile.init();
new ItemCountdown();
new EndCountdown();
new FightScoreboard();
Missile.init();
CustomItem.init(); CustomItem.init();
StateDependent.setupState(fightState); StateDependent.setupState(fightState);
new BarrierListener();
new SpaceListener();
Bukkit.getScheduler().runTaskTimer(this, new FightInfoPacketSender(), 20, 20); Bukkit.getScheduler().runTaskTimer(this, new FightInfoPacketSender(), 20, 20);
Bukkit.getWorlds().forEach(world -> { Bukkit.getWorlds().forEach(world -> {
@@ -22,12 +22,14 @@ package de.steamwar.misslewars.commands;
import de.steamwar.command.SWCommand; import de.steamwar.command.SWCommand;
import de.steamwar.command.TypeValidator; import de.steamwar.command.TypeValidator;
import de.steamwar.linkage.Linked;
import de.steamwar.misslewars.Config; import de.steamwar.misslewars.Config;
import de.steamwar.misslewars.MWTeam; import de.steamwar.misslewars.MWTeam;
import de.steamwar.misslewars.MissileWars; import de.steamwar.misslewars.MissileWars;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@Linked
public class AcceptCommand extends SWCommand { public class AcceptCommand extends SWCommand {
public AcceptCommand() { public AcceptCommand() {
@@ -22,12 +22,14 @@ package de.steamwar.misslewars.commands;
import de.steamwar.command.SWCommand; import de.steamwar.command.SWCommand;
import de.steamwar.command.TypeValidator; import de.steamwar.command.TypeValidator;
import de.steamwar.linkage.Linked;
import de.steamwar.misslewars.Config; import de.steamwar.misslewars.Config;
import de.steamwar.misslewars.MWTeam; import de.steamwar.misslewars.MWTeam;
import de.steamwar.misslewars.MissileWars; import de.steamwar.misslewars.MissileWars;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@Linked
public class DeclineCommand extends SWCommand { public class DeclineCommand extends SWCommand {
public DeclineCommand() { public DeclineCommand() {
@@ -24,6 +24,7 @@ import de.steamwar.command.PreviousArguments;
import de.steamwar.command.SWCommand; import de.steamwar.command.SWCommand;
import de.steamwar.command.TypeMapper; import de.steamwar.command.TypeMapper;
import de.steamwar.command.TypeValidator; import de.steamwar.command.TypeValidator;
import de.steamwar.linkage.Linked;
import de.steamwar.misslewars.Config; import de.steamwar.misslewars.Config;
import de.steamwar.misslewars.MWTeam; import de.steamwar.misslewars.MWTeam;
import de.steamwar.misslewars.MissileWars; import de.steamwar.misslewars.MissileWars;
@@ -34,6 +35,7 @@ import org.bukkit.entity.Player;
import java.util.Collection; import java.util.Collection;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@Linked
public class InviteCommand extends SWCommand { public class InviteCommand extends SWCommand {
public InviteCommand() { public InviteCommand() {
@@ -22,6 +22,7 @@ package de.steamwar.misslewars.commands;
import de.steamwar.command.SWCommand; import de.steamwar.command.SWCommand;
import de.steamwar.command.TypeValidator; import de.steamwar.command.TypeValidator;
import de.steamwar.linkage.Linked;
import de.steamwar.misslewars.Config; import de.steamwar.misslewars.Config;
import de.steamwar.misslewars.MWTeam; import de.steamwar.misslewars.MWTeam;
import de.steamwar.misslewars.MissileWars; import de.steamwar.misslewars.MissileWars;
@@ -29,6 +30,7 @@ import org.bukkit.GameMode;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@Linked
public class SpectateCommand extends SWCommand { public class SpectateCommand extends SWCommand {
public SpectateCommand() { public SpectateCommand() {
@@ -19,6 +19,7 @@
package de.steamwar.misslewars.countdowns; package de.steamwar.misslewars.countdowns;
import de.steamwar.linkage.Linked;
import de.steamwar.misslewars.*; import de.steamwar.misslewars.*;
import de.steamwar.misslewars.listener.JoinListener; import de.steamwar.misslewars.listener.JoinListener;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
@@ -26,6 +27,7 @@ import org.bukkit.scheduler.BukkitTask;
import java.util.EnumSet; import java.util.EnumSet;
@Linked
public class EndCountdown extends StateDependent { public class EndCountdown extends StateDependent {
private BukkitTask task; private BukkitTask task;
@@ -19,6 +19,7 @@
package de.steamwar.misslewars.countdowns; package de.steamwar.misslewars.countdowns;
import de.steamwar.linkage.Linked;
import de.steamwar.misslewars.Config; import de.steamwar.misslewars.Config;
import de.steamwar.misslewars.FightState; import de.steamwar.misslewars.FightState;
import de.steamwar.misslewars.MissileWars; import de.steamwar.misslewars.MissileWars;
@@ -30,6 +31,7 @@ import org.bukkit.scheduler.BukkitTask;
import java.util.EnumSet; import java.util.EnumSet;
@Linked
public class ItemCountdown extends StateDependent { public class ItemCountdown extends StateDependent {
private BukkitTask task; private BukkitTask task;
@@ -19,6 +19,7 @@
package de.steamwar.misslewars.countdowns; package de.steamwar.misslewars.countdowns;
import de.steamwar.linkage.Linked;
import de.steamwar.misslewars.Config; import de.steamwar.misslewars.Config;
import de.steamwar.misslewars.FightState; import de.steamwar.misslewars.FightState;
import de.steamwar.misslewars.MissileWars; import de.steamwar.misslewars.MissileWars;
@@ -28,6 +29,7 @@ import org.bukkit.scheduler.BukkitTask;
import java.util.EnumSet; import java.util.EnumSet;
@Linked
public class WaitingCountdown extends StateDependent { public class WaitingCountdown extends StateDependent {
private BukkitTask task; private BukkitTask task;
@@ -19,6 +19,7 @@
package de.steamwar.misslewars.listener; package de.steamwar.misslewars.listener;
import de.steamwar.linkage.Linked;
import de.steamwar.misslewars.Config; import de.steamwar.misslewars.Config;
import de.steamwar.misslewars.FightState; import de.steamwar.misslewars.FightState;
import de.steamwar.misslewars.MWTeam; import de.steamwar.misslewars.MWTeam;
@@ -40,6 +41,7 @@ import java.util.EnumSet;
import java.util.Map; import java.util.Map;
import java.util.Objects; import java.util.Objects;
@Linked
public class ArenaListener extends BasicListener { public class ArenaListener extends BasicListener {
public ArenaListener() { public ArenaListener() {
@@ -21,12 +21,14 @@
package de.steamwar.misslewars.listener; package de.steamwar.misslewars.listener;
import de.steamwar.linkage.Linked;
import de.steamwar.misslewars.FightState; import de.steamwar.misslewars.FightState;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.block.BlockBreakEvent; import org.bukkit.event.block.BlockBreakEvent;
import java.util.EnumSet; import java.util.EnumSet;
@Linked
public class BreakListener extends BasicListener { public class BreakListener extends BasicListener {
public BreakListener() { public BreakListener() {
@@ -19,6 +19,7 @@
package de.steamwar.misslewars.listener; package de.steamwar.misslewars.listener;
import de.steamwar.linkage.Linked;
import de.steamwar.misslewars.FightState; import de.steamwar.misslewars.FightState;
import de.steamwar.misslewars.MWTeam; import de.steamwar.misslewars.MWTeam;
import de.steamwar.misslewars.MissileWars; import de.steamwar.misslewars.MissileWars;
@@ -29,6 +30,7 @@ import org.bukkit.event.player.AsyncPlayerChatEvent;
import java.util.EnumSet; import java.util.EnumSet;
@Linked
public class ChatListener extends BasicListener { public class ChatListener extends BasicListener {
public ChatListener() { public ChatListener() {
@@ -19,6 +19,7 @@
package de.steamwar.misslewars.listener; package de.steamwar.misslewars.listener;
import de.steamwar.linkage.Linked;
import de.steamwar.misslewars.Config; import de.steamwar.misslewars.Config;
import de.steamwar.misslewars.FightState; import de.steamwar.misslewars.FightState;
import de.steamwar.misslewars.MWTeam; import de.steamwar.misslewars.MWTeam;
@@ -32,6 +33,7 @@ import org.bukkit.event.player.PlayerQuitEvent;
import java.util.EnumSet; import java.util.EnumSet;
@Linked
public class ConnectionListener extends BasicListener{ public class ConnectionListener extends BasicListener{
public ConnectionListener(){ public ConnectionListener(){
@@ -19,6 +19,7 @@
package de.steamwar.misslewars.listener; package de.steamwar.misslewars.listener;
import de.steamwar.linkage.Linked;
import de.steamwar.misslewars.FightState; import de.steamwar.misslewars.FightState;
import de.steamwar.misslewars.MWTeam; import de.steamwar.misslewars.MWTeam;
import de.steamwar.misslewars.MissileWars; import de.steamwar.misslewars.MissileWars;
@@ -38,6 +39,7 @@ import java.util.EnumSet;
import java.util.HashSet; import java.util.HashSet;
import java.util.Set; import java.util.Set;
@Linked
public class DeathListener extends BasicListener { public class DeathListener extends BasicListener {
private static final Vector ZERO = new Vector(0, 0, 0); private static final Vector ZERO = new Vector(0, 0, 0);
@@ -19,6 +19,7 @@
package de.steamwar.misslewars.listener; package de.steamwar.misslewars.listener;
import de.steamwar.linkage.Linked;
import de.steamwar.misslewars.FightState; import de.steamwar.misslewars.FightState;
import org.bukkit.GameMode; import org.bukkit.GameMode;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
@@ -26,6 +27,7 @@ import org.bukkit.event.player.PlayerJoinEvent;
import java.util.EnumSet; import java.util.EnumSet;
@Linked
public class EndListener extends BasicListener { public class EndListener extends BasicListener {
public EndListener(){ public EndListener(){
@@ -19,6 +19,7 @@
package de.steamwar.misslewars.listener; package de.steamwar.misslewars.listener;
import de.steamwar.linkage.Linked;
import de.steamwar.misslewars.FightState; import de.steamwar.misslewars.FightState;
import de.steamwar.misslewars.MissileWars; import de.steamwar.misslewars.MissileWars;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@@ -27,6 +28,7 @@ import org.bukkit.event.entity.EntityDamageByEntityEvent;
import java.util.EnumSet; import java.util.EnumSet;
@Linked
public class FightListener extends BasicListener { public class FightListener extends BasicListener {
public FightListener() { public FightListener() {
@@ -19,6 +19,7 @@
package de.steamwar.misslewars.listener; package de.steamwar.misslewars.listener;
import de.steamwar.linkage.Linked;
import de.steamwar.misslewars.FightState; import de.steamwar.misslewars.FightState;
import de.steamwar.misslewars.MWTeam; import de.steamwar.misslewars.MWTeam;
import de.steamwar.misslewars.MissileWars; import de.steamwar.misslewars.MissileWars;
@@ -39,6 +40,7 @@ import java.util.EnumSet;
import java.util.HashSet; import java.util.HashSet;
import java.util.Set; import java.util.Set;
@Linked
public class ItemListener extends BasicListener { public class ItemListener extends BasicListener {
private Set<Integer> RED_ITEMS = new HashSet<>(); private Set<Integer> RED_ITEMS = new HashSet<>();
@@ -19,6 +19,7 @@
package de.steamwar.misslewars.listener; package de.steamwar.misslewars.listener;
import de.steamwar.linkage.Linked;
import de.steamwar.misslewars.Config; import de.steamwar.misslewars.Config;
import de.steamwar.misslewars.FightState; import de.steamwar.misslewars.FightState;
import de.steamwar.misslewars.MissileWars; import de.steamwar.misslewars.MissileWars;
@@ -30,6 +31,7 @@ import org.bukkit.event.player.PlayerJoinEvent;
import java.util.EnumSet; import java.util.EnumSet;
@Linked
public class JoinListener extends BasicListener { public class JoinListener extends BasicListener {
public JoinListener(){ public JoinListener(){
@@ -19,6 +19,7 @@
package de.steamwar.misslewars.listener; package de.steamwar.misslewars.listener;
import de.steamwar.linkage.Linked;
import de.steamwar.misslewars.Config; import de.steamwar.misslewars.Config;
import de.steamwar.misslewars.FightState; import de.steamwar.misslewars.FightState;
import de.steamwar.misslewars.MissileWars; import de.steamwar.misslewars.MissileWars;
@@ -31,6 +32,7 @@ import org.bukkit.event.entity.EntityExplodeEvent;
import java.util.EnumSet; import java.util.EnumSet;
@Linked
public class PortalDestructListener extends BasicListener { public class PortalDestructListener extends BasicListener {
public PortalDestructListener(){ public PortalDestructListener(){
@@ -19,6 +19,7 @@
package de.steamwar.misslewars.listener; package de.steamwar.misslewars.listener;
import de.steamwar.linkage.Linked;
import de.steamwar.misslewars.FightState; import de.steamwar.misslewars.FightState;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
@@ -27,6 +28,7 @@ import org.bukkit.event.player.PlayerQuitEvent;
import java.util.EnumSet; import java.util.EnumSet;
@Linked
public class WaitingListener extends BasicListener { public class WaitingListener extends BasicListener {
public WaitingListener() { public WaitingListener() {
super(EnumSet.of(FightState.WAITING)); super(EnumSet.of(FightState.WAITING));
@@ -21,6 +21,7 @@
package de.steamwar.misslewars.listener.special; package de.steamwar.misslewars.listener.special;
import de.steamwar.linkage.Linked;
import de.steamwar.misslewars.Config; import de.steamwar.misslewars.Config;
import de.steamwar.misslewars.FightState; import de.steamwar.misslewars.FightState;
import de.steamwar.misslewars.listener.BasicListener; import de.steamwar.misslewars.listener.BasicListener;
@@ -31,6 +32,7 @@ import org.bukkit.event.block.BlockPhysicsEvent;
import java.util.EnumSet; import java.util.EnumSet;
@Linked
public class BarrierListener extends BasicListener { public class BarrierListener extends BasicListener {
public BarrierListener() { public BarrierListener() {
@@ -21,6 +21,7 @@
package de.steamwar.misslewars.listener.special; package de.steamwar.misslewars.listener.special;
import de.steamwar.linkage.Linked;
import de.steamwar.misslewars.Config; import de.steamwar.misslewars.Config;
import de.steamwar.misslewars.FightState; import de.steamwar.misslewars.FightState;
import de.steamwar.misslewars.MissileWars; import de.steamwar.misslewars.MissileWars;
@@ -38,6 +39,7 @@ import org.bukkit.util.Vector;
import java.util.EnumSet; import java.util.EnumSet;
@Linked
public class SpaceListener extends BasicListener { public class SpaceListener extends BasicListener {
public SpaceListener() { public SpaceListener() {