Commit graph

1077 commits

Author SHA1 Message Date
Griatch
5e33690f40 Optimization: Added caching of object contents. This makes obj.contents not have to hit
the database at all. So far there are no regressions from this, but time will tell if
there are any problems.
2012-08-19 18:48:29 +02:00
Griatch
cc88d38ab6 Some optimizations towards speeding up getting the contents of a location. 2012-08-19 11:45:13 +02:00
Griatch
1dee271fc7 Removed a bug in property cache that disabled the cache if the property was null (e.g for player lookups) 2012-08-19 11:15:22 +02:00
Griatch
8a44daef7e Further changes to allow dbrefs to be 0. 2012-08-18 23:35:11 +02:00
Griatch
889708cf07 Make object search handle a dbref=0. 2012-08-18 23:17:14 +02:00
Griatch
327cfc5098 Changed default permission of objects so as to not have 'control' permission of themselves. As user Kelketek pointed out, this could be a possible exploit. At any rate there is no need for objects to have control of themselves. 2012-08-18 20:20:42 +02:00
Griatch
a2e7246d15 Changed so deleting a PlayerDB object will automatically also destroy its connected User object. 2012-08-14 00:40:48 +02:00
Griatch
891dcbbf9c Changed mux-login to email-login since the old system didn't actually have anything to do with MUX as I erroneously assumed. 2012-08-13 20:55:46 +02:00
Griatch
bc34a76173 Changed default login from email+password to the more familiar username+password.
The old system has been moved to contrib/mux-login.py.
This change was done due to the need for an email seems counterintuitive to
many new developers, giving the impression that it is actually required by
django (it is not, rather it was supposedly similar to MUX).
2012-08-13 20:25:46 +02:00
Griatch
da0598bcc3 Contrib: Barter system. This is a full-fledged barter system for handling goods exchange between two parties in a controlled way. Both sides may change their offers and argue both free-form and as part of decisions. Once both agree, goods automatically changes hands. 2012-08-12 10:48:07 +02:00
Griatch
0d1f9d5bdc Fixed a bug in object's __eq__ that returned erroneous fails. 2012-08-12 09:55:19 +02:00
Griatch
2a2b3b5ce6 Contrib: Dice-roller module. This has an easy interface and supports normal dice nomenclature as well as modifiers and conditionals. An in-game command "dice" (or "roll") is also supplied. 2012-08-09 20:13:01 +02:00
Griatch
724027d134 Optimizations: Removed unnecessary lookups when comparing objects with the = operator (used a lot in moving and messaging) 2012-08-02 17:03:26 +02:00
Griatch
563361a676 Added small warning for using the django test server (which of course knows nothing
about running the web client).
2012-08-02 15:21:23 +02:00
Griatch
9921d9b28c Some minor fixes and cleanups in runner.py. 2012-07-07 01:52:53 +02:00
Griatch
c301ec4922 Putting the game/logs directory under version control since it seems some users don't auto-create this at server-start.
If you see problems with an already existing game/logs directory upon pulling this commit, remove the old one first (saving away old logs if necessary).
2012-07-06 10:09:53 +02:00
Griatch
35acad6162 Fixed a bug in @deluser when booting an already logged-in player. 2012-06-29 07:51:59 +02:00
Griatch
ec4c29b592 Fixed a bug in @delplayer. 2012-06-29 07:34:34 +02:00
Griatch
d50d28f960 Another fix to the extended room, a bug that caused some parsings not to happen. 2012-06-28 23:08:40 +02:00
Griatch
dff64215a2 Fixed a bug in the @link command. 2012-06-28 22:50:53 +02:00
Griatch
f54e6b22c1 Further fix to extended room. 2012-06-28 21:51:41 +02:00
Griatch
55634de123 A fix to extended_room, for when used as default mixed with other room types. 2012-06-28 21:39:13 +02:00
Griatch
ae65438c9b docs: Adding missing rest pages to mercurial. 2012-06-26 18:26:59 +02:00
Griatch
f95fac1f51 Adding contents file for an alphabetical index in the reST docs. 2012-06-26 18:19:10 +02:00
Griatch
f2d9b81d09 Changed format of reST conversion slightly. 2012-06-26 18:12:38 +02:00
Griatch
ae0f7a04c5 Updated and cleaned the wiki2rest converter. The ReST documentation should look a lot better now, with less weirdness. Using a python google-code snippet to convert now, so no more need for third-party ruby downloads! This should transfer to readthedocs shortly. 2012-06-26 17:45:12 +02:00
Griatch
43f16094c1 Contrib: Added a "time" command for viewing the time info on ExtendedRooms. Also added more listing functionality to the Extended @desc command. 2012-06-26 09:13:23 +02:00
Griatch
5a1642ab32 Small fix to seasonal rotation in extended room contrib. 2012-06-26 01:40:52 +02:00
Griatch
0e9b27cc01 Contrib: Extended Room typeclass, with time-dependent desc slots (season and time-of-day), as well as a "details" system for adding visual interest or clues to the room wihout having to create new database objects. The extended room is supported by expanded "look" and "@desc" commands. 2012-06-26 01:33:30 +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
7dcfdc4d4b Fixed a minor typo in docstring for ObjectDB.__db_get: To view all Attributes one uses obj.db.all, not obj.db.all(). 2012-06-20 23:22:26 +02:00
Griatch
44bf35cd81 Make sure to forward no_channels, no_objs and no_exits flags across cmdset merges. Also changes how system commands are saved across merges. Resolves Issue 243. 2012-06-20 21:16:34 +02:00
Griatch
c2961ce5e2 Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. Added some more info to the default settings file in src/. 2012-06-16 15:33:05 +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
2d46d0306b Some more i18n strings added; also updated swedish translation. 2012-06-14 08:56:57 +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
Griatch
dfa0ced4e5 Some further cleanup of readmes. 2012-06-13 01:07:09 +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
98a5f11159 Merge. 2012-06-12 21:04:50 +02:00
Griatch
5f8cc5e3a6 Small fix to batchprocess output. 2012-06-12 21:03:30 +02:00
lagos
1c4c3a4217 chargen.py uses managers instead of db_objects. 2012-06-12 08:09:15 +00:00
lagos
2729369027 Fixes two typos in sample code for evlang. 2012-06-12 07:35:50 +00:00
Griatch
58e20e2cf1 Added contrib "evlang", an experimental highly restricted Python code environment. It's intended to be used by untrusted users to add custom code e.g. to their crafted objects and similar. Please heed the warnings in the README file - this is experimental still and more people need to play with it and try to break it.
The system uses a hybrid blacklisting/whitelisting and AST-traversal approach to both remove dangerous builtins as well as disallow potentially exploitable python structures alltogether. Examples are while structures and attribute allocation. All advanced functionality is accessed through a set of "safe" methods on a holder object. You can extend this with your own safe methods in order to add more functionality befitting your game.

The system comes with a host of examples, a few scriptable objects and complete commands for adding code to objects. At this point it's not guaranteed that all systems are safe against meddling however - notably Attributes have no locks defined on them by default (although this system does properly check Attribute lock types should they exixt).

Please test and try to break - and report problems to the Issue tracker/forum as usual.
2012-06-10 22:16:46 +02:00
Griatch
3d24ee2242 Added a secure_attr() method to the base typeclass. This allows for system to access attributes with full access control (since it requires an accessing_obj as argument). This relies on (by default unused) lock types "readattr" (reading/listing the attr value), "editattr" (editing/deleting the attribute) and finally "createattr" for creating a new attribute. The first two checks are done directly on the Attribute class whereas the createattr check is done on the TypedObject on which the Attribute is to be stored. 2012-06-10 21:46:00 +02:00
Griatch
5f043d28d7 Minor cleanups of code. 2012-06-10 11:16:00 +02:00
Griatch
dc67b6b87c Added a lock funcion self(), passing only if accessing_obj == accessed_obj. This is potentially useful for Objects who want to lock cmdsets and make them only available to themselves without having to know their id value in the lockstring. 2012-05-24 21:44:07 +02: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