Implement Linkage for LobbySystem

This commit is contained in:
2025-10-03 13:23:33 +02:00
parent 22d1e15ae0
commit 33b606060a
37 changed files with 111 additions and 111 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)
@@ -67,6 +67,6 @@ public class Config {
yml.set("waitingHallSpawn", waitingHallSpawn); yml.set("waitingHallSpawn", waitingHallSpawn);
yml.set("jumpPoints", JumpAndRun.actualPoints); yml.set("jumpPoints", JumpAndRun.actualPoints);
LobbySystem.getPlugin().saveConfig(); LobbySystem.getInstance().saveConfig();
} }
} }
@@ -33,7 +33,7 @@ public class Fightserver {
private static final Map<String, Fightserver> servers = new HashMap<>(); private static final Map<String, Fightserver> servers = new HashMap<>();
public static void init() { 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) { public static void newFightInfo(FightInfoPacket in) {
@@ -19,6 +19,7 @@
package de.steamwar.lobby; package de.steamwar.lobby;
import de.steamwar.linkage.Linked;
import de.steamwar.lobby.jumpandrun.JumpAndRun; import de.steamwar.lobby.jumpandrun.JumpAndRun;
import de.steamwar.network.packets.PacketHandler; import de.steamwar.network.packets.PacketHandler;
import de.steamwar.network.packets.common.FightInfoPacket; import de.steamwar.network.packets.common.FightInfoPacket;
@@ -30,6 +31,7 @@ import org.bukkit.event.player.PlayerTeleportEvent;
import java.util.Objects; import java.util.Objects;
@Linked
public class LobbyPacketHandler extends PacketHandler { public class LobbyPacketHandler extends PacketHandler {
@Handler @Handler
@@ -21,18 +21,12 @@ package de.steamwar.lobby;
import de.steamwar.core.Core; import de.steamwar.core.Core;
import de.steamwar.entity.REntityServer; import de.steamwar.entity.REntityServer;
import de.steamwar.lobby.command.FlyCommand; import de.steamwar.linkage.AbstractLinker;
import de.steamwar.lobby.command.HologramCommand; import de.steamwar.linkage.SpigotLinker;
import de.steamwar.lobby.command.ModifyCommand; import de.steamwar.lobby.listener.AlphaWall;
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.lobby.map.CustomMap; 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 de.steamwar.message.Message;
import org.bukkit.Bukkit;
import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.plugin.java.JavaPlugin;
public class LobbySystem extends JavaPlugin { public class LobbySystem extends JavaPlugin {
@@ -43,6 +37,8 @@ public class LobbySystem extends JavaPlugin {
private static REntityServer entityServer; private static REntityServer entityServer;
private static REntityServer debugEntityServer; private static REntityServer debugEntityServer;
private static SpigotLinker spigotLinker;
@Override @Override
public void onLoad() { public void onLoad() {
plugin = this; plugin = this;
@@ -56,43 +52,32 @@ public class LobbySystem extends JavaPlugin {
Core.setServerName("Lobby"); Core.setServerName("Lobby");
CustomMap.init(); CustomMap.init();
Fightserver.init(); Fightserver.init();
new Portals();
new PortalCommand();
new HologramCommand();
new FlyCommand();
new ModifyCommand();
new JumpAndRun();
new JumpAndRunCommand();
config = new Config(getConfig()); config = new Config(getConfig());
new PlayerSpawn(); spigotLinker = new SpigotLinker(this, message);
new DoubleJumpListener(); try {
new ParticleListener(); spigotLinker.link();
new InventoryInteraction(); } catch (AbstractLinker.LinkException e) {
new WorldInteraction(); e.printStackTrace();
new PlayerSeatListener(); Bukkit.shutdown();
new MapsRotateListener(); return;
new TeleporterListener(); }
new TeamPlayer();
// EggHunt.init(); // EggHunt.init();
AdventsCalendar.init();
new AlphaWall(l -> l.getX() > 999, AlphaWall.REFLECT_X); new AlphaWall(l -> l.getX() > 999, AlphaWall.REFLECT_X);
new AlphaWall(l -> l.getX() < 2977, 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() > 892, AlphaWall.REFLECT_Z);
new AlphaWall(l -> l.getZ() < 1794, AlphaWall.REFLECT_Z); new AlphaWall(l -> l.getZ() < 1794, AlphaWall.REFLECT_Z);
new LobbyPacketHandler().register();
} }
@Override @Override
public void onDisable() { public void onDisable() {
spigotLinker.unlink();
} }
public static LobbySystem getPlugin() { public static LobbySystem getInstance() {
return plugin; return plugin;
} }
@@ -136,7 +136,7 @@ public class BoatRace implements EventListener, Listener {
// boat.setBoatType(Boat.Type.values()[new Random().nextInt(Boat.Type.values().length)]); // boat.setBoatType(Boat.Type.values()[new Random().nextInt(Boat.Type.values().length)]);
boat.addPassenger(player); boat.addPassenger(player);
bossBar = Bukkit.createBossBar("", BarColor.BLUE, BarStyle.SOLID); bossBar = Bukkit.createBossBar("", BarColor.BLUE, BarStyle.SOLID);
task = Bukkit.getScheduler().runTaskTimer(LobbySystem.getPlugin(), () -> { task = Bukkit.getScheduler().runTaskTimer(LobbySystem.getInstance(), () -> {
hasBacked = false; hasBacked = false;
if (nextCheckpoint != 0) { if (nextCheckpoint != 0) {
double kmh = lastDistance * 20 * 3.6; 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)); bossBar.setTitle(LobbySystem.getMessage().parse("BOAT_RACE_TITLE", player, nextCheckpoint, renderTime(System.currentTimeMillis() - startTime), (int) kmh));
} }
}, 0, 1); }, 0, 1);
Bukkit.getPluginManager().registerEvents(this, LobbySystem.getPlugin()); Bukkit.getPluginManager().registerEvents(this, LobbySystem.getInstance());
} }
private boolean inRegion(Player p, Location loc1, Location loc2) { private boolean inRegion(Player p, Location loc1, Location loc2) {
@@ -20,11 +20,13 @@
package de.steamwar.lobby.command; package de.steamwar.lobby.command;
import de.steamwar.command.SWCommand; import de.steamwar.command.SWCommand;
import de.steamwar.linkage.Linked;
import de.steamwar.lobby.util.LobbyPlayer; import de.steamwar.lobby.util.LobbyPlayer;
import de.steamwar.sql.SteamwarUser; import de.steamwar.sql.SteamwarUser;
import de.steamwar.sql.UserPerm; import de.steamwar.sql.UserPerm;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@Linked
public class FlyCommand extends SWCommand { public class FlyCommand extends SWCommand {
public FlyCommand() { public FlyCommand() {
@@ -20,10 +20,12 @@
package de.steamwar.lobby.command; package de.steamwar.lobby.command;
import de.steamwar.command.SWCommand; import de.steamwar.command.SWCommand;
import de.steamwar.linkage.Linked;
import de.steamwar.lobby.LobbySystem; import de.steamwar.lobby.LobbySystem;
import de.steamwar.lobby.display.Hologram; import de.steamwar.lobby.display.Hologram;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@Linked
public class HologramCommand extends SWCommand { public class HologramCommand extends SWCommand {
public HologramCommand() { public HologramCommand() {
@@ -20,6 +20,7 @@
package de.steamwar.lobby.command; package de.steamwar.lobby.command;
import de.steamwar.command.SWCommand; import de.steamwar.command.SWCommand;
import de.steamwar.linkage.Linked;
import de.steamwar.lobby.LobbySystem; import de.steamwar.lobby.LobbySystem;
import de.steamwar.lobby.listener.PlayerSpawn; import de.steamwar.lobby.listener.PlayerSpawn;
import de.steamwar.sql.SteamwarUser; import de.steamwar.sql.SteamwarUser;
@@ -35,6 +36,7 @@ import org.bukkit.event.player.PlayerQuitEvent;
import java.util.HashSet; import java.util.HashSet;
import java.util.Set; import java.util.Set;
@Linked
public class ModifyCommand extends SWCommand implements Listener { public class ModifyCommand extends SWCommand implements Listener {
private static final Set<HumanEntity> modifying = new HashSet<>(); private static final Set<HumanEntity> modifying = new HashSet<>();
@@ -45,7 +47,7 @@ public class ModifyCommand extends SWCommand implements Listener {
public ModifyCommand() { public ModifyCommand() {
super("modify"); super("modify");
Bukkit.getPluginManager().registerEvents(this, LobbySystem.getPlugin()); Bukkit.getPluginManager().registerEvents(this, LobbySystem.getInstance());
} }
@Register @Register
@@ -8,6 +8,7 @@ import com.sk89q.worldedit.regions.CuboidRegion;
import com.sk89q.worldedit.regions.RegionSelector; import com.sk89q.worldedit.regions.RegionSelector;
import de.steamwar.command.SWCommand; import de.steamwar.command.SWCommand;
import de.steamwar.command.TypeMapper; import de.steamwar.command.TypeMapper;
import de.steamwar.linkage.Linked;
import de.steamwar.lobby.LobbySystem; import de.steamwar.lobby.LobbySystem;
import de.steamwar.lobby.portal.*; import de.steamwar.lobby.portal.*;
import de.steamwar.sql.SteamwarUser; import de.steamwar.sql.SteamwarUser;
@@ -22,6 +23,7 @@ import org.bukkit.entity.Player;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@Linked
public class PortalCommand extends SWCommand { public class PortalCommand extends SWCommand {
public PortalCommand() { public PortalCommand() {
@@ -1,7 +1,7 @@
package de.steamwar.lobby.jumpandrun; package de.steamwar.lobby.jumpandrun;
import de.steamwar.linkage.Linked;
import de.steamwar.lobby.LobbySystem; import de.steamwar.lobby.LobbySystem;
import de.steamwar.lobby.listener.BasicListener;
import de.steamwar.lobby.listener.PlayerSpawn; import de.steamwar.lobby.listener.PlayerSpawn;
import de.steamwar.lobby.util.Leaderboard; import de.steamwar.lobby.util.Leaderboard;
import de.steamwar.sql.UserConfig; import de.steamwar.sql.UserConfig;
@@ -12,6 +12,7 @@ import org.bukkit.Material;
import org.bukkit.Sound; import org.bukkit.Sound;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.Action; import org.bukkit.event.block.Action;
import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.event.player.PlayerMoveEvent; import org.bukkit.event.player.PlayerMoveEvent;
@@ -22,7 +23,8 @@ import org.bukkit.util.Vector;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.*; 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"; 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); 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<Player> toReset = new HashSet<>(); Set<Player> toReset = new HashSet<>();
CURRENT_POS.forEach((player, index) -> { CURRENT_POS.forEach((player, index) -> {
if (System.currentTimeMillis() - CLICKED.getOrDefault(player, 0L) > 500) { if (System.currentTimeMillis() - CLICKED.getOrDefault(player, 0L) > 500) {
@@ -1,6 +1,7 @@
package de.steamwar.lobby.jumpandrun; package de.steamwar.lobby.jumpandrun;
import de.steamwar.command.SWCommand; import de.steamwar.command.SWCommand;
import de.steamwar.linkage.Linked;
import de.steamwar.lobby.LobbySystem; import de.steamwar.lobby.LobbySystem;
import de.steamwar.sql.UserConfig; import de.steamwar.sql.UserConfig;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@@ -9,6 +10,7 @@ import java.text.SimpleDateFormat;
import java.util.Date; import java.util.Date;
import java.util.Locale; import java.util.Locale;
@Linked
public class JumpAndRunCommand extends SWCommand { public class JumpAndRunCommand extends SWCommand {
public JumpAndRunCommand() { public JumpAndRunCommand() {
@@ -19,16 +19,19 @@
package de.steamwar.lobby.listener; package de.steamwar.lobby.listener;
import de.steamwar.lobby.LobbySystem;
import de.steamwar.lobby.command.ModifyCommand; import de.steamwar.lobby.command.ModifyCommand;
import org.bukkit.Bukkit;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerMoveEvent; import org.bukkit.event.player.PlayerMoveEvent;
import org.bukkit.event.player.PlayerTeleportEvent; import org.bukkit.event.player.PlayerTeleportEvent;
import java.util.function.Function; 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_X = 360f;
public static float REFLECT_Z = 180f; public static float REFLECT_Z = 180f;
@@ -39,6 +42,7 @@ public class AlphaWall extends BasicListener {
public AlphaWall(Function<Location, Boolean> allowed, float reflect) { public AlphaWall(Function<Location, Boolean> allowed, float reflect) {
this.allowed = allowed; this.allowed = allowed;
this.reflect = reflect; this.reflect = reflect;
Bukkit.getPluginManager().registerEvents(this, LobbySystem.getInstance());
} }
@EventHandler @EventHandler
@@ -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 <https://www.gnu.org/licenses/>.
*/
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());
}
}
@@ -19,6 +19,7 @@
package de.steamwar.lobby.listener; package de.steamwar.lobby.listener;
import de.steamwar.linkage.Linked;
import de.steamwar.lobby.jumpandrun.JumpAndRun; import de.steamwar.lobby.jumpandrun.JumpAndRun;
import de.steamwar.lobby.util.LobbyPlayer; import de.steamwar.lobby.util.LobbyPlayer;
import org.bukkit.GameMode; import org.bukkit.GameMode;
@@ -26,12 +27,14 @@ import org.bukkit.Material;
import org.bukkit.Sound; import org.bukkit.Sound;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerMoveEvent; import org.bukkit.event.player.PlayerMoveEvent;
import org.bukkit.event.player.PlayerToggleFlightEvent; import org.bukkit.event.player.PlayerToggleFlightEvent;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
public class DoubleJumpListener extends BasicListener { @Linked
public class DoubleJumpListener implements Listener {
double multiplyer = 1.4; double multiplyer = 1.4;
@@ -19,6 +19,7 @@
package de.steamwar.lobby.listener; package de.steamwar.lobby.listener;
import de.steamwar.linkage.Linked;
import de.steamwar.lobby.LobbySystem; import de.steamwar.lobby.LobbySystem;
import de.steamwar.lobby.command.ModifyCommand; import de.steamwar.lobby.command.ModifyCommand;
import de.steamwar.lobby.special.advent.AdventsCalendar; import de.steamwar.lobby.special.advent.AdventsCalendar;
@@ -26,6 +27,7 @@ import org.bukkit.Bukkit;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority; import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.block.Action; import org.bukkit.event.block.Action;
import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.event.player.PlayerDropItemEvent; 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.event.player.PlayerSwapHandItemsEvent;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
public class InventoryInteraction extends BasicListener { @Linked
public class InventoryInteraction implements Listener {
@EventHandler @EventHandler
public void handlePlayerInteract(PlayerInteractEvent event) { public void handlePlayerInteract(PlayerInteractEvent event) {
@@ -50,7 +53,7 @@ public class InventoryInteraction extends BasicListener {
offset = 0; offset = 0;
} }
Bukkit.getScheduler().runTaskLater(LobbySystem.getPlugin(), () -> { Bukkit.getScheduler().runTaskLater(LobbySystem.getInstance(), () -> {
event.getPlayer().getInventory().setItem(PlayerSpawn.FIREWORK_SLOT + offset, PlayerSpawn.FIREWORK); event.getPlayer().getInventory().setItem(PlayerSpawn.FIREWORK_SLOT + offset, PlayerSpawn.FIREWORK);
}, 1L); }, 1L);
return; return;
@@ -19,12 +19,15 @@
package de.steamwar.lobby.listener; package de.steamwar.lobby.listener;
import de.steamwar.linkage.Linked;
import de.steamwar.lobby.command.ModifyCommand; import de.steamwar.lobby.command.ModifyCommand;
import org.bukkit.entity.ItemFrame; import org.bukkit.entity.ItemFrame;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerInteractEntityEvent; import org.bukkit.event.player.PlayerInteractEntityEvent;
public class MapsRotateListener extends BasicListener { @Linked
public class MapsRotateListener implements Listener {
@EventHandler @EventHandler
public void onPlayerInteractEntity(PlayerInteractEntityEvent event) { public void onPlayerInteractEntity(PlayerInteractEntityEvent event) {
@@ -19,6 +19,7 @@
package de.steamwar.lobby.listener; package de.steamwar.lobby.listener;
import de.steamwar.linkage.Linked;
import de.steamwar.lobby.LobbySystem; import de.steamwar.lobby.LobbySystem;
import org.bukkit.*; import org.bukkit.*;
import org.bukkit.block.data.Bisected; import org.bukkit.block.data.Bisected;
@@ -28,6 +29,7 @@ import org.bukkit.entity.Arrow;
import org.bukkit.entity.Entity; import org.bukkit.entity.Entity;
import org.bukkit.entity.EntityType; import org.bukkit.entity.EntityType;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.Action; import org.bukkit.event.block.Action;
import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.event.player.PlayerQuitEvent;
@@ -37,7 +39,8 @@ import org.spigotmc.event.entity.EntityDismountEvent;
import java.util.HashSet; import java.util.HashSet;
import java.util.Set; import java.util.Set;
public class PlayerSeatListener extends BasicListener{ @Linked
public class PlayerSeatListener implements Listener {
public static final World world = Bukkit.getWorlds().get(0); public static final World world = Bukkit.getWorlds().get(0);
@@ -51,7 +54,7 @@ public class PlayerSeatListener extends BasicListener{
arrow.setTicksLived(1); arrow.setTicksLived(1);
} }
} }
}.runTaskTimer(LobbySystem.getPlugin(), 20*60,20*60); }.runTaskTimer(LobbySystem.getInstance(), 20*60,20*60);
} }
@EventHandler @EventHandler
@@ -19,6 +19,7 @@
package de.steamwar.lobby.listener; package de.steamwar.lobby.listener;
import de.steamwar.linkage.Linked;
import de.steamwar.lobby.LobbySystem; import de.steamwar.lobby.LobbySystem;
import de.steamwar.lobby.boatrace.BoatRace; import de.steamwar.lobby.boatrace.BoatRace;
import de.steamwar.lobby.special.advent.AdventsCalendar; import de.steamwar.lobby.special.advent.AdventsCalendar;
@@ -31,13 +32,15 @@ import org.bukkit.Material;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority; import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.inventory.EquipmentSlot; import org.bukkit.inventory.EquipmentSlot;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.PlayerInventory; 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 int FIREWORK_SLOT = 2;
public static final ItemStack FIREWORK = new ItemBuilder(Material.FIREWORK_ROCKET, 1).setDisplayName("§5Rakete").build(); 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); LobbySystem.getEntityServer(false).addPlayer(player);
BoatRace.boatNpcServer.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) { public static void giveItems(Player player) {
@@ -19,10 +19,12 @@
package de.steamwar.lobby.listener; package de.steamwar.lobby.listener;
import de.steamwar.linkage.Linked;
import de.steamwar.lobby.portal.Portal; import de.steamwar.lobby.portal.Portal;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerMoveEvent; import org.bukkit.event.player.PlayerMoveEvent;
import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.event.player.PlayerQuitEvent;
@@ -32,7 +34,8 @@ import java.util.Deque;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
public class Portals extends BasicListener { @Linked
public class Portals implements Listener {
private static final Map<Player, Deque<Portal>> portalStack = new HashMap<>(); private static final Map<Player, Deque<Portal>> portalStack = new HashMap<>();
@@ -21,13 +21,16 @@ package de.steamwar.lobby.listener;
import de.steamwar.inventory.SWInventory; import de.steamwar.inventory.SWInventory;
import de.steamwar.inventory.SWItem; import de.steamwar.inventory.SWItem;
import de.steamwar.linkage.Linked;
import org.bukkit.*; import org.bukkit.*;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.inventory.InventoryType; import org.bukkit.event.inventory.InventoryType;
import org.bukkit.event.player.PlayerInteractEvent; 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); private static final World world = Bukkit.getWorlds().get(0);
@@ -19,12 +19,14 @@
package de.steamwar.lobby.listener; package de.steamwar.lobby.listener;
import de.steamwar.linkage.Linked;
import de.steamwar.lobby.command.ModifyCommand; import de.steamwar.lobby.command.ModifyCommand;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.entity.HumanEntity; import org.bukkit.entity.HumanEntity;
import org.bukkit.entity.ItemFrame; import org.bukkit.entity.ItemFrame;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.Action; import org.bukkit.event.block.Action;
import org.bukkit.event.block.BlockBreakEvent; import org.bukkit.event.block.BlockBreakEvent;
import org.bukkit.event.block.BlockPhysicsEvent; 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.EntityDamageEvent;
import org.bukkit.event.entity.FoodLevelChangeEvent; import org.bukkit.event.entity.FoodLevelChangeEvent;
import org.bukkit.event.hanging.HangingBreakByEntityEvent; import org.bukkit.event.hanging.HangingBreakByEntityEvent;
import org.bukkit.event.hanging.HangingBreakEvent;
import org.bukkit.event.player.PlayerArmorStandManipulateEvent; import org.bukkit.event.player.PlayerArmorStandManipulateEvent;
import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.event.server.MapInitializeEvent;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
public class WorldInteraction extends BasicListener { @Linked
public class WorldInteraction implements Listener {
@EventHandler @EventHandler
public void onEntityDamageByEntity(EntityDamageByEntityEvent event) { public void onEntityDamageByEntity(EntityDamageByEntityEvent event) {
@@ -75,12 +75,12 @@ public class CustomMap implements Listener {
itemFrameIndex.put(itemFrames[i], i); itemFrameIndex.put(itemFrames[i], i);
} }
Bukkit.getScheduler().runTaskTimer(LobbySystem.getPlugin(), () -> { Bukkit.getScheduler().runTaskTimer(LobbySystem.getInstance(), () -> {
long modified = mapFile.lastModified(); long modified = mapFile.lastModified();
if (modified > lastModified) { if (modified > lastModified) {
lastModified = modified; lastModified = modified;
System.out.println("Updating Banner: " + mapFile.getName()); System.out.println("Updating Banner: " + mapFile.getName());
Bukkit.getScheduler().runTaskAsynchronously(LobbySystem.getPlugin(), () -> { Bukkit.getScheduler().runTaskAsynchronously(LobbySystem.getInstance(), () -> {
try { try {
run(); run();
} catch (IOException e) { } catch (IOException e) {
@@ -89,7 +89,7 @@ public class CustomMap implements Listener {
}); });
} }
}, 200L, 200L); }, 200L, 200L);
Bukkit.getPluginManager().registerEvents(this, LobbySystem.getPlugin()); Bukkit.getPluginManager().registerEvents(this, LobbySystem.getInstance());
} }
@EventHandler @EventHandler
@@ -169,7 +169,7 @@ public class CustomMap implements Listener {
if (itemFrame == null) continue; if (itemFrame == null) continue;
int finalX = x; int finalX = x;
int finalY = y; int finalY = y;
Bukkit.getScheduler().runTaskLater(LobbySystem.getPlugin(), () -> { Bukkit.getScheduler().runTaskLater(LobbySystem.getInstance(), () -> {
ItemStack itemStack = itemFrame.getItem(); ItemStack itemStack = itemFrame.getItem();
MapMeta mapMeta = (MapMeta) itemStack.getItemMeta(); MapMeta mapMeta = (MapMeta) itemStack.getItemMeta();
MapView mapView = mapMeta.getMapView(); MapView mapView = mapMeta.getMapView();
@@ -19,6 +19,7 @@
package de.steamwar.lobby.particle; package de.steamwar.lobby.particle;
import de.steamwar.linkage.Linked;
import de.steamwar.lobby.LobbySystem; import de.steamwar.lobby.LobbySystem;
import de.steamwar.lobby.jumpandrun.JumpAndRun; import de.steamwar.lobby.jumpandrun.JumpAndRun;
import de.steamwar.lobby.listener.BasicListener; import de.steamwar.lobby.listener.BasicListener;
@@ -38,6 +39,7 @@ import org.bukkit.event.player.PlayerQuitEvent;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
@Linked
public class ParticleListener extends BasicListener { public class ParticleListener extends BasicListener {
private static final int PLAYER_MAX_SIZE = 20; private static final int PLAYER_MAX_SIZE = 20;
@@ -48,7 +50,7 @@ public class ParticleListener extends BasicListener {
private static Map<Player, Integer> movingPlayers = new HashMap<>(); private static Map<Player, Integer> movingPlayers = new HashMap<>();
public ParticleListener() { public ParticleListener() {
Bukkit.getScheduler().runTaskTimer(LobbySystem.getPlugin(), () -> { Bukkit.getScheduler().runTaskTimer(LobbySystem.getInstance(), () -> {
movingPlayers.replaceAll((player, integer) -> integer - 1); movingPlayers.replaceAll((player, integer) -> integer - 1);
movingPlayers.entrySet().removeIf(entry -> entry.getValue() <= 0); movingPlayers.entrySet().removeIf(entry -> entry.getValue() <= 0);
deg += 0.1; deg += 0.1;
@@ -28,7 +28,7 @@ public class Delayed extends DelegatingParticleElement {
public Delayed(ParticleElement particleElement, int interval) { public Delayed(ParticleElement particleElement, int interval) {
super(particleElement); super(particleElement);
Bukkit.getPluginManager().registerEvents(delayedData, LobbySystem.getPlugin()); Bukkit.getPluginManager().registerEvents(delayedData, LobbySystem.getInstance());
this.interval = interval; this.interval = interval;
if (interval <= 0) { if (interval <= 0) {
throw new IllegalArgumentException("Interval must be greater than 0"); throw new IllegalArgumentException("Interval must be greater than 0");
@@ -45,7 +45,7 @@ public class RandomParticle implements ParticleElement {
throw new IllegalArgumentException("ParticleEnums must not be empty"); throw new IllegalArgumentException("ParticleEnums must not be empty");
} }
this.randomData = new RandomData(particleEnums.length); this.randomData = new RandomData(particleEnums.length);
Bukkit.getPluginManager().registerEvents(randomData, LobbySystem.getPlugin()); Bukkit.getPluginManager().registerEvents(randomData, LobbySystem.getInstance());
this.particleEnums = particleEnums; this.particleEnums = particleEnums;
} }
@@ -60,7 +60,7 @@ public class CommandPortal implements PortalHandler {
String[] pieces = new String[stackIds.length]; String[] pieces = new String[stackIds.length];
while (maxId > 0) { while (maxId > 0) {
if(!stack.hasNext()) { 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..."); player.sendMessage("§cEigentlich solltest du gerade gar nicht durch dieses Portal durchgehen können...");
return; return;
} }
@@ -234,7 +234,7 @@ public class FightserverPortal implements PortalHandler, Comparable<FightserverP
case "SPECTATE": case "SPECTATE":
return "Zuschauerphase"; return "Zuschauerphase";
default: default:
LobbySystem.getPlugin().getLogger().log(Level.SEVERE, "Unknown FightState " + state + " encountered"); LobbySystem.getInstance().getLogger().log(Level.SEVERE, "Unknown FightState " + state + " encountered");
return "Programmierfehler"; return "Programmierfehler";
} }
} }
@@ -70,7 +70,7 @@ public class TeleportPortal implements PortalHandler {
private void teleport(Player player, Location from, Location to, Portal target) { private void teleport(Player player, Location from, Location to, Portal target) {
if(target == null) { if(target == null) {
LobbySystem.getPlugin().getLogger().log(Level.WARNING, "Portal with unknown target: " + portal.getId()); LobbySystem.getInstance().getLogger().log(Level.WARNING, "Portal with unknown target: " + portal.getId());
player.sendMessage("§cAus unbekannten Gründen führt dieses Portal zurzeit in den Limbus"); player.sendMessage("§cAus unbekannten Gründen führt dieses Portal zurzeit in den Limbus");
return; return;
} }
@@ -23,6 +23,7 @@ import de.steamwar.command.SWCommand;
import de.steamwar.inventory.SWInventory; import de.steamwar.inventory.SWInventory;
import de.steamwar.inventory.SWItem; import de.steamwar.inventory.SWItem;
import de.steamwar.inventory.SWListInv; import de.steamwar.inventory.SWListInv;
import de.steamwar.linkage.Linked;
import de.steamwar.lobby.LobbySystem; import de.steamwar.lobby.LobbySystem;
import de.steamwar.sql.NodeMember; import de.steamwar.sql.NodeMember;
import de.steamwar.sql.SchematicNode; import de.steamwar.sql.SchematicNode;
@@ -34,6 +35,7 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Random; import java.util.Random;
@Linked
public class AdventCommand extends SWCommand { public class AdventCommand extends SWCommand {
public AdventCommand() { public AdventCommand() {
@@ -20,15 +20,17 @@
package de.steamwar.lobby.special.advent; package de.steamwar.lobby.special.advent;
import de.steamwar.inventory.SWItem; import de.steamwar.inventory.SWItem;
import de.steamwar.lobby.listener.BasicListener; import de.steamwar.linkage.Linked;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority; import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
public class AdventListener extends BasicListener { @Linked
public class AdventListener implements Listener {
public static final int ADVENT_SLOT = 7; public static final int ADVENT_SLOT = 7;
public static final SWItem ADVENT = SWItem.getPlayerSkull("MHF_Present1"); public static final SWItem ADVENT = SWItem.getPlayerSkull("MHF_Present1");
@@ -35,15 +35,9 @@ public class AdventsCalendar {
private static List<Present> presentList = new ArrayList<>(); private static List<Present> 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); private static FileConfiguration fileConfiguration = YamlConfiguration.loadConfiguration(file);
public static void init() {
new AdventCommand();
new AdventListener();
new PresentClickListener();
}
static { static {
for (int i = 1; i <= 31; i++) { for (int i = 1; i <= 31; i++) {
if (i > 24 && i < 31) continue; if (i > 24 && i < 31) continue;
@@ -115,7 +115,7 @@ public class Present {
locations.add(point); locations.add(point);
} }
generate(); generate();
Bukkit.getScheduler().runTaskLater(LobbySystem.getPlugin(), () -> { Bukkit.getScheduler().runTaskLater(LobbySystem.getInstance(), () -> {
BlockData blockData = location.getBlock().getBlockData(); BlockData blockData = location.getBlock().getBlockData();
players.forEach(pl -> { players.forEach(pl -> {
if (pl == player) return; if (pl == player) return;
@@ -19,18 +19,20 @@
package de.steamwar.lobby.special.advent; package de.steamwar.lobby.special.advent;
import de.steamwar.linkage.Linked;
import de.steamwar.lobby.LobbySystem; import de.steamwar.lobby.LobbySystem;
import de.steamwar.lobby.listener.BasicListener;
import de.steamwar.sql.NodeMember; import de.steamwar.sql.NodeMember;
import de.steamwar.sql.SteamwarUser; import de.steamwar.sql.SteamwarUser;
import org.bukkit.block.Block; import org.bukkit.block.Block;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerJoinEvent;
import java.time.LocalDate; import java.time.LocalDate;
public class PresentClickListener extends BasicListener { @Linked
public class PresentClickListener implements Listener {
@EventHandler @EventHandler
public void onPlayerJoin(PlayerJoinEvent event) { public void onPlayerJoin(PlayerJoinEvent event) {
@@ -22,7 +22,7 @@ public class EggHunt {
} }
static { 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 fileConfiguration = YamlConfiguration.loadConfiguration(file);
fileConfiguration.getList("eggs") fileConfiguration.getList("eggs")
.forEach(o -> { .forEach(o -> {
@@ -19,6 +19,7 @@
package de.steamwar.lobby.team; package de.steamwar.lobby.team;
import de.steamwar.linkage.Linked;
import de.steamwar.lobby.LobbySystem; import de.steamwar.lobby.LobbySystem;
import de.steamwar.lobby.display.NPC; import de.steamwar.lobby.display.NPC;
import de.steamwar.lobby.listener.BasicListener; import de.steamwar.lobby.listener.BasicListener;
@@ -44,6 +45,7 @@ import java.util.concurrent.atomic.AtomicInteger;
import java.util.logging.Level; import java.util.logging.Level;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@Linked
public class TeamPlayer extends BasicListener { public class TeamPlayer extends BasicListener {
private static final List<Cuboid> cuboids = new ArrayList<>(); private static final List<Cuboid> cuboids = new ArrayList<>();
@@ -80,8 +82,8 @@ public class TeamPlayer extends BasicListener {
}); });
AtomicInteger count = new AtomicInteger(); AtomicInteger count = new AtomicInteger();
LobbySystem.getPlugin().getLogger().log(Level.INFO, "Loaded " + entities.size() + " team players"); LobbySystem.getInstance().getLogger().log(Level.INFO, "Loaded " + entities.size() + " team players");
Bukkit.getScheduler().runTaskTimer(LobbySystem.getPlugin(), () -> { Bukkit.getScheduler().runTaskTimer(LobbySystem.getInstance(), () -> {
Collection<Villager> active = world.getEntitiesByClass(Villager.class); Collection<Villager> active = world.getEntitiesByClass(Villager.class);
if (active.size() > entities.size()) { if (active.size() > entities.size()) {
Set<String> duplicates = new HashSet<>(); Set<String> duplicates = new HashSet<>();
@@ -109,7 +111,7 @@ public class TeamPlayer extends BasicListener {
removed.incrementAndGet(); removed.incrementAndGet();
}); });
if (added.get() > 0 || removed.get() > 0) { 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 -> { world.getEntitiesByClasses(Villager.class).forEach(entity -> {
@@ -39,7 +39,7 @@ public class Leaderboard implements Listener {
this.configKey = configKey; this.configKey = configKey;
this.location = location; this.location = location;
this.best = best; this.best = best;
Bukkit.getPluginManager().registerEvents(this, LobbySystem.getPlugin()); Bukkit.getPluginManager().registerEvents(this, LobbySystem.getInstance());
update(); update();
} }