AsyncWorldEdit - Premium

 AsyncWorldEdit - Premium 3.4.11

AsyncWorldEdit - Premium
Description
This plugin has only one function: eliminate the lag caused by the WorldEdit! This is done by hooking into WorldEdit inners classes and replacing some of them with specially prepared classes. All WorldEdit operations are divided into two stages: preparation and block placing. The preparation phase is done in async thread and calculates the list of blocks that need to be changed. All the block placing in stage two is done in packages. The package size and how often the blocks are drawn are configurable in the config. AsyncWorldEdit is not a reimplementation of WorldEdit! It attaches the original WorldEdit API and WorldEdit classes and tries to fix the lags. There fore you have access to all the WorldEdit operations, and all those operations work exactly like in the original WorldEdit. So basically you get the same commands, same permissions and the same experience. In addition to that if WorldEdit team releases a new feature, fixes a bug all you need to do is update WorldEdit and AWE will do its job as usual.

The AsyncWorldEdit Premium is a direct continuation of the original AsyncWorldEdit. It contains additional functions and improvements and it is going to be updated regularly.

https://www.youtube.com/watch?v=LZimrFD-5CA

READ THIS! Before you buy.
I can't make a payment... Some ppl reported that they can't make a payment directly from Spigot. If you have this problem you can send the money directly from your PayPal (for details send me a PM).


I paid for the plugin but can't download it...
Currently all transactions are accepted and processed manually therefore it may take up to 24h before you'll get access to the plugin download. If the transaction is not "instant" (for example: from a bank account) I wait for the transaction to finish before I grant access to the plugin.

I send you an email... I do not answer emails send to my PayPal email. Contact me on the public forum or send me a PM.

My transaction got rejected
. I will cancel (reject) all transactions that fit those criteria:
  1. you used a unverified PayPal account,
  2. you used a unregistered PayPal account,
Why so much trouble? I got charge-backs on PayPal just after the plugin got downloaded, and PayPal does not provide any level of protection against such actions.
I accept the payments manually because sometimes the PayPal Spigot connection fails and I need to add the users manually.

I'm missing... (I need...)
If AsyncWorldEdit lacks a feature that you would like to have, that would make your work much easier send me a PM describing your needs.

Installation
To install the plugin simply follow those steps (steps 5-7 are optional):
  1. download and install WorldEdit 6.1.2 (or newer)
  2. buy the plugin on spigotmc.org
  3. download AsyncWorldEdit.jar (for WorldEdit dev you need to download AsyncWorldEdit-dev.jar, you can find it on the version history. Go to version history and click "download" for on the latest dev version)
  4. install AsyncWorldEdit (the injector will install automatically)
  5. (o) to enable blocks loggin and blocks access control download BlocksHub
  6. (o) if you are using PlotMe older then 0.17 and want to enable the PlotMeFix got to plugins/AsyncWorldEdit/plugins and change AsyncWorldEdit-PlotMe*.jar.dis to AsyncWorldEdit-PlotMe*.jar. Use the jar that's for your PlotMe version!
  7. (o) if you want to use additional progress display plugins enable the appropriate bridge for your progress display plugin (For example: if you want to use ActionBarAPI you need AsyncWorldEdit-ActionBarAPI)
  8. restart server
  9. edit the config file
  10. restart server or do /AWE reload

Version before 3.3.0
To install the plugin simply follow those steps (steps 5-7 are optional):
  1. download and install WorldEdit
  2. buy the plugin on spigotmc.org
  3. download AsyncWorldEdit
  4. install AsyncWorldEdit and AsyncWorldEditInjector
  5. (o) to enable blocks loggin and blocks access control download BlocksHub
  6. (o) if you are using PlotMe older then 0.17 and want to enable the PlotMeFix put AsyncWorldEdit-PlotMe* in your plugins folder. Use the jar that's for your PlotMe version!
  7. (o) if you want to use additional progress display plugins put the appropriate bridge for your progress display plugin (For example: if you want to use ActionBarAPI you need AsyncWorldEdit-ActionBarAPI)
  8. restart server
  9. edit the config file
  10. restart server or do /AWE reload
Installation - Forge (Cauldron)
To install the plugin simply follow those steps:

  1. download WorldEdit and WorldEdit Forge
    1. install WorldEdit into plugins folder
    2. install WorldEdit forge into mods folder
  2. download AsyncWorldEdit
    1. install AsyncWorldEditInjector into mods folder (do not put it into the plugins folder!)
    2. install AsyncWorldEdit into plugins folder (do not put it into the mods folder!)
  3. Follow the installation instruction from the regular version starting from p5.

