wrparker / alluvian-engine Goto Github PK
View Code? Open in Web Editor NEWA MUD-engine in python based on mud-pi. Inspired heavily by tbamud/circlemud and evennia. Forked from mud-pi by Mark Frimston.
License: MIT License
A MUD-engine in python based on mud-pi. Inspired heavily by tbamud/circlemud and evennia. Forked from mud-pi by Mark Frimston.
License: MIT License
Create a users
wizard command that shows all connected users and their ip addresses.
Add an advance
command that updates a player to a given level. Command should:
#27 introduced automated negotiation for TTYPE and MXP. Now we need to deal with MXP output.
MXP tags are initiated by the following characters:
<
, >
, and &
.
For clients using MXP they must be replaced:
<
= <
>
= >
"
= "
&
= &
Input should be santized when MXP is enabled such that MXP is only sendable by the mud server and not via players in communication.
MXP should be allowed for:
There may be ways to abstract out player name such that anytime a player name is called, if MXp is enabled we create a linkable "whois" command.
For example:
say <send>hi</send>
right now in mudlet allows linking of a "hi" command. This doesn't work in MUSHclient, but either way tags should be properly sanitized.
More information is available on this guide: https://www.gammon.com.au/mushclient/addingservermxp.htm
Currently, there exists no logging in game. Setup the python logger so that logs are generated.
Logs should be sent to stdout, and a new, rotating log file should be created each time the game is spun up.
Add MOTD to the game
i.e.: 2n1e1w should attempt to go 2 north, 1 east, and 1w
Currently, protocol negotiation for a player happens all together. This means that all actions from other players are paused in the MUD until protocol negotiation is completed. Ideally, we should move protocol negotiation so that it is handled in the main loop rather than doing it all together.
The reason for this is because waiting for timeouts on protocol negotiation causes all other players to freeze until that player's telnet protocol negotiations are complete.
i.e.: the functions in alluvian/server/protocol.py should be handled similarly to how the Login system is handled so the thread isn't locked to a player every time they connect.
An alternative, hacky solution would be to give a very small response time allowed for protocol negotiation (currently it is set to 2 seconds).
Add command to show immortals wizardhelp. Basically it should be a list of all commands that extend WizardCommand.
All rooms should belong to zones.
logging
python package. Logs should be written to a log/* file.Right now exits are identified in the Room model by essentially being an integer for each direction: exit_up
, exit_down
, exit_east
, exit_west
, exit_north
, and exit_south
.
Exits should likely be their own objects, because future implementations of exits will allow them to have:
Because America is going to heck
Create a utility class to be used for tabulation that wraps texts and lines rather than calling tabulate directly.
Rooms do not have an exit_up
or an exit_down
direction to them.
Currently any input is accepted and parsed as a new character. The following stipulations should be met:
If a name does not meet these requirements, "Invalid name" should be returned.
Add a command for uptime
that displays the amount of time that the MUD has been running since last reboot/crash.
Add the following fields to the player that are saved to the database:
Implement the following global channels:
Players should be able to toggle these channels using a channels
command.
Add a menu state for players such that menu commands can be accessed.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.