fix/botgen-place-fishing-default #235
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/botgen-place-fishing-default"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
`::botgen` becomes `::bot.gen`, `::botcleardb` becomes `::bot.cleardb`, and the rest of the families follow: bot (14), npc (3), perm (3), log (3), tele, find.npc, password.set. 64 commands, 91 names. Namespaced by **subject** rather than by the permission node's own first segment, because those are two different things: `bot.` names what a command acts on, while `admin.`, `mod.` and `player.` name who may run it. Taking the node as the name would give `::admin.tele` and `::player.pos` -- authority in the vocabulary, and a command whose name changes when its tier does. Bare verbs stay bare: `::tele`, `::find`, `::item`, `::b`. Every old name still dispatches as a hidden alias, so nothing typed today breaks, and `::help` and the generated README document one vocabulary. Script 73 was read first, per the standing rule: it forwards everything once `staffmodlevel()` is non-zero and intercepts only `bank`, `toggleroof` and `displayfps` by name, so a dot is just a character in the string opcode 5020 carries. Three things that would have broken silently: * the executor handed the module the name the operator *typed*, so a module implementing several commands needed a clause per alias -- and the failure is a usage line for a command that exists. It passes `entry.name` now: a module implements the command, not the spelling. * a module can branch on the name in its body rather than its heads. `logs.ex` had `if name == "unmute"`, so renaming the heads alone swapped mute and unmute while every head still matched. * an alias rides the same wire as a name, so the test that no command collides with one the client keeps now sweeps every name rather than every command. A colliding alias is a command that never arrives. `::help` learned both halves: an alias resolves to its command's entry, and a name prefix is a group beside a permission prefix -- otherwise `::help log` answers "no such command" about a family the operator can see three of.