Merge branch 'commands' of https://github.com/strikaco/evennia-dev into strikaco-commands

This commit is contained in:
Griatch 2018-10-06 14:15:40 +02:00
commit be8f5b93fa
3 changed files with 22 additions and 4 deletions

View file

@ -23,7 +23,7 @@ from builtins import range
import time import time
from django.conf import settings from django.conf import settings
from evennia.server.sessionhandler import SESSIONS from evennia.server.sessionhandler import SESSIONS
from evennia.utils import utils, create, search, evtable from evennia.utils import utils, create, logger, search, evtable
COMMAND_DEFAULT_CLASS = utils.class_from_module(settings.COMMAND_DEFAULT_CLASS) COMMAND_DEFAULT_CLASS = utils.class_from_module(settings.COMMAND_DEFAULT_CLASS)
@ -171,6 +171,7 @@ class CmdCharCreate(COMMAND_DEFAULT_CLASS):
new_character.db.desc = "This is a character." new_character.db.desc = "This is a character."
self.msg("Created new character %s. Use |w@ic %s|n to enter the game as this character." self.msg("Created new character %s. Use |w@ic %s|n to enter the game as this character."
% (new_character.key, new_character.key)) % (new_character.key, new_character.key))
logger.log_sec('Character Created: %s (Caller: %s, IP: %s).' % (new_character, account, self.session.address))
class CmdCharDelete(COMMAND_DEFAULT_CLASS): class CmdCharDelete(COMMAND_DEFAULT_CLASS):
@ -214,6 +215,7 @@ class CmdCharDelete(COMMAND_DEFAULT_CLASS):
caller.db._playable_characters = [pc for pc in caller.db._playable_characters if pc != delobj] caller.db._playable_characters = [pc for pc in caller.db._playable_characters if pc != delobj]
delobj.delete() delobj.delete()
self.msg("Character '%s' was permanently deleted." % key) self.msg("Character '%s' was permanently deleted." % key)
logger.log_sec('Character Deleted: %s (Caller: %s, IP: %s).' % (key, account, self.session.address))
else: else:
self.msg("Deletion was aborted.") self.msg("Deletion was aborted.")
del caller.ndb._char_to_delete del caller.ndb._char_to_delete
@ -279,8 +281,10 @@ class CmdIC(COMMAND_DEFAULT_CLASS):
try: try:
account.puppet_object(session, new_character) account.puppet_object(session, new_character)
account.db._last_puppet = new_character account.db._last_puppet = new_character
logger.log_sec('Puppet Success: (Caller: %s, Target: %s, IP: %s).' % (account, new_character, self.session.address))
except RuntimeError as exc: except RuntimeError as exc:
self.msg("|rYou cannot become |C%s|n: %s" % (new_character.name, exc)) self.msg("|rYou cannot become |C%s|n: %s" % (new_character.name, exc))
logger.log_sec('Puppet Failed: %s (Caller: %s, Target: %s, IP: %s).' % (exc, account, new_character, self.session.address))
# note that this is inheriting from MuxAccountLookCommand, # note that this is inheriting from MuxAccountLookCommand,
@ -641,6 +645,7 @@ class CmdPassword(COMMAND_DEFAULT_CLASS):
account.set_password(newpass) account.set_password(newpass)
account.save() account.save()
self.msg("Password changed.") self.msg("Password changed.")
logger.log_sec('Password Changed: %s (Caller: %s, IP: %s).' % (account, account, self.session.address))
class CmdQuit(COMMAND_DEFAULT_CLASS): class CmdQuit(COMMAND_DEFAULT_CLASS):

View file