Error performing safe operation...
AsyncWorldEdit queues changed blocks in a async thread and then places them in packages. Since many WorldEdit operations need to acquire blocks from the map AsyncWorldEdit needs to get the blocks during the preparation phase (in async thread). Since almost none of the API calls should be called from async thread (its risky at most) AsyncWorldEdit checks if it can do the block get in a async thread. If it detects that it is not possible/not allowed it dispatches this to the main thread. Sometimes AWE is not able to detect that the operation is not allowed, this causes the operation to fail. AWE logs this fact in the log (Error performing safe operation) and does the operation using the dispatcher. If all the operations ware processed using the dispatcher you would experience a drasticall speed decrease. On the other hand it is not possible to be 100% sure that the get operation will not fail from async thread. To be 100% sure AWE would need to inject its own classes into Bukkit inner workings.
AsyncWorldEdit vs AsyncWorldEdit Premium
The premium version of AsyncWorldEdit is a direct continuation of AsyncWorldEdit. In addition to all the features that you can find in AsyncWorldEdit you get:
  • Better memory management (AWE detects when the server is running low on memory and pauses the operation),
  • Undo stored on disk instead of RAM
  • Automatic configuration update,
  • Simpler installation
  • No more holes if your player reaches the maximum number of queued blocks,
  • Fixed some legacy bugs (missing injector detection, plugin unload, ...)
  • New commands for schematics:
    • schematic information
    • place schematic directly without the usage of clipboard
  • Direct chunk API (Edit millions of blocks in seconds). Supported commands:
    • copy/paste blocks from and to the clipboard
    • supports entities riding other entities
    • copy one piece of world to other location
    • set blocks
  • Some additional utility commands (toggle undo, toggle block placing speed ingame per player)
  • Continuous support and plugin update ;)
License
For the full license please go to this link

Plugins that use AsyncWorldEdit
If you are a plugin author and your plugin uses AWE API contact me I'll add your plugin to the list.

API
For API and Maven please to go to Github

Issues
To report issues please use the Github issue tracker.

Auto updates
This plugin does not provide auto update feature it only nags the server owner's when there's an update. To disable this feature set checkVersion to false in the config. Alternatively you can remove the AWE.admin.version permission node if you don't want to receive update information.

I'm still experiencing lag!
Read

Direct Chunk API
This version of the plugin contains a new super fast world editing feature. It is based on direct chunk data access. It allows you to copy large pieces of the map instantly. Currently the Direct Chunk API supports:
  • Spigot 1.8R3 API (Spigot 1.8.7)
  • Spigot 1.9R1 API (Spigot 1.9)
Support for additional versions will be added in future versions.

Block loggers & Block access control
The enables logging of blocks placed by WorldEdit and can enforce block access. This is done using a special plugin called BlocksHub. To enable block logging (or block access control) you need to enable it in AWE config. This feature requires you to download, install and configure BlocksHub and then install any of the supported block loggers (access controllers).

New loggers and new access control plugins are going to by added directly to BlocksHub plugin.

WARNING: The Direct Chunk API currently does not support BlocksHub.

How many blocks can I queue?
All tests ware done in a controlled environment. Using the official spigot, only AWE and WE ware installed and there was 1 player on the server. The AWE config was not changed.

On a minimum server (512m) free memory ~200m I managed to queue up to 1 000 000 blocks. But after the queue reached 500 000 blocks TPS started to dropped drastically because of the garbage collector. Therefore I do not recommend to queue more then 500 000 blocks on a server that has 200m free ram.

On a server that had 1g ram, approximately ~700m free, I managed to queue up to 2 500 000 blocks. After the queue reached 2 000 000 blocks the TPS started dropping because of the garbage collector.

Adding additional ram resulted in increase of the maximum number of queued blocks approximately by 1 500 000 blocks for each 500m of additional free ram. When I disabled the blocks freeze function I managed to queue additional 20% blocks, (1 800 000 for each additional 500m of free ram).

Plugin X stopped working after installing AWE
If a plugin stopped working after installing AsyncWorldEdit please contact me. I'll try to help.

Roadmap
Roadmap

Plugin API
Plugin API

Commands
Commands page

Permissions
Permissions page

Configuration
Configuration page

Changelog
Configuration page

Dependencies
This plugin depends on:
BlocksHub - block login and blocks access
Other optional dependencies:
Progress display plugins:
MCStats
This plugin uses MCStats to gather statistics. It gathers only the standard stats gathered for most of MCStat's enabled plugins (for example: OS, Java version, CPU, country, plugin and server version). For details what exactly is gathered click on the graph below. To disable the stats you need to disable stats gathering for MCStats (set opt-out to true in plugins/PluginMetrics/config.yml). This disables all the stats gathering for all plugins that use the default MCStats.

