diff --git a/Realtime/build.gradle.kts b/Realtime/build.gradle.kts new file mode 100644 index 00000000..0fdc717b --- /dev/null +++ b/Realtime/build.gradle.kts @@ -0,0 +1,60 @@ +/* + * This file is a part of the SteamWar software. + * + * Copyright (C) 2024 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 . + */ + +plugins { + id("java") + id("base") + + id("com.github.johnrengelman.shadow") +} + +group = "de.steamwar" +version = "" + +tasks.compileJava { + options.encoding = "UTF-8" +} + +tasks.build { + finalizedBy(tasks.shadowJar) +} + +java { + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 +} + +sourceSets { + main { + java { + srcDirs("src/") + } + resources { + srcDirs("src/") + exclude("**/*.java", "**/*.kt") + } + } +} + +dependencies { + compileOnly("org.projectlombok:lombok:1.18.32") + annotationProcessor("org.projectlombok:lombok:1.18.32") + + compileOnly("org.spigotmc:spigot-api:1.19-R0.1-SNAPSHOT") +} diff --git a/Realtime/src/de/steamwar/realtime/Config.java b/Realtime/src/de/steamwar/realtime/Config.java new file mode 100644 index 00000000..e39cef02 --- /dev/null +++ b/Realtime/src/de/steamwar/realtime/Config.java @@ -0,0 +1,34 @@ +/* + This file is a part of the SteamWar software. + + Copyright (C) 2020 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.realtime; + +import org.bukkit.Bukkit; + +import java.io.File; + +class Config { + private Config() {} + + static final boolean RealTime; + + static { + RealTime = !new File(Bukkit.getWorlds().get(0).getWorldFolder(), "noRealTime").exists(); + } +} diff --git a/Realtime/src/de/steamwar/realtime/Realtime.java b/Realtime/src/de/steamwar/realtime/Realtime.java new file mode 100644 index 00000000..cb2492ef --- /dev/null +++ b/Realtime/src/de/steamwar/realtime/Realtime.java @@ -0,0 +1,55 @@ +/* + This file is a part of the SteamWar software. + + Copyright (C) 2020 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.realtime; + +import org.bukkit.Bukkit; +import org.bukkit.World; +import org.bukkit.event.Listener; +import org.bukkit.plugin.PluginManager; +import org.bukkit.plugin.java.JavaPlugin; + +import java.util.Date; + +public class Realtime extends JavaPlugin implements Listener { + + private static Realtime instance; + + @Override + public void onEnable() { + instance = this; + PluginManager pluginManager = Bukkit.getPluginManager(); + pluginManager.registerEvents(this, this); + + //Time updater + if(Config.RealTime) { + Bukkit.getScheduler().scheduleSyncRepeatingTask(this, () -> { + Date date = new Date(); + long time = date.getHours() * 1000 + (long)(date.getMinutes() * 16.66666666666667) + (long)(date.getSeconds() * 0.1666666666666667) - 6000; + + for(World world : Bukkit.getWorlds()) + world.setTime(time); + }, 0, 600); + } + } + + static Realtime getInstance() { + return instance; + } +} diff --git a/Realtime/src/plugin.yml b/Realtime/src/plugin.yml new file mode 100644 index 00000000..09793432 --- /dev/null +++ b/Realtime/src/plugin.yml @@ -0,0 +1,5 @@ +name: RealTime +version: "1.0" +author: Lixfel +main: de.steamwar.realtime.Realtime +api-version: "1.13" diff --git a/settings.gradle.kts b/settings.gradle.kts index e2c6e943..1fa24919 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -28,6 +28,8 @@ include("LobbySystem_2") include("MissileWars") +include("Realtime") + include("SpigotCore") include("SpigotCore:CRIUDummy") include("SpigotCore:SpigotCore_8")