SharedCure
SharedCure is a server plugin built on the Paper API that utilizes a 'Tagging + Lazy Loading' mechanism to ensure that villagers cured by any player provide the maximum discount to all players on the server.
Quick challenge
How far can you run before the mobs catch you?
Minecraft check
Confirm your run
Complete the quick check to get your code.
SharedCure
SharedCure
English | 简体中文
SharedCure is a Paper plugin that implements server-wide villager discount sharing using a small tag (PDC) and Just-In-Time reputation injection approach. When a villager has been cured by any player, this plugin ensures other players who interact with that villager receive the highest trade discount (MAJOR_POSITIVE) without requiring bulk updates across all players.
Features
- Cure capture: Each villager receives a `discount_status` tag (PDC) indicating `UNKNOWN`, `NOT_CURED`, or `CURED` to minimize server-wide operations. - Cure capture: When a player interacts with a villager in the `CURED` state, the plugin will, if necessary, instantly inject `MAJOR_POSITIVE` reputation for the player's UUID, ensuring that the discount is immediately reflected in the trading interface. This only affects the cured reputation (`MAJOR_POSITIVE`) and does not impact other types of reputation. - Cure capture: On plugin load and chunk load, villagers that lack the plugin tag are deep-checked for existing reputations (gossip) and tagged accordingly to support older worlds. - Cure capture: The plugin listens for `EntityTransformEvent` and marks zombie villager conversions as `CURED` instantly.
Architecture Overview
| Module | Event | Purpose | | --- | --- | --- | | Existing villager initialization | `ChunkLoadEvent` + startup scan | Tag existing villagers and deep-check gossip/inventory for unknown states. | | New villager tagging | `CreatureSpawnEvent` | Tag newly spawned villagers `NOT_CURED`. | | Cure capture | `EntityTransformEvent` | Mark newly cured villagers as `CURED`. | | JIT injection | `PlayerInteractEntityEvent` | Inject `MAJOR_POSITIVE` reputation for the interacting player when villager is `CURED`.