13
0

Add WaitingHall, refactoring
Alle Prüfungen waren erfolgreich
SteamWarCI Build successful

Dieser Commit ist enthalten in:
Lixfel 2022-03-11 23:31:26 +01:00
Ursprung d48185a57f
Commit 18bb819372
6 geänderte Dateien mit 41 neuen und 9 gelöschten Zeilen

Datei anzeigen

@ -21,6 +21,7 @@ package de.steamwar.lobby;
import de.steamwar.lobby.display.Hologram; import de.steamwar.lobby.display.Hologram;
import de.steamwar.lobby.portal.Portal; import de.steamwar.lobby.portal.Portal;
import org.bukkit.Location;
import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.serialization.ConfigurationSerialization; import org.bukkit.configuration.serialization.ConfigurationSerialization;
@ -31,17 +32,29 @@ public class Config {
} }
private final FileConfiguration yml; private final FileConfiguration yml;
private Location waitingHallSpawn;
public Config(FileConfiguration yml) { public Config(FileConfiguration yml) {
this.yml = yml; this.yml = yml;
yml.getList("portals", Portal.getPortals()); yml.getList("portals", Portal.getPortals());
yml.getList("holograms", Hologram.getHolograms()); yml.getList("holograms", Hologram.getHolograms());
waitingHallSpawn = yml.getLocation("waitingHallSpawn");
}
public Location getWaitingHallSpawn() {
return waitingHallSpawn;
}
public void setWaitingHallSpawn(Location waitingHallSpawn) {
this.waitingHallSpawn = waitingHallSpawn;
save();
} }
public void save() { public void save() {
yml.set("portals", Portal.getPortals()); yml.set("portals", Portal.getPortals());
yml.set("holograms", Hologram.getHolograms()); yml.set("holograms", Hologram.getHolograms());
yml.set("waitingHallSpawn", waitingHallSpawn);
LobbySystem.getPlugin().saveConfig(); LobbySystem.getPlugin().saveConfig();
} }

Datei anzeigen

@ -20,8 +20,11 @@
package de.steamwar.lobby; package de.steamwar.lobby;
import com.google.common.io.ByteArrayDataInput; import com.google.common.io.ByteArrayDataInput;
import de.steamwar.comms.BungeeReceiver;
import de.steamwar.comms.PacketIdManager;
import de.steamwar.comms.packets.FightInfoPacket; import de.steamwar.comms.packets.FightInfoPacket;
import de.steamwar.lobby.portal.FightserverPortal; import de.steamwar.lobby.portal.FightserverPortal;
import org.bukkit.Bukkit;
import java.time.Instant; import java.time.Instant;
import java.time.temporal.ChronoUnit; import java.time.temporal.ChronoUnit;
@ -32,7 +35,12 @@ public class Fightserver {
private static final Map<String, Fightserver> servers = new HashMap<>(); private static final Map<String, Fightserver> servers = new HashMap<>();
public static void newFightInfo(ByteArrayDataInput in) { public static void init() {
BungeeReceiver.registerHandler(PacketIdManager.FIGHT_INFO, Fightserver::newFightInfo);
Bukkit.getScheduler().runTaskTimer(LobbySystem.getPlugin(), Fightserver::removeStopped, 20, 20);
}
private static void newFightInfo(ByteArrayDataInput in) {
FightInfoPacket fightInfo = new FightInfoPacket(in); FightInfoPacket fightInfo = new FightInfoPacket(in);
Fightserver server = servers.get(fightInfo.getServerName()); Fightserver server = servers.get(fightInfo.getServerName());
if (server == null) { if (server == null) {
@ -42,7 +50,7 @@ public class Fightserver {
} }
} }
public static void removeStopped() { private static void removeStopped() {
Instant timeout = Instant.now().minus(5, ChronoUnit.SECONDS); Instant timeout = Instant.now().minus(5, ChronoUnit.SECONDS);
Iterator<Map.Entry<String, Fightserver>> it = servers.entrySet().iterator(); Iterator<Map.Entry<String, Fightserver>> it = servers.entrySet().iterator();

Datei anzeigen

@ -42,7 +42,8 @@ public class LobbySystem extends JavaPlugin {
public void onEnable() { public void onEnable() {
message = new Message("de.steamwar.lobby.LobbySystem", getClassLoader()); message = new Message("de.steamwar.lobby.LobbySystem", getClassLoader());
new Fightservers(); Fightserver.init();
new WaitingHall();
new Portals(); new Portals();
new PortalCommand(); new PortalCommand();
new HologramCommand(); new HologramCommand();

Datei anzeigen

@ -1,7 +1,7 @@
/* /*
* This file is a part of the SteamWar software. * This file is a part of the SteamWar software.
* *
* Copyright (C) 2021 SteamWar.de-Serverteam * Copyright (C) 2022 SteamWar.de-Serverteam
* *
* This program is free software: you can redistribute it and/or modify * 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 * it under the terms of the GNU Affero General Public License as published by
@ -19,14 +19,19 @@
package de.steamwar.lobby; package de.steamwar.lobby;
import com.google.common.io.ByteArrayDataInput;
import de.steamwar.comms.BungeeReceiver; import de.steamwar.comms.BungeeReceiver;
import de.steamwar.comms.PacketIdManager; import de.steamwar.comms.PacketIdManager;
import de.steamwar.sql.SteamwarUser;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.event.player.PlayerTeleportEvent;
public class Fightservers { public class WaitingHall {
public WaitingHall() {
BungeeReceiver.registerHandler(PacketIdManager.STARTING_SERVER, this::serverStarting);
}
public Fightservers() { private void serverStarting(ByteArrayDataInput in) {
BungeeReceiver.registerHandler(PacketIdManager.FIGHT_INFO, Fightserver::newFightInfo); Bukkit.getPlayer(SteamwarUser.get(in.readInt()).getUUID()).teleport(LobbySystem.config().getWaitingHallSpawn(), PlayerTeleportEvent.TeleportCause.PLUGIN);
Bukkit.getScheduler().runTaskTimer(LobbySystem.getPlugin(), Fightserver::removeStopped, 20, 20);
} }
} }

Datei anzeigen

@ -61,4 +61,9 @@ public class ModifyCommand extends SWCommand implements Listener {
public void onLeave(PlayerQuitEvent event) { public void onLeave(PlayerQuitEvent event) {
modifying.remove(event.getPlayer()); modifying.remove(event.getPlayer());
} }
@Register("waitinghallspawn")
public void setWaitingHallSpawn(Player player) {
LobbySystem.config().setWaitingHallSpawn(player.getLocation());
}
} }

Datei anzeigen

@ -44,7 +44,7 @@ public class PlayerSpawn extends BasicListener {
player.setGameMode(GameMode.ADVENTURE); player.setGameMode(GameMode.ADVENTURE);
player.setWalkSpeed(0.5f); player.setWalkSpeed(0.5f);
player.teleport(Bukkit.getWorlds().get(0).getSpawnLocation()); player.teleport(Bukkit.getWorlds().get(0).getSpawnLocation().clone().add(0.5, 0, 0.5));
player.setHealth(20); player.setHealth(20);
player.setFoodLevel(20); player.setFoodLevel(20);
giveItems(player); giveItems(player);