ZipExtractor - Extract and Compress ZIP, RAR, JAR, PACK, GZ, and XZ archives through minecraft

This is a discussion topic for the Ore project, ZipExtractor. View the full project on Ore for downloads and more information.


Resources

Wiki | Source | Dev Builds | Issue Tracker​

ZipExtractor is an administrative utility plugin allowing the compression/extraction of archived files through minecraft command. This plugin is extremely useful for dealing with archives over FTP, which does not provide support for neither compression nor extraction. While many safeguards are in place, please note that there is no undo button. Overridden files cannot be recovered.

The source and destination file paths are saved inside of the config.yml. This means that only one can be set at a time. If you edit these values directly in the config.yml you must reload the plugin for the new values to take effect.

Donate

Features

  • Extraction of ZIP, RAR, JAR, PACK, TAR, GZ, and XZ archives.
    • Note: Pack operations are only supported on JDK 13 and below.
  • Compression of any file or directory into the ZIP or TAR formats.
  • Compression of any JAR file to the PACK format, and any non-directory file to the GZ or XZ formats.
  • Queueable operations if you have many extractions/compressions to perform.
  • Configurable Thread Pool Executor allowing you to set a maximum queue size and maximum number of threads to run at once. Incase of an emergency the Thread Pool can be shutdown at anytime.
  • Option to be warned if an extraction/compression would result in files being overriden.
    • If enabled, users will require an additional permission in order to proceed with the process.
    • For extractions, you can view every file which would be overriden prior to proceeding with the process.
  • Tab completion for file paths, similar to the command line (configurable).
  • Pipe multiple extractions/compressions with a single command. (Ex. Extract Test.jar.pack.xz to Test.jar).
  • Metrics by bStats

You can find more extensive details on the wiki.

Wiki Contents

FAQ

Where can I find more information about this plugin?

We keep our wiki page updated to reflect the latest and most useful information about this plugin. If you have further questions don’t hesitate to ask the developer.

How can I report an issue or request a feature?

You may use our issue tracker to report issues and request new features be added. If you need immediate support you may also try contacting the developer directly.

Discord Consider also joining our Discord Server.

Which version should I use?

You should try to use the version uploaded here on the Sponge page. All versions posted here are considered releases and have undergone extensive testing.
Dev builds are also provided, however they are usually unstable and not feature complete. Only use these builds if you are interested in testing new versions or if for some reason you need the absolute latest changes.

Screenshots


Command List


Setting Source


Setting Destination


Begining Extraction


Extraction halted when conflicts are detected


Console Output


File tab completion on Bukkit

View ZipExtractor on Spigot

View ZipExtractor on DevBukkit

A new version has been released for ZipExtractor, it is available for download here.


Release 2.1.0 - Added Tab Completion for File Paths

This update adds tab completions for file paths with the setsrc and setdest commands. This functions similarly to tab completion in bash, start typing the file and press tab to traverse the file tree. A new configuration option has been added to allow disabling tab completions. Please update your configs.

Console vs In-Game

Tab completions work perfectly if the path you are tabbing does not include spaces. If the path does include a space, you will need to break the tabbing operation (by adding an extra character) and then resume it (remove the character and tab again).

On Bukkit, spaces are not a problem in the console.

On Sponge, spaces are escaped in the console. You need to remove the escape characters.

Ex.
You are trying to get to ./plugins/MyPlugin/target.zip. There is another folder called My Folder in the plugins directory. You take the following steps.

  • Type /ze setsrc ./pl and then hit tab.
  • The value /ze setsrc ./plugins/ is autofilled.
  • Continue; /ze setsrc ./plugins/My and hit tab.
  • The value /ze setsrc ./plugins/My Folder is autofilled.
    • If you continue to hit tab in an attempt to have it switch to MyPlugin, the autocompletion will fail. This will confuse minecraft, because a space means that we are now in another argument. It will only update whatever is after the space. For example, the value /ze setsrc ./plugins/My ./plugins/MyPlugins would be autofilled. This is clearly not correct.
    • You would need to manually change it to /ze setsrc ./plugins/MyP and then hit tab to get the desired result.
    • Note If your target file was at ./plugins/My Folder/target.zip, you could simply type a / and hit tab. This would work.

Sponge

Additionally on Sponge, a space is added after you finish a single tab completion. Simply remove the space and tab again to keep going.

Configuration Value

Some servers may not want this tab completion feature for security reasons. A configuration value has been added to disable it. Simply change general_settings.tab_complete_files to false in the configuration.

Other changes

You no longer need to encapsulate file paths with quotes if they contain spaces. The setsrc and setdest commands will now concatenate all subsequent arguments.

Ex. /ze setsrc ./My Cool Directory/WithAlot/of spaces.txt


New Features

Changes

Dependency Upgrades

A new version has been released for ZipExtractor, it is available for download here.


Release 2.2.0

This update adds support for piping multiple extractions or compressions with a single command. GZip (.gz) is now supported. The arguments -absolute and -override have been changed to use two dashes. They are now --absolute and --override.

Piped Operations

In the past, extracting and compressing files had to be done with a single command per file type. Example:

Source File: dir/Test.jar.pack.xz

Destinatiion Folder: dir/output.

If we wanted to extract this file to Test.jar, we would first need to extract it from xz, update the source, and finally extract it from pack.

This can now be done with a single command. With the same source and destinations set, simply run
/ze extract --until jar. The operations will be piped together and done in a single command.

How to Use

Extractions

/ze extract will extract only one format, as it has in the past.
/ze extract --all will extract until it reaches a format it cannot handle.
/ze extract --until <type> will extract until it reaches or a format it cannot handle.

Compressions

Compressions will always be automatically piped. The extention difference between the source and dest will be used to identify the desired types. Ex.

Source: dir/Test.jar
Dest: dir/Test.jar.pack.xz

Run /ze compress and Test.jar.pack.xz will be generated.


New Features

Changes

A new version has been released for ZipExtractor, it is available for download here.


Release 2.3.0 - TAR Support

This release adds support for TAR files. As a reminder, these behave very similarly to ZIPs. The project now targets 1.15.2 (1.8+ still supported), and bStats has been updated.

Commits

A new version has been released for ZipExtractor, it is available for download here.


Release v2.3.1

This release targets Spigot 1.16 and Sponge-API 7.2.0. Pack200 has been removed from JDK 14. As such, the feature is disabled if JDK 14+ is detected. Note that ZipExtractor is still compatible with all versions of Spigot 1.8-1.16.

Commits