Описание
# CobbleRegions
Server-side Cobblemon sidemod that adds region-based level caps with per-player progression.
Each Minecraft world/dimension is assigned to a Region. Every Region has its own ordered cap track
(for example: 14 -> 22 -> 28). Players can travel freely, but a Pokemon can never level past the
cap currently unlocked in its origin Region.
## Core Behavior
- The player's current Region is based on their dimension/world.
- The active cap is the current unlocked cap of that Region.
- Each Pokemon has a persistent Origin Region (caught/hatched/received).
- EXP is blocked so Pokemon cannot exceed their Origin Region cap, even in higher-cap Regions.
## Config
Config is stored at `config/cobbleregions.json` on the server.
Example:
```json
{
"battleDisallowOverCapSendOut": true,
"battleOverCapSendOutMessage": "Over-cap Pokemon cannot be sent out in battle: {pokemon_list}",
"battleInsufficientCapPokemonMessage": "Battle canceled: you need at least {required} non-fainted Pokemon within your current cap.",
"battleInsufficientCapPokemonReason": "Not enough cap-legal Pokemon are available to start this battle.",
"regions": [
{
"id": "region_a",
"dimensions": ["minecraft:overworld"],
"caps": [14, 22, 28, 40],
"capMessages": {
"14": "Level cap reached for this region.",
"22": "Another cap reached."
}
},
{
"id": "region_b",
"prerequisite": "region_a",
"prerequisiteMessage": "Complete {prerequisite} before leveling in {region}.",
"dimensions": ["minecraft:the_nether"],
"caps": [14]
}
]
}
```
If a Region has no caps configured, it is treated as unlimited.
`battleDisallowOverCapSendOut` defaults to `false`. When `true`, CobbleRegions removes over-cap Pokemon from player battle rosters at battle start. If that leaves too few non-fainted Pokemon for the format, the battle is canceled.
Battle enforcement messages are configurable with MiniMessage:
- `battleOverCapSendOutMessage` uses `{pokemon_list}`.
- `battleInsufficientCapPokemonMessage` uses `{required}`.
- `battleInsufficientCapPokemonReason` uses `{required}`.
## Commands
Command access uses permission node `cobbleregions.command.regions` (defaults to permission level 2).
Optional progress commands use permission node `cobbleregions.command.regions.progress`.
- `/regions` opens the admin UI for region management.
- `/regions progress get ` shows a player's cap for the region.
- `/regions progress set ` sets a player's cap value for the region.
- `/regions progress advance ` advances to the next cap.
- `/regions progress reset ` resets to the first cap.
- `/regions progress complete ` sets progress to the final cap.
## API
The `RegionProgressApi` class provides programmatic progress control for other mods or integrations.
Notes:
- Caps must be strictly increasing.
- Origin Region is set automatically when a Pokemon is captured, hatched, or gained.
- Progress set requires a cap value that exists in the region's caps list.
- A region can define a prerequisite; players cannot gain XP in that region until the prerequisite region is completed.
- Messages support MiniMessage formatting and `{cap}`, `{region}`, `{prerequisite}`, `{pokemon}` placeholders.
- The admin UI opens a region list; use Create to enter an id in chat, left-click to edit, right-click to delete.
- The region edit screen manages dimensions, caps, cap messages, and player progress.