After some discussions with several on how to do it, this is how I will initially solve idle time:
Tracking
- Idle time will be tracked per character
- Player actions (eg. Accept a request) will not affect idle time. Only character actions will
- Server will track idle time
- Any character command will reset its idle time, even if the command fails
Broadcasting
- Server will only broadcast idle status changes.
- Available statuses are Active (< 10min), Idle (10min), and Away (30min)
- Broadcasts will be global. If this becomes too much traffic, it can easilly be switched to Room broadcasts only
- Additionally, a command might be added that fetches a specific character's exact idle time
Presenting
- The In Room and Who's Awake lists will initially display Idle status using name color coding
- The Look at panel will display idle status name ("Active", "Idle", or "Away")
- Later on, one might use icons (green, yellow, red) instead.
After some discussions with several on how to do it, this is how I will initially solve idle time:
Tracking
Broadcasting
Presenting