GreylistVote
For a while I have been running the Ellitopia.net server and have had great difficulty finding an effective way to operate a greylist.
A greylist is similar to a whitelist, except players are allowed to log into the server but without build rights. When the player is trusted, build rights can be released.
The difficulty I had was allowing the player to be promoted while there were no admins or mods online to manually issue the promotion. I tried a few voting systems, but I never really found one that did exactly what I wanted... so I thought I would make my own!
So here it is, GreylistVote, the greylist management plugin allowing players to express their trust in a player using a vote command. You can customise how many votes are required for a player to be successfully promoted.
As of v1.1 the system works on a reputation based system. a /greylist vote increases reputation by 1 whereas a /griefer vote reduces it by 1. If the players total reputation is at or above the "required_votes" level they can build, if the drop below it they can't. Players with the greylistvote.approved permission are always approved, even if black-balled by users (use for Mods/Admins etc)
New to 1.3: /glv clearserver and /glv clearall can be used to remove Server votes or ALL votes respectively from a player.
New to 1.5.2: Players can now vote for offline players
Commands
/greylist [player] : Vote for a player to have build rights
Alias : /gl /trust
/votelist {player} : Show who has voted for the player
Alias : /glvlist /rep
/griefer [player] : Vote for player to be black-balled for griefing
Alias : /distrust
/glv : View available commands
/glv setrep [reputation] : Set the required reputation level to gain build rights
/glv toggle ["pvp"|"approvedvote"] : Toggle true/false config options
/glv clearserver [player] : Remove all 'Server' votes from this player
/glv clearall [player] : Remove ALL votes from this player
Permissions
greylistvote.* : Approved, with access to ALL commands
greylistvote.admin : Access to /glv setrep
greylistvote.vote : Player can use /greylist (or /gl)
greylistvote.griefer : Player can use /griefer
greylistvote.approved : Player is approved for building (automatically added to approved players)
note: Only use this in permissions config to FORCE approval despite any Black-Ball votes when the player logs in
Installation
- Copy the .jar file to your /plugins folder
- Reload your plugins/server
Configuration
- Edit the config.yml file which is created in the /plugins/GreylistVote folder
- Set required_votes to how many votes a player needs before being approved
- Ensure that at least the number of players needed to gain approval have the greylistvote.vote and greylistvote.approved permissions (or greylistvote.*)
- Reload your plugins/server
If you have "griefer_votes" in your config.yml, this is no longer needed.
Notes
As of 1.1, the Console CAN vote, and it's vote overrides any other votes in the system, so:
- If the console uses /greylist the player is automatically allowed to build and all griefer votes are removed.
- If the console uses /griefer the player automatically loses build rights and all greylist votes are removed.
Console votes appear as "Server".
As of 1.2, a Server approval forces reputation to whatever is required for approval, and a Server Black-Ball forces reputation to -1.
As of 1.3, issuing a /griefer vote removes any /greylist votes the player made previously (and vice versa).
As of 1.5.2 You can now vote for offline players
As of 1.5.5 you can set the config option "allow_all_approved_to_vote" which ignores the .griefer and .vote permissions to allow ANY approved player to vote. This and the PVP option can be toggled in game using "/glv toggle [pvp|approvedvote]"
Future Plans
- Allow custom commands on approval/black-ball
Donations
To show your support and help me justify to my wife why I spend so much time on Minecraft, please donate using the Donate button in the top right corner of this page!
Thank you
Other Projects
View my profile page for details of my other plugins.
Suggest a Project
Got an idea for a project? PM me and I'll give it a look!
I like it!
Don't know if you've thought about this or somebody has suggested it already but to round the plugin off add: /ungreylist [player] to have players with the perms ungreylistvote.vote or greylistvote.* have the chance to vote to revoke build perms as a griefer will not demonstrate his intentions without build perms as some do like to wait around for build perms and hang around until staff leave the server. Also again another handy command would be: /tbgreylist [player] [time] [reason] to allow a vote amongst players with the perms tbgreylistvote.vote or greylistvote.* to apply a temp ban on a player - spammers for instance. The vote initiator would be the only one that has to do [time] and [reason]. With both /ungreylist & /tbgreylist, once a vote has been initiated a vote message is pm'd to all players with the seegreylistvote.vote or greylistvote.* perms.
Just an idea ;)
I like the idea of trusted players to having the chance to vote for essentially what are staff commands. It means servers become a lot more protected from grief, spam or any other types of attacks that are sadly a common occurrence in Minecraft nowadays.
Even if you don't want to add anything I have mentioned somebody may see this and decide to make a plugin to work nicely along side yours with these extra options. :)
Thanks for reading and thanks for a better solution to greylisting. :D
@AvariceSyn
Thanks for the input. The idea behind this is less about making people familiar and more about minimising griefer risk. The way I see it, if players can get themselves promoted without any input from another player there is always a likelihood that griefers will target your server and wreak havoc.
Hopefully using this plugin you won't leave your server at night and come back in the morning to see all your hard work ruined by people who got themselves promoted!
Great idea for a plugin!
Wanted to comment on your current troubles though.
I had the same issue on my server, so I created a walled area that could not be broken and used worldguard flags to prevent anyone from leaving it and gave my guest permissions group build rights. They were restricted to that area until they put in an application.
That became ineffective as people still had to wait to get out into the real world, so I made an adventure-like tutorial that allows users to choose which world and gamemode they wish to have at the end of it, using ServerSigns they were automatically promoted into the user group and teleported to the corresponding world's spawn. That way, they were informed along the way about server features and didn't need the approval of a staff member to get started.
Just an idea to help before this plugin is finished. =)