Thank you for using this plugin.

Latest reviews

help. plugin not work.
[13:14:21 ERROR]: Could not load 'plugins\AsyncWorldEdit-3.4.11.jar' in folder 'plugins'
org.bukkit.plugin.InvalidPluginException: java.lang.ClassFormatError: Duplicate method name "?" with signature "(Ljava.lang.String;)Ljava.lang.String;" in class file org/primesoft/asyncworldedit/AsyncWorldEditMain
at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:133) ~[spigot.jar:git-Spigot-d21162c-61e0c69]
at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:327) ~[spigot.jar:git-Spigot-d21162c-61e0c69]
at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:248) [spigot.jar:git-Spigot-d21162c-61e0c69]
at org.bukkit.craftbukkit.v1_12_R1.CraftServer.loadPlugins(CraftServer.java:308) [spigot.jar:git-Spigot-d21162c-61e0c69]
at net.minecraft.server.v1_12_R1.DedicatedServer.init(DedicatedServer.java:205) [spigot.jar:git-Spigot-d21162c-61e0c69]
at net.minecraft.server.v1_12_R1.MinecraftServer.run(MinecraftServer.java:545) [spigot.jar:git-Spigot-d21162c-61e0c69]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_152]
Caused by: java.lang.ClassFormatError: Duplicate method name "?" with signature "(Ljava.lang.String;)Ljava.lang.String;" in class file org/primesoft/asyncworldedit/AsyncWorldEditMain
at java.lang.ClassLoader.defineClass1(Native Method) ~[?:1.8.0_152]
at java.lang.ClassLoader.defineClass(Unknown Source) ~[?:1.8.0_152]
at java.security.SecureClassLoader.defineClass(Unknown Source) ~[?:1.8.0_152]
at java.net.URLClassLoader.defineClass(Unknown Source) ~[?:1.8.0_152]
at java.net.URLClassLoader.access$100(Unknown Source) ~[?:1.8.0_152]
at java.net.URLClassLoader$1.run(Unknown Source) ~[?:1.8.0_152]
at java.net.URLClassLoader$1.run(Unknown Source) ~[?:1.8.0_152]
at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_152]
at java.net.URLClassLoader.findClass(Unknown Source) ~[?:1.8.0_152]
at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:101) ~[spigot.jar:git-Spigot-d21162c-61e0c69]
at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:86) ~[spigot.jar:git-Spigot-d21162c-61e0c69]
at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_152]
at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_152]
at java.lang.ClassLoader.defineClass1(Native Method) ~[?:1.8.0_152]
at java.lang.ClassLoader.defineClass(Unknown Source) ~[?:1.8.0_152]
at java.security.SecureClassLoader.defineClass(Unknown Source) ~[?:1.8.0_152]
at java.net.URLClassLoader.defineClass(Unknown Source) ~[?:1.8.0_152]
at java.net.URLClassLoader.access$100(Unknown Source) ~[?:1.8.0_152]
at java.net.URLClassLoader$1.run(Unknown Source) ~[?:1.8.0_152]
at java.net.URLClassLoader$1.run(Unknown Source) ~[?:1.8.0_152]
at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_152]
at java.net.URLClassLoader.findClass(Unknown Source) ~[?:1.8.0_152]
at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:101) ~[spigot.jar:git-Spigot-d21162c-61e0c69]
at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:86) ~[spigot.jar:git-Spigot-d21162c-61e0c69]
at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_152]
at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_152]
at java.lang.Class.forName0(Native Method) ~[?:1.8.0_152]
at java.lang.Class.forName(Unknown Source) ~[?:1.8.0_152]
at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:64) ~[spigot.jar:git-Spigot-d21162c-61e0c69]
at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:129) ~[spigot.jar:git-Spigot-d21162c-61e0c69]
... 6 more
server does not see this plugin
cqnfuse
cqnfuse
Send me PM I'll help you

Similar resources

1.00 star(s) 1 ratings
Downloads
167
Updated
0.00 star(s) 0 ratings
Downloads
221
Updated
AsyncWorldEdit - Premium sephus_
Async WorldEdit - Edit millions of blocks without lag!
1.00 star(s) 1 ratings
Downloads
418
Updated
BlackSpigot General Chat
Rules Help Users
    timojesus @ timojesus: I fixed some of the gifs for resource and rank prefix banners today, too ur ModelEngine its safe?
    Top