Move game_template into evennia package. Update setup.py and bin/evennia
This commit is contained in:
parent
b95ff4e976
commit
00238275d6
130 changed files with 20 additions and 21 deletions
1
evennia/game_template/server/__init__.py
Normal file
1
evennia/game_template/server/__init__.py
Normal file
|
|
@ -0,0 +1 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
1
evennia/game_template/server/conf/__init__.py
Normal file
1
evennia/game_template/server/conf/__init__.py
Normal file
|
|
@ -0,0 +1 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
19
evennia/game_template/server/conf/at_initial_setup.py
Normal file
19
evennia/game_template/server/conf/at_initial_setup.py
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
"""
|
||||
At_initial_setup module template
|
||||
|
||||
Custom at_initial_setup method. This allows you to hook special
|
||||
modifications to the initial server startup process. Note that this
|
||||
will only be run once - when the server starts up for the very first
|
||||
time! It is called last in the startup process and can thus be used to
|
||||
overload things that happened before it.
|
||||
|
||||
The module must contain a global function at_initial_setup(). This
|
||||
will be called without arguments. Note that tracebacks in this module
|
||||
will be QUIETLY ignored, so make sure to check it well to make sure it
|
||||
does what you expect it to.
|
||||
|
||||
"""
|
||||
|
||||
|
||||
def at_initial_setup():
|
||||
pass
|
||||
90
evennia/game_template/server/conf/at_search.py
Normal file
90
evennia/game_template/server/conf/at_search.py
Normal file
|
|
@ -0,0 +1,90 @@
|
|||
"""
|
||||
Search and multimatch handling
|
||||
|
||||
This module allows for overloading two functions used by Evennia's
|
||||
search functionality:
|
||||
|
||||
at_search_result:
|
||||
This is called whenever a result is returned from an object
|
||||
search (a common operation in commands). It should (together
|
||||
with at_multimatch_input below) define some way to present and
|
||||
differentiate between multiple matches (by default these are
|
||||
presented as 1-ball, 2-ball etc)
|
||||
at_multimatch_input:
|
||||
This is called with a search term and should be able to
|
||||
identify if the user wants to separate a multimatch-result
|
||||
(such as that from a previous search). By default, this
|
||||
function understands input on the form 1-ball, 2-ball etc as
|
||||
indicating that the 1st or 2nd match for "ball" should be
|
||||
used.
|
||||
|
||||
This module is not called by default. To overload the defaults, add
|
||||
one or both of the following lines to your settings.py file:
|
||||
|
||||
SEARCH_AT_RESULT = "server.conf.at_search.at_search_result"
|
||||
SEARCH_AT_MULTIMATCH_INPUT = "server.conf.at_search.at_multimatch_input"
|
||||
|
||||
"""
|
||||
|
||||
def at_search_result(msg_obj, ostring, results, global_search=False,
|
||||
nofound_string=None, multimatch_string=None, quiet=False):
|
||||
"""
|
||||
Called by search methods after a result of any type has been found.
|
||||
|
||||
Takes a search result (a list) and
|
||||
formats eventual errors.
|
||||
|
||||
msg_obj - object to receive feedback.
|
||||
ostring - original search string
|
||||
results - list of found matches (0, 1 or more)
|
||||
global_search - if this was a global_search or not
|
||||
(if it is, there might be an idea of supplying
|
||||
dbrefs instead of only numbers)
|
||||
nofound_string - optional custom string for not-found error message.
|
||||
multimatch_string - optional custom string for multimatch error header
|
||||
quiet - work normally, but don't echo to caller, just return the
|
||||
results.
|
||||
|
||||
Multiple matches are returned to the searching object
|
||||
as a list of results ["1-object", "2-object","3-object",...]
|
||||
A single match is returned on its own.
|
||||
"""
|
||||
pass
|
||||
|
||||
|
||||
def at_multimatch_input(ostring):
|
||||
"""
|
||||
This parser will be called by the engine when a user supplies
|
||||
a search term. The search term must be analyzed to determine
|
||||
if the user wants to differentiate between multiple matches
|
||||
(usually found during a previous search).
|
||||
|
||||
This method should separate out any identifiers from the search
|
||||
string used to differentiate between same-named objects. The
|
||||
result should be a tuple (index, search_string) where the index
|
||||
gives which match among multiple matches should be used (1 being
|
||||
the lowest number, rather than 0 as in Python).
|
||||
|
||||
The default parser will intercept input on the following form:
|
||||
|
||||
2-object
|
||||
|
||||
This will be parsed to (2, "object") and, if applicable, will tell
|
||||
the engine to pick the second from a list of same-named matches of
|
||||
objects called "object".
|
||||
|
||||
Ex for use in a game session:
|
||||
|
||||
> look
|
||||
You see: ball, ball, ball and ball.
|
||||
> get ball
|
||||
There where multiple matches for ball:
|
||||
1-ball
|
||||
2-ball
|
||||
3-ball
|
||||
4-ball
|
||||
> get 3-ball
|
||||
You get the ball.
|
||||
|
||||
"""
|
||||
pass
|
||||
63
evennia/game_template/server/conf/at_server_startstop.py
Normal file
63
evennia/game_template/server/conf/at_server_startstop.py
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
"""
|
||||
Server startstop hooks
|
||||
|
||||
This module contains functions called by Evennia at various
|
||||
points during its startup, reload and shutdown sequence. It
|
||||
allows for customizing the server operation as desired.
|
||||
|
||||
This module must contain at least these global functions:
|
||||
|
||||
at_server_start()
|
||||
at_server_stop()
|
||||
at_server_reload_start()
|
||||
at_server_reload_stop()
|
||||
at_server_cold_start()
|
||||
at_server_cold_stop()
|
||||
|
||||
"""
|
||||
|
||||
|
||||
def at_server_start():
|
||||
"""
|
||||
This is called every time the server starts up, regardless of
|
||||
how it was shut down.
|
||||
"""
|
||||
pass
|
||||
|
||||
|
||||
def at_server_stop():
|
||||
"""
|
||||
This is called just before the server is shut down, regardless
|
||||
of it is for a reload, reset or shutdown.
|
||||
"""
|
||||
pass
|
||||
|
||||
|
||||
def at_server_reload_start():
|
||||
"""
|
||||
This is called only when server starts back up after a reload.
|
||||
"""
|
||||
pass
|
||||
|
||||
|
||||
def at_server_reload_stop():
|
||||
"""
|
||||
This is called only time the server stops before a reload.
|
||||
"""
|
||||
pass
|
||||
|
||||
|
||||
def at_server_cold_start():
|
||||
"""
|
||||
This is called only when the server starts "cold", i.e. after a
|
||||
shutdown or a reset.
|
||||
"""
|
||||
pass
|
||||
|
||||
|
||||
def at_server_cold_stop():
|
||||
"""
|
||||
This is called only when the server goes down due to a shutdown or
|
||||
reset.
|
||||
"""
|
||||
pass
|
||||
54
evennia/game_template/server/conf/cmdparser.py
Normal file
54
evennia/game_template/server/conf/cmdparser.py
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
"""
|
||||
Changing the default command parser
|
||||
|
||||
The cmdparser is responsible for parsing the raw text inserted by the
|
||||
user, identifying which command/commands match and return one or more
|
||||
matching command objects. It is called by Evennia's cmdhandler and
|
||||
must accept input and return results on the same form. The default
|
||||
handler is very generic so you usually don't need to overload this
|
||||
unless you have very exotic parsing needs; advanced parsing is best
|
||||
done at the Command.parse level.
|
||||
|
||||
The default cmdparser understands the following command combinations
|
||||
(where [] marks optional parts.)
|
||||
|
||||
[cmdname[ cmdname2 cmdname3 ...] [the rest]
|
||||
|
||||
A command may consist of any number of space-separated words of any
|
||||
length, and contain any character. It may also be empty.
|
||||
|
||||
The parser makes use of the cmdset to find command candidates. The
|
||||
parser return a list of matches. Each match is a tuple with its first
|
||||
three elements being the parsed cmdname (lower case), the remaining
|
||||
arguments, and the matched cmdobject from the cmdset.
|
||||
|
||||
|
||||
This module is not accessed by default. To tell Evennia to use it
|
||||
instead of the default command parser, add the following line to
|
||||
your settings file:
|
||||
|
||||
COMMAND_PARSER = "server.conf.cmdparser.cmdparser"
|
||||
|
||||
"""
|
||||
|
||||
def cmdparser(raw_string, cmdset, caller, match_index=None):
|
||||
"""
|
||||
This function is called by the cmdhandler once it has
|
||||
gathered and merged all valid cmdsets valid for this particular parsing.
|
||||
|
||||
raw_string - the unparsed text entered by the caller.
|
||||
cmdset - the merged, currently valid cmdset
|
||||
caller - the caller triggering this parsing
|
||||
match_index - an optional integer index to pick a given match in a
|
||||
list of same-named command matches.
|
||||
|
||||
Returns:
|
||||
list of tuples: [(cmdname, args, cmdobj, cmdlen, mratio), ...]
|
||||
where cmdname is the matching command name and args is
|
||||
everything not included in the cmdname. Cmdobj is the actual
|
||||
command instance taken from the cmdset, cmdlen is the length
|
||||
of the command name and the mratio is some quality value to
|
||||
(possibly) separate multiple matches.
|
||||
|
||||
"""
|
||||
# Your implementation here
|
||||
33
evennia/game_template/server/conf/connection_screens.py
Normal file
33
evennia/game_template/server/conf/connection_screens.py
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
Connection screen
|
||||
|
||||
Texts in this module will be shown to the user at login-time.
|
||||
|
||||
Evennia will look at global string variables (variables defined
|
||||
at the "outermost" scope of this module and use it as the
|
||||
connection screen. If there are more than one, Evennia will
|
||||
randomize which one it displays.
|
||||
|
||||
The commands available to the user when the connection screen is shown
|
||||
are defined in commands.default_cmdsets.UnloggedinCmdSet and the
|
||||
screen is read and displayed by the unlogged-in "look" command.
|
||||
|
||||
"""
|
||||
|
||||
from django.conf import settings
|
||||
from evennia import utils
|
||||
|
||||
CONNECTION_SCREEN = \
|
||||
"""{b=============================================================={n
|
||||
Welcome to {g%s{n, version %s!
|
||||
|
||||
If you have an existing account, connect to it by typing:
|
||||
{wconnect <username> <password>{n
|
||||
If you need to create an account, type (without the <>'s):
|
||||
{wcreate <username> <password>{n
|
||||
|
||||
If you have spaces in your username, enclose it in quotes.
|
||||
Enter {whelp{n for more info. {wlook{n will re-show this screen.
|
||||
{b=============================================================={n""" \
|
||||
% (settings.SERVERNAME, utils.get_evennia_version())
|
||||
42
evennia/game_template/server/conf/inlinefunc.py
Normal file
42
evennia/game_template/server/conf/inlinefunc.py
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
"""
|
||||
Inlinefunc
|
||||
|
||||
Inline functions allow for direct conversion of text users mark in a
|
||||
special way. Inlinefuncs are deactivated by default. To activate, add
|
||||
|
||||
INLINEFUNC_ENABLED = True
|
||||
|
||||
to your settings file. The default inlinefuncs are found in
|
||||
evennia.utils.inlinefunc.
|
||||
|
||||
In text, usage is straightforward:
|
||||
|
||||
{funcname([arg1,arg2,...]) text {/funcname
|
||||
|
||||
Example 1 (using the "pad" inlinefunc):
|
||||
"This is {pad(50,c,-) a center-padded text{/pad of width 50."
|
||||
->
|
||||
"This is -------------- a center-padded text--------------- of width 50."
|
||||
|
||||
Example 2 (using "pad" and "time" inlinefuncs):
|
||||
"The time is {pad(30){time(){/time{/padright now."
|
||||
->
|
||||
"The time is Oct 25, 11:09 right now."
|
||||
|
||||
To add more inline functions, add them to this module, using
|
||||
the following call signature:
|
||||
|
||||
def funcname(text, *args)
|
||||
|
||||
where the text is always the part between {funcname(args) and
|
||||
{/funcname and the *args are taken from the appropriate part of the
|
||||
call. It is important that the inline function properly clean the
|
||||
incoming args, checking their type and replacing them with sane
|
||||
defaults if needed. If impossible to resolve, the unmodified text
|
||||
should be returned. The inlinefunc should never cause a traceback.
|
||||
|
||||
"""
|
||||
|
||||
#def capitalize(text, *args):
|
||||
# "Silly capitalize example"
|
||||
# return text.capitalize()
|
||||
30
evennia/game_template/server/conf/lockfuncs.py
Normal file
30
evennia/game_template/server/conf/lockfuncs.py
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
"""
|
||||
|
||||
Lockfuncs
|
||||
|
||||
Lock functions are functions available when defining lock strings,
|
||||
which in turn limits access to various game systems.
|
||||
|
||||
All functions defined globally in this module are assumed to be
|
||||
available for use in lockstrings to determine access. See the
|
||||
Evennia documentation for more info on locks.
|
||||
|
||||
A lock function is always called with two arguments, accessing_obj and
|
||||
accessed_obj, followed by any number of arguments. All possible
|
||||
arguments should be handled with *args, **kwargs. The lock function
|
||||
should handle all eventual tracebacks by logging the error and
|
||||
returning False.
|
||||
|
||||
Lock functions in this module extend (and will overload same-named)
|
||||
lock functions from evennia.locks.lockfuncs.
|
||||
|
||||
"""
|
||||
|
||||
#def myfalse(accessing_obj, accessed_obj, *args, **kwargs):
|
||||
# """
|
||||
# called in lockstring with myfalse().
|
||||
# A simple logger that always returns false. Prints to stdout
|
||||
# for simplicity, should use utils.logger for real operation.
|
||||
# """
|
||||
# print "%s tried to access %s. Access denied." % (accessing_obj, accessed_obj)
|
||||
# return False
|
||||
123
evennia/game_template/server/conf/mssp.py
Normal file
123
evennia/game_template/server/conf/mssp.py
Normal file
|
|
@ -0,0 +1,123 @@
|
|||
"""
|
||||
|
||||
MSSP (Mud Server Status Protocol) meta information
|
||||
|
||||
MUD website listings (that you have registered with) can use this
|
||||
information to keep up-to-date with your game stats as you change
|
||||
them. Also number of currently active players and uptime will
|
||||
automatically be reported. You don't have to fill in everything
|
||||
(and most are not used by all crawlers); leave the default
|
||||
if so needed. You need to @reload the game before updated
|
||||
information is made available to crawlers (reloading does not
|
||||
affect uptime).
|
||||
|
||||
"""
|
||||
|
||||
MSSPTable = {
|
||||
|
||||
# Required fieldss
|
||||
|
||||
"NAME": "Evennia",
|
||||
|
||||
# Generic
|
||||
|
||||
"CRAWL DELAY": "-1", # limit how often crawler updates the listing. -1 for no limit
|
||||
|
||||
"HOSTNAME": "", # current or new hostname
|
||||
"PORT": ["4000"], # most important port should be last in list
|
||||
"CODEBASE": "Evennia",
|
||||
"CONTACT": "", # email for contacting the mud
|
||||
"CREATED": "", # year MUD was created
|
||||
"ICON": "", # url to icon 32x32 or larger; <32kb.
|
||||
"IP": "", # current or new IP address
|
||||
"LANGUAGE": "", # name of language used, e.g. English
|
||||
"LOCATION": "", # full English name of server country
|
||||
"MINIMUM AGE": "0", # set to 0 if not applicable
|
||||
"WEBSITE": "www.evennia.com",
|
||||
|
||||
# Categorisation
|
||||
|
||||
"FAMILY": "Custom", # evennia goes under 'Custom'
|
||||
"GENRE": "None", # Adult, Fantasy, Historical, Horror, Modern, None, or Science Fiction
|
||||
"GAMEPLAY": "", # Adventure, Educational, Hack and Slash, None,
|
||||
# Player versus Player, Player versus Environment,
|
||||
# Roleplaying, Simulation, Social or Strategy
|
||||
"STATUS": "Open Beta", # Alpha, Closed Beta, Open Beta, Live
|
||||
"GAMESYSTEM": "Custom", # D&D, d20 System, World of Darkness, etc. Use Custom if homebrew
|
||||
"INTERMUD": "IMC2", # evennia supports IMC2.
|
||||
"SUBGENRE": "None", # LASG, Medieval Fantasy, World War II, Frankenstein,
|
||||
# Cyberpunk, Dragonlance, etc. Or None if not available.
|
||||
|
||||
# World
|
||||
|
||||
"AREAS": "0",
|
||||
"HELPFILES": "0",
|
||||
"MOBILES": "0",
|
||||
"OBJECTS": "0",
|
||||
"ROOMS": "0", # use 0 if room-less
|
||||
"CLASSES": "0", # use 0 if class-less
|
||||
"LEVELS": "0", # use 0 if level-less
|
||||
"RACES": "0", # use 0 if race-less
|
||||
"SKILLS": "0", # use 0 if skill-less
|
||||
|
||||
# Protocols set to 1 or 0)
|
||||
|
||||
"ANSI": "1",
|
||||
"GMCP": "0",
|
||||
"MCCP": "0",
|
||||
"MCP": "0",
|
||||
"MSDP": "0",
|
||||
"MSP": "0",
|
||||
"MXP": "0",
|
||||
"PUEBLO": "0",
|
||||
"UTF-8": "1",
|
||||
"VT100": "0",
|
||||
"XTERM 256 COLORS": "0",
|
||||
|
||||
# Commercial set to 1 or 0)
|
||||
|
||||
"PAY TO PLAY": "0",
|
||||
"PAY FOR PERKS": "0",
|
||||
|
||||
# Hiring set to 1 or 0)
|
||||
|
||||
"HIRING BUILDERS": "0",
|
||||
"HIRING CODERS": "0",
|
||||
|
||||
# Extended variables
|
||||
|
||||
# World
|
||||
|
||||
"DBSIZE": "0",
|
||||
"EXITS": "0",
|
||||
"EXTRA DESCRIPTIONS": "0",
|
||||
"MUDPROGS": "0",
|
||||
"MUDTRIGS": "0",
|
||||
"RESETS": "0",
|
||||
|
||||
# Game (set to 1 or 0, or one of the given alternatives)
|
||||
|
||||
"ADULT MATERIAL": "0",
|
||||
"MULTICLASSING": "0",
|
||||
"NEWBIE FRIENDLY": "0",
|
||||
"PLAYER CITIES": "0",
|
||||
"PLAYER CLANS": "0",
|
||||
"PLAYER CRAFTING": "0",
|
||||
"PLAYER GUILDS": "0",
|
||||
"EQUIPMENT SYSTEM": "None", # "None", "Level", "Skill", "Both"
|
||||
"MULTIPLAYING": "None", # "None", "Restricted", "Full"
|
||||
"PLAYERKILLING": "None", # "None", "Restricted", "Full"
|
||||
"QUEST SYSTEM": "None", # "None", "Immortal Run", "Automated", "Integrated"
|
||||
"ROLEPLAYING": "None", # "None", "Accepted", "Encouraged", "Enforced"
|
||||
"TRAINING SYSTEM": "None", # "None", "Level", "Skill", "Both"
|
||||
"WORLD ORIGINALITY": "None", # "All Stock", "Mostly Stock", "Mostly Original", "All Original"
|
||||
|
||||
# Protocols (only change if you added/removed something manually)
|
||||
|
||||
"ATCP": "0",
|
||||
"MSDP": "0",
|
||||
"MCCP": "1",
|
||||
"SSL": "1",
|
||||
"UTF-8": "1",
|
||||
"ZMP": "0",
|
||||
"XTERM 256 COLORS": "0"}
|
||||
36
evennia/game_template/server/conf/oobfuncs.py
Normal file
36
evennia/game_template/server/conf/oobfuncs.py
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
"""
|
||||
OOB configuration.
|
||||
|
||||
This module should be included in (or replace) the
|
||||
default module set in settings.OOB_PLUGIN_MODULES
|
||||
|
||||
All functions defined in this module are made available
|
||||
to be called by the OOB handler.
|
||||
|
||||
See src/server/oob_msdp.py for more information.
|
||||
|
||||
function execution - the oob protocol can execute a function directly on
|
||||
the server. The available functions must be defined
|
||||
as global functions via settings.OOB_PLUGIN_MODULES.
|
||||
repeat func execution - the oob protocol can request a given function be
|
||||
executed repeatedly at a regular interval. This
|
||||
uses an internal script pool.
|
||||
tracking - the oob protocol can request Evennia to track changes to
|
||||
fields on objects, as well as changes in Attributes. This is
|
||||
done by dynamically adding tracker-objects on entities. The
|
||||
behaviour of those objects can be customized via
|
||||
settings.OOB_PLUGIN_MODULES.
|
||||
|
||||
oob functions have the following call signature:
|
||||
function(caller, session, *args, **kwargs)
|
||||
|
||||
oob trackers should inherit from the OOBTracker class in src/server.oob_msdp.py
|
||||
and implement a minimum of the same functionality.
|
||||
|
||||
a global function oob_error will be used as optional error management.
|
||||
|
||||
"""
|
||||
|
||||
# import the contents of the default msdp module
|
||||
from evennia.server.oob_cmds import *
|
||||
|
||||
24
evennia/game_template/server/conf/portal_services_plugins.py
Normal file
24
evennia/game_template/server/conf/portal_services_plugins.py
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
"""
|
||||
Start plugin services
|
||||
|
||||
This plugin module can define user-created services for the Portal to
|
||||
start.
|
||||
|
||||
This module must handle all imports and setups required to start
|
||||
twisted services (see examples in evennia.server.portal.portal). It
|
||||
must also contain a function start_plugin_services(application).
|
||||
Evennia will call this function with the main Portal application (so
|
||||
your services can be added to it). The function should not return
|
||||
anything. Plugin services are started last in the Portal startup
|
||||
process.
|
||||
|
||||
"""
|
||||
|
||||
|
||||
def start_plugin_services(portal):
|
||||
"""
|
||||
This hook is called by Evennia, last in the Portal startup process.
|
||||
|
||||
portal - a reference to the main portal application.
|
||||
"""
|
||||
pass
|
||||
24
evennia/game_template/server/conf/server_services_plugins.py
Normal file
24
evennia/game_template/server/conf/server_services_plugins.py
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
"""
|
||||
|
||||
Server plugin services
|
||||
|
||||
This plugin module can define user-created services for the Server to
|
||||
start.
|
||||
|
||||
This module must handle all imports and setups required to start a
|
||||
twisted service (see examples in evennia.server.server). It must also
|
||||
contain a function start_plugin_services(application). Evennia will
|
||||
call this function with the main Server application (so your services
|
||||
can be added to it). The function should not return anything. Plugin
|
||||
services are started last in the Server startup process.
|
||||
|
||||
"""
|
||||
|
||||
|
||||
def start_plugin_services(server):
|
||||
"""
|
||||
This hook is called by Evennia, last in the Server startup process.
|
||||
|
||||
server - a reference to the main server application.
|
||||
"""
|
||||
pass
|
||||
35
evennia/game_template/server/conf/serversession.py
Normal file
35
evennia/game_template/server/conf/serversession.py
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
"""
|
||||
ServerSession
|
||||
|
||||
The serversession is the Server-side in-memory representation of a
|
||||
user connecting to the game. Evennia manages one Session per
|
||||
connection to the game. So a user logged into the game with multiple
|
||||
clients (if Evennia is configured to allow that) will have multiple
|
||||
sessions tied to one Player object. All communication between Evennia
|
||||
and the real-world user goes through the Session(s) associated with that user.
|
||||
|
||||
It should be noted that modifying the Session object is not usually
|
||||
necessary except for the most custom and exotic designs - and even
|
||||
then it might be enough to just add custom session-level commands to
|
||||
the SessionCmdSet instead.
|
||||
|
||||
This module is not normally called. To tell Evennia to use the class
|
||||
in this module instead of the default one, add the following to your
|
||||
settings file:
|
||||
|
||||
SERVER_SESSION_CLASS = "server.conf.serversession.ServerSession"
|
||||
|
||||
"""
|
||||
|
||||
from evennia.server.serversession import ServerSession as BaseServerSession
|
||||
|
||||
class ServerSession(BaseServerSession):
|
||||
"""
|
||||
This class represents a player's session and is a template for
|
||||
individual protocols to communicate with Evennia.
|
||||
|
||||
Each player gets one or more sessions assigned to them whenever they connect
|
||||
to the game server. All communication between game and player goes
|
||||
through their session(s).
|
||||
"""
|
||||
pass
|
||||
93
evennia/game_template/server/conf/settings.py
Normal file
93
evennia/game_template/server/conf/settings.py
Normal file
|
|
@ -0,0 +1,93 @@
|
|||
"""
|
||||
Evennia settings file.
|
||||
|
||||
The full options are found in the default settings file found here:
|
||||
|
||||
{settings_default}
|
||||
|
||||
Note: Don't copy more from the default file than you actually intend to
|
||||
change; this will make sure that you don't overload upstream updates
|
||||
unnecessarily.
|
||||
|
||||
"""
|
||||
|
||||
# Use the defaults from Evennia unless explicitly overridden
|
||||
import os
|
||||
from evennia.settings_default import *
|
||||
|
||||
######################################################################
|
||||
# Evennia base server config
|
||||
######################################################################
|
||||
|
||||
# This is the name of your game. Make it catchy!
|
||||
SERVERNAME = {servername}
|
||||
|
||||
# Path to the game directory (use EVENNIA_DIR to refer to the
|
||||
# core evennia library)
|
||||
GAME_DIR = {game_dir}
|
||||
|
||||
# Place to put log files
|
||||
LOG_DIR = os.path.join(GAME_DIR, "server", "logs")
|
||||
SERVER_LOG_FILE = os.path.join(LOG_DIR, 'server.log')
|
||||
PORTAL_LOG_FILE = os.path.join(LOG_DIR, 'portal.log')
|
||||
HTTP_LOG_FILE = os.path.join(LOG_DIR, 'http_requests.log')
|
||||
|
||||
######################################################################
|
||||
# Evennia Database config
|
||||
######################################################################
|
||||
|
||||
# Database config syntax:
|
||||
# ENGINE - path to the the database backend. Possible choices are:
|
||||
# 'django.db.backends.sqlite3', (default)
|
||||
# 'django.db.backends.mysql',
|
||||
# 'django.db.backends.'postgresql_psycopg2' (see Issue 241),
|
||||
# 'django.db.backends.oracle' (untested).
|
||||
# NAME - database name, or path to the db file for sqlite3
|
||||
# USER - db admin (unused in sqlite3)
|
||||
# PASSWORD - db admin password (unused in sqlite3)
|
||||
# HOST - empty string is localhost (unused in sqlite3)
|
||||
# PORT - empty string defaults to localhost (unused in sqlite3)
|
||||
DATABASES = {{
|
||||
'default': {{
|
||||
'ENGINE': 'django.db.backends.sqlite3',
|
||||
'NAME': os.path.join(GAME_DIR, "server", "evennia.db3"),
|
||||
'USER': '',
|
||||
'PASSWORD': '',
|
||||
'HOST': '',
|
||||
'PORT': ''
|
||||
}}}}
|
||||
|
||||
######################################################################
|
||||
# Django web features
|
||||
######################################################################
|
||||
|
||||
# Absolute path to the directory that holds file uploads from web apps.
|
||||
# Example: "/home/media/media.lawrence.com"
|
||||
MEDIA_ROOT = os.path.join(GAME_DIR, "gamesrc", "web", "media")
|
||||
|
||||
# The master urlconf file that contains all of the sub-branches to the
|
||||
# applications. Change this to add your own URLs to the website.
|
||||
ROOT_URLCONF = 'web.urls'
|
||||
|
||||
# URL prefix for admin media -- CSS, JavaScript and images. Make sure
|
||||
# to use a trailing slash. Django1.4+ will look for admin files under
|
||||
# STATIC_URL/admin.
|
||||
STATIC_URL = '/static/'
|
||||
STATIC_ROOT = os.path.join(GAME_DIR, "web", "static")
|
||||
|
||||
# Directories from which static files will be gathered from.
|
||||
STATICFILES_DIRS = (
|
||||
os.path.join(GAME_DIR, "web", "static_overrides"),
|
||||
os.path.join(EVENNIA_DIR, "web", "static"),)
|
||||
|
||||
# We setup the location of the website template as well as the admin site.
|
||||
TEMPLATE_DIRS = (
|
||||
os.path.join(GAME_DIR, "web", "template_overrides"),
|
||||
os.path.join(EVENNIA_DIR, "web", "templates", ACTIVE_TEMPLATE),
|
||||
os.path.join(EVENNIA_DIR, "web", "templates"),)
|
||||
|
||||
# The secret key is randomly seeded upon creation. It is used to sign
|
||||
# Django's cookies. Do not share this with anyone. Changing it will
|
||||
# log out all active web browsing sessions. Game web client sessions
|
||||
# may survive.
|
||||
SECRET_KEY = {secret_key}
|
||||
0
evennia/game_template/server/logs/server.log
Normal file
0
evennia/game_template/server/logs/server.log
Normal file
Loading…
Add table
Add a link
Reference in a new issue