diff --git a/projects/ActivityTF/README.md b/projects/ActivityTF/README.md index 782bdfc..4716602 100644 --- a/projects/ActivityTF/README.md +++ b/projects/ActivityTF/README.md @@ -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`. diff --git a/projects/Archaeo/README.md b/projects/Archaeo/README.md index 7c7fa04..3b88fd3 100644 --- a/projects/Archaeo/README.md +++ b/projects/Archaeo/README.md @@ -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. diff --git a/projects/ArmourShop/README.md b/projects/ArmourShop/README.md index d8257e4..2c1fedd 100644 --- a/projects/ArmourShop/README.md +++ b/projects/ArmourShop/README.md @@ -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) diff --git a/projects/BarterShops/README.md b/projects/BarterShops/README.md index 979ef5e..7e1628f 100644 --- a/projects/BarterShops/README.md +++ b/projects/BarterShops/README.md @@ -101,6 +101,12 @@ Staff with `bartershops.admin` resolve a blocked shop in game: /bartershops intent 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: diff --git a/projects/BreedingBuddies/overview.md b/projects/BreedingBuddies/overview.md index a43554a..8b8fca3 100644 --- a/projects/BreedingBuddies/overview.md +++ b/projects/BreedingBuddies/overview.md @@ -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/`: diff --git a/projects/CompanionPets/docs/staff.md b/projects/CompanionPets/docs/staff.md index 144b2bd..f73f15e 100644 --- a/projects/CompanionPets/docs/staff.md +++ b/projects/CompanionPets/docs/staff.md @@ -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. diff --git a/projects/Cooking/README.md b/projects/Cooking/README.md index bb8621d..8e958c8 100644 --- a/projects/Cooking/README.md +++ b/projects/Cooking/README.md @@ -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 diff --git a/projects/Cooking/docs/husbandry.md b/projects/Cooking/docs/husbandry.md index f13bde5..504112b 100644 --- a/projects/Cooking/docs/husbandry.md +++ b/projects/Cooking/docs/husbandry.md @@ -393,6 +393,10 @@ Players (no permission node): Staff with `cooking.admin`, including the console, can run `/animals ` 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`: diff --git a/projects/CoreProtect/docs/commands.md b/projects/CoreProtect/docs/commands.md index 3517e8f..bb3dff0 100644 --- a/projects/CoreProtect/docs/commands.md +++ b/projects/CoreProtect/docs/commands.md @@ -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:` 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.* diff --git a/projects/DenarEconomy/operations.md b/projects/DenarEconomy/operations.md index 86b53fe..e4a51f1 100644 --- a/projects/DenarEconomy/operations.md +++ b/projects/DenarEconomy/operations.md @@ -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 " 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 . Their balance has not changed." Each successful credit is logged with the sender, amount, player name, character ID and account. diff --git a/projects/Dowsing/overview.md b/projects/Dowsing/overview.md index 40b97a8..70de423 100644 --- a/projects/Dowsing/overview.md +++ b/projects/Dowsing/overview.md @@ -49,6 +49,11 @@ Administrators with `dowsing.admin` can manage resource entries: | `/dowsing deleteresource ` | 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. diff --git a/projects/DrinkBuilder/README.md b/projects/DrinkBuilder/README.md index ea68956..40ec404 100644 --- a/projects/DrinkBuilder/README.md +++ b/projects/DrinkBuilder/README.md @@ -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) diff --git a/projects/Games/docs/SYSTEM.md b/projects/Games/docs/SYSTEM.md index 7067acf..995d61a 100644 --- a/projects/Games/docs/SYSTEM.md +++ b/projects/Games/docs/SYSTEM.md @@ -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. diff --git a/projects/GeigerCounters/overview.md b/projects/GeigerCounters/overview.md index 408e3e3..8382f30 100644 --- a/projects/GeigerCounters/overview.md +++ b/projects/GeigerCounters/overview.md @@ -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` | diff --git a/projects/GemInfusion/README.md b/projects/GemInfusion/README.md index 5c6a623..2bd65e0 100644 --- a/projects/GemInfusion/README.md +++ b/projects/GemInfusion/README.md @@ -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) diff --git a/projects/GunsAndGadgets/operations.md b/projects/GunsAndGadgets/operations.md index 83b8b03..9a17387 100644 --- a/projects/GunsAndGadgets/operations.md +++ b/projects/GunsAndGadgets/operations.md @@ -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 diff --git a/projects/Infestations/overview.md b/projects/Infestations/overview.md index bed9212..589930f 100644 --- a/projects/Infestations/overview.md +++ b/projects/Infestations/overview.md @@ -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. diff --git a/projects/InteractibleFurniture/README.md b/projects/InteractibleFurniture/README.md index 432d126..1c0d47e 100644 --- a/projects/InteractibleFurniture/README.md +++ b/projects/InteractibleFurniture/README.md @@ -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. diff --git a/projects/Magic/docs/SYSTEM.md b/projects/Magic/docs/SYSTEM.md index 154c23a..d1fb3c1 100644 --- a/projects/Magic/docs/SYSTEM.md +++ b/projects/Magic/docs/SYSTEM.md @@ -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. diff --git a/projects/MarketBlock/README.md b/projects/MarketBlock/README.md index c8099b2..11bace4 100644 --- a/projects/MarketBlock/README.md +++ b/projects/MarketBlock/README.md @@ -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. diff --git a/projects/MusicalInstruments/studio-ownership.md b/projects/MusicalInstruments/studio-ownership.md index 0720baf..373c5fb 100644 --- a/projects/MusicalInstruments/studio-ownership.md +++ b/projects/MusicalInstruments/studio-ownership.md @@ -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 ` 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 diff --git a/projects/RPCharacters/docs/character-controls.md b/projects/RPCharacters/docs/character-controls.md index fdf10f3..4ae1029 100644 --- a/projects/RPCharacters/docs/character-controls.md +++ b/projects/RPCharacters/docs/character-controls.md @@ -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. diff --git a/projects/RPCharacters/docs/estates-and-wills.md b/projects/RPCharacters/docs/estates-and-wills.md index 4cf82d4..b5645cc 100644 --- a/projects/RPCharacters/docs/estates-and-wills.md +++ b/projects/RPCharacters/docs/estates-and-wills.md @@ -230,6 +230,14 @@ All staff commands need `rpchar.estate.admin` (operators by default) and are wri An estate can be named by death ID, by character ID (its latest death) or by the dead character's name, including names of several words before further arguments. +Tab completion uses loaded estate death IDs or character names. After the first +word of a name, it inserts only the missing suffix. `assign` offers parts whose +recipients are waiting or frozen, and `guild` only for frozen money. `retry` +offers blocked participant IDs; `waive` requires a blocked answer for the current +revision. All suggestions match the current prefix without regard to case. +`collect` and its argument suggestions are player-only; console retains the +other permitted staff commands. + | Command | Effect | |---|---| | `/estate list [open\|held\|waiting\|frozen\|retry\|postponed\|empty]` | One line per estate: state, due time, recipients and each participant's answer. Estates that hold nothing appear only under `empty`. | diff --git a/projects/RPCharacters/docs/persona-system/SYSTEM.md b/projects/RPCharacters/docs/persona-system/SYSTEM.md index af2e668..b2673d3 100644 --- a/projects/RPCharacters/docs/persona-system/SYSTEM.md +++ b/projects/RPCharacters/docs/persona-system/SYSTEM.md @@ -60,6 +60,14 @@ namecolour, gender, description, temporary alias and hidden-character controls. Channel commands come from `chat.yml`. `/channel` selects the default channel; `/channeltoggle` controls visibility. `/roll` supports numeric and attribute rolls. +Persona and staff argument suggestions follow their execution permissions. +Dynamic chat labels carry the channel's configured `use-perm`; configuration +synchronization refreshes online players' command trees. `/channel` suggests +enabled, loaded channels the player can use. Manually entered IDs and aliases +require that same use permission before the active preference changes. +`/channeltoggle` suggests enabled, +loaded toggle targets without requiring permission to speak in them. + Channel permissions, character requirements and recipient rules are enforced by the chat services. Masks affect eligible chat/profile views; account-name channels and safe TAB identity have separate rules. Profiles enforce target and permission diff --git a/projects/Recycler/docs/OWNERSHIP.md b/projects/Recycler/docs/OWNERSHIP.md index c43abea..1e928aa 100644 --- a/projects/Recycler/docs/OWNERSHIP.md +++ b/projects/Recycler/docs/OWNERSHIP.md @@ -10,6 +10,16 @@ character's returns. Matching character start, normal close/take-out or `/recycler escrow return ` can deliver that living character's pending queue. +Staff `escrow return` completion includes recognized offline pending-owner names +alongside online players, with case-insensitive prefix matching and deduplication. +Unknown names are omitted. Offline returns still wait for the recorded character +to become current; completion does not deliver them or read queue files/profiles. +A maintained index tracks pending owners as queues change, without periodic +history scans. Joining updates a pending owner's cached name by UUID, replacing +the old name and retaining the current name after logout and later queue changes. +Transient queue read failures retain the last validated pending owner until a +normal read recovers; invalid or deleted records remove their index entry. + Refunds use free storage slots and split oversized stacks into batches up to the material's stack size. Full inventory leaves the remainder queued; refunds do not drop overflow into the world. New deposits use exact Paper item bytes, diff --git a/projects/Research/overview.md b/projects/Research/overview.md index c2ebbe0..5bf4135 100644 --- a/projects/Research/overview.md +++ b/projects/Research/overview.md @@ -134,6 +134,10 @@ open station menus before changing `labels` titles or `colors.inventory_title`. | `/research reload` | Reload all configuration and content. Requires `research.admin`, which defaults to operators. | | `station.permission` | Optional permission to use stations. When set, Research ignores clicks from players without it, and the block behaves normally. | +Tab completion offers `reload` only to authorized senders and matches the +current argument prefix without case sensitivity. Later arguments have no +suggestions. + ## Integrations - **RPCharacters Focus.** Mental points are the RPCharacters Focus pool for the player's diff --git a/projects/SimpleFactions/docs/characters.md b/projects/SimpleFactions/docs/characters.md index ddb63be..193f99d 100644 --- a/projects/SimpleFactions/docs/characters.md +++ b/projects/SimpleFactions/docs/characters.md @@ -30,6 +30,26 @@ Staff commands: Assignments take effect on the next startup. Back up faction data together with RPCharacters and DenarEconomy data before a coordinated cutover or rollback. +Quarantine completion offers unresolved record IDs cached by migration and staff +reads/writes. After editing `quarantine.json` externally, run +`/faction admin quarantine list` or restart to refresh that snapshot. Character +UUIDs are entered manually. + +## Command completion + +Faction, guild, company, mercenary, battle and warband suggestions match the +current token without regard to case. Multiword character, faction and company +names complete only their remaining suffix after earlier words have been typed. +Where an admin company command consumes one token, use its guild ID for a +multiword company name. + +Membership, leadership, company enrollment and leaderless-guild choices follow +the applicable command context. Console faction completion offers supported +staff tools; gameplay actions require a player. Free-text and numeric slots have +no usage placeholders. Existing title RGB/province values and finite espionage +presets remain available. Literal `` and `` values are refused +by their setters. + ## Member prestige The Members prestige line has a headcount part, `(heads + 4)^1.8 + 5`, and a diff --git a/projects/SimpleFactions/docs/warbands.md b/projects/SimpleFactions/docs/warbands.md index 6482a3c..e494ad6 100644 --- a/projects/SimpleFactions/docs/warbands.md +++ b/projects/SimpleFactions/docs/warbands.md @@ -27,6 +27,12 @@ reference after that session has become noncurrent. Rejoining restores only its recorded character. Raid muster deduplication remains account-wide and is not cleared by switching characters or leaving a warband. +`/warband join` completes warband IDs only when the player's current character +can join them, including invitation, faction and campaign-side checks. Completion +checks eligibility without enrolling the player or binding a war side. Delete +completion follows leader/staff authority, and all candidates match the current +prefix. + ## War sides A war ties each Minecraft account to the coalition of its first warband diff --git a/projects/Surgery/overview.md b/projects/Surgery/overview.md index 6572efd..cb52710 100644 --- a/projects/Surgery/overview.md +++ b/projects/Surgery/overview.md @@ -61,6 +61,10 @@ src/main/java/net/tfminecraft/surgery/ | `/surgery accept` | Patient | Begin the operation | | `/surgery deny` | Patient | Decline | +Tab completion is player-only. Players see matching consent actions and, when +permitted to operate, matching visible patient names. Console receives no +suggestions. + ### A procedure 1. Examine with the **stethoscope**. This names the procedure and, for a septic wound, starts the fever. diff --git a/projects/TFMCCore/resource-pack.md b/projects/TFMCCore/resource-pack.md index 798be62..daab780 100644 --- a/projects/TFMCCore/resource-pack.md +++ b/projects/TFMCCore/resource-pack.md @@ -116,6 +116,10 @@ requests cannot replace the join request while it is loading. Only the required attempt changes its readiness state. The failure dialog's Retry uses `tfmccore:tcore packretry ` from console. + +For administrators, `/tcore pack` and `/tcore packretry` complete online player +names matching the current prefix. No further argument is suggested after the +target. Console or `tfmccore.admin` may also run it directly; it only retries a failed attempt on the same connection. It never bypasses an active load or readiness. diff --git a/projects/TFMCWeb/README.md b/projects/TFMCWeb/README.md index baf3bb3..d35ccc9 100644 --- a/projects/TFMCWeb/README.md +++ b/projects/TFMCWeb/README.md @@ -12,6 +12,12 @@ The entrypoint is `net.tfminecraft.tfmcweb.TFMCWeb`. TLibs is a required plugin; `ProvinceSystemGateway` provides the shared web transport. The plugin loads `config.yml`, maintains a link cache, starts the notice poller, and registers `/linkdiscord`, `/unlinkdiscord`, `/web`, `/token`, `/warning` and `/patreon`. `/patreon` shows supporter status, starts Patreon authorization when unlinked, and supports `/patreon unlink`. Configure the API URL, plugin key and realm using the identity guide below; permission defaults and exact command syntax live in `plugin.yml`. +`/token create` completes enabled scopes allowed by either the regular or staff +creation permission; a staff skin scope remains available when regular skin +creation is disabled. `/warning` completes online targets for permitted staff, +then leaves the reason as free text. `/linkdiscord` and `/unlinkdiscord` take no +arguments and have no argument suggestions. + The `patreon:` config block enables supporter status and maps tier keys to LuckPerms groups: ```yaml diff --git a/projects/Thievery/docs/LOCK-OWNERS.md b/projects/Thievery/docs/LOCK-OWNERS.md index aa9d1de..7237895 100644 --- a/projects/Thievery/docs/LOCK-OWNERS.md +++ b/projects/Thievery/docs/LOCK-OWNERS.md @@ -177,6 +177,11 @@ need TLibs 2.5.0, and without it use the UUID. A door whose record has lost its its strength cannot be repaired this way, so the lock is never weakened: break the door in Creative to remove it. Fixed records leave the quarantine list straight away. +`setowner` completion offers `server` and current living online characters. It +uses canonical character UUIDs for multiword or ambiguous names; single-token +names are suggested only when they resolve uniquely. Offline character IDs remain +usable when entered manually. All suggestions match the current prefix. + ## Storage Lock files keep the owner as a bare UUID and add `ownerKind`, which is `CHARACTER` diff --git a/projects/TrialRooms/overview.md b/projects/TrialRooms/overview.md index 488a2a2..0d7d0f0 100644 --- a/projects/TrialRooms/overview.md +++ b/projects/TrialRooms/overview.md @@ -126,8 +126,10 @@ an automatic item-for-money transaction. | --- | --- | --- | | `/tr resetcooldowns` | `trialrooms.admin` | Set every cooling-down spawner to one second remaining. | -`/tr` is player-only and has no tab completion. `plugin.yml` declares no -permissions, so `trialrooms.admin` falls back to the operator default. +`/tr` is player-only. Players with `trialrooms.admin` can complete +`resetcooldowns` using an empty or matching argument prefix; later arguments +have no suggestions. `plugin.yml` declares no permissions, so +`trialrooms.admin` falls back to the operator default. ## Persistence and shutdown diff --git a/projects/VehicleFramework/docs/trains.md b/projects/VehicleFramework/docs/trains.md index 75efe61..7e440ad 100644 --- a/projects/VehicleFramework/docs/trains.md +++ b/projects/VehicleFramework/docs/trains.md @@ -89,6 +89,12 @@ One spline per track (no stored sections). A **stroke** is one lay with the conf - `/vf track resync` applies rail item paths and `display-y-offset` from `trains.yml` to loaded chunks (throttled). Switches follow `/vf reload` and chunk load without this command. - `/vf track dump` appends a network snapshot to `logs/track.log` (`DUMP`, `SPLINE`, `PT` every 32 along `s`, then `JUNCTION` frogs including `thrown`). The same dump runs on plugin load. `JUNCTION_DROP` is written if a junction JSON is skipped (`no-stem` / `no-branch`) or cancelled as incomplete. On load and after lay/dig/delete, non-loop splines up to 16 blocks long that lie entirely on a longer spline in the same world are removed automatically (duplicate overlays and stray stubs). +`/vf track info`, `particles` and `bind` complete optional explicit track UUIDs +from the player's current world, alongside `delete` and `clearance`. The optional +forms still support their nearest-track default. All explicit suggestion lists +match the current prefix. Permitted console senders can complete `/vf reload`, +`/vf admin quarantine` and `/vf track resync`. + ## Persistence ### Spline diff --git a/projects/Woodworking/README.md b/projects/Woodworking/README.md index ecf9a75..e72e4d0 100644 --- a/projects/Woodworking/README.md +++ b/projects/Woodworking/README.md @@ -31,6 +31,13 @@ the project and loses its deposited materials. Players can inspect progress with the branding tool or cancel unfinished work for a full material refund. Station progress persists across server restarts. +## Commands + +`woodworking.admin` is required for command completion. Console can complete +`/woodworking reload`; player administrators can also complete `select` and +matching project IDs. Suggestions match the current prefix without case +sensitivity. + ## Builds and releases See the [shared pipeline guide](../../PIPELINES.md) for development artifacts, release tags, and dependency access.