From 2d58fcb5b217c14b6fe572a336a891f59b5a5594 Mon Sep 17 00:00:00 2001 From: sk89q Date: Sun, 13 Mar 2011 20:23:55 -0700 Subject: [PATCH] Added /snap before [date] and /snap after [date]. Example: /snap before last Monday 2am --- LICENSE.txt | 41 +++---- NOTICE.txt | 4 +- build.xml | 4 +- lib/jchronic.jar | Bin 0 -> 103709 bytes src/com/sk89q/worldedit/LocalSession.java | 45 +++++++- .../worldedit/commands/SnapshotCommands.java | 87 +++++++++++++- .../snapshots/ModificationTimerParser.java | 35 ++++++ .../sk89q/worldedit/snapshots/Snapshot.java | 55 ++++++++- .../snapshots/SnapshotDateParser.java | 38 ++++++ .../snapshots/SnapshotRepository.java | 109 +++++++++++++++--- .../snapshots/YYMMDDHHIISSParser.java | 51 ++++++++ 11 files changed, 418 insertions(+), 51 deletions(-) create mode 100644 lib/jchronic.jar create mode 100644 src/com/sk89q/worldedit/snapshots/ModificationTimerParser.java create mode 100644 src/com/sk89q/worldedit/snapshots/SnapshotDateParser.java create mode 100644 src/com/sk89q/worldedit/snapshots/YYMMDDHHIISSParser.java diff --git a/LICENSE.txt b/LICENSE.txt index b5eb8c954..332b14517 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -168,8 +168,6 @@ permanent authorization for you to choose that version for the Library. - - JNBT License ------------ @@ -203,28 +201,27 @@ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +JChronic License +---------------- +The MIT License -JOpt Simple License -------------------- +Copyright (c) 2009 Mike Schrag, Sam Tingleff -Copyright (c) 2009 Paul R. Holser, Jr. +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/NOTICE.txt b/NOTICE.txt index aff731624..31f7ca700 100644 --- a/NOTICE.txt +++ b/NOTICE.txt @@ -5,4 +5,6 @@ This product includes software from WorldEdit This product includes software from JOpt Simple, under the MIT license. -This product includes software by toi. \ No newline at end of file +This product includes software by toi. + +This product includes software from JChronic, under the MIT license. \ No newline at end of file diff --git a/build.xml b/build.xml index 45cd0dde9..afc9ca6d5 100644 --- a/build.xml +++ b/build.xml @@ -17,6 +17,7 @@ + @@ -48,7 +49,8 @@ - + + diff --git a/lib/jchronic.jar b/lib/jchronic.jar new file mode 100644 index 0000000000000000000000000000000000000000..74b42371ccae16f129aff850df4913ee15c35ab4 GIT binary patch literal 103709 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⋘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�lVTJ$Vr+@*TxrQZ% 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 dTl}xJlOGjEV!<^#)4Ta@s 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 Y snapshots = config.snapshotRepo.getSnapshots(true); - if (snapshots.length > 0) { - for (byte i = 0; i < Math.min(num, snapshots.length); i++) { - player.print((i + 1) + ". " + snapshots[i].getName()); + if (snapshots.size() > 0) { + for (byte i = 0; i < Math.min(num, snapshots.size()); i++) { + player.print((i + 1) + ". " + snapshots.get(i).getName()); } player.print("Use /snap use [snapshot] or /snap use latest."); @@ -123,4 +128,78 @@ public class SnapshotCommands { } } } + + @Command( + aliases = {"before"}, + usage = "", + desc = "Choose the nearest snapshot before a date", + min = 1, + max = -1 + ) + @CommandPermissions({"worldedit.snapshots.restore"}) + public static void before(CommandContext args, WorldEdit we, + LocalSession session, LocalPlayer player, EditSession editSession) + throws WorldEditException { + + LocalConfiguration config = we.getConfiguration(); + + if (config.snapshotRepo == null) { + player.printError("Snapshot/backup restore is not configured."); + return; + } + + Calendar date = session.detectDate(args.getJoinedStrings(0)); + + if (date == null) { + player.printError("Could not detect the date inputted."); + } else { + dateFormat.setTimeZone(session.getTimeZone()); + + Snapshot snapshot = config.snapshotRepo.getSnapshotBefore(date); + if (snapshot == null) { + player.printError("Couldn't find a snapshot before " + + dateFormat.format(date.getTime()) + "."); + } else { + session.setSnapshot(snapshot); + player.print("Snapshot set to: " + snapshot.getName()); + } + } + } + + @Command( + aliases = {"after"}, + usage = "", + desc = "Choose the nearest snapshot after a date", + min = 1, + max = -1 + ) + @CommandPermissions({"worldedit.snapshots.restore"}) + public static void after(CommandContext args, WorldEdit we, + LocalSession session, LocalPlayer player, EditSession editSession) + throws WorldEditException { + + LocalConfiguration config = we.getConfiguration(); + + if (config.snapshotRepo == null) { + player.printError("Snapshot/backup restore is not configured."); + return; + } + + Calendar date = session.detectDate(args.getJoinedStrings(0)); + + if (date == null) { + player.printError("Could not detect the date inputted."); + } else { + dateFormat.setTimeZone(session.getTimeZone()); + + Snapshot snapshot = config.snapshotRepo.getSnapshotAfter(date); + if (snapshot == null) { + player.printError("Couldn't find a snapshot after " + + dateFormat.format(date.getTime()) + "."); + } else { + session.setSnapshot(snapshot); + player.print("Snapshot set to: " + snapshot.getName()); + } + } + } } diff --git a/src/com/sk89q/worldedit/snapshots/ModificationTimerParser.java b/src/com/sk89q/worldedit/snapshots/ModificationTimerParser.java new file mode 100644 index 000000000..7d723e682 --- /dev/null +++ b/src/com/sk89q/worldedit/snapshots/ModificationTimerParser.java @@ -0,0 +1,35 @@ +// $Id$ +/* + * WorldEdit + * Copyright (C) 2010, 2011 sk89q + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . +*/ + +package com.sk89q.worldedit.snapshots; + +import java.io.File; +import java.util.Calendar; +import java.util.GregorianCalendar; + +public class ModificationTimerParser implements SnapshotDateParser { + + @Override + public Calendar detectDate(File file) { + Calendar cal = new GregorianCalendar(); + cal.setTimeInMillis(file.lastModified()); + return cal; + } + +} diff --git a/src/com/sk89q/worldedit/snapshots/Snapshot.java b/src/com/sk89q/worldedit/snapshots/Snapshot.java index fd8dcf5b6..a1d422bfe 100644 --- a/src/com/sk89q/worldedit/snapshots/Snapshot.java +++ b/src/com/sk89q/worldedit/snapshots/Snapshot.java @@ -21,23 +21,28 @@ package com.sk89q.worldedit.snapshots; import com.sk89q.worldedit.data.*; import java.io.*; +import java.util.Calendar; import java.util.logging.Logger; /** * * @author sk89q */ -public class Snapshot { +public class Snapshot implements Comparable { protected static Logger logger = Logger.getLogger("Minecraft.WorldEdit"); /** * Stores snapshot file. */ - private File file; + protected File file; /** * Name of the snapshot; */ - private String name; + protected String name; + /** + * Stores the date associated with the snapshot. + */ + protected Calendar date; /** * Construct a snapshot restoration operation. @@ -125,4 +130,48 @@ public class Snapshot { public String getName() { return name; } + + /** + * Get the file for the snapshot. + * + * @return + */ + public File getFile() { + return file; + } + + /** + * Get the date associated with this snapshot. + * + * @return + */ + public Calendar getDate() { + return date; + } + + /** + * Set the date of the snapshot. + * + * @param date + */ + public void setDate(Calendar date) { + this.date = date; + } + + @Override + public int compareTo(Snapshot o) { + if (o.date == null || date == null) { + return name.compareTo(o.name); + } else { + return date.compareTo(o.date); + } + } + + @Override + public boolean equals(Object o) { + if (o instanceof Snapshot) { + return file.equals(((Snapshot) o).file); + } + return false; + } } diff --git a/src/com/sk89q/worldedit/snapshots/SnapshotDateParser.java b/src/com/sk89q/worldedit/snapshots/SnapshotDateParser.java new file mode 100644 index 000000000..a17a40471 --- /dev/null +++ b/src/com/sk89q/worldedit/snapshots/SnapshotDateParser.java @@ -0,0 +1,38 @@ +// $Id$ +/* + * WorldEdit + * Copyright (C) 2010, 2011 sk89q + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . +*/ + +package com.sk89q.worldedit.snapshots; + +import java.io.File; +import java.util.Calendar; + +/** + * A name parser attempts to make sense of a filename for a snapshot. + * + * @author sk89q + */ +public interface SnapshotDateParser { + /** + * Attempt to detect a date from a file. + * + * @param file + * @return date or null + */ + public Calendar detectDate(File file); +} diff --git a/src/com/sk89q/worldedit/snapshots/SnapshotRepository.java b/src/com/sk89q/worldedit/snapshots/SnapshotRepository.java index ea284d04b..9472e4de5 100644 --- a/src/com/sk89q/worldedit/snapshots/SnapshotRepository.java +++ b/src/com/sk89q/worldedit/snapshots/SnapshotRepository.java @@ -20,8 +20,10 @@ package com.sk89q.worldedit.snapshots; import java.io.*; -import java.util.Arrays; +import java.util.ArrayList; +import java.util.Calendar; import java.util.Collections; +import java.util.List; /** * @@ -31,7 +33,13 @@ public class SnapshotRepository { /** * Stores the directory the snapshots come from. */ - private File dir; + protected File dir; + + /** + * List of date parsers. + */ + protected List dateParsers + = new ArrayList(); /** * Create a new instance of a repository. @@ -40,6 +48,9 @@ public class SnapshotRepository { */ public SnapshotRepository(File dir) { this.dir = dir; + + dateParsers.add(new YYMMDDHHIISSParser()); + dateParsers.add(new ModificationTimerParser()); } /** @@ -48,16 +59,17 @@ public class SnapshotRepository { * @param dir */ public SnapshotRepository(String dir) { - this.dir = new File(dir); + this(new File(dir)); } /** * Get a list of snapshots in a directory. The newest snapshot is * near the top of the array. * + * @param newestFirst * @return */ - public Snapshot[] getSnapshots() { + public List getSnapshots(boolean newestFirst) { FilenameFilter filter = new FilenameFilter() { public boolean accept(File dir, String name) { File f = new File(dir, name); @@ -66,22 +78,81 @@ public class SnapshotRepository { }; String[] snapshotNames = dir.list(filter); + List list = new ArrayList(snapshotNames.length); + + for (String name : snapshotNames) { + Snapshot snapshot = new Snapshot(this, name); + detectDate(snapshot); + list.add(snapshot); + } - if (snapshotNames == null || snapshotNames.length == 0) { - return new Snapshot[0]; + if (newestFirst) { + Collections.sort(list, Collections.reverseOrder()); + } else { + Collections.sort(list); + } + + return list; + } + + /** + * Get the first snapshot after a date. + * + * @param date + * @return + */ + public Snapshot getSnapshotAfter(Calendar date) { + List snapshots = getSnapshots(true); + Snapshot last = null; + + for (Snapshot snapshot : snapshots) { + if (snapshot.getDate() != null + && snapshot.getDate().before(date)) { + return last; + } + + last = snapshot; } - Snapshot[] snapshots = new Snapshot[snapshotNames.length]; - - Arrays.sort(snapshotNames, Collections.reverseOrder()); - - int i = 0; - for (String name : snapshotNames) { - snapshots[i] = new Snapshot(this, name); - i++; + return last; + } + + /** + * Get the first snapshot before a date. + * + * @param date + * @return + */ + public Snapshot getSnapshotBefore(Calendar date) { + List snapshots = getSnapshots(false); + Snapshot last = null; + + for (Snapshot snapshot : snapshots) { + if (snapshot.getDate().after(date)) { + return last; + } + + last = snapshot; } - - return snapshots; + + return last; + } + + /** + * Attempt to detect a snapshot's date and assign it. + * + * @param snapshot + */ + protected void detectDate(Snapshot snapshot) { + for (SnapshotDateParser parser : dateParsers) { + Calendar date = parser.detectDate(snapshot.getFile()); + if (date != null) { + snapshot.setDate(date); + return; + } + } + + snapshot.setDate(null); } /** @@ -90,13 +161,13 @@ public class SnapshotRepository { * @return */ public Snapshot getDefaultSnapshot() { - Snapshot[] snapshots = getSnapshots(); + List snapshots = getSnapshots(true); - if (snapshots.length == 0) { + if (snapshots.size() == 0) { return null; } - return snapshots[0]; + return snapshots.get(0); } /** diff --git a/src/com/sk89q/worldedit/snapshots/YYMMDDHHIISSParser.java b/src/com/sk89q/worldedit/snapshots/YYMMDDHHIISSParser.java new file mode 100644 index 000000000..35ec1f580 --- /dev/null +++ b/src/com/sk89q/worldedit/snapshots/YYMMDDHHIISSParser.java @@ -0,0 +1,51 @@ +// $Id$ +/* + * WorldEdit + * Copyright (C) 2010, 2011 sk89q + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . +*/ + +package com.sk89q.worldedit.snapshots; + +import java.io.File; +import java.util.Calendar; +import java.util.GregorianCalendar; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class YYMMDDHHIISSParser implements SnapshotDateParser { + + protected Pattern patt = + Pattern.compile("([0-9]+)[^0-9]?([0-9]+)[^0-9]?([0-9]+)[^0-9]?" + + "([0-9]+)[^0-9]?([0-9]+)[^0-9]?([0-9]+)"); + + @Override + public Calendar detectDate(File file) { + Matcher matcher = patt.matcher(file.getName()); + if (matcher.matches()) { + int year = Integer.parseInt(matcher.group(1)); + int month = Integer.parseInt(matcher.group(2)); + int day = Integer.parseInt(matcher.group(3)); + int hrs = Integer.parseInt(matcher.group(4)); + int min = Integer.parseInt(matcher.group(5)); + int sec = Integer.parseInt(matcher.group(6)); + Calendar calender = new GregorianCalendar(); + calender.set(year, month, day, hrs, min, sec); + return calender; + } + return null; + } + +}