Skip to content

Commit

Permalink
Moved the login/register commands out of core and into a module.
Browse files Browse the repository at this point in the history
  • Loading branch information
ecdavis committed Aug 20, 2016
1 parent 97a2ca4 commit 38561a8
Show file tree
Hide file tree
Showing 5 changed files with 32 additions and 28 deletions.
3 changes: 1 addition & 2 deletions spacegame/core/__init__.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
from spacegame.core import echo, handler, login
from spacegame.core import echo, handler


def init():
echo.init()
handler.init()
login.init()
4 changes: 2 additions & 2 deletions spacegame/core/handler.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import logging
from pantsmud.driver import hook
from spacegame.core import game, login
from spacegame.core import game, login_manager


def open_brain_hook(_, brain):
logging.debug("brain %r opened" % brain)
game.get_universe().add_brain(brain)
brain.push_input_handler(login.login_input_handler, "login")
brain.push_input_handler(login_manager.login_input_handler, "login")


def close_brain_hook(_, brain):
Expand Down
22 changes: 22 additions & 0 deletions spacegame/core/login_manager.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
import logging
from pantsmud.driver import command, message


class LoginCommandManager(command.CommandManager):
def input_handler(self, brain, line):
if not brain.is_user:
logging.error("Brain '%s' has login input handler but it is not a user.", str(brain.uuid))
message.command_internal_error(brain)
return
if brain.mobile:
logging.error("Brain '%s' has login input handler it already has a player '%s'.",
str(brain.uuid), str(brain.mobile.uuid))
message.command_internal_error(brain)
return
return command.CommandManager.input_handler(self, brain, line)


_login_command_manager = LoginCommandManager(__name__)
add_command = _login_command_manager.add
command_exists = _login_command_manager.exists
login_input_handler = _login_command_manager.input_handler
3 changes: 2 additions & 1 deletion spacegame/modules/__init__.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
from spacegame.modules import chat
from spacegame.modules import chat, login


def init():
chat.init()
login.init()
28 changes: 5 additions & 23 deletions spacegame/core/login.py → spacegame/modules/login.py
Original file line number Diff line number Diff line change
@@ -1,27 +1,9 @@
import logging
from pantsmud.driver import command, message, parser
from spacegame.core import command_manager, game, user
from pantsmud.driver import parser
from spacegame.core import command_manager, game, login_manager, user
from spacegame.universe import mobile


class LoginCommandManager(command.CommandManager):
def input_handler(self, brain, line):
if not brain.is_user:
logging.error("Brain '%s' has login input handler but it is not a user.", str(brain.uuid))
message.command_internal_error(brain)
return
if brain.mobile:
logging.error("Brain '%s' has login input handler it already has a player '%s'.",
str(brain.uuid), str(brain.mobile.uuid))
message.command_internal_error(brain)
return
return command.CommandManager.input_handler(self, brain, line)


_login_command_handler = LoginCommandManager(__name__)
login_input_handler = _login_command_handler.input_handler


def register_command(brain, cmd, args):
params = parser.parse([("name", parser.WORD)], args)
if user.player_name_exists(params["name"]):
Expand Down Expand Up @@ -61,6 +43,6 @@ def quit_command(brain, cmd, args):


def init():
_login_command_handler.add("register", register_command)
_login_command_handler.add("login", login_command)
_login_command_handler.add("quit", quit_command)
login_manager.add_command("register", register_command)
login_manager.add_command("login", login_command)
login_manager.add_command("quit", quit_command)

0 comments on commit 38561a8

Please sign in to comment.