Commit graph

156 commits

Author SHA1 Message Date
Griatch
eb1044d7a1 Refactored AMP and server/portalsessionhandler, moving allmost all logic to the sessionhandlers instead. The old
reason for having so much logic was due to circular import problems, but with the use of delayed imports this is
not a problem for the sessionhandler anymore. Makes for cleaner and much easier to navigate code.
2013-02-17 12:31:58 +01:00
Griatch
1f676eda60 Some more fixes to the commands. 2013-02-16 21:26:59 +01:00
Griatch
e345d659fd Merge. 2013-02-09 11:21:38 +01:00
Kelketek
d5129b5065 Updated X-Forwarded-For to better conform to spec (multiple proxies). 2013-02-06 07:41:22 -06:00
Kelketek
90163734aa Added support for X-Forwarded-For. 2013-02-06 01:07:25 -06:00
Griatch
b82a75d816 Fixed initial_setup and set up the _playable_characters attribute on all players, for handling multi-accounts. Still some issues with how the character's permissions is accessed. 2013-02-03 20:04:40 +01:00
Griatch
b26c3ab872 Fixed bugs and allowed for logging in using one character. Added a simple command for creating a new character. 2013-02-03 17:00:46 +01:00
Griatch
f1767251c6 Can now log in to a character selection screen. Lots more testing required before one-char-per-session works. 2013-02-03 00:25:06 +01:00
Griatch
00584365ae Added sessids to command objects and changed how the "login"-hooks are called. Those will probably have to be changed to better names, at least for characters. 2013-02-02 22:41:56 +01:00
Griatch
231af4a351 Continued work on multi-char-per-account. Added a new default login point. Still need to add sessid to commands. 2013-02-02 15:55:42 +01:00
Griatch
261454ff0a First steps towards a full account system (multiple Character with one Player); added the Player-level methods. 2013-01-26 21:20:31 +01:00
Griatch
ea545d7ff3 Added the ability to deactivate local caching, by use of the settings.GAME_CACHE_TYPE variable. A temporary solution for working with multiple processes. Will also be useful for debugging and profiling. 2013-01-09 19:43:46 +01:00
Griatch
5ef92b6bf8 Some cleanups, properly marking the OOB stuff as WIP still. OOB is progressing but not yet functional or in its final form. 2013-01-07 15:47:41 +01:00
Griatch
58c010ef46 Some further work on the OOBhandler mechanism. 2013-01-04 10:35:29 +01:00
Griatch
b0b0fa7983 First, untested version of the OOBhandler mechanism. 2013-01-03 09:18:49 +01:00
Griatch
a1a2c99d1e Fixed a traceback if logging out from the unloggedin screen. 2012-12-11 23:30:30 +01:00
Griatch
28c625c12c Re-activated connect-channel again, called from hooks. Fixed some bugs and minor things to give more control over how messages sent to channels are handled. 2012-11-13 21:24:05 +01:00
Griatch
8654d8cc48 Further migrated script caches to the central cache location, removing old cruft. 2012-11-08 19:29:57 +01:00
Griatch
e4382e3e8a Fixed a regression in has_attribute caused by changing the location of caches. Resolves Issue 328. 2012-11-07 20:22:46 +01:00
Griatch
d2d9953f94 Cache changes: Moved all caches (except idmapper) to central caching module. This makes it easier to overview cache memory usage (and clean it) as well as plug-in external cache mechanisms. 2012-11-01 11:20:07 +01:00
Griatch
92f6b06626 Added new start/stop hooks to server. These are read differently depending on if the server is reloaded or reset/shutdown. OBS: If you have already implemented your own version of AT_STARTSTOP_MODULE, you need to add stubs for new hooks. You can find the required hooks in gamesrc/conf/examples/at_startstop.py.
gamesrc/conf/examples
2012-10-28 22:02:22 +01:00
Griatch
ee7a175bf4 Fixed a bug in telnet protocol that stripped wrong characters at the end. Resolves Issue 318. 2012-10-28 10:37:14 +01:00
Griatch
ec46465656 Implemented ansi-colour backgrounds in webclient. Added a new @color command for displaying colour spaces. Also changed a number of other features outlined in Issue 309. 2012-10-24 21:41:07 +02:00
Griatch
e534d5f9a0 Made sure to kill color at the end of msg:es. This makes telnet/ssh consistent with webclient output. 2012-10-24 13:56:45 +02:00
Griatch
86c5553208 Added msg- and data buffering to AMP protocol. This handles the rare cases when the AMP limit of 65535bytes/message becomes an issue (such as when viewing long lists or @py output. Test with @py self.msg("-"*65536). Resolves Issue 294. 2012-10-20 15:40:34 +02:00
Griatch
c8ff1754fc Explicitly warning and disabling IPv6-format interfaces. It's coming in Twisted, but the exact status is a bit hard to determine - and it's definitely not available for only one older revision of Twisted. So disabling. We'll revisit this down the road when Twisted support is more prevalent. This closes Issue 260. 2012-10-14 22:32:05 +02:00
Griatch
592bc26b99 Added remote function call abilities to AMP protocol, courtesy of patch by user Shell.
This allows for Server to call functions on Portal and vice-versa. Some rewrites and
cleanup done before applying /Griatch.
2012-10-14 11:53:34 +02:00
Griatch
a4adc035f2 Last commit introduced a silly typo. Fixed. 2012-09-30 16:08:00 +02:00
Griatch
57de91a234 Added an AttributeError check in perm_above lockfunc, to catch instances of checking permissions before player logged in. 2012-09-30 16:01:21 +02:00
Griatch
3c87b66624 Set AMP interface strings to listen to local interfaces only by default. Also added AMP_INTERFACE setting. Resolves Issue 257. 2012-09-28 22:40:12 +02:00
lagos
965be0a84f Fixes for Chrome clients of webclient.
webclient.py now maintains a mapping of suid->single request as opposed to a mapp of
suid->list of requests. Since the evennia_webclient.js client only has one valid
request outstanding at all times, this should be safe.
2012-09-27 23:16:09 -07:00
Griatch
b2028511f5 Fixing a bug with not calling the disconnect hook when killing the client uncleanly. Resolves Issue 258. Thanks to user Zeta142125 for the help. 2012-09-25 07:53:11 +02:00
Griatch
d535d77811 Restructed terminal output from Server and Portal to allow external plugin-services to cleanly add their info at startup. 2012-09-22 23:18:29 +02:00
Griatch
93d95377ce Shifting ProcPool out of src and into a contrib, using the service plugin system. 2012-09-22 20:40:30 +02:00
Griatch
83fa9397d5 Added a plugin system for server and portal. This allows for plugging in your own services without having to edit any modules in src/server/. Also made some various cleanups and fixes. 2012-09-18 22:52:33 +02:00
Griatch
21137cc830 Run Migrations! Added a is_connected field to Players to be able to more conveniently access online status from out-of-process (resolves issue 251). Also cleaned up and added features to the default website. 2012-09-17 19:19:20 +02:00
Griatch
d1e0836d23 Minor fix to evaluate with _return in ProcPool execution. 2012-09-03 23:47:50 +02:00
Griatch
ffcf4b3c2f Added cache-resyncing to ProcPool. This makes sure to update all affected object caches
whenever the subprocess returns (this is potentially not good enough for long-running scripts,
will have to ponder that one). Made ProcPool work with MySQL (where it works much better). Tested and fixed many
small bugs.
2012-09-03 01:11:14 +02:00
Griatch
e25ac1e46b Changed run_async to properly relay remote error messages to the user-supplied errback. 2012-09-02 16:14:08 +02:00
Griatch
af99a80b4b Added procpool functionality for sending arbitrary data over the wire (including
nested databaseobjects). Rules are similar to Attribute saving.
Adding a missing component to the procpool setup.
2012-09-02 12:53:11 +02:00
Griatch
f5a889e40c Added new process-pool runner based on AMPoule (integrated into Evennia).
This allows e.g. utils.utils.run_async to offload long-running functions
to a completely different subprocess entirely, offering real parallelism.

Implementation is still experimental, notably not all objects can be
transferred safely across the wire; also there is no concept of
updating caches yet - so adding an object from the subprocess side
will not be known in the main thread yet (since caches cannot yet tell
the underlying database has changed).
2012-09-02 10:10:22 +02:00
Griatch
ca0920e635 Added "raw_string" (unformatted, no stripping) as a property on commands, inspired by work by user Kelketek. 2012-06-23 11:03:16 +02:00
Griatch
f0f240b7ce Fixed a bug in sessionhandler that erroneously caused Portal sessions to not be deleted properly at user @quit. This caused the session to be copied back to the Server side after a reload (caused "ghost" connections in e.g. the "who" command). Resolves Issue 244. 2012-06-20 23:48:19 +02:00
Griatch
9e2ad59663 Added a fix for running with postgresql-psycopg2. This does not actually resolve the problem as much as circumvent it, so I'm not marking Issue 115 as closed just yet. 2012-06-16 14:51:22 +02:00
Griatch
f15e26c54a Fix of migration to remove a bogus FATAL error during migration. This also fixes a one error in the chain of errors reported by postgresql databases (those still fail on a latter point, alas). 2012-06-14 21:10:40 +02:00
Griatch
4c849ec351 Cleaned and updated the i18n strings for various server-core system. Removed i18n for all strings that are only visible on stdout or in logs. Still missing i18n on certain specific things such as model field help and attribute warnings. Updated Swedish translation to match. 2012-06-14 02:43:35 +02:00
Griatch
80da420ee7 Merge, with input and tweaks from discussion with lagos and Kelketek in irc. 2012-06-13 01:36:59 +02:00
Kelketek
9290cf2c0c Fixed an issue where improper substitution would cause extra newline
characters for MCCP clients. This made them effectively press return twice
on each command.
2012-06-12 17:51:10 -05:00
Griatch
d3ee5a565b Added a loader to the server that automatically detects changes in default cmdsets and typeclasses (like when you change them in settings.py),
loops over all objects in the database and updates the places were the old default was set. This will make it more intuitive to overload the default locations (which is the natural thing to do after all). After this update, just make sure to @reload your server once before editing your settings.py; this will store the old settings for you, so they change-detection can work subsequently.
2012-05-19 12:36:11 +02:00
Griatch
8ad4f4a9fc Changed player.search to only search for players explicitly.
Added a MuxCommandOOC class to handle the OOC commands in a more uniform way.
Fixed the @ic/@ooc and page commands. Resolves issue 233. Resolves issue 234.
2012-05-17 19:42:37 +02:00