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
@@ -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() {
@@ -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 -> {
@@ -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() {
@@ -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() {
@@ -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() {
@@ -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() {
@@ -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;
@@ -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;
@@ -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;
@@ -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() {
@@ -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() {
@@ -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() {
@@ -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(){
@@ -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);
@@ -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(){
@@ -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() {
@@ -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<Integer> RED_ITEMS = new HashSet<>();
@@ -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(){
@@ -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(){
@@ -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));
@@ -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() {
@@ -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() {