closes #1 realtime weather #2
31
src/de/steamwar/realtime/Config.java
Normale Datei
31
src/de/steamwar/realtime/Config.java
Normale Datei
@ -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()) {
|
||||||
|
|||||||
|
instance.saveDefaultConfig();
|
||||||
|
Bukkit.getLogger().log(Level.SEVERE, "Config fehlt!");
|
||||||
|
instance.shutdown(null);
|
||||||
|
}
|
||||||
|
FileConfiguration config = instance.getConfig();
|
||||||
|
RealTime = config.getBoolean("RealTime");
|
||||||
|
RealWeather = config.getBoolean("RealWeather");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -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,6 +36,7 @@ public class Realtime extends JavaPlugin implements Listener {
|
|||||||
pluginManager.registerEvents(this, this);
|
pluginManager.registerEvents(this, this);
|
||||||
|
|
||||||
//Time updater
|
//Time updater
|
||||||
|
if(Config.RealTime) {
|
||||||
Bukkit.getScheduler().scheduleSyncRepeatingTask(this, () -> {
|
Bukkit.getScheduler().scheduleSyncRepeatingTask(this, () -> {
|
||||||
Date date = new Date();
|
Date date = new Date();
|
||||||
Lixfel
hat
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.
Yaruma3341
hat
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"));
|
int time = Integer.parseInt((dateFormat.format(date) + "0"));
|
||||||
@ -53,10 +50,13 @@ public class Realtime extends JavaPlugin implements Listener {
|
|||||||
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
|
||||||
|
if(Config.RealWeather) {
|
||||||
Bukkit.getScheduler().scheduleAsyncRepeatingTask(this, () -> updateCurrentWeather(), 0, 20 * 60 * 10); //Die Wetterdaten werden bei OpenWeatherMAP nur alle 10 Minuten erneuert
|
Bukkit.getScheduler().scheduleAsyncRepeatingTask(this, () -> updateCurrentWeather(), 0, 20 * 60 * 10); //Die Wetterdaten werden bei OpenWeatherMAP nur alle 10 Minuten erneuert
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private String jsonString = "";
|
private String jsonString = "";
|
||||||
@ -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
2
src/weather.yml
Normale Datei
@ -0,0 +1,2 @@
|
|||||||
|
RealTime:
|
||||||
|
RealWeather:
|
In neuem Issue referenzieren
Einen Benutzer sperren
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.