Add Realtime module

This commit is contained in:
2024-08-05 09:50:21 +02:00
parent 5887f1703a
commit e6e35a2e5d
5 changed files with 156 additions and 0 deletions
+60
View File
@@ -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 <https://www.gnu.org/licenses/>.
*/
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")
}
@@ -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 <https://www.gnu.org/licenses/>.
*/
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();
}
}
@@ -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 <https://www.gnu.org/licenses/>.
*/
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;
}
}
+5
View File
@@ -0,0 +1,5 @@
name: RealTime
version: "1.0"
author: Lixfel
main: de.steamwar.realtime.Realtime
api-version: "1.13"
+2
View File
@@ -28,6 +28,8 @@ include("LobbySystem_2")
include("MissileWars")
include("Realtime")
include("SpigotCore")
include("SpigotCore:CRIUDummy")
include("SpigotCore:SpigotCore_8")