Scythe
Auto-replant harvested crops!
Scythe
Scythe - Auto-Replant, Right-Click-Harvest plugin
Features
* Automatically replant crops after they are harvested * Right-click to harvest fully grown crops * Crouch in order to break crops without having to toggle the functionality off * Configuration options to customize how you'd like the plugin to work on your server
Commands
* `/scythe toggle`: Toggles the automatic replanting and right-click harvesting feature for the player who executed the command. This requires the `scythe.toggle` permission. * `/scythe reload`: Reloads the configuration for the plugin. This requires the `scythe.reload` permission.
Permissions
* `scythe.use` : Base permission for access to Scythe functionality. * `scythe.use.harvest` : Allows a player to harvest blocks using scythe functionality * `scythe.use.replant` : Allows a player to auto-replant crops using scythe functionality * `scythe.toggle` : Allows the player to toggle the feature for themselves using the /scythe toggle command. * `scythe.reload` : Allows the player to reload the configuration using the /scythe reload command.
Config
Note, generated config does not have this many comments lol, this is just for the README/description
```yml #Scythe auto-replant: enabled: true # Should crops automatically be replanted? require-seeds: false # Should the user be required to have seeds in their inventory? Note: will consume seeds require-tool: false # Should the user be required to use a specific tool? delay-ticks: 1 # How long in ticks after breaking the block should it be replanted? (20 ticks per second, without lag) right-click-harvest: enabled: true # Should users be able to right-click to harvest blocks? require-tool: false # Should users be required to use a specific tool? #Only applies if "require-tool" is true in any of the above categories tools: enabled-tools: # If users are required to use a specific tool, which tools are valid? - "minecraft:wooden_hoe" - "minecraft:stone_hoe" - "minecraft:iron_hoe" - "minecraft:golden_hoe" - "minecraft:diamond_hoe" - "minecraft:netherite_hoe"
Item models should be declared like "namespace:id"
required-item-models: [ ] # Do you have any specific item models you're using on tools that make them look different? If so, declare them here
Note: In vanilla, harvesting normally crops does NOT use durability.
This will cause the tool to lose durability on right-click harvest ONLY
durability: harvest-uses-durability: false # Should right-click-harvest make tool durability go down? replant-uses-durability: false # Should auto-replant make tool durability go down? prevent-tool-break: true # If either of the two above are set to 'true', do you want to prevent the plugin from working if a tool is low on durability, to prevent users from accidentally breaking their tools? minimum-durability: 10 # If the above is set to true, how low should durability be when the plugin stops working?
Please choose a sound from this list: https://jd.papermc.io/paper/1.21.4/org/bukkit/Sound.html
sounds: enabled: true # Should sounds be played when a user breaks or auto-replants a crop? break-sound: BLOCK_CROP_BREAK # Which sound should be played when a crop is broken? plant-sound: ITEM_CROP_PLANT # Which sound should be played when a crop is replanted?
between 0 and 2
volume: 1.0 # How loud should it be?
between 0 and 2
pitch: 1.0 # How high-pitched should it be?
Please choose a particle from this list: https://jd.papermc.io/paper/1.20/org/bukkit/Particle.html
particles: harvest: enabled: true # Should particles show when a user right-click-harvests a block? particle: BLOCK # Which particle should show? count: 40 # How many particles should spawn? This will wildly depend on the selected particle
how far from the center particles should go, in blocks
spread: 0.5 replant: enabled: true # Should particles show when a block is auto-replanted? particle: HAPPY_VILLAGER # Which particle should show? count: 2 # How many particles should spawn? This will wildly depend on the selected particle spread: 0.5 # how far from the center should particles go, in blocks
Crops the plugin should work on, list of materials is here: https://jd.papermc.io/paper/1.21.4/org/bukkit/Material.html
Note, the material must have the BlockData of 'Ageable' - note, most other ageable blocks in the list don't work as intended.
allowed-crops: - BEETROOTS - CARROTS - COCOA - NETHER_WART - POTATOES - WHEAT
- PUMPKIN_STEM
- MELON_STEM
```
API
HarvestEvent - Cancellable
| Method | Returns | Description | |-------------------------|---------------|-----------------------------------------------| | `getPlayer()` | `Player` | Returns the player who triggered the harvest. | | `getBlock()` | `Block` | Returns the crop block being harvested. | | `isCancelled()` | `boolean` | Checks if the event is cancelled. | | `setPlayer(Player)` | `void` | Updates the player associated with the event. | | `setBlock(Block)` | `void` | Updates the block involved in the event. | | `setCancelled(boolean)` | `void` | Cancels or un-cancels the event. | | `getHandlers()` | `HandlerList` | Bukkit-required handler method. | | `getHandlerList()` | `HandlerList` | Bukkit-required static handler method. |
ReplantEvent - Cancellable
| Method | Returns | Description | |---------------------------|---------------|-------------------------------------------------------------| | `getPlayer()` | `Player` | Returns the player who triggered the replanting. | | `getBlock()` | `Block` | Returns the block being replanted. | | `getBlockData()` | `BlockData` | Returns the BlockData being applied to the replanted block. | | `isCancelled()` | `boolean` | Checks if the event is cancelled. | | `setPlayer(Player)` | `void` | Updates the player associated with the event. | | `setBlock(Block)` | `void` | Updates the block involved in the event. | | `setBlockData(BlockData)` | `void` | Updates the BlockData for the replanted block. | | `setCancelled(boolean)` | `void` | Cancels or un-cancels the event. | | `getHandlers()` | `HandlerList` | Bukkit-required handler method. | | `getHandlerList()` | `HandlerList` | Bukkit-required static handler method. |
Maven
```xml
<repository> <id>modrinth-repo</id> <url>https://api.modrinth.com/maven/</url> </repository>
<dependency> <groupId>maven.modrinth</groupId> <artifactId>scythe</artifactId> <version>4.0</version> <scope>provided</scope> </dependency> ```
Gradle
```gradle exclusiveContent { forRepository { maven { url = "https://api.modrinth.com/maven" } } filter { includeGroup "maven.modrinth" } }
dependencies { compileOnly 'maven.modrinth:scythe:4.0' } ```
Support
If you need any help with the Scythe plugin, please open an issue on the GitHub repository or join our Discord server for support.