mirror of
https://github.com/evennia/evennia.git
synced 2026-03-31 04:57:16 +02:00
Working implementation of User->PlayerDB conversion. Superuser must be created separately. The player-create method was corrected, along with the most obvious places where the user-setup was used. One can log in and look around but it's not heavily debugged yet.
This commit is contained in:
parent
c94472492a
commit
46d1c48a38
8 changed files with 81 additions and 196 deletions
|
|
@ -25,20 +25,20 @@ def create_config_values():
|
|||
ServerConfig.objects.conf("site_name", settings.SERVERNAME)
|
||||
ServerConfig.objects.conf("idle_timeout", settings.IDLE_TIMEOUT)
|
||||
|
||||
def get_god_user():
|
||||
def get_god_player():
|
||||
"""
|
||||
Creates the god user.
|
||||
"""
|
||||
PlayerDB = get_user_model()
|
||||
try:
|
||||
god_user = PlayerDB.objects.get(id=1)
|
||||
god_player = PlayerDB.objects.get(id=1)
|
||||
except PlayerDB.DoesNotExist:
|
||||
txt = "\n\nNo superuser exists yet. The superuser is the 'owner' account on the"
|
||||
txt += "\nEvennia server; a good safety fallback. Create a new superuser using the command"
|
||||
txt += "\nEvennia server. Create a new superuser using the command"
|
||||
txt += "\n\n python manage.py createsuperuser"
|
||||
txt += "\n\nFollow the prompts, then restart the server."
|
||||
raise Exception(txt)
|
||||
return god_user
|
||||
return god_player
|
||||
|
||||
def create_objects():
|
||||
"""
|
||||
|
|
@ -49,22 +49,26 @@ def create_objects():
|
|||
|
||||
# Set the initial User's account object's username on the #1 object.
|
||||
# This object is pure django and only holds name, email and password.
|
||||
god_user = get_god_user()
|
||||
god_player = get_god_player()
|
||||
|
||||
# Create a Player 'user profile' object to hold eventual
|
||||
# mud-specific settings for the bog standard User object. This is
|
||||
# accessed by user.get_profile() and can also store attributes.
|
||||
# It also holds mud permissions, but for a superuser these
|
||||
# have no effect anyhow.
|
||||
character_typeclass = settings.BASE_CHARACTER_TYPECLASS
|
||||
player_typeclass = settings.BASE_PLAYER_TYPECLASS
|
||||
|
||||
# Create the Player object as well as the in-game god-character
|
||||
# for user #1. We can't set location and home yet since nothing
|
||||
# run all creation hooks on god_player (we must do so manually since the manage.py command does not)
|
||||
god_player.typeclass_path = player_typeclass
|
||||
god_player.basetype_setup()
|
||||
god_player.at_player_creation()
|
||||
god_player.locks.add("examine:perm(Immortals);edit:false();delete:false();boot:false();msg:all()")
|
||||
|
||||
# Create the in-game god-character for player #1. We can't set location and home yet since nothing
|
||||
# exists. Also, all properties (name, email, password, is_superuser)
|
||||
# is inherited from the user so we don't specify it again here.
|
||||
|
||||
god_player = create.create_player(god_user.username, None, None, user=god_user)
|
||||
god_character = create.create_object(character_typeclass, key=god_user.username)
|
||||
character_typeclass = settings.BASE_CHARACTER_TYPECLASS
|
||||
god_character = create.create_object(character_typeclass, key=god_player.username)
|
||||
|
||||
god_character.id = 1
|
||||
god_character.db.desc = _('This is User #1.')
|
||||
|
|
@ -132,7 +136,7 @@ def create_channels():
|
|||
return
|
||||
|
||||
# connect the god user to all these channels by default.
|
||||
goduser = get_god_user()
|
||||
goduser = get_god_player()
|
||||
from src.comms.models import PlayerChannelConnection
|
||||
PlayerChannelConnection.objects.create_connection(goduser, pchan)
|
||||
PlayerChannelConnection.objects.create_connection(goduser, ichan)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue