fine i guess

master
Benjamin Kraft 4 years ago
parent bf1b03aff0
commit c4120b20b2
  1. 29
      src/main/java/com/benjocraeft/sharehealth/FileManager.java
  2. 4
      src/main/java/com/benjocraeft/sharehealth/Sharehealth.java
  3. 19
      src/main/java/com/benjocraeft/sharehealth/Statistics.java

@ -10,21 +10,22 @@ public class FileManager {
final private File statisticsFile;
final private File statusFile;
final private File pluginFolder = new File(System.getProperty("user.dir"), "plugins/sharehealth");
final private String pluginPath = pluginFolder.getPath();
public FileManager(){
File pluginFolder = new File(System.getProperty("user.dir"), "plugins/sharehealth");
String pluginPath = pluginFolder.getPath();
Logger logger = Sharehealth.Instance.getLogger();
//Prepare storage folder
if (pluginFolder.mkdirs()){
//TODO Log
logger.info(pluginFolder.getName() + " created");
}
settingsFile = new File(pluginPath + "/settings.txt");
statisticsFile = new File(pluginPath + "/statistics.txt");
statusFile = new File(pluginPath + "/status.txt");
Logger logger = Sharehealth.Instance.getLogger();
try {
if (settingsFile.createNewFile())
logger.info(settingsFile.getName() + " created");
@ -84,6 +85,10 @@ public class FileManager {
}
public void saveStatistics(Map<UUID, Pair<Double, Double>> statistics){
saveStatistics(statisticsFile, statistics);
}
private void saveStatistics(File file, Map<UUID, Pair<Double, Double>> statistics){
Map<String, Object> map = new HashMap<>();
statistics.forEach((UUID uuid, Pair<Double, Double> pair) -> {
@ -91,7 +96,7 @@ public class FileManager {
map.put(uuidString, Statistics.Rounded(pair.first) + "," + Statistics.Rounded(pair.second));
});
saveToFile(statisticsFile, map);
saveToFile(file, map);
}
public void saveStatus(Map<String, Object> statusMap){
@ -106,6 +111,20 @@ public class FileManager {
saveToFile(settingsFile, map);
}
public void backupStats(Map<UUID, Pair<Double, Double>> statistics){
Date date = new Date();
String dateString = String.valueOf(date.getTime());
File backupFile = new File(pluginPath + "/statistics_" + dateString + ".txt");
try {
if (backupFile.createNewFile()){
Sharehealth.Instance.getLogger().info(backupFile.getName() + " created");
saveStatistics(backupFile, statistics);
}
} catch (IOException e) {
e.printStackTrace();
}
}
private Map<String, String> loadFromFile(File file) {
Map<String, String> map = new HashMap<>();

@ -84,6 +84,7 @@ public class Sharehealth extends JavaPlugin {
@Override
public void onDisable() {
saveStatus();
fileManager.saveStatistics(statistics.getStatistics());
getLogger().info("ShareHealth has been disabled!");
}
@ -174,6 +175,9 @@ public class Sharehealth extends JavaPlugin {
void reset(){
isFailed = false;
fileManager.backupStats(statistics.getStatistics());
statistics.reset();
fileManager.saveStatistics(statistics.getStatistics());
healthManager.reset();
Bukkit.getOnlinePlayers().forEach(p -> p.setGameMode(GameMode.SURVIVAL));

@ -1,5 +1,6 @@
package com.benjocraeft.sharehealth;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import java.util.ArrayList;
@ -35,11 +36,7 @@ public class Statistics {
}
public void onPlayerJoined(Player player){
UUID uuid = player.getUniqueId();
Pair<Double, Double> empty = Pair.pair(0., 0.);
statistics.putIfAbsent(uuid, empty);
settings.putIfAbsent(uuid, true);
putIfAbsent(player);
}
void onPlayerRegainedHealth(Player player, double amount){
@ -54,4 +51,16 @@ public class Statistics {
statistics.put(uuid, Pair.pair(oldPair.first + amount, oldPair.second));
}
private void putIfAbsent(Player player){
UUID uuid = player.getUniqueId();
Pair<Double, Double> empty = Pair.pair(0., 0.);
statistics.putIfAbsent(uuid, empty);
settings.putIfAbsent(uuid, true);
}
void reset(){
statistics.clear();
Bukkit.getOnlinePlayers().forEach(this::putIfAbsent);
}
}

Loading…
Cancel
Save