I wrote this section with the little knowledge I have of the capabilities system; I work mainly by testing different possibilities until I get what I want. As for all the documentation, feel free to contact me to correct/enhance it.
First, you should know how capabilities work on the user side.
Checking for a capability given its name¶
You only have to use
You can also override some behavior of the capability system. Here is the
complete documentation of
checkCapability(hostmask, capability, users=<supybot.ircdb.UsersDictionary object>, channels=<supybot.ircdb.ChannelsDictionary object>, ignoreOwner=False, ignoreChannelOp=False, ignoreDefaultAllow=False)
Checks that the user specified by name/hostmask has the capability given.
ignoreDefaultAlloware used to override default behavior of the capability system in special cases (actually, in the AutoMode plugin):
ignoreOwnerdisables the behavior “owners have all capabilites”
ignoreChannelOpdisables the behavior “channel ops have all channel capabilities”
ignoreDefaultAllowdisables the behavior “if a user does not have a capability or the associated anticapability, then they have the capability”
Manipulating capability names¶
Althrough you can manipulate capability names with string operations, Supybot provides a few methods to do that “in the abstract” (could be useful if we change the capability syntax one day…):
Makes a channel capability given a channel and a capability.
Returns True if capability is a channel capability; False otherwise.
Returns True if capability is an anticapability; False otherwise.