forked from SteamWar/SteamWar
4e6933f2fd
Signed-off-by: Chaoscaot <max@maxsp.de>
181 lines
6.4 KiB
Java
181 lines
6.4 KiB
Java
/*
|
|
* This file is a part of the SteamWar software.
|
|
*
|
|
* Copyright (C) 2025 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.misslewars;
|
|
|
|
import de.steamwar.sql.Event;
|
|
import de.steamwar.sql.EventFight;
|
|
import de.steamwar.sql.Team;
|
|
import org.bukkit.Bukkit;
|
|
import org.bukkit.Location;
|
|
import org.bukkit.configuration.ConfigurationSection;
|
|
import org.bukkit.configuration.file.FileConfiguration;
|
|
import org.bukkit.configuration.file.YamlConfiguration;
|
|
|
|
import java.io.File;
|
|
import java.util.UUID;
|
|
import java.util.logging.Level;
|
|
|
|
public class Config {
|
|
private Config() {
|
|
}
|
|
|
|
public static final int ArenaMinX;
|
|
public static final int ArenaMaxX;
|
|
public static final int ArenaMinY;
|
|
public static final int ArenaMinZ;
|
|
public static final int ArenaMaxZ;
|
|
|
|
public static final Location RedSpawn;
|
|
public static final int RedPortalZ;
|
|
public static final Location BlueSpawn;
|
|
public static final int BluePortalZ;
|
|
|
|
public static final int WaitingTime;
|
|
public static final int PlatformTime;
|
|
public static final int ItemTime;
|
|
public static final int ShieldFlyTime;
|
|
public static final int EndTime;
|
|
|
|
public static final double MissileChance;
|
|
|
|
public static final boolean Barrier;
|
|
public static final boolean Space;
|
|
|
|
// Challenge
|
|
public static UUID BlueLeader;
|
|
public static UUID RedLeader;
|
|
|
|
private static final int EventKampfID;
|
|
|
|
// Event
|
|
public static final EventFight EventKampf;
|
|
public static final String TeamBlueName;
|
|
public static final String TeamRedName;
|
|
public static final String TeamBlueColor;
|
|
public static final String TeamRedColor;
|
|
public static final int EventTeamBlueID;
|
|
public static final int EventTeamRedID;
|
|
public static final int MaximumTeamMembers;
|
|
|
|
static {
|
|
File configfile = new File(Bukkit.getWorlds().get(0).getWorldFolder(), "config.yml");
|
|
if (!configfile.exists()) {
|
|
Bukkit.getLogger().log(Level.SEVERE, "Config fehlt!");
|
|
Bukkit.shutdown();
|
|
}
|
|
|
|
FileConfiguration config = YamlConfiguration.loadConfiguration(configfile);
|
|
WaitingTime = config.getInt("WaitingTime");
|
|
PlatformTime = config.getInt("PlatformTime");
|
|
ItemTime = config.getInt("ItemTime");
|
|
ShieldFlyTime = config.getInt("ShieldFlyTime");
|
|
EndTime = config.getInt("EndTime");
|
|
|
|
MissileChance = config.getDouble("MissileChance");
|
|
|
|
ConfigurationSection arena = config.getConfigurationSection("Arena");
|
|
assert arena != null;
|
|
ArenaMinX = arena.getInt("MinX");
|
|
ArenaMaxX = arena.getInt("MaxX");
|
|
ArenaMinY = arena.getInt("MinY");
|
|
ArenaMinZ = arena.getInt("MinZ");
|
|
ArenaMaxZ = arena.getInt("MaxZ");
|
|
|
|
ConfigurationSection red = config.getConfigurationSection("Red");
|
|
assert red != null;
|
|
RedPortalZ = red.getInt("PortalZ");
|
|
RedSpawn = new Location(Bukkit.getWorlds().get(0), red.getDouble("SpawnX"), red.getDouble("SpawnY"), red.getDouble("SpawnZ"), (float) red.getDouble("SpawnYaw"), (float) red.getDouble("SpawnPitch"));
|
|
|
|
ConfigurationSection blue = config.getConfigurationSection("Blue");
|
|
assert blue != null;
|
|
BluePortalZ = blue.getInt("PortalZ");
|
|
BlueSpawn = new Location(Bukkit.getWorlds().get(0), blue.getDouble("SpawnX"), blue.getDouble("SpawnY"), blue.getDouble("SpawnZ"), (float) blue.getDouble("SpawnYaw"), (float) blue.getDouble("SpawnPitch"));
|
|
|
|
String blueLeader = System.getProperty("blueLeader", null);
|
|
String redLeader = System.getProperty("redLeader", null);
|
|
if (blueLeader != null)
|
|
BlueLeader = UUID.fromString(blueLeader);
|
|
else
|
|
BlueLeader = null;
|
|
if (redLeader != null)
|
|
RedLeader = UUID.fromString(redLeader);
|
|
else
|
|
RedLeader = null;
|
|
|
|
Barrier = config.getBoolean("Barrier", false);
|
|
Space = config.getBoolean("Space", false);
|
|
|
|
EventKampfID = Integer.parseInt(System.getProperty("fightID", "0"));
|
|
if (EventKampfID >= 1) {
|
|
EventKampf = EventFight.byId(EventKampfID);
|
|
if (EventKampf == null) {
|
|
Bukkit.getLogger().log(Level.SEVERE, "Failed to load EventFight");
|
|
Bukkit.shutdown();
|
|
}
|
|
assert EventKampf != null;
|
|
|
|
Team team1 = Team.byId(EventKampf.getTeamBlue());
|
|
Team team2 = Team.byId(EventKampf.getTeamRed());
|
|
|
|
if (team1 == null || team2 == null) {
|
|
Bukkit.getLogger().log(Level.SEVERE, "Failed to load Team");
|
|
Bukkit.shutdown();
|
|
}
|
|
assert team1 != null;
|
|
assert team2 != null;
|
|
|
|
TeamBlueName = team1.getTeamKuerzel();
|
|
TeamRedName = team2.getTeamKuerzel();
|
|
TeamBlueColor = "§" + team1.getTeamColor();
|
|
TeamRedColor = "§" + team2.getTeamColor();
|
|
EventTeamBlueID = team1.getTeamId();
|
|
EventTeamRedID = team2.getTeamId();
|
|
|
|
Event event = Event.byId(EventKampf.getEventID());
|
|
if (EventTeamBlueID == 0 && EventTeamRedID == 0) {
|
|
MaximumTeamMembers = Integer.MAX_VALUE;
|
|
} else {
|
|
MaximumTeamMembers = event.getMaximumTeamMembers();
|
|
}
|
|
} else {
|
|
EventKampf = null;
|
|
TeamBlueName = "Blau";
|
|
TeamRedName = "Rot";
|
|
TeamBlueColor = "§9";
|
|
TeamRedColor = "§c";
|
|
EventTeamBlueID = 0;
|
|
EventTeamRedID = 0;
|
|
MaximumTeamMembers = Integer.MAX_VALUE;
|
|
}
|
|
}
|
|
|
|
public static boolean isEvent() {
|
|
return EventKampfID >= 1;
|
|
}
|
|
|
|
public static boolean isChallenge() {
|
|
return BlueLeader != null && RedLeader != null;
|
|
}
|
|
|
|
public static boolean test() {
|
|
return EventKampfID == -1;
|
|
}
|
|
}
|