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 .idea
target target
*.iml

12
pom.xml
Datei anzeigen

@ -43,11 +43,11 @@
</build> </build>
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>steamwar</groupId> <groupId>steamwar</groupId>
<artifactId>Spigot</artifactId> <artifactId>Spigot</artifactId>
<version>1.0</version> <version>1.0</version>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
</dependencies> </dependencies>
</project> </project>

Datei anzeigen

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