Class WorldEditHook
This hook provides automatic detection and initialization of version-specific WorldEdit API implementations, supporting both WorldEdit and FastAsyncWorldEdit (FAWE) installations. It abstracts away the differences between WorldEdit 6 and WorldEdit 7 APIs while providing a unified interface for schematic operations.
The hook uses lazy initialization to detect the installed WorldEdit version and create the appropriate API wrapper only when first accessed. This approach ensures compatibility with servers that may not have WorldEdit installed while providing full functionality when it is available.
Version detection strategy:
- Check for WorldEdit plugin and use version string for detection
- If WorldEdit not found, check for FastAsyncWorldEdit
- Use reflection to detect WorldEdit 7 classes within FAWE
- Fall back to WorldEdit 6 compatibility if detection fails
Example usage:
// Check if WorldEdit is available
WorldEditApi<Clipboard> api = WorldEditHook.get();
if (api != null) {
// Perform WorldEdit operations
Clipboard clipboard = api.getClipboardByFile(schematicFile);
api.pasteClipboard(world, location, clipboard, transform);
}
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic @Nullable WorldEditApi
<com.sk89q.worldedit.extent.clipboard.Clipboard> get()
Retrieves the WorldEdit API instance for the installed version.
-
Constructor Details
-
WorldEditHook
public WorldEditHook()
-
-
Method Details
-
get
@Nullable public static @Nullable WorldEditApi<com.sk89q.worldedit.extent.clipboard.Clipboard> get()Retrieves the WorldEdit API instance for the installed version.This method performs lazy initialization of the WorldEdit API, detecting the installed version and creating the appropriate implementation on first access. Subsequent calls return the cached instance for optimal performance.
The method supports multiple WorldEdit distributions:
- Standard WorldEdit 6.x installations
- Standard WorldEdit 7.x installations
- FastAsyncWorldEdit (FAWE) with embedded WorldEdit 6 or 7
- Standalone FAWE installations without WorldEdit plugin
Version detection is performed using plugin version strings and reflection to ensure compatibility across different server configurations and WorldEdit distributions.
- Returns:
- the
WorldEditApi
instance for the detected version, ornull
if WorldEdit is not available
-