/* * 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 . */ package de.steamwar.bausystem.commands; import de.steamwar.bausystem.BauSystem; import de.steamwar.bausystem.Permission; import de.steamwar.bausystem.world.Welt; import de.steamwar.command.SWCommand; import de.steamwar.command.SWCommandUtils; import de.steamwar.command.TypeMapper; import java.util.Arrays; import java.util.List; import org.bukkit.Bukkit; import org.bukkit.entity.Player; public class CommandTime extends SWCommand { private static List tabCompletions = Arrays.asList("0", "6000", "12000", "18000"); public CommandTime() { super("time"); } @Register(help = true) public void genericHelp(Player p, String... args) { p.sendMessage("§8/§etime §8<§7Zeit 0=Morgen§8, §76000=Mittag§8, §718000=Mitternacht§8> §8- §7Setzt die Zeit auf dem Bau"); } @Register public void genericCommand(Player p, int time) { if (Welt.noPermission(p, Permission.WORLD)) { p.sendMessage(BauSystem.PREFIX + "§cDu darfst hier nicht die Zeit ändern"); return; } if (time < 0 || time > 24000) { p.sendMessage(BauSystem.PREFIX + "§cBitte gib eine Zahl zwischen 0 und 24000 an"); return; } Bukkit.getWorlds().get(0).setTime(time); } @Register public void genericCommand(Player p, Time time) { if (Welt.noPermission(p, Permission.WORLD)) { p.sendMessage(BauSystem.PREFIX + "§cDu darfst hier nicht die Zeit ändern"); return; } Bukkit.getWorlds().get(0).setTime(time.getValue()); } @ClassMapper(value = int.class, local = true) public TypeMapper doubleTypeMapper() { return SWCommandUtils.createMapper(s -> { try { return Integer.parseInt(s); } catch (NumberFormatException e) { return 0; } }, s -> tabCompletions); } public enum Time { NIGHT(18000), DAY(6000), DAWN(0), SUNSET(12000), NACHT(18000), TAG(6000), MORGEN(0), ABEND(12000); private int value; private Time(int value) { this.value = value; } public int getValue() { return value; } } }