d542ba78ff
Helper suffers from race conditions for short-lived tasks, leading to some poor UX conditions such as errors not propagating to the user (because the exception handler wasn't attached to the future yet), or lack of success messages. This commit replaces that system by a Builder which takes a callable to begin, and then takes supervisor, delay message, and the success and failure messages and handlers as parts of the builder. The success and failure handlers wrap the callable itself before submitting to the executor so they will always be run. The supervisor and delay are added as listeners to the future since they aren't required if the task is sufficiently short-lived (and to maintain compatibility with the classes which are now in WorldEdit). The builder also supports Components for success and failure messages, as well as consumers of the callable's result or exception for better customization of output, instead of having to rely on adding a callback to the future. The future is still returned for certain special usages. |
||
---|---|---|
config/checkstyle | ||
gradle/wrapper | ||
worldguard-core | ||
worldguard-legacy | ||
worldguard-sponge | ||
.gitattributes | ||
.gitignore | ||
.travis.yml | ||
build.gradle | ||
CHANGELOG.md | ||
CONTRIBUTING.md | ||
gradlew | ||
gradlew.bat | ||
LICENSE.txt | ||
README.md | ||
settings.gradle | ||
worldguard-logo.png |
WorldGuard lets you and players guard areas of land against griefers and undesirables, as well as tweak and disable various gameplay features of Minecraft.
- Block creeper and wither block damage, falling damage, etc.;
- Disable fire spread, lava fire spread, ice formation, Endermen picking up blocks, etc.;
- Blacklist certain items and blocks so they can't be used;
- Warn moderators when certain items and blocks are used;
- Protect areas of your world so only certain people can build in them;
- Set areas where PVP, TNT, mob damage, and other features are disabled;
- Protect your server from various 'exploits' like magical obsidian creation machines;
- Disable, or enable, various Minecraft features, like sponges from classic;
- Add useful commands like an immediate "STOP ALL FIRE SPREAD" command.
- Enable only features you want! Everything is off by default.
WorldGuard is open source and is available under the GNU Lesser General Public License v3.
Currently, Bukkit is required to use WorldGuard. You can get a release copy of WorldGuard from the BukkitDev site.
Compiling
The project is written for Java 8 and our build process makes use of Gradle. Detailed compilation information can be found on the wiki.
Dependencies are automatically handled by Gradle.
Contributing
We happily accept contributions, especially through pull requests on GitHub.
Please read CONTRIBUTING.md for important guidelines to follow.
Submissions must be licensed under the GNU Lesser General Public License v3.
Links
- Homepage
- Discord
- IRC channel (#sk89q on irc.esper.net)
- Issue tracker
- Continuous integration
- End-user documentation / Older Wiki