I suggested a similar feature in a post I made myself, and I have to say, it is not as simple as you think. This feature can be abused, and sometimes, a few people will decide to vote in favor of the person hogging the generator, so it is not a perfect solution.
Specifically for the scenario where an afk player is hogging the generator. A player will start with /votekick [playername] afk, and a message will be shown to all players (not including the person who is afk) for them to cast their vote. Other players will simply have to repeat the same command as above to kick the offending player. No vote automatically counts as a vote against kicking. Note that as soon as the player moves for more than 5 seconds, the votes are reset.
I believe that to prevent abuse as much as possible, you need a lot of votes to kick a player. You can only use /votekick on a player who has been afk for more than 1 minute. I can make a chart for a time vs. vote requirement chart below:
Afk time (in minutes): Minimum # of /votekick required: Minimum percentage of votes:
1 5 100%
2 4 90%
3 3 80%
4 3 70%
5 2 60%
6 2 50%
7 2 40%
8 1 30%
9 1 30%
10 1 30%
Values continue to be the same afterward
These values are adjusted to prevent trolling, and also the accommodate maps with less players per team, or teams that had few members to begin with.
Another idea is that a similar method could be used on team games to kick team griefers and annoying teammates. Types of detectable team-offense is as follows:
1. Repeated breaking of blocks in the same location when the blocks were placed by teammates*. (/votekick [playername] griefing)
2. Repeated placements of blocks to obstruct a teammate's way, detected by their teammate's repeated attempts to destroy a block*. (/votekick [playername] blocking/obstructing)
3. Using offensive language in team chat or chat spam. (/votekick [playername] swearing/spam)
4. Placing tnt to destroy blocks placed by teammates. (/votekick [playername] tnt)
This detection, of course, will be handled by sentinel. The minimum number and percentage of votes required to kick a player depends on how the frequency and number of times a player was detected to commit an offense, like above.
*Number 1 and number 2 cannot be a reason to kick a player on a team with 2 players, as one player can /votekick the other for griefing, while the other can /votekick the first player for obstructing.