mirror of
https://github.com/evennia/evennia.git
synced 2026-03-17 05:16:31 +01:00
Re-arrangement. I almost have things organized how I want them.
This commit is contained in:
parent
0696575786
commit
d7cf02e8c0
5 changed files with 63 additions and 56 deletions
|
|
@ -1,7 +1,6 @@
|
|||
from django.db import models
|
||||
from django.contrib.auth.models import User
|
||||
|
||||
|
||||
class ObjectClass(models.Model):
|
||||
"""
|
||||
Each object class can have different behaviors to apply to it.
|
||||
|
|
@ -111,12 +110,11 @@ class Object(models.Model):
|
|||
# self.location.contents_list.remove(self)
|
||||
#target.contents_list.append(self)
|
||||
|
||||
cached_object = server.get_object_from_dbref(self.id)
|
||||
cached_object = functions_db.get_object_from_dbref(server, self.id)
|
||||
cached_object.location = target
|
||||
cached_object.save()
|
||||
|
||||
def dbref_match(self, oname):
|
||||
import functions_db
|
||||
"""
|
||||
Check if the input (oname) can be used to identify this particular object
|
||||
by means of a dbref match.
|
||||
|
|
@ -132,7 +130,6 @@ class Object(models.Model):
|
|||
return is_match
|
||||
|
||||
def name_match(self, oname):
|
||||
import functions_db
|
||||
"""
|
||||
See if the input (oname) can be used to identify this particular object.
|
||||
Check the # sign for dbref (exact) reference, and anything else is a
|
||||
|
|
@ -184,3 +181,5 @@ class Object(models.Model):
|
|||
|
||||
def __str__(self):
|
||||
return "%s(%d)" % (self.name, self.id,)
|
||||
|
||||
import functions_db
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
from django.contrib.auth.models import User
|
||||
import functions_db
|
||||
|
||||
"""
|
||||
Commands that are available from the connect screen.
|
||||
|
|
@ -30,10 +31,11 @@ def do_create(cdat):
|
|||
Handle the creation of new accounts.
|
||||
"""
|
||||
session = cdat['session']
|
||||
server = cdat['server']
|
||||
uname = cdat['uinput']['splitted'][1]
|
||||
email = cdat['uinput']['splitted'][2]
|
||||
password = cdat['uinput']['splitted'][3]
|
||||
|
||||
# Search for a user object with the specified username.
|
||||
account = User.objects.filter(username=uname)
|
||||
|
||||
if not account.count() == 0:
|
||||
|
|
@ -41,7 +43,7 @@ def do_create(cdat):
|
|||
elif len(password) < 3:
|
||||
session.msg("Your password must be 3 characters or longer.")
|
||||
else:
|
||||
server.create_user(session, uname, email, password)
|
||||
functions_db.create_user(cdat, uname, email, password)
|
||||
|
||||
def do_quit(cdat):
|
||||
"""
|
||||
|
|
|
|||
|
|
@ -1,6 +1,23 @@
|
|||
import sets
|
||||
from django.contrib.auth.models import User
|
||||
from apps.objects.models import Object
|
||||
|
||||
def get_nextfree_dbnum():
|
||||
"""
|
||||
Figure out what our next free database reference number is.
|
||||
"""
|
||||
# First we'll see if there's an object of type 5 (GARBAGE) that we
|
||||
# can recycle.
|
||||
nextfree = Object.objects.filter(type__exact=5)
|
||||
if nextfree:
|
||||
# We've got at least one garbage object to recycle.
|
||||
#return nextfree.id
|
||||
return nextfree[0].id
|
||||
else:
|
||||
# No garbage to recycle, find the highest dbnum and increment it
|
||||
# for our next free.
|
||||
return Object.objects.order_by('-id')[0].id + 1
|
||||
|
||||
def list_search_object_namestr(searchlist, ostring, dbref_only=False):
|
||||
"""
|
||||
Iterates through a list of objects and returns a list of
|
||||
|
|
@ -68,3 +85,38 @@ def session_from_dbref(session_list, dbstring):
|
|||
return results[0]
|
||||
else:
|
||||
return False
|
||||
|
||||
def get_object_from_dbref(server, dbref):
|
||||
"""
|
||||
Returns an object when given a dbref.
|
||||
"""
|
||||
return server.object_list.get(dbref, False)
|
||||
|
||||
def create_user(cdat, uname, email, password):
|
||||
"""
|
||||
Handles the creation of new users.
|
||||
"""
|
||||
session = cdat['session']
|
||||
server = cdat['server']
|
||||
start_room = int(server.get_configvalue('player_dbnum_start'))
|
||||
start_room_obj = get_object_from_dbref(server, start_room)
|
||||
|
||||
# The user's entry in the User table must match up to an object
|
||||
# on the object table. The id's are the same, we need to figure out
|
||||
# the next free unique ID to use and make sure the two entries are
|
||||
# the same number.
|
||||
uid = get_nextfree_dbnum()
|
||||
user = User.objects.create_user(uname, email, password)
|
||||
# It stinks to have to do this but it's the only trivial way now.
|
||||
user.id = uid
|
||||
user.save
|
||||
|
||||
# Create a player object of the same ID in the Objects table.
|
||||
user_object = Object(id=uid, type=1, name=uname, location=start_room_obj)
|
||||
user_object.save()
|
||||
server.add_object_to_cache(user_object)
|
||||
|
||||
# Activate the player's session and set them loose.
|
||||
session.login(user)
|
||||
print 'Registration: %s' % (session,)
|
||||
session.push("Welcome to %s, %s.\n\r" % (server.get_configvalue('site_name'), session.name,))
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ from django.db import models
|
|||
from apps.config.models import ConfigValue, CommandAlias
|
||||
from apps.objects.models import Object, Attribute
|
||||
from django.contrib.auth.models import User
|
||||
import functions_db
|
||||
|
||||
#
|
||||
## Begin: Time Functions
|
||||
|
|
@ -144,40 +145,7 @@ class Server(dispatcher):
|
|||
Adds an object to the cached object list.
|
||||
"""
|
||||
self.object_list[object.id] = object
|
||||
|
||||
def get_object_from_dbref(self, dbref):
|
||||
"""
|
||||
Returns an object when given a dbref.
|
||||
"""
|
||||
return self.object_list.get(dbref, False)
|
||||
|
||||
def create_user(self, session, uname, email, password):
|
||||
"""
|
||||
Handles the creation of new users.
|
||||
"""
|
||||
start_room = int(self.get_configvalue('player_dbnum_start'))
|
||||
start_room_obj = self.get_object_from_dbref(start_room)
|
||||
|
||||
# The user's entry in the User table must match up to an object
|
||||
# on the object table. The id's are the same, we need to figure out
|
||||
# the next free unique ID to use and make sure the two entries are
|
||||
# the same number.
|
||||
uid = self.get_nextfree_dbnum()
|
||||
user = User.objects.create_user(uname, email, password)
|
||||
# It stinks to have to do this but it's the only trivial way now.
|
||||
user.id = uid
|
||||
user.save
|
||||
|
||||
# Create a player object of the same ID in the Objects table.
|
||||
user_object = Object(id=uid, type=1, name=uname, location=start_room_obj)
|
||||
user_object.save()
|
||||
self.add_object_to_cache(user_object)
|
||||
|
||||
# Activate the player's session and set them loose.
|
||||
session.login(user)
|
||||
print 'Registration: %s' % (session,)
|
||||
session.push("Welcome to %s, %s.\n\r" % (self.get_configvalue('site_name'), session.name,))
|
||||
|
||||
|
||||
def announce_all(self, message, with_ann_prefix=True):
|
||||
"""
|
||||
Announces something to all connected players.
|
||||
|
|
@ -196,21 +164,6 @@ class Server(dispatcher):
|
|||
"""
|
||||
return self.configvalue[configname]
|
||||
|
||||
def get_nextfree_dbnum(self):
|
||||
"""
|
||||
Figure out what our next free database reference number is.
|
||||
"""
|
||||
# First we'll see if there's an object of type 5 (GARBAGE) that we
|
||||
# can recycle.
|
||||
nextfree = Object.objects.filter(type__exact=5)
|
||||
if nextfree:
|
||||
# We've got at least one garbage object to recycle.
|
||||
#return nextfree.id
|
||||
return nextfree[0].id
|
||||
else:
|
||||
# No garbage to recycle, find the highest dbnum and increment it
|
||||
# for our next free.
|
||||
return Object.objects.order_by('-id')[0].id + 1
|
||||
"""
|
||||
END Server CLASS
|
||||
"""
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ import cmdhandler
|
|||
from apps.objects.models import Object
|
||||
from django.contrib.auth.models import User
|
||||
import commands_general
|
||||
import functions_db
|
||||
|
||||
class PlayerSession(async_chat):
|
||||
"""
|
||||
|
|
@ -78,7 +79,7 @@ class PlayerSession(async_chat):
|
|||
"""
|
||||
After the user has authenticated, handle logging him in.
|
||||
"""
|
||||
self.pobject = self.server.get_object_from_dbref(user.id)
|
||||
self.pobject = functions_db.get_object_from_dbref(self.server, user.id)
|
||||
self.name = user.username
|
||||
self.logged_in = True
|
||||
self.conn_time = time.time()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue