UHC Handler
UHC Handler
This plugin will assist server operators in running UHC matches. It implements a 30-minute timer as seen in Mindcrack UHC videos, notifying players of every 30 minute mark (for reference, or for recording needs). It also gives server operators several commands to control the setup and game play.
Commands
/match start - UHC.matchControl - Starts the match by clearing all players' inventories, setting them to full health and saturation, and healing them. Also sets time to day, butchers hostile mobs, and starts match timer.
/match pause - UHC.matchControl - Freezes players in place and disallows placing and breaking of blocks. Also pauses match timer.
/match resume - UHC.matchControl - Unfreezes players and allows placing and breaking of blocks. Also resumes match timer.
/match stop - UHC.matchControl - Stops and Resets match timer.
/match time - UHC.matchTime - Displays current match time to player running the command. Used to check time more precisely than every 30 minutes. By default, enabled for all players, with option to allow based on permissions in config.yml.
/freeze - UHC.freeze - Freezes all non-opped players in place. Used as a toggling command.
/mute - UHC.mute - Mutes all non-opped players to assist in communication from operators. Used as a toggling command.
Permissions
- UHC.admin - Gives user permission to use entire UHC Handler plugin
- UHC.matchControl - Gives user permission to use /match <start|stop|pause|resume>
- UHC.matchTime - Gives user permission to use /match time even if it is disabled in the config.
- UHC.freeze - Gives user permission to use /freeze
- UHC.mute - Gives user permission to use /mute
- UHC.ignoreFreeze - Gives user permissions to move while game is frozen
- UHC.ignoreMute - Gives user permissions to talk while game is muted
- UHC.receiveMute - Sends all messages to user while game is frozen
Configuration File
BanOnDeath: true
- Controls whether players are banned after dying.
BanOnDeathDelay: 30
- Controls how long (in seconds) players are allowed to stay on server before being banned after death.
BanMessage: 'Thanks for playing UHC!'
- Controls what message the user is displayed when banned after dying.
TimerAnnounce: true
- Controls whether the timer broadcasts messages or not.
TimerInterval: 30
- Controls how often (in minutes) timer messages are displayed.
TimerMessage: '%t Minutes Elapsed!'
- Controls what message is displayed when the timer reaches its interval (as defined above). Use '%t' in place of the actual game time.
AllowMatchTimeCommand: true
- Controls whether players without permissions can use /match time to check how long a match has been going on.
TimerResolution: 60
- Controls how often your timer checks to see if it needs to display. Make this number lower to get a more precise timer, and higher to use fewer server resources. The number itself represents how often your timer will check to see if it needs to display (in seconds). This will produce a timer that is correct to the nearest [x] seconds.
- Should be less than or equal to
TimerInterval*60
.
ChangeMOTD: true
- Controls whether the plugin changes your server's MOTD based on game progress.
SetupMOTD: 'Log on now to play UHC!'
- Displays while plugin is loaded, but game is not in progress to players viewing the server from their multiplayer launcher. Only active if
ChangeMOTD
is enabled.
- Displays while plugin is loaded, but game is not in progress to players viewing the server from their multiplayer launcher. Only active if
RunningMOTD: 'UHC Match in Progress.'
- Displays while plugin is loaded, and game is in progress to players viewing the server from their multiplayer launcher. Only active if
ChangeMOTD
is enabled.
- Displays while plugin is loaded, and game is in progress to players viewing the server from their multiplayer launcher. Only active if
ControlLogins: true
- Controls whether the plugin manages player log ins, allowing players to relog, but not allowing players to join after match has begun.
overwriteFreeze: true
- Controls whether this plugin's freeze controls /freeze commands, or they are allowed to go to other plugins.
YouTube Video Explanation
Future Plans
- Add Functionality to notify admins when players get close to one another.
- Add Functionality to allow for a time-limited match, outputting a message at the end of the game.
- Add Functionality to delay the enabling of PvP for x minutes after match begins.
- Add Option for players to be allowed to spectate/be muted at end of match rather than be banned.
- Add Functionality to scatter players. (Possibly)
- Add Multi-Game Support. (Possibly)
Add Functionality to remove users banned during match at completion of game to keep ban file clean.(Added in v1.6)Fix Issue where players in air when /freeze command is run are kept in air and repeatedly kicked for flying.(Resolved in v1.5.2)Change timer message to custom message, controlled in config file.(Added in v1.5)Change ban message to custom message, controlled in config file.(Added in v1.5)Add Option in Config to disallow use of /match time.(Added in v1.5)Resolve Conflict with ghowden's UltraHardcore plugin on /freeze command.(Resolved in v1.4)Implement Permissions Nodes.(Added in v1.3)Add config file to change time interval.(Added in v1.2)Add functionality to send player chat to Ops even when muted.(Added in v1.1)
could you please make a 1.7.X version please
Please make this plugin for 1.7.4. This is a great plugin and it would be great if you made it for 1.7.4
I tried this but the server crashed after, 2 minutes within starting the match
Update 1.7.x
Burg this looks like a great plugin, its just what in looking for thank you for putting it out.
Just a couple questions does it work with all other plugins?
I have multiverse and create a new world for each uhc event, how do i make this work in just the uhc created world.
So I used this plugin along with ghowden's Ultra Hardcore on a 1.6.2 server and ran into a couple of issues.
1) Timer was set for 20 minutes with 1 minute resolution. For some reason the first notification of the timer was at 21 minutes vs 20 minutes. I will set the timer resolution for 30 seconds for more preciseness, but I found it a bit odd.
2) (And this was a HUGE issue) In the documentation, the "ControlLogins: True" is supposed to "Controls whether the plugin manages player log ins, allowing players to relog, but not allowing players to join after match has begun." ... However, this was not the case. Two players tried to relog about 1.5 hours into the match and were denied.
You should make it so players can create a tournament. Like SG. I have 2 different worlds that has UHC on it. I would like one main one that I would use the existing Admins features for Server UHC events. And a world for players to challenge others while there is no pending events.
Get the map to regenerate
@cauliflower69
Absolutely that would be possible. I'll see what I can do in the near future. Thanks!
First of thanks for a great plugin. I am currently kicking people on death to stop the oh thats a god sword etc and giving peoples apparel away.
Instead of kick would you be able to mute players on death ?
This is a really great plugin, good job. But I have a suggestion: please set a function for a border. That will be more great.
Greetings,
https://www.youtube.com/user/nintendonick488
(PS: I'm sorry for the bad language, I'm Dutch.)
@burgviking2012
I believe I had started the match, but as it was two days ago I can't say for certain. Regardless, I'll be using your plugin for my first UHC hosting experience. If it doesn't ban-on-death, I'll be there to admin the game anyway so I can manually ban players if needed. I'm just hoping I don't need to do so. :-)
I'll let you know the outcome.
@derklempner
It is intended for ghowden's mod, so the first one in your comment. However, it doesn't directly use anything in that plugin, so it should work with others too (although I haven't done extensive testing on that).
Had you started the match when you died, using /match start? The plugin only adds you to the ban list once the game has started so that players can not be banned while messing around before the match.
Is this mod for use with the "UltraHardcore" mod (http://dev.bukkit.org/server-mods/ultra-hardcore/) or the "UltraHardCore Mode" mod (http://dev.bukkit.org/server-mods/ultrahardcore-mode/)?
I tested it on my "UltraHardcore" modded server, and when I died it didn't add me to the ban list. (I was not listed in the ops file nor the players file).
@JoeyKindle
Yep! That's planned for version 1.5. (See the Future Plans section above :) ).
Do you think you will make the text that shows configurable?
message sent
@RustyDagger
That's a really interesting idea. I am interested in looking in to it after I get through the stuff I already have planned. Send me a PM for Skype?
this looks good but why must every single UHC plugin be aimed at server ops running only 1 game at a time. as a server owner I want to have players be able to join and play with out me doing any thing, any time they want I also want more than 1 game running at a time.. because games can be long and players don't like to wait 4 hours just to play.
why can no plugin just get it right.
the way I see this being done is some kind of lobby for each game. the lobby would either be teams or single player. the number of teams and max players would be set by the server owner. when the game starts the arena creates a new map generates the 1000x1000 border or what ever size the server owner set randomly makes spawns and starts the game as your plugin here does. as players die they are retuned to the lobby and when the game ends the map is deleted this would ensure that no game would be the same. cause the map seed would always change. some extra stuff to keep players climbing over the bedrock wall may be needed. just like world border does. could maybe even use world border because the server owner would know the map name and be able to make a config for it.
if you are up for the challenge of coding all that and would like to discuss it more i'm more than happy to chat on skype maybe even send some donations money your way.