← Назад к ресурсам

VillagerLobotimizer

A plugin to lobotomize villagers stuck in a trading hall. Perfect for SMPs looking to increase performance without sacrificing gameplay!

Modrinth optimization utility

Описание

![image](https://github.com/user-attachments/assets/2716b281-48a6-4a1a-9305-0560684d4e0f) # VillagerLobotimizer A Minecraft Paper plugin that improves server performance by turning off villagers' AI when they're confined to trading halls. ![](https://img.shields.io/bstats/players/25704?color=green?label=Players) ![](https://img.shields.io/bstats/servers/25704?color=green?label=Servers) ## Features - Automatically detects when villagers are trapped in trading halls - Disables AI for trapped villagers to improve server performance - Maintains villager trading functionality while AI is disabled - Automatically refreshes villager trades on a configurable schedule with randomization support - Profession-specific restock sounds and level-up celebrations - Optimized job site detection for better performance - Night-time trade refresh functionality - Allows naming villagers to control their behavior ("nobrain", "alwaysbrain") - Debug mode for troubleshooting - Command system for checking villager status and managing the plugin ## Commands - `/lobotomy info` - Shows statistics about lobotomized and active villagers - `/lobotomy debug` - Shows detailed information about the villager you're looking at - `/lobotomy debug ` - Shows detailed information about a specific villager - `/lobotomy debug toggle` - Toggles debug mode - `/lobotomy wake` - Manually restores AI to the villager you're looking at - `/lobotomy reload` - Reloads the configuration and applies changes to all villagers [![Partner link for Nodecraft](https://cdn.modrinth.com/data/cached_images/c739515703b015d95ffc02ebf61007530480bd20.jpeg)](https://nodecraft.com/r/mja00) **Note: I do not make any money off this link. It's fully non-monetized.** ## Configuration ```yaml #Configuration version - DO NOT MODIFY MANUALLY config-version: 4 #List of names that will always keep villagers active (case-insensitive) always-active-names: - "alwaysbrain" #Interval between trapped checks, in ticks, for active villagers check-interval: 150 #Interval between trapped checks, in ticks, for inactive villagers inactive-check-interval: 150 #Interval between villager trade restocks, in milliseconds restock-interval: 540000 #Range (in milliseconds) before restock-interval to start random restock checks. If set to 0, restocking is not randomized. If equal to or greater than restock-interval, restock will always occur. restock-random-range: 0 #Whether to only lobotomize villagers with jobs only-lobotomize-villagers-with-professions: false #Whether to only lobotomize villagers that have been traded at least once only-lobotomize-villagers-with-experience: false #Whether to lobotomize villagers in boats/minecarts. Does not apply to villagers riding on non-vehicle entities like horses. always-lobotomize-villagers-in-vehicles: false #Whether to make lobotomized villagers silent. When enabled, villagers will be muted when their AI is disabled. silent-lobotomized-villagers: false #The sound to play when a villager restocks. Leave empty ("") for default sounds. #A list of sounds can be found at https://jd.papermc.io/paper/1.21.6/io/papermc/paper/registry/keys/SoundEventKeys.html #Use the name found in the description column, e.g. "entity.villager.celebrate" for the sound played when a villager restocks. restock-sound: "" #The sound played when a villager is leveled up. Leave empty ("") for no sound. level-up-sound: "entity.villager.celebrate" #Debug mode. Prints debug messages to the console. debug: false #Chunk debug mode. Prints debug messages related to chunks chunk-debug: false #To ignore villagers stuck in doors, set this to true. ignore-villagers-stuck-in-doors: false #To not lobotomize villagers surrounded by non-solid blocks, set this to true. ignore-non-solid-blocks: false #To check if there is a roof above a villager before lobotomizing, set this to true check-roof: true #Create teams for debugging purposes. This will create colored teams for inactive and active villagers. We use this to color their glowing effect. create-debug-teams: false #Disable the update checker. You can disable this if you don't want to be notified about updates. disable-update-checker: false #Disable chunk forced Villager updating. This'll disable changes to blocks in a chunk from triggering Villagers in the chunk to be updated. disable-chunk-villager-updates: false #Prevent trading with unlobotomized villagers. When enabled, players can only trade with villagers that have been lobotomized. prevent-trading-with-unlobotomized-villagers: false #Persist lobotomized state across chunk unloads. When enabled, villagers that are lobotomized will remain lobotomized when their chunk is unloaded and reloaded. #This prevents lag spikes from villagers needing to be re-evaluated and re-lobotomized after chunk loads. persist-lobotomized-state: true #Enable Sentry error tracking to help developers identify and fix bugs. See "Privacy & Telemetry" section below for details. enable-sentry: true ``` ## Special Villager Names - Name a villager with "nobrain" to force it to always be lobotomized - Name a villager with "alwaysbrain" to prevent it from ever being lobotomized (configurable in `always-active-names`) ## Sound System The plugin features an enhanced sound system: - **Default restock sounds**: When `restock-sound` is left empty, villagers will play default sounds when restocking - **Customizable sounds**: You can override the default sounds by specifying a custom sound in the configuration - **Sound reference**: A complete list of available sounds can be found in the [Paper API documentation](https://jd.papermc.io/paper/1.21.6/io/papermc/paper/registry/keys/SoundEventKeys.html) - **Level-up celebrations**: Villagers play celebration sounds when they level up their trades ## Requirements - Paper (or its forks) 1.21.6+ - Java Development Kit (JDK) 21 for development ## Installation 1. Download the latest release from [Modrinth](https://modrinth.com/plugin/villagerlobotomy) or [Hangar](https://hangar.papermc.io/mja00/VillagerLobotimizer) 2. Place the .jar file in your server's plugins folder 3. Restart your server or use a plugin manager to load the plugin 4. Configure the plugin settings in `plugins/VillagerLobotimizer/config.yml` if needed ## Development ### Prerequisites - Java Development Kit (JDK) 21 - Gradle (wrapper included) ### Building 1. Clone the repository ```bash git clone https://github.com/mja00/VillagerLobotimizer.git cd VillagerLobotimizer ``` 2. Build the plugin ```bash ./gradlew build ``` The built plugin will be in `build/libs/VillagerLobotimizer-.jar` ### Running a test server The project uses the run-paper plugin to easily test changes: ```bash ./gradlew runServer ``` This will download a Paper server for Minecraft 1.21.5 and start it with the plugin installed. ### Publishing The project uses Hangar for publishing: ```bash ./gradlew publishPluginPublicationToHangar ``` This requires the `HANGAR_API_KEY` environment variable to be set. The plugin will be published as: - A release version if the current commit is tagged with a version matching the project version - A snapshot version if there's no matching tag ## Support If you encounter any issues, please report them on [GitHub](https://github.com/mja00/VillagerLobotimizer/issues). ## License This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.