Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions projects/ActivityTF/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,13 @@ ActivityTF tracks daily tasks and weekly activity rewards through gameplay event

TFMC runs Minecraft **1.21.10**. See the [shared platform and build baseline](../../PLATFORM.md) for runtime, build and validation conventions.

## Commands

Staff target completion includes known previously played players whose names are
still in Bukkit's cache, as well as online players. Joins refresh renamed
accounts. Each root action follows its own permission, including an explicit
`activity.check` denial for an administrator. Suggestions match the current prefix.

## Build and integration

Build with JDK 21 and `mvn clean verify`. The POM uses compiler release 21 and Paper API `1.21.10-R0.1-SNAPSHOT`; the loader API is `1.21.10`.
Expand Down
9 changes: 9 additions & 0 deletions projects/Archaeo/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,15 @@ pack assets stay in [Archaeo](https://github.com/TF-Minecraft/Archaeo). TFMC-spe
settings and lore catalogs live in private
[ServerAssets](https://github.com/TF-Minecraft/ServerAssets/tree/main/configs/Archaeo).

## Staff command completion

Multiword site names complete only their remaining suffix for ruin `info`, `tp`,
`set-interest`, `close` and `delete`. The optional `give tool`/`give pick` slot
offers configured tools and online player shorthand. Names that resolve as tools
use the explicit fourth recipient slot instead. `ruin camps` offers known
standing-camp director UUIDs and safe unique single-token names alongside site
serials and valid online shorthand.

## Builds and releases

See the [shared pipeline guide](../../PIPELINES.md). Pull requests and pushes to `main` verify the source; only pull requests publish dated development JARs. Numeric `v*` tags supply the release version and create draft releases with checksums.
5 changes: 5 additions & 0 deletions projects/ArmourShop/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,11 @@ Required plugins declared by the manifest: TLibs, ItemsAdder, TFMCWeb.

Startup loads `config.yml`, `categories.yml`, `base-sets.yml`, `permission-groups.yml` and `Categories/`, then starts pack pulling and catalog sync. `/armourshop` provides the shop and admin subcommands. `armourshop.admin` defaults to operators; grant it explicitly to other administrators. Follow the integration guides below for the gateway, approval and ItemsAdder pack workflow.

For administrators, `/armourshop token delete` completes active unused token codes
from an asynchronous cache with a 30-second TTL. The initial request can be empty
until refresh completes; remote changes can take one cache interval to appear.
`listtokens` also provides clickable deletion actions.

## Guides

- [Web integration and pack generation](../ProvinceSystem/docs/integrations/armourshop.md)
Expand Down
6 changes: 6 additions & 0 deletions projects/BarterShops/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,12 @@ Staff with `bartershops.admin` resolve a blocked shop in game:
/bartershops intent <shopId> clear --confirm clear it after settling by hand
```

Tab completion offers IDs with retained unfinished trades, including unreadable
records, followed by matching `clear` and `--confirm` keywords on their valid
paths. The ID index loads canonical filenames at startup and follows trade
changes; manual file edits appear at restart or when the record is inspected.
A directory traversal failure logs a warning and retains any IDs already found.

The shop ID is the file name in `Data/` and `trades/`. The command reads the
record's state and asks the ledger for the posting's result:

Expand Down
4 changes: 4 additions & 0 deletions projects/BreedingBuddies/overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -366,6 +366,10 @@ declares no permission defaults, so the node is operator-only unless granted.
`breedingbuddies.use` also lets a player interact with others' animals, open any
tracked animal's menu and neuter adult mounts they own.

`spawnanimal` completion offers spawnable animal types configured in the loaded
`bundles.yaml`, including changes after reload. Numeric presets for `spawnanimal`
and `spawnmount` match the current prefix; other valid numbers can be typed.

## Persistence

Data is written as JSON beneath `plugins/BreedingBuddies/Data/`:
Expand Down
8 changes: 5 additions & 3 deletions projects/CompanionPets/docs/staff.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,11 @@ root aliases. Running `/companionpets` shows help and examples.

## Browsing characters and pets

Tab completion suggests owning characters' display names, then that character's
pet names. Creation also offers online account names. The character argument is
one token: use its character UUID when its name contains spaces or is ambiguous.
Tab completion suggests resolvable single-token character names, using character
UUIDs for multiword, duplicate or reserved names, then that character's pet names.
Unresolved owners are omitted. Creation requires a living identity and also offers
online account names when they resolve to that same current character.
`list unassigned` is included in completion. The character argument is one token.
Pet names can contain spaces. Duplicate pet names are never resolved arbitrarily:
select the pet from `list` to view its identity internally. There is no player
inventory.
Expand Down
5 changes: 5 additions & 0 deletions projects/Cooking/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,11 @@ Use JDK 21, install the matching TLibs Maven artifact (`me.plugins:tlibs`, versi

The plugin registers food item paths with TLibs and integrates furniture stations, TLibs inventory scanning, crops and husbandry. The manifest requires TLibs and InteractibleFurniture, and the POM pins TLibs 2.6.0, SimpleFactions 4.0.0 and RPCharacters 2.16.0; RPCharacters, MMOCore, CustomCrops, SimpleFactions and CustomFishing enable additional integrations. `/cooking` requires `cooking.admin` (op by default). Nutrition follows the shared ready character session and needs RPCharacters 2.16.0 or newer. The guides below define nutrition, crop and husbandry behaviour and their configuration boundaries.

Admin completion covers `preview mixing_bowl` actions and the `qualitytest`
`pickup`, `compose` and `compose2` modes. Composition contexts are suggested only
after complete food expressions for `compose`/`compose2`; food expressions remain
manual input.

## Guides

- [docs/nutrition.md](docs/nutrition.md) — nutrition ownership, character readiness and delayed player actions
Expand Down
4 changes: 4 additions & 0 deletions projects/Cooking/docs/husbandry.md
Original file line number Diff line number Diff line change
Expand Up @@ -393,6 +393,10 @@ Players (no permission node):

Staff with `cooking.admin`, including the console, can run `/animals <player>` for someone who has joined. This read-only account view aggregates distinct animals across that account's resolved character slots. A player without that permission cannot list another player's animals.

Staff target completion includes online players and known offline names still in
Bukkit's cache. Saved names load at registration and update on joins; expired
cache names are omitted. Husbandry numeric presets match the current prefix.

The last location is written when the animal loads, on the one-minute tick while loaded, on unload, and on plugin disable if the entity is still present. Listing refreshes a loaded animal from the live entity before printing.

Requires `cooking.admin`:
Expand Down
18 changes: 18 additions & 0 deletions projects/CoreProtect/docs/commands.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,24 @@ ___

---

## Tab completion

Completion works through `/co`, `/core` and `/coreprotect`, with canonical command
names filtered by permission and sender context. `consumer pause|resume` is a
console action; preview apply/cancel choices appear only for an active preview.
`network-debug` also requires its configuration setting.
`near` requires a player or command-block location and either lookup permission;
console completion omits it.

Lookup and rollback parameters support inline values, separated values and comma
continuations, preserving the current parameter prefix. Action choices follow the
command's supported actions and lookup permissions. User exclusions can complete
online names; entity choices use the loaded identifier cache.
Purge completion offers its supported time, radius, include and `#optimize`
arguments, including after earlier parameters. Teleport completes loaded world
names, or `wid:<id>` for worlds whose names contain spaces; coordinates remain
manual input. Suggestions match the current prefix without regard to case.

## Command Details

*Detailed command information is listed below.*
Expand Down
11 changes: 11 additions & 0 deletions projects/DenarEconomy/operations.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,17 @@ Money amounts must be positive and use at most two decimal places. `deposit` and

Tab completion only offers `give`, `reload`, `legacy`, `account` and `move` to senders who can use them.

Staff `give` and `history` completion offers online players with active
characters. `account` completes known character names and UUIDs, inserting only
the missing suffix of a multiword name. `move` completes known ledger account
IDs; `legacy assign` offers unclaimed owner UUIDs, then that owner's character
UUIDs. An applicable staff completion request schedules one snapshot rebuild
when the cache is cold, changed or at least 100 ticks old (about five seconds at
20 TPS). Cold snapshots have no candidates until that task finishes; cached
results remain available during a refresh. Startup and idle ticks do not scan
ledger or saved-player data. Amounts and notes remain manual input, and `/pouch`
has no argument suggestions.

## Crediting a player with `/deco give`

The console always passes the permission check; a player needs operator status or `denareconomy.give`. The target must be online and playing a character; otherwise the sender sees "<player> is not online playing a character." The credit is a ledger posting from the mint with reason `staff:give`, so a dead character can still be credited. If the posting does not apply, the sender sees "Could not pay <player>. Their balance has not changed." Each successful credit is logged with the sender, amount, player name, character ID and account.
Expand Down
5 changes: 5 additions & 0 deletions projects/Dowsing/overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,11 @@ Administrators with `dowsing.admin` can manage resource entries:
| `/dowsing deleteresource <id>` | Delete the matching resource entry. |
| `/dowsing reload` | Reload configuration and recalculate node benefits. |

Tab completion matches the current prefix for commands, saved resource IDs and
yield presets. The resource argument uses distinct loaded node-type resource
labels such as `mineral`, `magic` and `farm`. New IDs are entered manually.
Console can complete `reload`; resource creation and deletion require a player.

Resource identifiers become filenames, while the resource and numeric yield are
stored as the entry value. Treat identifiers as trusted administrator input.

Expand Down
4 changes: 4 additions & 0 deletions projects/DrinkBuilder/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,10 @@ Run `mvn clean verify` to build and run the available tests; use `mvn clean inst

Startup loads `config.yml`, `ingredients.yml`, `effects-blacklist.yml`, `categories.yml` and `permission-groups.yml`, then uploads the catalog and texture assets and starts pack polling. `/drinkbuilder` requires `drinkbuilder.admin` (op by default). TLibs and TFMCWeb are required; ItemsAdder and BreweryX are declared optional. ItemsAdder supplies the custom pack integration and BreweryX receives the drink recipes. See the drinks workflow for service configuration.

`/drinkbuilder pack` completes both `pull` and `reapply` when the action is
empty, and filters them against the current prefix. `pack pull` can complete
`force`; `pack reapply` can complete cached drink IDs.

## Guides

- [Failure recovery and troubleshooting](troubleshooting.md)
Expand Down
8 changes: 7 additions & 1 deletion projects/Games/docs/SYSTEM.md
Original file line number Diff line number Diff line change
Expand Up @@ -103,11 +103,17 @@ Ace file and IA id is `_1` or `1`, not 14. Ace-high ranking is a poker flag, not
| Command | Permission | Behavior |
|---------|------------|-------|
| `/games help [game]` | `games.help` (default true) | Opens a rule book from `help.yml`. No game id opens the index |
| `/games reload` | `games.admin.reload` | Reload configuration |
| `/games reload` | `games.admin` and `games.admin.reload` | Reload configuration |
| `/games place` | `games.admin` | Place a table without a deck item |
| `/games bet ...` | `games.bet` | Blackjack betting; `check`, `call`, `fold`, `raise` and `allin` for poker |
| `/games poker ...` | `games.bet` | Poker [tournament](HOLDEM.md#tournaments) settings and actions |

`/games poker kick` completes online tournament registrants when the player can
edit the nearby poker table and its enabled tournament is neither live nor paying.
`/games deal table board|dealer` completes `back` directly after the pile or after
a positive card count. Suggestions match the current prefix without regard to
case. `reload` is omitted when its dedicated permission is denied.

## Dependencies

`TLibs`, `ItemsAdder`, `ProtocolLib` and `DenarEconomy` are required. RPCharacters softdepend (character names and voice). SimpleFactions softdepend (guild auto cap + bank; [GUILD_TABLES.md](GUILD_TABLES.md)). SF does not depend on Games.
Expand Down
5 changes: 5 additions & 0 deletions projects/GeigerCounters/overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,11 @@ Players with `geiger.limit.bypass` are never limited.
| `/geiger droplist [name]` | Show available lists, or switch and save the active list |
| `/geiger reload` | Reload `config.yml` |

`limits`/`resetlimits` and their singular aliases complete known previously played
offline names as well as online players. The name snapshot loads at enable and
updates on joins. `locate` and `move` complete online players only. Suggestions
match the current prefix without regard to case.

| Permission | Default | Grants |
|---|---|---|
| `geiger.admin` | op | Access to `/geiger` |
Expand Down
3 changes: 3 additions & 0 deletions projects/GemInfusion/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,9 @@ the permission configured in `goldsmithing.yml`, defaulting to
`professions.goldsmith` (false by default); administrators bypass that gameplay
check.

Command completion requires `geminfusion.admin`. Console is offered `reload`;
players can also complete `select` and matching jewelry project IDs.

## Guides

- [Goldsmithing and finishing rules](goldsmithing.md)
Expand Down
3 changes: 2 additions & 1 deletion projects/GunsAndGadgets/operations.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,8 @@ Load ammunition normally.
Set it to your staff permission; a blank value disables giving. This permission
is independent of `gunsandgadgets.reload`, which gates `/gg reload` and
`/gg refresh`. Reload configuration with `/gg reload`. Tab completion suggests
recipients, weapon types, and configured part IDs.
recipients, weapon types, and enabled compatible parts for required categories
that are still missing. It stops after a complete assembly.

`/gg refresh` is player-only and force-refreshes the gun in the main hand. See
[revision and craft provenance](docs/REVISION_SYSTEM.md) for automatic refresh
Expand Down
9 changes: 6 additions & 3 deletions projects/Infestations/overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -167,9 +167,12 @@ take a numeric SimpleFactions province ID or `here` for the player's province.
| `/lure leave` | none | Drop the player out of every lure they have joined. |

Both permissions default to operators, and `infestations.admin` grants
`infestations.admin.reload`. Because `plugin.yml` also requires
`infestations.admin` for the command itself, the reload permission alone is not
enough. Reloading re-reads `Data/infestations.json`, removes stray lure
`infestations.admin.reload`. The reload permission also works on its own.
`set` completion offers eligible uninfested land provinces and terrain-compatible
groups; `clear` offers active infestation IDs. `here` is suggested only when the
player is in valid land eligible for that action: uninfested for `set`, actively
infested for `clear`.
Suggestions follow the current prefix. Reloading re-reads `Data/infestations.json`, removes stray lure
furniture and text displays, recounts loaded ambient mobs, and re-exports the
map data.

Expand Down
3 changes: 3 additions & 0 deletions projects/InteractibleFurniture/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,9 @@ carried furniture and saves loaded chunks.
`interactiblefurniture.debug`. Both permissions default to operators. The command
also exposes `/if nested attach` and `/if nested detach` for nested furniture.

Tab completion follows those permissions and the current prefix. Console can
complete `reload`; debug and nested-furniture actions require a player.

## Builds and releases

See the [shared pipeline guide](../../PIPELINES.md) for development artifacts, release tags, and dependency access.
8 changes: 8 additions & 0 deletions projects/Magic/docs/SYSTEM.md
Original file line number Diff line number Diff line change
Expand Up @@ -138,3 +138,11 @@ or alias. Sacrifice lore keeps the victim's character name from the moment of th
| `/resonance` | `magic.use` | Opens resonance profile GUI |
| `/magic reload` | `magic.admin` | Reload configs |
| `/magic open` | `magic.admin` | Open GUI (bypasses character check) |

`/resonance` (alias `/res`) has no argument suggestions. `/magic` completion
follows sender context; console sees only executable branches. Weapon giving
offers chargeable elements and missing open part categories for the selected
core. Artifact roll/give rarity choices follow the selected type's brackets and
the configured random pool. Artifact path completion covers finite single-token
grammar and registered values while preserving earlier text; numeric caps remain
manual input.
5 changes: 5 additions & 0 deletions projects/MarketBlock/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,11 @@ TFMC runs Minecraft **1.21.10**. See the [shared platform and build baseline](..

See the [shared API versions](../../PLATFORM.md#shared-api-versions) for the matching provider dependency set.

## Commands

`/marketblock` completion offers permitted actions and matching configured trade
IDs. Editing actions require a player; console can complete `reload`.

## Character payments

A sale credits the seller's current character pouch through DenarEconomy 0.3.0.
Expand Down
12 changes: 12 additions & 0 deletions projects/MusicalInstruments/studio-ownership.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,18 @@ project waits until the character has fewer than 36. The library menu shows only
the first 36. Use `/music projects` to list all project IDs and
`/music open <project-id>` to open a project beyond those menu slots.

`/music open` (also `/recording open`) completes the active character's saved
project IDs. Project and selected-track snapshots load on the first applicable
completion request, in a scheduled task. A cold snapshot has no candidates until
that load finishes; login and character changes alone do not load studio files.
After a storage failure, a new completion request can retry after 1,200 studio
ticks (normally one minute); repeated requests during that cooldown do no I/O.
`volume`, `mute` and `remove` complete saved track slots; `record` completes all
configured slots. Manual file edits appear after normal project listing or a
new character session.

Console instrument completion offers permitted `list` and `reload` actions.

## Requirements and storage

Build with Java 21 for Paper 1.21.10 and the pinned TLibs 2.6.0 API. The build and
Expand Down
6 changes: 6 additions & 0 deletions projects/RPCharacters/docs/character-controls.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,12 @@ Focus is a shared, regenerating per-character resource used by Research and Magi

`/class` and `/rpcharacter class` open the base-class window. `/subclass`, `/rpcharacter subclass` and the Subclasses button open a separate window showing only the active character's class family, in place of MMOCore class points.

Staff `/rpcharacter setclass` completion uses registered MMOCore class IDs.
Admin `injure` and `permakill` routes complete a target's living character
single-token slug, or its UUID when the slug cannot be used safely. The `permanent` modifier
belongs to `injure`. `/class`, `/subclass`, `/players` and `/will` have no argument
suggestions. Wardrobe completion includes usable slot IDs and unambiguous aliases.

A character's first class and first subclass are free. Other picks are priced like the class creation stage: free during its lock-time (5 days), then the `paid-changes` class rule (100, 1000, 3000 denars). `class-selection.change-cost` is used only when there is no class rule. `infinite-points: true` makes every pick free, for the tutorial server. A class picked above a skill-slot level still gets the slots its exp table unlocks.

Paid picks, and paid changes to a locked creation stage, are charged to the character being changed: the whole price comes from its own pouch or bank, tried in the configured `accounts` order. This needs DenarEconomy 0.3.0. RPCharacters saves the payment on the character, with its debit and refund operation IDs, and forces the file and its folder to disk before it posts the debit. If the server stops part way, the next join asks the ledger whether the debit went through. A debit that never applied is dropped without a refund. An applied one is kept when the change stuck and refunded otherwise, always with the stored refund ID, so a retry never pays twice. A paid class pick whose class could not be applied is marked for refund, so reaching that class later never counts as using it. While a payment is held, the character cannot open a stage edit or pick a class until it settles. A payment held from before the character ledger is treated as already taken from the account's money. It is always refunded to the account's legacy heir, whatever the character has changed since, and waits until heirs are known.
Expand Down
Loading