Advertisement
bobmarley12345

basic bukkit crash detector

Jul 17th, 2021
1,366
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.95 KB | None | 0 0
  1. import org.bukkit.Bukkit;
  2. import org.bukkit.craftbukkit.v1_6_R3.CraftServer;
  3.  
  4. import java.io.File;
  5.  
  6. public class CrashDetection {
  7.     private File crashReportDirectory = null;
  8.     private int startSize;
  9.     private boolean active;
  10.  
  11.     public CrashDetection() {
  12.         CraftServer server = (CraftServer) Bukkit.getServer();
  13.         if (server != null) {
  14.             File worldFolder = server.getWorldContainer();
  15.             if (worldFolder != null) {
  16.                 File serverFolder = worldFolder.getParentFile();
  17.                 if (serverFolder != null) {
  18.                     this.crashReportDirectory = new File(serverFolder, "crash-reports");
  19.                     if (!this.crashReportDirectory.exists()) {
  20.                         this.crashReportDirectory.mkdir();
  21.                     }
  22.  
  23.                     this.active = true;
  24.                 }
  25.             }
  26.         }
  27.  
  28.         if (this.active) {
  29.             this.startSize = getCrashReportsCount();
  30.         }
  31.         else {
  32.             this.startSize = -1;
  33.         }
  34.     }
  35.  
  36.     public File getCrashReportDirectory() {
  37.         return this.crashReportDirectory;
  38.     }
  39.  
  40.     public int getCrashReportsCount() {
  41.         String[] filePaths = this.crashReportDirectory.list();
  42.         if (filePaths == null || filePaths.length == 0) {
  43.             return 0;
  44.         }
  45.  
  46.         int size = 0;
  47.         for (int i = 0, len = filePaths.length; i < len; i++) {
  48.             if (filePaths[i].endsWith("-server.txt")) {
  49.                 size++;
  50.             }
  51.         }
  52.  
  53.         return size;
  54.     }
  55.  
  56.     public boolean hasDirectoryContentsChanged() {
  57.         if (!this.active) {
  58.             return false;
  59.         }
  60.  
  61.         int sizeNow = getCrashReportsCount();
  62.         if (sizeNow < this.startSize) {
  63.             this.startSize = sizeNow;
  64.         }
  65.  
  66.         return sizeNow != this.startSize;
  67.     }
  68.  
  69.     public boolean hasCrashed() {
  70.         return hasDirectoryContentsChanged();
  71.     }
  72. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement