So I decided, after getting a private message from here, to stick my nose into muds again and seeing as how I am most familiar with SWR I thought I'd stick to that.
As of now I've mostly concentrated on ripping mud.h apart and getting everything in there moved out to separate header files. While I'm not quite done with that yet I have made considerable headway.
In the process of doing so I remembered something I tried to do before and decided to do it again; replace player trust stuff with a new system whereby commands fall under certain groups and in order for a player to use a command they must belong to the appropriate group.
As an example, the basic movement commands might fall under a cmd_general_movement
group. Player A has permission to use that group and therefore can move around the game. Player B does not and therefore not only can they not use the commands, but isn't even given an indication that they exist. Obviously Player B would know
that they exist but the game itself wouldn't acknowledge their existence in any way for them.
So, with all that out of the way, does anyone have any thoughts on the subject? What would be some nice general permission groups and what types of commands would fall under them? At the moment I have the following groups defined: comms_general_ic, comms_general_ooc, comms_immortal, cmds_socials, cmds_general_player, cmds_general_immortal. Too general? Too specific? What else would you add?
Reworked and expanded it some.
// Applies to all players in general, including IMMs
player_comms, // Lets players use communication channels
player_comms_ic, // Lets players use IC channels
player_comms_ooc, // Lets players use OOC channels
player_cmds, // Lets players use player commands
player_cmds_general, // Lets players use general player commands: anything non-skill related
player_cmds_socials, // Lets players use socials
// Immortal specific stuff
immortal_comms, // Lets players use IMM channels
immortal_cmds, // Lets players use IMM commands
immortal_cmds_general, // Lets players use general IMM commands: goto, transfer, etc.
immortal_cmds_build, // Lets players use IMM building commands: mset, oset, redit, etc.
immortal_cmds_build_other, // Lets players use IMM building commands on areas they aren't author of.
immortal_cmds_build_player, // Lets players use IMM building commands on players: usually mset. Transfer?
immortal_cmds_admin // Lets players use IMM admin commands: copyover/hotboot, etc.
The two part entries, player_cmds, player_comms, etc are intended to act as blanket toggles on a player, e.g. Player A has permission to use all available player comms channels, they get mouthy on OOC and that gets toggled so they can't use OOC communication anymore (OOC channel, osay, whatever), but they can still use talk, chat etc. Removing permission to player_comms disables both IC and OOC though, so even if a player had permission to both channel types, without permission to just use channels at all they're effectively silenced.