diff --git a/build.gradle b/build.gradle index 95c9c995..8d77da95 100644 --- a/build.gradle +++ b/build.gradle @@ -9,7 +9,7 @@ java { } group = 'me.playbosswar.com' -version = '8.11.5' +version = '8.11.6' description = 'CommandTimer' repositories { @@ -70,7 +70,7 @@ publishing { maven(MavenPublication) { groupId = 'me.playbosswar.com' artifactId = 'commandtimer' - version = '8.11.5' + version = '8.11.6' from components.java } diff --git a/java17-build.gradle b/java17-build.gradle index d74314fd..c3a875b8 100644 --- a/java17-build.gradle +++ b/java17-build.gradle @@ -10,7 +10,7 @@ java { group = 'me.playbosswar.com' -version = '8.11.5' +version = '8.11.6' description = 'CommandTimer' repositories { @@ -63,7 +63,7 @@ publishing { maven(MavenPublication) { groupId = 'me.playbosswar.com' artifactId = 'commandtimer-java17' - version = '8.11.5' + version = '8.11.6' from components.java } diff --git a/java21-build.gradle b/java21-build.gradle index 515b7e26..f21e03d1 100644 --- a/java21-build.gradle +++ b/java21-build.gradle @@ -10,7 +10,7 @@ java { group = 'me.playbosswar.com' -version = '8.11.5' +version = '8.11.6' description = 'CommandTimer' repositories { @@ -68,7 +68,7 @@ publishing { maven(MavenPublication) { groupId = 'me.playbosswar.com' artifactId = 'commandtimer-java21' - version = '8.11.5' + version = '8.11.6' from components.java } } diff --git a/src/main/java/me/playbosswar/com/tasks/TasksManager.java b/src/main/java/me/playbosswar/com/tasks/TasksManager.java index f234116e..59b9b455 100644 --- a/src/main/java/me/playbosswar/com/tasks/TasksManager.java +++ b/src/main/java/me/playbosswar/com/tasks/TasksManager.java @@ -378,7 +378,7 @@ public void disable() { tasksToStore.forEach(Task::storeInstance); stopRunner = true; if(runnerThread != null && runnerThread.isAlive()) { - runnerThread.stop(); + runnerThread.interrupt(); } } } diff --git a/src/main/java/me/playbosswar/com/utils/Files.java b/src/main/java/me/playbosswar/com/utils/Files.java index abd98824..4f4472bc 100644 --- a/src/main/java/me/playbosswar/com/utils/Files.java +++ b/src/main/java/me/playbosswar/com/utils/Files.java @@ -13,6 +13,8 @@ import org.json.simple.parser.JSONParser; import org.json.simple.parser.ParseException; +import com.google.gson.JsonParseException; + import java.io.File; import java.io.FileReader; import java.io.FileWriter; @@ -191,8 +193,10 @@ public static List deserializeJsonFilesIntoCommandTimers() { } tasks.add(task); + } catch (JsonParseException e) { + Bukkit.getLogger().log(Level.SEVERE, "Failed to process " + file.getName() + " because of " + e.getMessage()); } catch(ParseException e) { - Bukkit.getLogger().log(Level.SEVERE, "Failed to process " + file.getName()); + Bukkit.getLogger().log(Level.SEVERE, "Failed to process " + file.getName() + " because of " + e.getMessage()); } } diff --git a/src/main/java/me/playbosswar/com/utils/gson/GsonDate.java b/src/main/java/me/playbosswar/com/utils/gson/GsonDate.java index 798727b1..2fd9a46b 100644 --- a/src/main/java/me/playbosswar/com/utils/gson/GsonDate.java +++ b/src/main/java/me/playbosswar/com/utils/gson/GsonDate.java @@ -1,11 +1,12 @@ package me.playbosswar.com.utils.gson; import com.google.gson.*; - import java.lang.reflect.Type; import java.text.ParseException; import java.text.SimpleDateFormat; +import java.util.Arrays; import java.util.Date; +import java.util.List; public class GsonDate implements JsonSerializer, JsonDeserializer { @@ -14,28 +15,20 @@ public class GsonDate implements JsonSerializer, JsonDeserializer { @Override public Date deserialize(JsonElement jsonElement, Type type, JsonDeserializationContext jsonDeserializationContext) throws JsonParseException { - SimpleDateFormat formatter = new SimpleDateFormat(FORMAT); - try { - return formatter.parse(jsonElement.getAsString()); - } catch(ParseException ex1) { - // Check if maybe it's in the old format + List formats = Arrays.asList( + new SimpleDateFormat(FORMAT), + new SimpleDateFormat("MMM d, yyyy, H:mm:ss a"), + new SimpleDateFormat("MMM d, yyyy, HH:mm:ss a"), + new SimpleDateFormat("MMM d, yyyy, HH:mm:ss"), + new SimpleDateFormat("MMM d, yyyy, hh:mm:ss a")); + for (SimpleDateFormat dataFormat : formats) { try { - SimpleDateFormat oldFormatter = new SimpleDateFormat("MMM d, yyyy, H:mm:ss a"); - return oldFormatter.parse(jsonElement.getAsString()); - } catch(ParseException ex2) { - try { - SimpleDateFormat oldFormatter = new SimpleDateFormat("MMM d, yyyy, HH:mm:ss a"); - return oldFormatter.parse(jsonElement.getAsString()); - } catch(ParseException ex3) { - try { - SimpleDateFormat oldFormatter = new SimpleDateFormat("MMM d, yyyy, HH:mm:ss"); - return oldFormatter.parse(jsonElement.getAsString()); - } catch(ParseException ex4) { - throw new JsonParseException(ex4); - } - } + return dataFormat.parse(jsonElement.getAsString()); + } catch (ParseException ex) { + // ignore } } + throw new JsonParseException("Can not parse data: " + jsonElement.getAsString()); } @Override @@ -43,4 +36,4 @@ public JsonElement serialize(Date date, Type type, JsonSerializationContext json SimpleDateFormat sdf = new SimpleDateFormat(FORMAT); return new JsonPrimitive(sdf.format(date)); } -} +} \ No newline at end of file diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index c7f3a0b6..0121ab87 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -1,6 +1,6 @@ main: me.playbosswar.com.CommandTimerPlugin name: "CommandTimer" -version: "8.11.5" +version: "8.11.6" description: "Schedule commands like you want" author: PlayBossWar api-version: 1.13