[100 USD] Democracy Cog

I have read and understand the Cogboard Bounty rules

FromLex#0281
(492824352954253322)

Cheers ya’ll! I’m Lex, a python novice, sysadmin extraordinaire, and guild owner with big dreams. I’ve come today to ask for assistance in the development of one of my such dreams! A dream of a cog that democratizes and automatizes a discord guilds administration and moderation (To an extent)!

I’m willing to spend 100 USD at the absolute maximum. I’m only sending payment using XMR (Nonnegotiable). Though I’d rather not spend that much unless the developer goes above and beyond it. Then again, I don’t really know what to charge for this sort of thing. So tell me your price. (Side note, having someone that could help me maintain and advance this would be nice, but absolutely not required. Having someone just make the initial version with the features listed here would be great, and I think I’ll be able to maintain it myself. And I doubt I would pay anyone to maintain this thing further. But then again, that might normally be what happens here, I dunno.)
This isn’t really a static plan. I’m not looking for someone that will just ignore if they see a potential issue, but instead, I’m looking for someone who will take the general idea here, and mold it into something better.

My long term goal for this is to be able to have a discord guild and Minecraft java/bedrock server that is 100% usable, customizable, and administrate-able by the community without any actual admins or moderators. But that’s outside the scope of the request today (though if you want to discuss it further, hit me up. I’m always willing to discuss my ideas with potential developers). Today, I’m aiming for something a bit smaller.

I want a cog that basically revamps the permission/privilege level systems to automatize and democratize them. What I mean by this is, I want to add a new permission level. Voter. (How users get this level is by having a settable role). Anyone with the level of voter can see all the mod/admin exclusive commands and use them (though how mod and admin commands are voted upon is different), but when they use those commands, two reactions get added to their message, an up and down arrow, each symbolizing an agreement or disagreement. Then other users that have the voter role can choose one of the reactions to “agree” or “disagree” with the use of the command. (This is the part I haven’t really figured how yet, and am open to suggestions) Once the agreements/disagreements ratio reaches a certain value (Maybe decided dynamically by how many people are viewing/using channel at the time? Or just statically set to a certain number?), then the command will actually continue. But if that ratio doesn’t reach that point, then the requested command expires (Removes all reactions from the message, and doesn’t act on new ones). Anyways, that’s pretty much the basis of it, though there are a few other quality of life additions I want. But all-in-all, here’s a clean list:

  • New privilege level, applied using role. Called “voter” (Which would be between the none level and mod level)

  • Users with voter role can use all mod and admin commands, but have to “vote” on the use of them

  • Reactions get applied to the voters command symbolizing aye and nay.

  • All users with the voter role can vote aye or nay, but users, that aren’t a voter level or higher, cannot vote, and will have their reaction to the message removed.

  • If the command reaches a high enough ratio of aye to nay, the command is enacted.

  • Commands that are considered mod level (mute, kick, ban, etc) use the following format for voting:
    ? To prevent abuse, different ranks of voters should be made (Similar to how Defender does it). Voters on lower ranks cannot use mod commands on users on higher ranks. (Ex: A rank 2 user cannot use mod commands on rank 1 users, but rank 2 users can use mod commands on rank 2, 3, and 4 users)
    With rank one users being voters that are over a set age, set amount of messages, and who have never gotten a “condemnation”.
    Rank two being the average voters that doesn’t fit into any other level.
    Rank three being voters that are less than a certain age.
    And Rank four being voters that are less than a certain age and have sent less then a set amount of messages.

    ? High enough ratio is 80% for active participants in the channel (Or active users viewing the channel if that’s possible)
    ? If high enough ratio is not achieved within a set amount of time, then the command fails and all the reactions are removed with no further reactions being counted.

  • Commands that are considered admin level (set commands, commands that edit the guild/channels, etc) use the following format for voting:

    • Works in only set channels.
    • Command waits set amount of time for votes to come in.
    • After set amount of time, votes are counted and if ratio is 80% for, then the command is enacted.

And commands (p standing for prefix):

pdemocracy (alias demo)
Root command for special democracyCog commands and allows for higher levels to use this cog to vote on commands.

pcondemn
This is a special punishment command that prevent voters from reaching rank 1 (Or removes them from the rank). It acts as an admin level command, and follows the procedure for admin level commands (Only works in certain channels, waits certain amount of time before votes are counted, etc)

pdemocracyset (alias demoset)
Root command for changing defaults.

pdemoset toggle
Toggles whether or not the cog is enabled.

pdemoset mod
Root command for setting mod level command variables.

pdemoset mod timeout
Amount of time before a voters command is ignored (If it didn’t reach the amount of votes.)

pdemoset admin
Root command for setting admin level command variables.

pdemoset admin channel
Set the channels in which admin commands can be used by voters (Leave blank to allow them in all channels).

pdemoset admin timeout
Amount of time before votes are counted.

pdemoset

Potential issues:
There are some ways that this could be abused by voters. Such as using a ban command when the only people who are active at the time are people you planned to vote aye with. I don’t really know how to alleviate this, and am open to ideas.

V3

I do have some noobish experience with python and even made a cog for my Bedrock Minecraft server so people could edit the whitelist from the discord, but what I want in this post is way over my head and I didn’t even know where to start. But I think that after someone gets it started, I’ll be able to understand how everything is done and will be able to maintain and edit the cog to my liking without a lot of trouble.

Sorry if this whole thing was a little hard to read. I edited and added as I went, so there might be some unclear parts. Feel free to ask!

Hey, I am rather interested in your bounty but I’m still unsure on a few things. Would you mind accepting my friend request (HellFire#6969) so we could have a chat :slightly_smiling_face: ?