Majority Vote
A simple vote plugin which allows players to vote on any commands used in your server.
Have there been times on your server when there aren't any Administrators online to handle users requests? Or if you went afk, and a spammer came online and there was nothing that could be done? The possibilities and needs for this plugin are endless. It is possible to execute other commands from other plugins!
Introducing the Vote!
Fully customised in a config file, players can perform any command for any other plugin, if they get the required votes. All players need to do, is, for example, type /vote mute [player], and if it receives enough votes, the player would be muted.
Setting up:
There are two main steps in setting up this plugin. Permissions, and the config.yml file.
Config.yml
After running Majority Vote for the first time, a config.yml file will be generated in /plugins/MajorityVote/ with the default settings, and some examples of syntax.
The values for the settings, and a description are as follows:
minumumPercent: - What is the minimum percentage of players who vote yes on the server to allow the vote to pass?
minimumPlayers: - What is the absolute minimum number of players for the vote to pass?
timeout: - If this amount of time passes (in seconds), the vote will timeout and not be passed.
Adding new commands:
under the node Commands, you can add your own custom commands, used in other plugins. Following the examples, you can see each command has a command and a description. The command is what the console will execute if the vote has been passed. There is one variable available, %arg%, which can be set from /vote [command] %arg%.
An example for a mute vote would be:
commands: mute: command: mute %arg% 10 minutes You have been vote muted! description: mute a player for 10 minutes.
The description can be set to anything you like.
A list of the available commands to use with vote can be found in game by typing /vote.
Permissions
There are 3 nodes to use with Majority Vote.
majorityvote.startvote - is the player allowed to start a vote?
majorityvote.input - is the player allowed to vote?
majorityvote.stop - is the player allowed to overrule, and stop the vote?
Final Notes:
Remember, any command can be used, there are no defaults, and there must be a plugin to support that command.
@WhiteNightFury
Hey check it out, I found a plugin which does a similar thing. RealVotes http://dev.bukkit.org/server-mods/realvotes/
It does the job.
is the update to 1.2.5 gonna be any time soon? :)
@Hoot215
Oh awesome! Thank you very much =) If you would like me to test or anything just let me know.
In the latest version released, it didn't work properly for some reason or another. It just wouldn't start. I forget the error it gave now. The previous version worked but had bugs which were fixed in the last version supposedly.
Well I've decided to attempt to update this plugin for 1.2.3-R0.2. However, after taking a look at the source code, this proves trickier than expected. It will probably take me a while to update this. In the mean time, if you can't live without this plugin... downgrade?
Will there be an update for this plugin? It was used constantly on my server and people are sad without it.
@UnitedFactions
Doesn't crash for me, loads fine and created the files. EDIT: Nevermind! I updated and also have this error, I have a feeling you forgot to include the file "plugin.yml" or something.
@mahoutsukaii
@mahoutsukaii
your plugin crashes, on RB R3, doesnt load? and cant create an folder and config.yml :(
plugins
22:10:09 [INFO] Plugins: Orebfuscator, FoundBoxx, GroupManager, Minequery, World Edit, SimpleTips, Buycraft, SpamGuard, Vault, CombatTag, WorldGuard, TreeAssist, ObsidianDestroyer, NoPortals, Register, Permissions, NoLagg, ObsidianFlow, Open Inv, ChestShop, CFBanner, mcbans, My Worlds, UnderWaterTNT, NoCheat, Votifier, M onsterBox, mcMMO, Essentials, WorldBorder, Citizens, EssentialsProtect, Essentia lsSpawn, dynmap, EssentialsChat, Factions
@techdesign
I shall work on that!
@GangstaHotdog
What does your config.yml look like?
Actually I have a problem. It seems that even if the vote count for yes is over 50% of the server, it still doesn't work unless EVERYONE votes yes? Tested with 4 people with one not voting. Help?
Thanks for this great plugin. :D
I really like this plugin. I do have a few suggestions you might want to take into consideration. I really like ellbristow's suggestion that only players allowed to vote be counted in the vote.
Also, would it be possible to assign permissions to different vote objects? For instance, I'd like to allow players to vote on promoting and demoting players so they can deal with griefers or adding friends. But I only want them doing the promotion on certain worlds. The bpermissions console command to accomplish something like this is:
promote player track world
This could be handled a few ways:
1. create the ability to use different variables in the commands. perhaps %world% could represent the world where the vote was started? then I could use:
promote %arg% track %world%
2. allow different commands to be controlled via permissions. Perhaps I have a vote for a command called promoteworld1. It could have a permission node such as majorityvote.promoteworld1. I would then allow that command just in world1 via my permissions plugin, and I could craft the command as:
promote %arg% track world1
Of course this opens the can of worms regarding multi-world votes, limiting messages about votes only to those on the world, how to handle people entering/leaving the world during a vote...
Thank you so much for this plugin!
Suggestion: Players who do not have permission to vote should not be included in the percentage calculation.
i.e. 4 players online, 1 does not have permission to vote Currently: 2 vote yes, 1 votes no... the vote fails 2/4 Suggested: 2 vote yes, 1 votes no, 1 doesn't count... vote passed 2/3
@Technius
I would not suggest letting the players vote on /stop!
It would suck if someone voted /stop and it passed.