Commit graph

209 commits

Author SHA1 Message Date
Griatch
9520e261d8 Cleaned up @set to list attributes on an object and also to show attribute values without parsing their markup. 2011-04-25 20:31:50 +00:00
Griatch
9c5f662196 Added the "raw" switch to examine, to allow for viewing attributes and properties without parsing markup first. 2011-04-25 20:13:15 +00:00
Griatch
973f606f3f Added the functionality to let the @set command accept simple lists and dicts (relevant for @batch building) 2011-04-24 16:30:43 +00:00
Griatch
27809694d7 Migrate. Added the "view" access restriction (to make objects invisible). Also changed the input of ObjectDB.objects.object_search() to not require a caller as an argument (this makes it consistent with other search methods). All default systems should have updated to the new call, but if you have custom calls, you need to change them to fit the new syntax (this is only important if explicitly use ObjectDB.objects.object_search; if you just use caller.search you should be fine) 2011-04-24 11:26:51 +00:00
Griatch
28fe2ad3f4 Run Migrate. Implemented a full separation between Player and Character - Players (OOC entities) can now also hold cmdsets and execute commands. This means that "disconnecting" from a Character becomes possible, putting the Player in an "OOC" state outside the game. This overall makes the game much more stable since there used to be issues if the character was destroyed. Having an OOC set also avoids the previous problem of @puppeting into an object that didn't have any cmdset of its own - you couldn't get back out! A new default OOC-Cmdset handles commands available to a player while OOC. Commands in this set are applied with a low priority, allowing "IC" mode to give precedence if desired.
This change meant several changes to the lock and permission functionality, since it becomes important if permissions are assigned on the Player or on their Character (lock functions pperm() and pid() etc check on Player rather than Character). This has the boon of allowing Admins to switch and play/test the game as a "Low access" character as they like.

