Roragok created a plugin to prevent updating a user’s last_posted_at when sending a private message. This is due to a use case where a forum game, mafia, is being run on Discourse, and private messages were being used by the mafia/scum faction, revealing their identities through the last_posted_at timestamp. The plugin seems to be working without issues for two weeks, as reported by Roragok.
sam suggested that making this change in the core might be complex due to testing and processes that depend on the last_posted_at update. Stephen proposed removing the last_posted_at from the interface entirely for communities that need it, but Roragok believes it’s a useful metric for seeing active users. codinghorror advised Roragok to continue testing the plugin and report back.
I’m working on a plugin that will not update a users last_posted_at when sending a private message.
Our use case is probably unique, but people have been using it to solve the forum game we run.
We run mafia games using discourse. The mafia/scum faction would use private messages to communicate. When users last posted time did not match up with the last actual post people were finding out who the mafia/scum were. We eventually shipped the mafia chat to chatzy, but that is just annoying and we want to be back in the same forum.
I wrote this
It seems to be working on my development environment, but was just wondering if there is a better way or would this cause problems? I am pretty new to making discourse plugins.
The hack should be OK. I guess you are asking “Should core stop updating last posted at, when you post on messages”
My answer is … maybe… we would carefully work through a change like this. Probably take a day or 2 to get it perfect.
There are concerns around huge amount of testing that depends on it being updated, various processes like time stamp resetting that would have to account for this, plugins, and so on.