Source code for evennia.contrib.game_systems.achievements.tests

-from evennia.utils.test_resources import BaseEvenniaTest, BaseEvenniaCommandTest
-from mock import patch
+from mock import patch
+
+from evennia.utils.test_resources import BaseEvenniaCommandTest, BaseEvenniaTest
+
 from . import achievements
 
 _dummy_achievements = {
diff --git a/docs/latest/_modules/evennia/contrib/grid/extended_room/extended_room.html b/docs/latest/_modules/evennia/contrib/grid/extended_room/extended_room.html
index 9aa1e8ce03..3a76652d6c 100644
--- a/docs/latest/_modules/evennia/contrib/grid/extended_room/extended_room.html
+++ b/docs/latest/_modules/evennia/contrib/grid/extended_room/extended_room.html
@@ -139,8 +139,17 @@
 
 from django.conf import settings
 from django.db.models import Q
-from evennia import (CmdSet, DefaultRoom, EvEditor, FuncParser,
-                     InterruptCommand, default_cmds, gametime, utils)
+
+from evennia import (
+    CmdSet,
+    DefaultRoom,
+    EvEditor,
+    FuncParser,
+    InterruptCommand,
+    default_cmds,
+    gametime,
+    utils,
+)
 from evennia.typeclasses.attributes import AttributeProperty
 from evennia.utils.utils import list_to_string, repeat
 
diff --git a/docs/latest/_modules/evennia/contrib/rpg/character_creator/character_creator.html b/docs/latest/_modules/evennia/contrib/rpg/character_creator/character_creator.html
index 3aefe112c5..06aae0c5e2 100644
--- a/docs/latest/_modules/evennia/contrib/rpg/character_creator/character_creator.html
+++ b/docs/latest/_modules/evennia/contrib/rpg/character_creator/character_creator.html
@@ -114,9 +114,9 @@
 from django.conf import settings
 
 from evennia import DefaultAccount
-from evennia.commands.default.muxcommand import MuxAccountCommand
-from evennia.commands.default.account import CmdIC
 from evennia.commands.cmdset import CmdSet
+from evennia.commands.default.account import CmdIC
+from evennia.commands.default.muxcommand import MuxAccountCommand
 from evennia.objects.models import ObjectDB
 from evennia.utils.evmenu import EvMenu
 from evennia.utils.utils import is_iter, string_partial_matching
diff --git a/docs/latest/_modules/evennia/help/models.html b/docs/latest/_modules/evennia/help/models.html
index 36209e4c4e..e92740dff5 100644
--- a/docs/latest/_modules/evennia/help/models.html
+++ b/docs/latest/_modules/evennia/help/models.html
@@ -107,6 +107,7 @@
 from django.urls import reverse
 from django.utils import timezone
 from django.utils.text import slugify
+
 from evennia.help.manager import HelpEntryManager
 from evennia.locks.lockhandler import LockHandler
 from evennia.typeclasses.models import AliasHandler, Tag, TagHandler
diff --git a/docs/latest/_modules/evennia/objects/objects.html b/docs/latest/_modules/evennia/objects/objects.html
index 877258c7e1..c2b9ae413b 100644
--- a/docs/latest/_modules/evennia/objects/objects.html
+++ b/docs/latest/_modules/evennia/objects/objects.html
@@ -296,6 +296,184 @@
     directly - this will both set things up and efficiently save the object
     without `obj.save()` having to be called explicitly.
 
+    Note: Check the autodocs for complete class members, this may not always
+    be up-to date.
+
+    * Base properties defined/available on all Objects
+
+     key (string) - name of object
+     name (string)- same as key
+     dbref (int, read-only) - unique #id-number. Also "id" can be used.
+     date_created (string) - time stamp of object creation
+
+     account (Account) - controlling account (if any, only set together with
+                       sessid below)
+     sessid (int, read-only) - session id (if any, only set together with
+                       account above). Use `sessions` handler to get the
+                       Sessions directly.
+     location (Object) - current location. Is None if this is a room
+     home (Object) - safety start-location
+     has_account (bool, read-only)- will only return *connected* accounts
+     contents (list, read only) - returns all objects inside this object
+     exits (list of Objects, read-only) - returns all exits from this
+                       object, if any
+     destination (Object) - only set if this object is an exit.
+     is_superuser (bool, read-only) - True/False if this user is a superuser
+     is_connected (bool, read-only) - True if this object is associated with
+                            an Account with any connected sessions.
+     has_account (bool, read-only) - True is this object has an associated account.
+     is_superuser (bool, read-only): True if this object has an account and that
+                        account is a superuser.
+
+    * Handlers available
+
+     aliases - alias-handler: use aliases.add/remove/get() to use.
+     permissions - permission-handler: use permissions.add/remove() to
+                   add/remove new perms.
+     locks - lock-handler: use locks.add() to add new lock strings
+     scripts - script-handler. Add new scripts to object with scripts.add()
+     cmdset - cmdset-handler. Use cmdset.add() to add new cmdsets to object
+     nicks - nick-handler. New nicks with nicks.add().
+     sessions - sessions-handler. Get Sessions connected to this
+                object with sessions.get()
+     attributes - attribute-handler. Use attributes.add/remove/get.
+     db - attribute-handler: Shortcut for attribute-handler. Store/retrieve
+            database attributes using self.db.myattr=val, val=self.db.myattr
+     ndb - non-persistent attribute handler: same as db but does not create
+            a database entry when storing data
+
+    * Helper methods (see src.objects.objects.py for full headers)
+
+     get_search_query_replacement(searchdata, **kwargs)
+     get_search_direct_match(searchdata, **kwargs)
+     get_search_candidates(searchdata, **kwargs)
+     get_search_result(searchdata, attribute_name=None, typeclass=None,
+                       candidates=None, exact=False, use_dbref=None, tags=None, **kwargs)
+     get_stacked_result(results, **kwargs)
+     handle_search_results(searchdata, results, **kwargs)
+     search(searchdata, global_search=False, use_nicks=True, typeclass=None,
+            location=None, attribute_name=None, quiet=False, exact=False,
+            candidates=None, use_locks=True, nofound_string=None,
+            multimatch_string=None, use_dbref=None, tags=None, stacked=0)
+     search_account(searchdata, quiet=False)
+     execute_cmd(raw_string, session=None, **kwargs))
+     msg(text=None, from_obj=None, session=None, options=None, **kwargs)
+     for_contents(func, exclude=None, **kwargs)
+     msg_contents(message, exclude=None, from_obj=None, mapping=None,
+                  raise_funcparse_errors=False, **kwargs)
+     move_to(destination, quiet=False, emit_to_obj=None, use_destination=True)
+     clear_contents()
+     create(key, account, caller, method, **kwargs)
+     copy(new_key=None)
+     at_object_post_copy(new_obj, **kwargs)
+     delete()
+     is_typeclass(typeclass, exact=False)
+     swap_typeclass(new_typeclass, clean_attributes=False, no_default=True)
+     access(accessing_obj, access_type='read', default=False,
+            no_superuser_bypass=False, **kwargs)
+     filter_visible(obj_list, looker, **kwargs)
+     get_default_lockstring()
+     get_cmdsets(caller, current, **kwargs)
+     check_permstring(permstring)
+     get_cmdset_providers()
+     get_display_name(looker=None, **kwargs)
+     get_extra_display_name_info(looker=None, **kwargs)
+     get_numbered_name(count, looker, **kwargs)
+     get_display_header(looker, **kwargs)
+     get_display_desc(looker, **kwargs)
+     get_display_exits(looker, **kwargs)
+     get_display_characters(looker, **kwargs)
+     get_display_things(looker, **kwargs)
+     get_display_footer(looker, **kwargs)
+     format_appearance(appearance, looker, **kwargs)
+     return_apperance(looker, **kwargs)
+
+    * Hooks (these are class methods, so args should start with self):
+
+     basetype_setup()     - only called once, used for behind-the-scenes
+                            setup. Normally not modified.
+     basetype_posthook_setup() - customization in basetype, after the object
+                            has been created; Normally not modified.
+
+     at_object_creation() - only called once, when object is first created.
+                            Object customizations go here.
+     at_object_delete() - called just before deleting an object. If returning
+                            False, deletion is aborted. Note that all objects
+                            inside a deleted object are automatically moved
+                            to their <home>, they don't need to be removed here.
+
+     at_init()            - called whenever typeclass is cached from memory,
+                            at least once every server restart/reload
+     at_first_save()
+     at_cmdset_get(**kwargs) - this is called just before the command handler
+                            requests a cmdset from this object. The kwargs are
+                            not normally used unless the cmdset is created
+                            dynamically (see e.g. Exits).
+     at_pre_puppet(account)- (account-controlled objects only) called just
+                            before puppeting
+     at_post_puppet()     - (account-controlled objects only) called just
+                            after completing connection account<->object
+     at_pre_unpuppet()    - (account-controlled objects only) called just
+                            before un-puppeting
+     at_post_unpuppet(account) - (account-controlled objects only) called just
+                            after disconnecting account<->object link
+     at_server_reload()   - called before server is reloaded
+     at_server_shutdown() - called just before server is fully shut down
+
+     at_access(result, accessing_obj, access_type) - called with the result
+                            of a lock access check on this object. Return value
+                            does not affect check result.
+
+     at_pre_move(destination)             - called just before moving object
+                        to the destination. If returns False, move is cancelled.
+     announce_move_from(destination)         - called in old location, just
+                        before move, if obj.move_to() has quiet=False
+     announce_move_to(source_location)       - called in new location, just
+                        after move, if obj.move_to() has quiet=False
+     at_post_move(source_location)          - always called after a move has
+                        been successfully performed.
+     at_pre_object_leave(leaving_object, destination, **kwargs)
+     at_object_leave(obj, target_location, move_type="move", **kwargs)
+     at_object_leave(obj, target_location)   - called when an object leaves
+                        this object in any fashion
+     at_pre_object_receive(obj, source_location)
+     at_object_receive(obj, source_location, move_type="move", **kwargs) - called when this object receives
+                        another object
+     at_post_move(source_location, move_type="move", **kwargs)
+
+     at_traverse(traversing_object, target_location, **kwargs) - (exit-objects only)
+                              handles all moving across the exit, including
+                              calling the other exit hooks. Use super() to retain
+                              the default functionality.
+     at_post_traverse(traversing_object, source_location) - (exit-objects only)
+                              called just after a traversal has happened.
+     at_failed_traverse(traversing_object)      - (exit-objects only) called if
+                       traversal fails and property err_traverse is not defined.
+
+     at_msg_receive(self, msg, from_obj=None, **kwargs) - called when a message
+                             (via self.msg()) is sent to this obj.
+                             If returns false, aborts send.
+     at_msg_send(self, msg, to_obj=None, **kwargs) - called when this objects
+                             sends a message to someone via self.msg().
+
+     return_appearance(looker) - describes this object. Used by "look"
+                                 command by default
+     at_desc(looker=None)      - called by 'look' whenever the
+                                 appearance is requested.
+     at_pre_get(getter, **kwargs)
+     at_get(getter)            - called after object has been picked up.
+                                 Does not stop pickup.
+     at_pre_give(giver, getter, **kwargs)
+     at_give(giver, getter, **kwargs)
+     at_pre_drop(dropper, **kwargs)
+     at_drop(dropper, **kwargs)          - called when this object has been dropped.
+     at_pre_say(speaker, message, **kwargs)
+     at_say(message, msg_self=None, msg_location=None, receivers=None, msg_receivers=None, **kwargs)
+
+     at_look(target, **kwargs)
+     at_desc(looker=None)
+
+
     """
 
     # Determines which order command sets begin to be assembled from.
diff --git a/docs/latest/_modules/evennia/scripts/scripts.html b/docs/latest/_modules/evennia/scripts/scripts.html
index 52abf5db58..92d3c810e0 100644
--- a/docs/latest/_modules/evennia/scripts/scripts.html
+++ b/docs/latest/_modules/evennia/scripts/scripts.html
@@ -764,8 +764,85 @@
 
[docs]class DefaultScript(ScriptBase): """ This is the base TypeClass for all Scripts. Scripts describe - events, timers and states in game, they can have a time component - or describe a state that changes under certain conditions. + all entities/systems without a physical existence in the game world + that require database storage (like an economic system or + combat tracker). They + can also have a timer/ticker component. + + A script type is customized by redefining some or all of its hook + methods and variables. + + * available properties (check docs for full listing, this could be + outdated). + + key (string) - name of object + name (string)- same as key + aliases (list of strings) - aliases to the object. Will be saved + to database as AliasDB entries but returned as strings. + dbref (int, read-only) - unique #id-number. Also "id" can be used. + date_created (string) - time stamp of object creation + permissions (list of strings) - list of permission strings + + desc (string) - optional description of script, shown in listings + obj (Object) - optional object that this script is connected to + and acts on (set automatically by obj.scripts.add()) + interval (int) - how often script should run, in seconds. <0 turns + off ticker + start_delay (bool) - if the script should start repeating right away or + wait self.interval seconds + repeats (int) - how many times the script should repeat before + stopping. 0 means infinite repeats + persistent (bool) - if script should survive a server shutdown or not + is_active (bool) - if script is currently running + + * Handlers + + locks - lock-handler: use locks.add() to add new lock strings + db - attribute-handler: store/retrieve database attributes on this + self.db.myattr=val, val=self.db.myattr + ndb - non-persistent attribute handler: same as db but does not + create a database entry when storing data + + * Helper methods + + create(key, **kwargs) + start() - start script (this usually happens automatically at creation + and obj.script.add() etc) + stop() - stop script, and delete it + pause() - put the script on hold, until unpause() is called. If script + is persistent, the pause state will survive a shutdown. + unpause() - restart a previously paused script. The script will continue + from the paused timer (but at_start() will be called). + time_until_next_repeat() - if a timed script (interval>0), returns time + until next tick + + * Hook methods (should also include self as the first argument): + + at_script_creation() - called only once, when an object of this + class is first created. + is_valid() - is called to check if the script is valid to be running + at the current time. If is_valid() returns False, the running + script is stopped and removed from the game. You can use this + to check state changes (i.e. an script tracking some combat + stats at regular intervals is only valid to run while there is + actual combat going on). + at_start() - Called every time the script is started, which for persistent + scripts is at least once every server start. Note that this is + unaffected by self.delay_start, which only delays the first + call to at_repeat(). + at_repeat() - Called every self.interval seconds. It will be called + immediately upon launch unless self.delay_start is True, which + will delay the first call of this method by self.interval + seconds. If self.interval==0, this method will never + be called. + at_pause() + at_stop() - Called as the script object is stopped and is about to be + removed from the game, e.g. because is_valid() returned False. + at_script_delete() + at_server_reload() - Called when server reloads. Can be used to + save temporary variables you want should survive a reload. + at_server_shutdown() - called at a full server shutdown. + at_server_start() """ diff --git a/docs/latest/_modules/evennia/server/portal/telnet.html b/docs/latest/_modules/evennia/server/portal/telnet.html index a4d7a5cb03..d70dd1e59a 100644 --- a/docs/latest/_modules/evennia/server/portal/telnet.html +++ b/docs/latest/_modules/evennia/server/portal/telnet.html @@ -566,7 +566,7 @@ _RE_N.sub("", prompt) + ("||n" if prompt.endswith("|") else "|n"), strip_ansi=nocolor, xterm256=xterm256, - truecolor=truecolor + truecolor=truecolor, ) if mxp: prompt = mxp_parse(prompt) @@ -603,7 +603,7 @@ strip_ansi=nocolor, xterm256=xterm256, mxp=mxp, - truecolor=truecolor + truecolor=truecolor, ) if mxp: linetosend = mxp_parse(linetosend) diff --git a/docs/latest/_modules/evennia/server/portal/ttype.html b/docs/latest/_modules/evennia/server/portal/ttype.html index 9e999c954e..5a80c823a6 100644 --- a/docs/latest/_modules/evennia/server/portal/ttype.html +++ b/docs/latest/_modules/evennia/server/portal/ttype.html @@ -222,10 +222,10 @@ self.protocol.protocol_flags["NOPROMPTGOAHEAD"] = False if ( - clientname.startswith("XTERM") - or clientname.endswith("-256COLOR") - or clientname - in ( + clientname.startswith("XTERM") + or clientname.endswith("-256COLOR") + or clientname + in ( "ATLANTIS", # > 0.9.9.0 (aug 2009) "CMUD", # > 3.04 (mar 2009) "KILDCLIENT", # > 2.2.0 (sep 2005) @@ -235,17 +235,13 @@ "BEIP", # > 2.00.206 (late 2009) (BeipMu) "POTATO", # > 2.00 (maybe earlier) "TINYFUGUE", # > 4.x (maybe earlier) - ) + ) ): xterm256 = True # use name to identify support for xterm truecolor truecolor = False - if (clientname.endswith("-TRUECOLOR") or - clientname in ( - "AXMUD", - "TINTIN" - )): + if clientname.endswith("-TRUECOLOR") or clientname in ("AXMUD", "TINTIN"): truecolor = True # all clients supporting TTYPE at all seem to support ANSI @@ -261,9 +257,9 @@ tupper = term.upper() # identify xterm256 based on flag xterm256 = ( - tupper.endswith("-256COLOR") - or tupper.endswith("XTERM") # Apple Terminal, old Tintin - and not tupper.endswith("-COLOR") # old Tintin, Putty + tupper.endswith("-256COLOR") + or tupper.endswith("XTERM") # Apple Terminal, old Tintin + and not tupper.endswith("-COLOR") # old Tintin, Putty ) if xterm256: self.protocol.protocol_flags["ANSI"] = True diff --git a/docs/latest/_modules/evennia/typeclasses/models.html b/docs/latest/_modules/evennia/typeclasses/models.html index e603cba04b..ce83991416 100644 --- a/docs/latest/_modules/evennia/typeclasses/models.html +++ b/docs/latest/_modules/evennia/typeclasses/models.html @@ -118,7 +118,6 @@ """ -import evennia from django.conf import settings from django.contrib.contenttypes.models import ContentType from django.core.exceptions import ObjectDoesNotExist @@ -129,21 +128,30 @@ from django.utils import timezone from django.utils.encoding import smart_str from django.utils.text import slugify + +import evennia from evennia.locks.lockhandler import LockHandler from evennia.server.signals import SIGNAL_TYPED_OBJECT_POST_RENAME from evennia.typeclasses import managers -from evennia.typeclasses.attributes import (Attribute, AttributeHandler, - AttributeProperty, DbHolder, - InMemoryAttributeBackend, - ModelAttributeBackend) -from evennia.typeclasses.tags import (AliasHandler, PermissionHandler, Tag, - TagCategoryProperty, TagHandler, - TagProperty) -from evennia.utils.idmapper.models import (SharedMemoryModel, - SharedMemoryModelBase) +from evennia.typeclasses.attributes import ( + Attribute, + AttributeHandler, + AttributeProperty, + DbHolder, + InMemoryAttributeBackend, + ModelAttributeBackend, +) +from evennia.typeclasses.tags import ( + AliasHandler, + PermissionHandler, + Tag, + TagCategoryProperty, + TagHandler, + TagProperty, +) +from evennia.utils.idmapper.models import SharedMemoryModel, SharedMemoryModelBase from evennia.utils.logger import log_trace -from evennia.utils.utils import (class_from_module, inherits_from, is_iter, - lazy_property) +from evennia.utils.utils import class_from_module, inherits_from, is_iter, lazy_property __all__ = ("TypedObject",) diff --git a/docs/latest/_modules/evennia/utils/ansi.html b/docs/latest/_modules/evennia/utils/ansi.html index 762fbb2658..e2b0941ac2 100644 --- a/docs/latest/_modules/evennia/utils/ansi.html +++ b/docs/latest/_modules/evennia/utils/ansi.html @@ -161,8 +161,8 @@ from django.conf import settings from evennia.utils import logger, utils -from evennia.utils.utils import to_str from evennia.utils.hex_colors import HexColors +from evennia.utils.utils import to_str hex2truecolor = HexColors() hex_sub = HexColors.hex_sub diff --git a/docs/latest/_modules/evennia/utils/eveditor.html b/docs/latest/_modules/evennia/utils/eveditor.html index acae0f98af..be91fe1a56 100644 --- a/docs/latest/_modules/evennia/utils/eveditor.html +++ b/docs/latest/_modules/evennia/utils/eveditor.html @@ -814,7 +814,7 @@ } align_name = {"f": "Full", "c": "Center", "l": "Left", "r": "Right"} # shift width arg right if no alignment specified - if self.arg1.startswith('='): + if self.arg1.startswith("="): self.arg2 = self.arg1 self.arg1 = None if self.arg1 and self.arg1.lower() not in align_map: diff --git a/docs/latest/_modules/evennia/utils/evmenu.html b/docs/latest/_modules/evennia/utils/evmenu.html index bb322a1cc4..d28312d0a6 100644 --- a/docs/latest/_modules/evennia/utils/evmenu.html +++ b/docs/latest/_modules/evennia/utils/evmenu.html @@ -364,17 +364,28 @@ from inspect import getfullargspec, isfunction from math import ceil -import evennia from django.conf import settings + # i18n from django.utils.translation import gettext as _ + +import evennia from evennia import CmdSet, Command from evennia.commands import cmdhandler from evennia.utils import logger from evennia.utils.ansi import strip_ansi from evennia.utils.evtable import EvColumn, EvTable -from evennia.utils.utils import (crop, dedent, inherits_from, is_iter, m_len, - make_iter, mod_import, pad, to_str) +from evennia.utils.utils import ( + crop, + dedent, + inherits_from, + is_iter, + m_len, + make_iter, + mod_import, + pad, + to_str, +) # read from protocol NAWS later? _MAX_TEXT_WIDTH = settings.CLIENT_DEFAULT_WIDTH diff --git a/docs/latest/_modules/evennia/utils/text2html.html b/docs/latest/_modules/evennia/utils/text2html.html index a9986d9408..ca0295da10 100644 --- a/docs/latest/_modules/evennia/utils/text2html.html +++ b/docs/latest/_modules/evennia/utils/text2html.html @@ -104,7 +104,6 @@ from html import escape as html_escape from .ansi import * - from .hex_colors import HexColors # All xterm256 RGB equivalents diff --git a/docs/latest/_sources/Coding/Changelog.md.txt b/docs/latest/_sources/Coding/Changelog.md.txt index 84735c95f4..43f6d0ad1d 100644 --- a/docs/latest/_sources/Coding/Changelog.md.txt +++ b/docs/latest/_sources/Coding/Changelog.md.txt @@ -50,6 +50,8 @@ - [Fix][pull3554]: Fix/readd custom `ic` command to the `character_creator` contrib (InspectorCaracal) - [Fix][pull3466]: Make sure the `website/base.html` website base is targeted explicitly so it doesn't get overridden by same file name elsewhere in app (InspectorCaracal) +- [fix][issue3387]: Update all game template doc strings to be more up-to-date + (Griatch) - [Docs]: Doc fixes (Griatch, chiizujin, InspectorCaracal, iLPDev) [pull3470]: https://github.com/evennia/evennia/pull/3470 @@ -83,6 +85,7 @@ [pull3523]: https://github.com/evennia/evennia/pull/3523 [pull3566]: https://github.com/evennia/evennia/pull/3566 [issue3522]: https://github.com/evennia/evennia/issue/3522 +[issue3387]: https://github.com/evennia/evennia/issue/3387 ## Evennia 4.1.1 diff --git a/docs/latest/api/evennia.accounts.accounts.html b/docs/latest/api/evennia.accounts.accounts.html index 4a280af215..cf72e25f6c 100644 --- a/docs/latest/api/evennia.accounts.accounts.html +++ b/docs/latest/api/evennia.accounts.accounts.html @@ -154,7 +154,6 @@ game.

