evennia.commands.default.comms

Comsystem command module.

Comm commands are OOC commands and intended to be made available to the Account at all times (they go into the AccountCmdSet). So we make sure to homogenize self.caller to always be the account object for easy handling.

class evennia.commands.default.comms.CmdAddCom(**kwargs)[source]

Bases: evennia.commands.default.muxcommand.MuxCommand

add a channel alias and/or subscribe to a channel

Usage:

addcom [alias=] <channel>

Joins a given channel. If alias is given, this will allow you to refer to the channel by this alias rather than the full channel name. Subsequent calls of this command can be used to add multiple aliases to an already joined channel.

key = 'addcom'
aliases = ['aliaschan', 'chanalias']
help_category = 'comms'
locks = 'cmd:not pperm(channel_banned)'
account_caller = True
func()[source]

Implement the command

lock_storage = 'cmd:not pperm(channel_banned)'
search_index_entry = {'aliases': 'aliaschan chanalias', 'category': 'comms', 'key': 'addcom', 'tags': '', 'text': '\n add a channel alias and/or subscribe to a channel\n\n Usage:\n addcom [alias=] <channel>\n\n Joins a given channel. If alias is given, this will allow you to\n refer to the channel by this alias rather than the full channel\n name. Subsequent calls of this command can be used to add multiple\n aliases to an already joined channel.\n '}
class evennia.commands.default.comms.CmdDelCom(**kwargs)[source]

Bases: evennia.commands.default.muxcommand.MuxCommand

remove a channel alias and/or unsubscribe from channel

Usage:

delcom <alias or channel> delcom/all <channel>

If the full channel name is given, unsubscribe from the channel. If an alias is given, remove the alias but don’t unsubscribe. If the ‘all’ switch is used, remove all aliases for that channel.

key = 'delcom'
aliases = ['delchanalias', 'delaliaschan']
help_category = 'comms'
locks = 'cmd:not perm(channel_banned)'
account_caller = True
func()[source]

Implementing the command.

lock_storage = 'cmd:not perm(channel_banned)'
search_index_entry = {'aliases': 'delchanalias delaliaschan', 'category': 'comms', 'key': 'delcom', 'tags': '', 'text': "\n remove a channel alias and/or unsubscribe from channel\n\n Usage:\n delcom <alias or channel>\n delcom/all <channel>\n\n If the full channel name is given, unsubscribe from the\n channel. If an alias is given, remove the alias but don't\n unsubscribe. If the 'all' switch is used, remove all aliases\n for that channel.\n "}
class evennia.commands.default.comms.CmdAllCom(**kwargs)[source]

Bases: evennia.commands.default.muxcommand.MuxCommand

perform admin operations on all channels

Usage:

allcom [on | off | who | destroy]

Allows the user to universally turn off or on all channels they are on, as well as perform a ‘who’ for all channels they are on. Destroy deletes all channels that you control.

Without argument, works like comlist.

key = 'allcom'
locks = 'cmd: not pperm(channel_banned)'
help_category = 'comms'
account_caller = True
func()[source]

Runs the function

aliases = []
lock_storage = 'cmd: not pperm(channel_banned)'
search_index_entry = {'aliases': '', 'category': 'comms', 'key': 'allcom', 'tags': '', 'text': "\n perform admin operations on all channels\n\n Usage:\n allcom [on | off | who | destroy]\n\n Allows the user to universally turn off or on all channels they are on, as\n well as perform a 'who' for all channels they are on. Destroy deletes all\n channels that you control.\n\n Without argument, works like comlist.\n "}
class evennia.commands.default.comms.CmdChannels(**kwargs)[source]

Bases: evennia.commands.default.muxcommand.MuxCommand

list all channels available to you

Usage:

channels clist comlist

Lists all channels available to you, whether you listen to them or not. Use ‘comlist’ to only view your current channel subscriptions. Use addcom/delcom to join and leave channels

key = 'channels'
aliases = ['channellist', 'chanlist', 'comlist', 'all channels', 'clist']
help_category = 'comms'
locks = 'cmd: not pperm(channel_banned)'
account_caller = True
func()[source]

Implement function

lock_storage = 'cmd: not pperm(channel_banned)'
search_index_entry = {'aliases': 'channellist chanlist comlist all channels clist', 'category': 'comms', 'key': 'channels', 'tags': '', 'text': "\n list all channels available to you\n\n Usage:\n channels\n clist\n comlist\n\n Lists all channels available to you, whether you listen to them or not.\n Use 'comlist' to only view your current channel subscriptions.\n Use addcom/delcom to join and leave channels\n "}
class evennia.commands.default.comms.CmdCdestroy(**kwargs)[source]

Bases: evennia.commands.default.muxcommand.MuxCommand

destroy a channel you created

Usage:

cdestroy <channel>

Destroys a channel that you control.

key = 'cdestroy'
help_category = 'comms'
locks = 'cmd: not pperm(channel_banned)'
account_caller = True
func()[source]

Destroy objects cleanly.

aliases = []
lock_storage = 'cmd: not pperm(channel_banned)'
search_index_entry = {'aliases': '', 'category': 'comms', 'key': 'cdestroy', 'tags': '', 'text': '\n destroy a channel you created\n\n Usage:\n cdestroy <channel>\n\n Destroys a channel that you control.\n '}
class evennia.commands.default.comms.CmdCBoot(**kwargs)[source]

Bases: evennia.commands.default.muxcommand.MuxCommand

kick an account from a channel you control

Usage:

cboot[/quiet] <channel> = <account> [:reason]

Switch:

quiet - don’t notify the channel

Kicks an account or object from a channel you control.

key = 'cboot'
switch_options = ('quiet',)
locks = 'cmd: not pperm(channel_banned)'
help_category = 'comms'
account_caller = True
func()[source]

implement the function

aliases = []
lock_storage = 'cmd: not pperm(channel_banned)'
search_index_entry = {'aliases': '', 'category': 'comms', 'key': 'cboot', 'tags': '', 'text': "\n kick an account from a channel you control\n\n Usage:\n cboot[/quiet] <channel> = <account> [:reason]\n\n Switch:\n quiet - don't notify the channel\n\n Kicks an account or object from a channel you control.\n\n "}
class evennia.commands.default.comms.CmdCemit(**kwargs)[source]

Bases: evennia.commands.default.muxcommand.MuxCommand

send an admin message to a channel you control

Usage:

cemit[/switches] <channel> = <message>

Switches:

sendername - attach the sender’s name before the message quiet - don’t echo the message back to sender

Allows the user to broadcast a message over a channel as long as they control it. It does not show the user’s name unless they provide the /sendername switch.

key = 'cemit'
aliases = ['cmsg']
switch_options = ('sendername', 'quiet')
locks = 'cmd: not pperm(channel_banned) and pperm(Player)'
help_category = 'comms'
account_caller = True
func()[source]

Implement function

lock_storage = 'cmd: not pperm(channel_banned) and pperm(Player)'
search_index_entry = {'aliases': 'cmsg', 'category': 'comms', 'key': 'cemit', 'tags': '', 'text': "\n send an admin message to a channel you control\n\n Usage:\n cemit[/switches] <channel> = <message>\n\n Switches:\n sendername - attach the sender's name before the message\n quiet - don't echo the message back to sender\n\n Allows the user to broadcast a message over a channel as long as\n they control it. It does not show the user's name unless they\n provide the /sendername switch.\n\n "}
class evennia.commands.default.comms.CmdCWho(**kwargs)[source]

Bases: evennia.commands.default.muxcommand.MuxCommand

show who is listening to a channel

Usage:

cwho <channel>

List who is connected to a given channel you have access to.

key = 'cwho'
locks = 'cmd: not pperm(channel_banned)'
help_category = 'comms'
account_caller = True
func()[source]

implement function

aliases = []
lock_storage = 'cmd: not pperm(channel_banned)'
search_index_entry = {'aliases': '', 'category': 'comms', 'key': 'cwho', 'tags': '', 'text': '\n show who is listening to a channel\n\n Usage:\n cwho <channel>\n\n List who is connected to a given channel you have access to.\n '}
class evennia.commands.default.comms.CmdChannelCreate(**kwargs)[source]

Bases: evennia.commands.default.muxcommand.MuxCommand

create a new channel

Usage:

ccreate <new channel>[;alias;alias…] = description

Creates a new channel owned by you.

key = 'ccreate'
aliases = ['channelcreate']
locks = 'cmd:not pperm(channel_banned) and pperm(Player)'
help_category = 'comms'
account_caller = True
func()[source]

Implement the command

lock_storage = 'cmd:not pperm(channel_banned) and pperm(Player)'
search_index_entry = {'aliases': 'channelcreate', 'category': 'comms', 'key': 'ccreate', 'tags': '', 'text': '\n create a new channel\n\n Usage:\n ccreate <new channel>[;alias;alias...] = description\n\n Creates a new channel owned by you.\n '}
class evennia.commands.default.comms.CmdClock(**kwargs)[source]

Bases: evennia.commands.default.muxcommand.MuxCommand

change channel locks of a channel you control

Usage:

clock <channel> [= <lockstring>]

Changes the lock access restrictions of a channel. If no lockstring was given, view the current lock definitions.

key = 'clock'
locks = 'cmd:not pperm(channel_banned)'
aliases = []
help_category = 'comms'
account_caller = True
func()[source]

run the function

lock_storage = 'cmd:not pperm(channel_banned)'
search_index_entry = {'aliases': '', 'category': 'comms', 'key': 'clock', 'tags': '', 'text': '\n change channel locks of a channel you control\n\n Usage:\n clock <channel> [= <lockstring>]\n\n Changes the lock access restrictions of a channel. If no\n lockstring was given, view the current lock definitions.\n '}
class evennia.commands.default.comms.CmdCdesc(**kwargs)[source]

Bases: evennia.commands.default.muxcommand.MuxCommand

describe a channel you control

Usage:

cdesc <channel> = <description>

Changes the description of the channel as shown in channel lists.

key = 'cdesc'
locks = 'cmd:not pperm(channel_banned)'
help_category = 'comms'
account_caller = True
func()[source]

Implement command

aliases = []
lock_storage = 'cmd:not pperm(channel_banned)'
search_index_entry = {'aliases': '', 'category': 'comms', 'key': 'cdesc', 'tags': '', 'text': '\n describe a channel you control\n\n Usage:\n cdesc <channel> = <description>\n\n Changes the description of the channel as shown in\n channel lists.\n '}
class evennia.commands.default.comms.CmdPage(**kwargs)[source]

Bases: evennia.commands.default.muxcommand.MuxCommand

send a private message to another account

Usage:

page[/switches] [<account>,<account>,… = <message>] tell ‘’ page <number>

Switch:

last - shows who you last messaged list - show your last <number> of tells/pages (default)

Send a message to target user (if online). If no argument is given, you will get a list of your latest messages.

key = 'page'
aliases = ['tell']
switch_options = ('last', 'list')
locks = 'cmd:not pperm(page_banned)'
help_category = 'comms'
account_caller = True
func()[source]

Implement function using the Msg methods

lock_storage = 'cmd:not pperm(page_banned)'
search_index_entry = {'aliases': 'tell', 'category': 'comms', 'key': 'page', 'tags': '', 'text': "\n send a private message to another account\n\n Usage:\n page[/switches] [<account>,<account>,... = <message>]\n tell ''\n page <number>\n\n Switch:\n last - shows who you last messaged\n list - show your last <number> of tells/pages (default)\n\n Send a message to target user (if online). If no\n argument is given, you will get a list of your latest messages.\n "}
class evennia.commands.default.comms.CmdIRC2Chan(**kwargs)[source]

Bases: evennia.commands.default.muxcommand.MuxCommand

Link an evennia channel to an external IRC channel

Usage:

irc2chan[/switches] <evennia_channel> = <ircnetwork> <port> <#irchannel> <botname>[:typeclass] irc2chan/delete botname|#dbid

Switches:
/delete
  • this will delete the bot and remove the irc connection

to the channel. Requires the botname or #dbid as input.

/remove
  • alias to /delete

/disconnect - alias to /delete /list - show all irc<->evennia mappings /ssl - use an SSL-encrypted connection

Example

irc2chan myircchan = irc.dalnet.net 6667 #mychannel evennia-bot irc2chan public = irc.freenode.net 6667 #evgaming #evbot:accounts.mybot.MyBot

This creates an IRC bot that connects to a given IRC network and channel. If a custom typeclass path is given, this will be used instead of the default bot class. The bot will relay everything said in the evennia channel to the IRC channel and vice versa. The bot will automatically connect at server start, so this command need only be given once. The /disconnect switch will permanently delete the bot. To only temporarily deactivate it, use the |wservices|n command instead. Provide an optional bot class path to use a custom bot.

key = 'irc2chan'
switch_options = ('delete', 'remove', 'disconnect', 'list', 'ssl')
locks = 'cmd:serversetting(IRC_ENABLED) and pperm(Developer)'
help_category = 'comms'
func()[source]

Setup the irc-channel mapping

aliases = []
lock_storage = 'cmd:serversetting(IRC_ENABLED) and pperm(Developer)'
search_index_entry = {'aliases': '', 'category': 'comms', 'key': 'irc2chan', 'tags': '', 'text': '\n Link an evennia channel to an external IRC channel\n\n Usage:\n irc2chan[/switches] <evennia_channel> = <ircnetwork> <port> <#irchannel> <botname>[:typeclass]\n irc2chan/delete botname|#dbid\n\n Switches:\n /delete - this will delete the bot and remove the irc connection\n to the channel. Requires the botname or #dbid as input.\n /remove - alias to /delete\n /disconnect - alias to /delete\n /list - show all irc<->evennia mappings\n /ssl - use an SSL-encrypted connection\n\n Example:\n irc2chan myircchan = irc.dalnet.net 6667 #mychannel evennia-bot\n irc2chan public = irc.freenode.net 6667 #evgaming #evbot:accounts.mybot.MyBot\n\n This creates an IRC bot that connects to a given IRC network and\n channel. If a custom typeclass path is given, this will be used\n instead of the default bot class.\n The bot will relay everything said in the evennia channel to the\n IRC channel and vice versa. The bot will automatically connect at\n server start, so this command need only be given once. The\n /disconnect switch will permanently delete the bot. To only\n temporarily deactivate it, use the |wservices|n command instead.\n Provide an optional bot class path to use a custom bot.\n '}
class evennia.commands.default.comms.CmdIRCStatus(**kwargs)[source]

Bases: evennia.commands.default.muxcommand.MuxCommand

Check and reboot IRC bot.

Usage:

ircstatus [#dbref ping||nicklist||reconnect]

If not given arguments, will return a list of all bots (like irc2chan/list). The ‘ping’ argument will ping the IRC network to see if the connection is still responsive. The ‘nicklist’ argument (aliases are ‘who’ and ‘users’) will return a list of users on the remote IRC channel. Finally, ‘reconnect’ will force the client to disconnect and reconnect again. This may be a last resort if the client has silently lost connection (this may happen if the remote network experience network issues). During the reconnection messages sent to either channel will be lost.

key = 'ircstatus'
locks = 'cmd:serversetting(IRC_ENABLED) and perm(ircstatus) or perm(Builder))'
help_category = 'comms'
func()[source]

Handles the functioning of the command.

aliases = []
lock_storage = 'cmd:serversetting(IRC_ENABLED) and perm(ircstatus) or perm(Builder))'
search_index_entry = {'aliases': '', 'category': 'comms', 'key': 'ircstatus', 'tags': '', 'text': "\n Check and reboot IRC bot.\n\n Usage:\n ircstatus [#dbref ping||nicklist||reconnect]\n\n If not given arguments, will return a list of all bots (like\n irc2chan/list). The 'ping' argument will ping the IRC network to\n see if the connection is still responsive. The 'nicklist' argument\n (aliases are 'who' and 'users') will return a list of users on the\n remote IRC channel. Finally, 'reconnect' will force the client to\n disconnect and reconnect again. This may be a last resort if the\n client has silently lost connection (this may happen if the remote\n network experience network issues). During the reconnection\n messages sent to either channel will be lost.\n\n "}
class evennia.commands.default.comms.CmdRSS2Chan(**kwargs)[source]

Bases: evennia.commands.default.muxcommand.MuxCommand

link an evennia channel to an external RSS feed

Usage:

rss2chan[/switches] <evennia_channel> = <rss_url>

Switches:
/disconnect - this will stop the feed and remove the connection to the

channel.

/remove
/list
  • show all rss->evennia mappings

Example

rss2chan rsschan = http://code.google.com/feeds/p/evennia/updates/basic

This creates an RSS reader that connects to a given RSS feed url. Updates will be echoed as a title and news link to the given channel. The rate of updating is set with the RSS_UPDATE_INTERVAL variable in settings (default is every 10 minutes).

When disconnecting you need to supply both the channel and url again so as to identify the connection uniquely.

key = 'rss2chan'
switch_options = ('disconnect', 'remove', 'list')
locks = 'cmd:serversetting(RSS_ENABLED) and pperm(Developer)'
help_category = 'comms'
func()[source]

Setup the rss-channel mapping

aliases = []
lock_storage = 'cmd:serversetting(RSS_ENABLED) and pperm(Developer)'
search_index_entry = {'aliases': '', 'category': 'comms', 'key': 'rss2chan', 'tags': '', 'text': '\n link an evennia channel to an external RSS feed\n\n Usage:\n rss2chan[/switches] <evennia_channel> = <rss_url>\n\n Switches:\n /disconnect - this will stop the feed and remove the connection to the\n channel.\n /remove - "\n /list - show all rss->evennia mappings\n\n Example:\n rss2chan rsschan = http://code.google.com/feeds/p/evennia/updates/basic\n\n This creates an RSS reader that connects to a given RSS feed url. Updates\n will be echoed as a title and news link to the given channel. The rate of\n updating is set with the RSS_UPDATE_INTERVAL variable in settings (default\n is every 10 minutes).\n\n When disconnecting you need to supply both the channel and url again so as\n to identify the connection uniquely.\n '}
class evennia.commands.default.comms.CmdGrapevine2Chan(**kwargs)[source]

Bases: evennia.commands.default.muxcommand.MuxCommand

Link an Evennia channel to an exteral Grapevine channel

Usage:

grapevine2chan[/switches] <evennia_channel> = <grapevine_channel> grapevine2chan/disconnect <connection #id>

Switches:
/list
  • (or no switch): show existing grapevine <-> Evennia

mappings and available grapevine chans

/remove
  • alias to disconnect

/delete
  • alias to disconnect

Example

grapevine2chan mygrapevine = gossip

This creates a link between an in-game Evennia channel and an external Grapevine channel. The game must be registered with the Grapevine network (register at https://grapevine.haus) and the GRAPEVINE_* auth information must be added to game settings.

key = 'grapevine2chan'
switch_options = ('disconnect', 'remove', 'delete', 'list')
locks = 'cmd:serversetting(GRAPEVINE_ENABLED) and pperm(Developer)'
help_category = 'comms'
func()[source]

Setup the Grapevine channel mapping

aliases = []
lock_storage = 'cmd:serversetting(GRAPEVINE_ENABLED) and pperm(Developer)'
search_index_entry = {'aliases': '', 'category': 'comms', 'key': 'grapevine2chan', 'tags': '', 'text': '\n Link an Evennia channel to an exteral Grapevine channel\n\n Usage:\n grapevine2chan[/switches] <evennia_channel> = <grapevine_channel>\n grapevine2chan/disconnect <connection #id>\n\n Switches:\n /list - (or no switch): show existing grapevine <-> Evennia\n mappings and available grapevine chans\n /remove - alias to disconnect\n /delete - alias to disconnect\n\n Example:\n grapevine2chan mygrapevine = gossip\n\n This creates a link between an in-game Evennia channel and an external\n Grapevine channel. The game must be registered with the Grapevine network\n (register at https://grapevine.haus) and the GRAPEVINE_* auth information\n must be added to game settings.\n '}