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 56 neuen und 34 gelöschten Zeilen
Nur Änderungen aus Commit 5aec7f9872 werden angezeigt - Alle Commits anzeigen

1
.gitignore vendored
Datei anzeigen

@ -1,2 +1,3 @@
.idea
target
*.iml

Datei anzeigen

@ -3,7 +3,12 @@ package de.steamwar.realtime;
import org.apache.commons.io.IOUtils;
import org.bukkit.Bukkit;
import org.bukkit.World;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockFormEvent;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.scheduler.BukkitRunnable;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.JSONValue;
@ -18,19 +23,19 @@ import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Realtime extends JavaPlugin {
public class Realtime extends JavaPlugin implements Listener {
@Override
public void onEnable(){
Bukkit.getScheduler().scheduleSyncRepeatingTask(this, () -> {
/*Date time = Calendar.getInstance().getTime();
long l = time.getHours() * 1000 + (long)(time.getMinutes() * 16.66666666666667) + (long)(time.getSeconds() * 0.1666666666666667) - 6000;
for(World w : Bukkit.getWorlds()){
w.setTime(l);
}*/
public void onEnable() {
PluginManager pluginManager = Bukkit.getPluginManager();
pluginManager.registerEvents(this, this);
WeatherState oldWeatherState = null;
//Zeit
DateFormat dateFormat = new SimpleDateFormat("HHmm");
Bukkit.getScheduler().scheduleSyncRepeatingTask(this, () -> {
//Zeit
Date date = new Date();
int time = Integer.parseInt((dateFormat.format(date) + "0"));
@ -42,6 +47,8 @@ public class Realtime extends JavaPlugin {
//Wetter
WeatherState weatherState = getCurrentWeather();
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
if(oldWeatherState != null && oldWeatherState == weatherState)
return;
for(World world : Bukkit.getWorlds()) {
@ -69,6 +76,8 @@ public class Realtime extends JavaPlugin {
}, 0, 20 * 60);
}
private String jsonString = "";
public WeatherState getCurrentWeather() {
/*
@ -88,9 +97,13 @@ public class Realtime extends JavaPlugin {
* Drizzle (Nieselregen): ID 3xx -> ^
* Thunderstorm: ID 2xx ^
*/
new BukkitRunnable() {
InputStream inputStream = null;
DataInputStream dataInputStream;
String jsonString = "";
@Override
public void run() {
try {
URL url = new URL("http://api.openweathermap.org/data/2.5/weather?id=2950159&APPID=16e8ffada1fbdbe3f3903802b0785751");
inputStream = url.openStream();
@ -111,6 +124,9 @@ public class Realtime extends JavaPlugin {
} finally {
IOUtils.closeQuietly(inputStream);
}
}
}.runTaskAsynchronously(this);
JSONObject jsonObject = (JSONObject) JSONValue.parse(jsonString);
@ -139,4 +155,9 @@ public class Realtime extends JavaPlugin {
THUNDER_STORM,
SNOW
}
@EventHandler
public void handleBlockForm(BlockFormEvent event) {
Bukkit.broadcastMessage(event.getBlock() + " : " + event.getNewState().toString());
}
}