-
  • sessions (list of Sessions) - sessions connected to this account

  • is_superuser (bool, read-only) - if the connected user is a superuser

  • @@ -177,25 +176,54 @@ game.

  • scripts - script-handler. Add new scripts to object with scripts.add()

  • cmdset - cmdset-handler. Use cmdset.add() to add new cmdsets to object

  • nicks - nick-handler. New nicks with nicks.add().

  • +
  • sessions - session-handler. Use session.get() to see all sessions connected, if any

  • +
  • options - option-handler. Defaults are taken from settings.OPTIONS_ACCOUNT_DEFAULT

  • +
  • characters - handler for listing the account’s playable characters

    • -
    • Helper methods

    • +
    • Helper methods (check autodocs for full updated listing)

    • msg(text=None, from_obj=None, session=None, options=None, **kwargs)

    • execute_cmd(raw_string)

    • -
      search(ostring, global_search=False, attribute_name=None,

      use_nicks=False, location=None, -ignore_errors=False, account=False)

      +
      search(searchdata, return_puppet=False, search_object=False, typeclass=None,

      nofound_string=None, multimatch_string=None, use_nicks=True, +quiet=False, **kwargs)

    • is_typeclass(typeclass, exact=False)

    • swap_typeclass(new_typeclass, clean_attributes=False, no_default=True)

    • -
    • access(accessing_obj, access_type=’read’, default=False, no_superuser_bypass=False)

    • +
    • access(accessing_obj, access_type=’read’, default=False, no_superuser_bypass=False, **kwargs)

    • check_permstring(permstring)

    • +
    • get_cmdsets(caller, current, **kwargs)

    • +
    • get_cmdset_providers()

    • +
    • uses_screenreader(session=None)

    • +
    • get_display_name(looker, **kwargs)

    • +
    • get_extra_display_name_info(looker, **kwargs)

    • +
    • disconnect_session_from_account()

    • +
    • puppet_object(session, obj)

    • +
    • unpuppet_object(session)

    • +
    • unpuppet_all()

    • +
    • get_puppet(session)

    • +
    • get_all_puppets()

    • +
    • is_banned(**kwargs)

    • +
    • get_username_validators(validator_config=settings.AUTH_USERNAME_VALIDATORS)

    • +
    • authenticate(username, password, ip=””, **kwargs)

    • +
    • normalize_username(username)

    • +
    • validate_username(username)

    • +
    • validate_password(password, account=None)

    • +
    • set_password(password, **kwargs)

    • +
    • get_character_slots()

    • +
    • get_available_character_slots()

    • +
    • create_character(*args, **kwargs)

    • +
    • create(*args, **kwargs)

    • +
    • delete(*args, **kwargs)

    • +
    • channel_msg(message, channel, senders=None, **kwargs)

    • +
    • idle_time()

    • +
    • connection_time()

      @@ -210,15 +238,26 @@ at_account_creation()

      • at_init()

      • +
      • at_first_save()

      • at_access()

      • -
      • at_cmdset_get(**kwargs)

      • +
      • at_cmdset_get(**kwargs)

      • +
      • at_password_change(**kwargs)

      • at_first_login()

      • +
      • at_pre_login()

      • at_post_login(session=None)

      • -
      • at_disconnect()

      • +
      • at_failed_login(session, **kwargs)

      • +
      • at_disconnect(reason=None, **kwargs)

      • +
      • at_post_disconnect(**kwargs)

      • at_message_receive()

      • at_message_send()

      • at_server_reload()

      • at_server_shutdown()

      • +
      • at_look(target=None, session=None, **kwargs)

      • +
      • at_post_create_character(character, **kwargs)

      • +
      • at_post_add_character(char)

      • +
      • at_post_remove_character(char)

      • +
      • at_pre_channel_msg(message, channel, senders=None, **kwargs)

      • +
      • at_post_chnnel_msg(message, channel, senders=None, **kwargs)