SteamWar/RealTime
Archiviert
13
0

closes #1 realtime weather #2

Zusammengeführt
Lixfel hat 8 Commits von weather nach master 2020-02-24 17:48:31 +01:00 zusammengeführt
3 geänderte Dateien mit 59 neuen und 17 gelöschten Zeilen
Nur Änderungen aus Commit f283d822b6 werden angezeigt - Alle Commits anzeigen

Datei anzeigen

@ -0,0 +1,31 @@
package de.steamwar.realtime;
import org.bukkit.Bukkit;
import org.bukkit.configuration.file.FileConfiguration;
import java.io.File;
import java.util.logging.Level;
public class Config {
private Config() {}
private static Realtime instance = Realtime.getInstance();
//Cache
public static final boolean RealTime;
public static final boolean RealWeather;
static {
if(!new File(instance.getDataFolder(), "weather.yml").exists()) {
Review

Soweit ich mich entsinnen kann, habe ich geschrieben, dass die Config wenn aus dem Weltordner geladen werden soll, da ansonsten nur eine Einstellung pro Spielmodus möglich ist.

Soweit ich mich entsinnen kann, habe ich geschrieben, dass die Config wenn aus dem Weltordner geladen werden soll, da ansonsten nur eine Einstellung pro Spielmodus möglich ist.
instance.saveDefaultConfig();
Bukkit.getLogger().log(Level.SEVERE, "Config fehlt!");
instance.shutdown(null);
}
FileConfiguration config = instance.getConfig();
RealTime = config.getBoolean("RealTime");
RealWeather = config.getBoolean("RealWeather");
}
}

Datei anzeigen

@ -22,17 +22,13 @@ import java.util.Date;
public class Realtime extends JavaPlugin implements Listener { public class Realtime extends JavaPlugin implements Listener {
private static Realtime instance;
DateFormat dateFormat = new SimpleDateFormat("HHmm"); DateFormat dateFormat = new SimpleDateFormat("HHmm");
WeatherState oldWeatherState = null; WeatherState oldWeatherState = null;
WeatherState weatherState = null; WeatherState weatherState = null;
private static Realtime instance;
public static Realtime getInstance() {
return instance;
}
@Override @Override
public void onEnable() { public void onEnable() {
instance = this; instance = this;
@ -40,22 +36,26 @@ public class Realtime extends JavaPlugin implements Listener {
pluginManager.registerEvents(this, this); pluginManager.registerEvents(this, this);
//Time updater //Time updater
Bukkit.getScheduler().scheduleSyncRepeatingTask(this, () -> { if(Config.RealTime) {
Date date = new Date(); Bukkit.getScheduler().scheduleSyncRepeatingTask(this, () -> {
Review

Du startest bereits einen AsyncRepeatingTask, der sofort loslegt (ohne verzögerung). Das hier verzögert das Hochfahren des Servers, und ich bin darauf bedacht, die Startzeit kurz zu halten. Bitte hier nicht initialisieren.

Du startest bereits einen AsyncRepeatingTask, der sofort loslegt (ohne verzögerung). Das hier verzögert das Hochfahren des Servers, und ich bin darauf bedacht, die Startzeit kurz zu halten. Bitte hier nicht initialisieren.
Review

Das ist doch schon gar nicht mehr im Source Code

Das ist doch schon gar nicht mehr im Source Code
int time = Integer.parseInt((dateFormat.format(date) + "0")); Date date = new Date();
int time = Integer.parseInt((dateFormat.format(date) + "0"));
time -= 6000; time -= 6000;
if(time < 0) { if(time < 0) {
time+= 24000; time+= 24000;
} }
for(World world : Bukkit.getWorlds()) for(World world : Bukkit.getWorlds())
world.setTime(time); world.setTime(time);
}, 0, 20 * 60); }, 0, 20 * 60);
}
//Weather Updater //Weather Updater
Bukkit.getScheduler().scheduleAsyncRepeatingTask(this, () -> updateCurrentWeather(), 0, 20 * 60 * 10); //Die Wetterdaten werden bei OpenWeatherMAP nur alle 10 Minuten erneuert if(Config.RealWeather) {
Bukkit.getScheduler().scheduleAsyncRepeatingTask(this, () -> updateCurrentWeather(), 0, 20 * 60 * 10); //Die Wetterdaten werden bei OpenWeatherMAP nur alle 10 Minuten erneuert
}
} }
@ -156,6 +156,15 @@ public class Realtime extends JavaPlugin implements Listener {
}, 0); }, 0);
} }
public void shutdown(final String reason) {
Bukkit.getOnlinePlayers().forEach(player -> player.kickPlayer(reason));
Bukkit.shutdown();
}
public static Realtime getInstance() {
return instance;
}
enum WeatherState { enum WeatherState {
CLEAR_SKY, CLEAR_SKY,
RAIN, RAIN,

2
src/weather.yml Normale Datei
Datei anzeigen

@ -0,0 +1,2 @@
RealTime:
RealWeather: