Create a Minecraft plugin for Spigot/Paper that adds a custom command called /enchant_enchant with the syntax: /enchant_enchant <enchant_name> <level> The command must apply the specified enchantment to the item that the player is currently holding in their main hand. If the player is not holding any item, display an error message informing them that they must hold an item to enchant. Validate the <enchant_name> parameter: it must correspond to a valid enchantment recognized by the game. Validate the <level> parameter: it must be an integer from 1 to 999. If the level is outside this range, display a clear error message. If the item already has other enchantments, keep them intact while adding or updating the new enchantment. Ensure the command works for all item types that can accept the enchantment. If the enchantment is incompatible with the item, display an informative error. Include proper permission checks: only players with a specific permission (e.g., "customenchant.use") can use the command. Log every usage of the command to the server console with the player's name, item name, enchantment applied, and level. Include feedback messages to the player: - On success: "You have successfully enchanted your item with <enchant> at level <level>." - On invalid enchant: "Error: <enchant> is not a valid enchantment." - On invalid level: "Error: Level must be between 1 and 999." - On empty hand: "Error: You must hold an item to enchant." - On incompatible item: "Error: <enchant> cannot be applied to this item." Make sure the plugin works in both offline and online mode servers. The plugin should handle exceptions gracefully and not crash the server if invalid inputs are provided. Include detailed inline comments explaining each part of the code for clarity and maintainability. Optionally, include tab completion for <enchant_name> to suggest all valid enchantments when the player types the command. Optionally, include tab completion for <level> to suggest numbers 1-999. The plugin must be compatible with Minecraft 1.21 and the latest versions of Spigot and Paper. Provide configuration options in a config.yml to allow enabling or disabling the command, changing the permission node, and adjusting the maximum level allowed. Ensure that enchantments applied through this command behave identically to vanilla enchantments in terms of effects. Add handling for edge cases: enchanted books, stackable items, tools, armor, weapons, and special items. Test for cases when the item has multiple enchantments, when enchantments are overwritten, and when invalid parameters are used. Ensure thread safety and that the plugin does not introduce lag when multiple players use the command simultaneously. Provide clear instructions for installing the plugin, including dependencies and placement in the plugins folder.