@ -9,7 +9,7 @@ import re
from django.conf import settings from django.conf import settings
from evennia.server.sessionhandler import SESSIONS from evennia.server.sessionhandler import SESSIONS
from evennia.server.models import ServerConfig from evennia.server.models import ServerConfig
from evennia.utils import evtable, search, class_from_module from evennia.utils import evtable, logger, search, class_from_module
COMMAND_DEFAULT_CLASS = class_from_module(settings.COMMAND_DEFAULT_CLASS) COMMAND_DEFAULT_CLASS = class_from_module(settings.COMMAND_DEFAULT_CLASS)
@ -96,6 +96,9 @@ class CmdBoot(COMMAND_DEFAULT_CLASS):
session.msg(feedback) session.msg(feedback)
session.account.disconnect_session_from_account(session) session.account.disconnect_session_from_account(session)
if pobj and boot_list:
logger.log_sec('Booted: %s (Reason: %s, Caller: %s, IP: %s).' % (pobj, reason, caller, self.session.address))
# regex matching IP addresses with wildcards, eg. 233.122.4.* # regex matching IP addresses with wildcards, eg. 233.122.4.*
IPREGEX = re.compile(r"[0-9*]{1,3}\.[0-9*]{1,3}\.[0-9*]{1,3}\.[0-9*]{1,3}") IPREGEX = re.compile(r"[0-9*]{1,3}\.[0-9*]{1,3}\.[0-9*]{1,3}\.[0-9*]{1,3}")
@ -203,6 +206,7 @@ class CmdBan(COMMAND_DEFAULT_CLASS):
banlist.append(bantup) banlist.append(bantup)
ServerConfig.objects.conf('server_bans', banlist) ServerConfig.objects.conf('server_bans', banlist)
self.caller.msg("%s-Ban |w%s|n was added." % (typ, ban)) self.caller.msg("%s-Ban |w%s|n was added." % (typ, ban))
logger.log_sec('Banned %s: %s (Caller: %s, IP: %s).' % (typ, ban.strip(), self.caller, self.session.address))
class CmdUnban(COMMAND_DEFAULT_CLASS): class CmdUnban(COMMAND_DEFAULT_CLASS):
@ -246,8 +250,10 @@ class CmdUnban(COMMAND_DEFAULT_CLASS):
ban = banlist[num - 1] ban = banlist[num - 1]
del banlist[num - 1] del banlist[num - 1]
ServerConfig.objects.conf('server_bans', banlist) ServerConfig.objects.conf('server_bans', banlist)
value = " ".join([s for s in ban[:2]])
self.caller.msg("Cleared ban %s: %s" % self.caller.msg("Cleared ban %s: %s" %
(num, " ".join([s for s in ban[:2]]))) (num, value))
logger.log_sec('Unbanned: %s (Caller: %s, IP: %s).' % (value.strip(), self.caller, self.session.address))
class CmdDelAccount(COMMAND_DEFAULT_CLASS): class CmdDelAccount(COMMAND_DEFAULT_CLASS):
@ -317,6 +323,7 @@ class CmdDelAccount(COMMAND_DEFAULT_CLASS):
if reason: if reason:
string += " Reason given:\n '%s'" % reason string += " Reason given:\n '%s'" % reason
account.msg(string) account.msg(string)
logger.log_sec('Account Deleted: %s (Reason: %s, Caller: %s, IP: %s).' % (account, reason, caller, self.session.address))
account.delete() account.delete()
self.msg("Account %s was successfully deleted." % uname) self.msg("Account %s was successfully deleted." % uname)
@ -445,6 +452,7 @@ class CmdNewPassword(COMMAND_DEFAULT_CLASS):
if account.character != caller: if account.character != caller:
account.msg("%s has changed your password to '%s'." % (caller.name, account.msg("%s has changed your password to '%s'." % (caller.name,
newpass)) newpass))
logger.log_sec('Password Changed: %s (Caller: %s, IP: %s).' % (account, caller, self.session.address))
class CmdPerm(COMMAND_DEFAULT_CLASS): class CmdPerm(COMMAND_DEFAULT_CLASS):
@ -526,6 +534,7 @@ class CmdPerm(COMMAND_DEFAULT_CLASS):
else: else:
caller_result.append("\nPermission %s removed from %s (if they existed)." % (perm, obj.name)) caller_result.append("\nPermission %s removed from %s (if they existed)." % (perm, obj.name))
target_result.append("\n%s revokes the permission(s) %s from you." % (caller.name, perm)) target_result.append("\n%s revokes the permission(s) %s from you." % (caller.name, perm))
logger.log_sec('Permissions Deleted: %s, %s (Caller: %s, IP: %s).' % (perm, obj, caller, self.session.address))
else: else:
# add a new permission # add a new permission
permissions = obj.permissions.all() permissions = obj.permissions.all()
@ -547,6 +556,8 @@ class CmdPerm(COMMAND_DEFAULT_CLASS):
caller_result.append("\nPermission '%s' given to %s (%s)." % (perm, obj.name, plystring)) caller_result.append("\nPermission '%s' given to %s (%s)." % (perm, obj.name, plystring))
target_result.append("\n%s gives you (%s, %s) the permission '%s'." target_result.append("\n%s gives you (%s, %s) the permission '%s'."
% (caller.name, obj.name, plystring, perm)) % (caller.name, obj.name, plystring, perm))
logger.log_sec('Permissions Added: %s, %s (Caller: %s, IP: %s).' % (obj, perm, caller, self.session.address))
caller.msg("".join(caller_result).strip()) caller.msg("".join(caller_result).strip())
if target_result: if target_result:
obj.msg("".join(target_result).strip()) obj.msg("".join(target_result).strip())

View file

@ -14,7 +14,7 @@ from evennia.accounts.models import AccountDB
from evennia.accounts import bots from evennia.accounts import bots
from evennia.comms.channelhandler import CHANNELHANDLER from evennia.comms.channelhandler import CHANNELHANDLER
from evennia.locks.lockhandler import LockException from evennia.locks.lockhandler import LockException
from evennia.utils import create, utils, evtable from evennia.utils import create, logger, utils, evtable
from evennia.utils.utils import make_iter, class_from_module from evennia.utils.utils import make_iter, class_from_module
COMMAND_DEFAULT_CLASS = class_from_module(settings.COMMAND_DEFAULT_CLASS) COMMAND_DEFAULT_CLASS = class_from_module(settings.COMMAND_DEFAULT_CLASS)
@ -368,6 +368,7 @@ class CmdCdestroy(COMMAND_DEFAULT_CLASS):
channel.delete() channel.delete()
CHANNELHANDLER.update() CHANNELHANDLER.update()
self.msg("Channel '%s' was destroyed." % channel_key) self.msg("Channel '%s' was destroyed." % channel_key)
logger.log_sec('Channel Deleted: %s (Caller: %s, IP: %s).' % (channel_key, caller, self.session.address))
class CmdCBoot(COMMAND_DEFAULT_CLASS): class CmdCBoot(COMMAND_DEFAULT_CLASS):
@ -433,6 +434,7 @@ class CmdCBoot(COMMAND_DEFAULT_CLASS):
# disconnect account # disconnect account
channel.disconnect(account) channel.disconnect(account)
CHANNELHANDLER.update() CHANNELHANDLER.update()
logger.log_sec('Channel Boot: %s (Channel: %s, Reason: %s, Caller: %s, IP: %s).' % (account, channel, reason, caller, self.session.address))
class CmdCemit(COMMAND_DEFAULT_CLASS): class CmdCemit(COMMAND_DEFAULT_CLASS):