Plenty of bug fixes and adjustments. Migrations should make sure to move over all data properly.
2011-04-23 11:54:08 +00:00
Greg Taylor
ce2a8e9ffe Fixing @serverload to work on Mac/BSD. Use -o rss instead of rsz. This works on Linux/BSD/Mac with no extra per-OS logic needed. 2011-04-23 03:16:29 +00:00
Griatch
6f0d21802b Debugged and added @cpattr and @mvattr. Added unittest cases for all default commands for which they are suitable. Many small bug fixes as part of that. 2011-04-21 16:45:18 +00:00
Griatch
7b43c4a608 Added @cset command for changing a channel's access restriction settings. Added @cboot and a few more missing channel commands. Cleaned out the utils commands and fixed formatting on a few default commands. 2011-04-21 10:29:24 +00:00
Griatch
7f7016ad7d Run Migrate. Implemented @search functionality with limits as per MUX (as part of the @find command). Added some more channel-related commands and changed locks for channels to have a "control" lock type rather than "admin". The migration converts this in existing channels.. 2011-04-20 22:40:27 +00:00
Griatch
23462c626c Further updates to the IMC2 system, making it a bit easier to use. 2011-04-20 00:27:19 +00:00
Griatch
c70d59045a Some bug fixes in the IMC system. 2011-04-19 21:40:53 +00:00
Griatch
b856cb8faf Implemented imcwhois command as part of the imcinfo command cluster. 2011-04-19 21:05:18 +00:00
Griatch
36bc29865b Some minor fixes and cleanups. 2011-04-19 15:31:13 +00:00
Griatch
0ea95631bf IMC (inter-mud-communication) is working again. Evennia's implementation connects an existing Evennia channel to an IMC2 network/channel seamlessly. One can listen to more than one IMC2 channel, but only send to one IMC channel, as defined when setting up the connection. One can list imc channels and muds connected to the network. We have only limited support for imctell at this point: It works for IMC users to send imc-tells to users on Evennia, but seemingly not the other way around. Evennias imctell function at least doesn't seem to properly send tells to my Talon IMC user. 2011-04-19 15:13:34 +00:00
Griatch
935bef1f43 Cleaned up the test suite to pass all tests again. Cleaned up the build command's parse() method. Fixed some minor bugs. 2011-04-19 09:52:49 +00:00
Griatch
1ced5ee8f2 Added more compatibility checks for twisted.words in case IRC is activated. IMC2 implementation is cleaned up and converted to new comm system, but it's not working correctly and not usable. 2011-04-18 22:09:29 +00:00
Griatch
7d30b337d9 Cleanups and bug fixes. Fixed the @unlink command and also made it overally more stable. Resolves issue 161. Added more string conversion routines to handle non-ascii variables being stored in an Attribute. Resolves issue 160. 2011-04-16 22:26:22 +00:00
Griatch
88626842b7 Fixed a bug in serverconfig. Tweaked how the default connection screen is stored, to allow for server updates. 2011-04-12 22:22:04 +00:00
Griatch
7f9f21f45e Migration needed. Refactored the config.configValue model into server.ServerConfig (that's what the config model were used for anyway). The new model can handle arbitrary data structures through pickle. Run ./manage.py migrate to sync your database with the new setup.
Moved Connect screens (the text screen first seen when connecting) away from the database and into a module in gamesrc/world. This module allows for conveniently adding new connect screens on the fly. More than one screen in the given module will mean a random screen is used.
2011-04-12 21:43:57 +00:00
Griatch
2ee54678ae Migration needed. Changed how connection screens are defined, rather than being a database model, they are created on-the fly. I didn't migrate over the screen data into the new module file though, so if you had custom connection screens, you need to manually add them to the new module in gamesrc/world/connection_screen.py. 2011-04-10 14:21:41 +00:00
Griatch
52785e8f3e Obs:Migrate. Made Comm system more generic, including the ability to connect arbitrary protocols to channels. Re-worked the IRC connectivity system - you can now again communicate between IRC and in-game evennia channels. 2011-04-10 12:39:07 +00:00
Griatch
c81d238b0c Fixed a bug in batchcommand that caused crashes. Resolves issue 153. 2011-04-09 14:48:57 +00:00
Griatch
6c53ec2bdb OBS: Run migrate! Made exit's destination into a database field for performance. Fixed a too greedy @reload that caused ContentTypes to loose information. Resolves issue 157.
Migrate with: "python manage.py migrate"
2011-04-08 23:10:04 +00:00
Griatch
695317e699 Resolves issue 155. Cleaned up the copy functionality and a few minor bugs at the same time. Copying an active character is somewhat confusing though (and deleting a character will currently make the player unable to log back in). 2011-04-07 22:10:51 +00:00
Griatch
02775398c4 Cleaned up @serveload and @time commands. Resolves issue 149. Resolves issue 146. 2011-03-26 00:26:15 +00:00
Griatch
75956de7d1 Small bugfixes in the wake of the cmdset changes. Resolves issue 148. 2011-03-20 23:14:36 +00:00
Griatch
9d80284504 Resolves issue 147. 2011-03-20 22:36:41 +00:00
Griatch
2dd856d1f2 Set the correct help_category for the @script command. 2011-03-20 20:01:53 +00:00
Griatch
126e2ea61f OBS: You need to resync your database! Moved cmdsets into the database rather than being dependent on scripts. Moved the creation of the cmdset- and cmdset-handlers into ObjectDB.__init__ rather than bootstrapping it from the typeclass. Added some more script functionality for testing, includong the @script command for assigning a script to an object. 2011-03-20 19:45:56 +00:00
Griatch
e965830735 Made the reload mechanism fully asynchronous. Work on improving cache operations. 2011-03-20 13:24:07 +00:00
Griatch
857b253a6f Added the holds() lock function to check for an name or id held in inventory. 2011-03-20 10:22:21 +00:00
Griatch
a429047452 Fixed a bug in @set that would not display attributes if they were set to 0 or None. 2011-03-20 01:19:05 +00:00
Griatch
7600892d5d Fixed a bug in examine. Gave a more informative error message from asynchronous reload. 2011-03-19 23:56:24 +00:00
Griatch
2f78bacd97 Added a check for multiple connected sessions to avoid moving disconnected object more than once. Resolves issue 145. 2011-03-19 22:17:00 +00:00
Griatch
de28b2d575 Fixes @locks to block self-escalation. Fixed a few bugs in @reload that caused it to reload also unsafe modules. 2011-03-17 22:28:30 +00:00
Griatch
bccd84e480 Fixed some bugs in the access system. Changed the "owner" default permission to "control" instead to more general. Added a new hook for setting locks for objects (the suspicion was that this would give lots of grief to newbies otherwise, now we have a lockdown policy in the absence of lock definitions). 2011-03-17 21:43:18 +00:00
Griatch
295a82cc04 @locks command bug fixed; Had forgotten a 'not' in the lock-check, reversing the result. 2011-03-16 07:16:32 +00:00
Griatch
08b3de9e5e OBS: You'll need to resync/rebuild your database!
- This implements an updated, clearer and more robust access system. The policy is now to lock that which is not explicitly left open.
- Permission strings -> Lock strings. Separating permissions and locks makes more sense security-wise
- No more permissiongroup table; permissions instead use a simple tuple PERMISSIONS_HIERARCHY to define an access hierarchy
- Cleaner lock-definition syntax, all based on function calls.
- New objects/players/channels get a default security policy during creation (set through typeclass)

As part of rebuilding and testing the new lock/permission system I got into testing and debugging several other systems, fixing some
outstanding issues:
- @reload now fully updates the database asynchronously. No need to reboot server when changing cmdsets
- Dozens of new test suites added for about 30 commands so far
- Help for channels made more clever and informative.
2011-03-15 16:08:32 +00:00
Griatch
cd1c415711 Edited the help-category of utility commands to make wiki auto-command-help match. 2011-03-03 16:50:27 +00:00
Griatch
e094a4d173 Fixed a test suite syntax error in command testing. 2011-02-28 00:34:03 +00:00
Griatch
9dcfea5971 Resolves issue 133. Added the location keyword to the ObjectDB.search() method for easier customizable object searches. 2011-02-27 22:55:42 +00:00
Griatch
2bdaf034c8 OBS: You need to resync your database! The Nickname system is now a separate database model with the result that also channel nicks are more robust. Also nickname replacement has been adjusted to fix some exceptional circumstances. Fixed a host of issues in the channel and nick handlers and adjoining commands that caused the channel-syscommands to fail in some situations. Resolves issue131. Resolves issue 132. Resolves issue 134. 2011-02-27 22:27:56 +00:00
Griatch
ef59b97881 Expanded command test-suite functionality and added basic testing methods for commands in "System" category. 2011-02-21 17:47:02 +00:00
Griatch
5464487c93 Server module should be accessed through proxy, i.e. through the sessionhandler, at all times. Resolves issue 127. Script updates made @ps non-compatible, fixed the formatting. Resolves issue 128. 2011-02-21 12:56:44 +00:00
Griatch
923b9ac2ec Added hooks at_pre_cmd() and at_post_cmd() for easy implementation of stuff like prompts.
Added obj.exit property to objects for easily finding all exits from a room.
2011-02-14 17:18:31 +00:00
Griatch
45941e0c69 Implemented typeclass deleting; you can now do del obj.testval and expect the underlying attribute to be safely deleted from the database. Also fixed some reference errors when assigning to db/ndb properties on objects. Resolves issue 116. Fixed a bug in the command-testing system, so the few command tests that are defined should all work now. 2011-02-05 18:06:18 +00:00
Griatch
e9e94c024b Resolves issue 123. 2011-01-09 11:53:54 +00:00
Griatch
939307a5c1 Resolved issue122. Also clarified the functional sequence for disconnecting a session cleanly (avoiding circular calls that might happen if disconnection happens manually or automatically due to server shutdown). Removed the specific stopping callback from the webclient and put it in the mai
n server process instead, so all protocols can get a message when server shuts down with Ctrl-C.
2010-12-12 10:54:33 +00:00
Griatch
0eb5d29560 Cleaned up the webclient and changed how it handles sessions and identifies with the server. Fixed some reported bugs caused by the changed layout of sessionhandler. 2010-12-11 13:37:26 +00:00
Griatch
251f94aa7a Evennia now runs on its own Twisted webserver (no need for testserver or Apache if you don't want to). Evennia now also has an ajax long-polling web client running from Twisted. The web client requires no extra dependencies beyond jQuery which is included. The src/server structure has been r
cleaned up and rewritten to make it easier to add new protocols in the future - all new protocols need to inherit from server.session.Session, whi
ch implements a set of hooks that Evennia uses to communicate. The current web client protocol is functional but does not implement any of rcaskey
's suggestions as of yet - it uses a separate data object passed through msg() to communicate between the server and the various protocols. Also the client itself could probably need cleanup and 'prettification'. The fact that the system runs a hybrid of Django and Twisted, getting the best of both worlds should allow for many possibilities in the future. /Griatch
2010-12-07 02:34:59 +00:00