A plugin that manages your practice pvp server, including:
- Create custom gamemodes (example: Nodebuff, Gapple)
- Create an infinite amount of arenas
- Create any predefined kits for your gamemodes
- Dynamic GUI's that makes binding arenas & kits to gamemodes, checking & trying out kits, arenas & gamemodes aswell as deleting them a breeze
- The ability to personalize your custom gamemodes (Toggle ELO, hide players, toggle queue wait & more)
- Parties
- Duels
- New GUI oriented plugin, instead of the command oriented plugin v1 offered
- Good looking config file, that contains lots of toggable features as well as customizable messages (with placeholders!)
- Custom pvp knockback patches
And many more I forgot to mention!
▬▬▬▬▬▬▬▬▬▬ஜ۩۞۩ஜ▬▬▬▬▬▬▬▬▬▬
Here is the about, random facts & stuff.
I noticed that ALOT of you guys asked for a more "aesthetic" & less laggy plugin - more GUI's to look more pro.So I did it.I literally forgot v1 of DynamiCombat & developped v2 from scratch during my vacation.
Don't take into consideration all the reviews below this review, as they're v1 reviews, and it's not AT ALL the same thing.
NEW ELO AND TOPELO COMMANDS:
- /DC Elo command - Let's you see your ELO on all gamemodes played!
- /DC Topelo [Gamemode] - Let's you see the top 10 ELO players on a specific gamemode ! (do /DC Topelo to see available gamemode arguments)
Added up, the whole project is around 8000 lines of code.
Download the dependencies (so the plugin actually runs):
ProtocolLib 3.6.4 or 3.6.5: http://dev.bukkit.org/bukkit-plugins/protocollib/files/33-protocol-lib-3-6-4/
Just put the dependencies in your plugins folder aswell as the DynamiCombat jar.
1) Configuration File
The DynamiCombat config.yml file will look like this:
Code (Text):
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# +--------------------------------------------------------------------------------+#
# | _____ _ _____ _ _ |#
# | | __ \ (_)/ ____| | | | | |#
# | | | | |_ _ _ __ __ _ _ __ ___ _| | ___ _ __ ___ | |__ __ _| |_ |#
# | | | | | | | | '_ \ / _` | '_ ` _ \| | | / _ \| '_ ` _ \| '_ \ / _` | __| |#
# | | |__| | |_| | | | | (_| | | | | | | | |___| (_) | | | | | | |_) | (_| | |_ |#
# | |_____/ \__, |_| |_|\__,_|_| |_| |_|_|\_____\___/|_| |_| |_|_.__/ \__,_|\__| |#
# | __/ | |#
# | |___/ |#
# | http://spigotmc.org/resources/6005 for information & placeholders |#
# | Plugin made with love <3 |#
# | Dont forget to report bugs via the URL above! |#
# +--------------------------------------------------------------------------------+#
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
#
# NOTE: Dont use apostrophes in messages (')
#
SecretCode: ''
###########################################
# #
# Block Commands #
# #
###########################################
# Commands that will be blocked during combat (Party, Duels & 1v1s)
block-commands-while-in-combat: 'true'
commands:
- /dc
- /spawn
- /party
- /giveswords
###########################################
# #
# ELO Related #
# #
###########################################
# ELO players start off at
default-elo: 1000
# This multiplier varies the ELO change, so if you want big elo changes
# (example go from 1000 to 1100 in a few matches), then increment this number.
elo-multiplicator: 15
# This is the ranked matches cooldown (in seconds) so 86400 = 1 day
ranked-matches-permission-delay: 86400
###########################################
# #
# Customizable Messages #
# #
###########################################
# In this new v2 of DynamiCombat, there are PlaceHolders.
# Basically you can create dynamic messages, using {SOMETHING}
# All the possible placeholders in a message will be written down here
Menu-Gamemodes-Color: '&c'
Still-On-Cooldown: '&cYou are still on ranked matches cooldown!'
Arena-Not-Found: '&cArena not found'
# Placeholders: {GAMEMODENAME} = the gamemode the player joined
You-Are-Now-In-Queue-For: '&6You are now in queue for: &3{GAMEMODENAME}'
Player-Not-Available: '&cPlayer not available'
No-Kits-Were-Found: '&cNo kits were found'
# Placeholders: {VICTIM} = The player that you killed
You-Just-Beat: '&6You just beat: &3{VICTIM}&6!'
# Placeholders: {KILLER} = The player that killed you
You-Just-Lost: '&cYou just lost to: &3{KILLER}&c!'
ELO-Changes: '&6Elo Changes:'
# Placeholders: {WINNERNAME} = The name of the player that won
# {BEFOREELO} = The winner's old ELO
# {AFTERELO} = The winner's new ELO (after calculation)
Winner-ELO: '&2{WINNERNAME}&6: &c{BEFOREELO} &6-> &a{AFTERELO}'
# Placeholders: {LOSERNAME} = The name of the player that lost
# {BEFOREELO} = The loser's old ELO
# {AFTERELO} = The loser's new ELO (after calculation)
Loser-ELO: '&4{LOSERNAME}&6: &a{BEFOREELO} &6-> &c{AFTERELO}'
You-Dont-Have-Permission: '&cYou dont have permission'
Invalid-Arguments: '&cInvalid Arguments'
You-Have-To-Get-Out-Of-The-Queue: '&cYou have to get out of the queue!'
You-Are-Already-In-Combat: '&cYou are already in combat!'
That-Player-Isnt-Available-At-The-Moment: '&cThat player isnt available at the moment'
# Placeholders: {PLAYER} = The name of the player you requested
Duel-Request-Sent-To: '&6Duel request sent to &3{PLAYER}'
Player-Not-Found: '&cPlayer not found'
This-Player-Didnt-Send-You-A-Duel-Request: '&cThis player didnt send you a duel request!'
You-Are-In-A-Party: '&cYou are in a party, you cant do that'
You-Are-No-Longer-In-Queue: '&6You are no longer in queue'
You-Are-Not-In-Queue: '&cYou are not in a queue'
Gamemode-Not-Found: '&cGamemode not found'
Do-Party-Create: '&cDo /party create'
You-Have-Created-A-Party: '&6You have successfully created a party!'
Your-Leader-Has-Left: '&cYour leader has left, so your party was disbanded'
You-Have-Disbanded-Your-Party: '&cYou have disbanded your party'
# Placeholders: {PLAYER} = The name of the player that left
Has-Left-Your-Party: '&c{PLAYER} has left your party!'
You-Have-Left-Your-Party: '&cYou have left your party'
You-Are-Not-In-Party: '&cYou are not in a party'
# Placeholders: {PLAYER} = The name of the player that was kicked
You-Kicked-From-Your-Party: '&cYou kicked &3{PLAYER} &cfrom your party'
# Placeholders: {LEADER} = The name of the player who kicked the other (which is a leader)
# {KICKED} = The name of the player that got kicked
Kicked-From-Your-Party: '&3{LEADER} &cjust kicked &3{KICKED} &cfrom your party'
# Placeholders: {LEADER} = The name of the player who kicked the other (which is a leader)
You-Were-Kicked-By: '&cYou were kicked by &3{LEADER}'
That-Player-Isnt-In-Your-Party: '&cThat player isnt in your party'
You-Arent-The-Leader: '&cYou arent the leader of your party, therefore you cant do that'
# Placeholders: {PLAYER} = The name of the player you are targeting
Is-In-Another-Party: '&3{PLAYER} &cis in another party'
# Placeholders: {PLAYER} = The name of the player you are targeting
Other-Is-In-Combat: '&3{PLAYER} &cis in combat'
Click-Here-Hoverable-Message: '&aClick Here!'
# Placeholders: {PLAYER} = The name of the player who sent you a request
Party-Join-Request-Hoverable-Message: '&3{PLAYER} &6sent you a PARTY JOIN request'
# Placeholders: {PLAYER} = The name of the player you sent the request to
Party-Request-Sent-To: '&6Party request sent to &3{PLAYER}'
You-Are-In-Combat: '&cYou are in combat, you cannot do that'
That-Player-Doesnt-Have-A-Party: '&cThat player doesnt have a party'
# Placeholders: {LEADER} = The name of the leader of the party you just joined
You-Have-Successfully-Joined-Party: '&6You have successfully joined {LEADER}s party!'
# Placeholders: {NUMBER} = The number of players in queue
Item-In-Queue-Amount: '&bPlayers in queue: &6{NUMBER}'
# Placeholders: {NUMBER} = The number of players in combat
Item-In-Combat-Amount: '&bPlayers in combat: &6{NUMBER}'
# Placeholders: {PLAYER} = The name of the player that just joined
Has-Joined-Your-Party: '&6{PLAYER} has just joined your party'
You-Arent-Invited: '&cYou arent invited to that party'
# Placeholders: {PLAYER} = The name of the player that died
Was-Killed: '&c{PLAYER} was killed!'
You-Were-Killed: '&cYou were killed!'
Your-Party-Lost: '&cYour party lost!'
Your-Party-Won: '&aYour party won!'
# Placeholders: {PLAYER} = The name of the player that sant you the duel request
Has-Sent-You-Duel-Request: '&6{PLAYER} &bhas sent you a duel request. You have 10 seconds to accept'
Check-Enemy-Inventory: '&cYou have 10 seconds to check your opponents inventory'
You-Cannot-Drop-This-Item: '&cYou cannot drop this item'
You-Cant-Duel-Yourself: '&cYou cant duel yourself!'
Configurate everything & reload your server
PS: Compared to DC v1, in v2, the data files are in seperate folders.It makes it cleaner
2) DCSpawn & Gamemodes
So the way the plugin works, very complex! (or not):
Lets start off with something easy: setting the DynamiCombat spawn.
To do that, go to wherever you want to set it, and do
Code (Text):
/setDynamiCombatSpawn
& you're done with that.
Next, you need to make a gamemode, so do
Code (Text):
/DC gamemode "GAMEMODENAME" (without brackets)
To make our Gapple gamemode (i'll call it GappleUnranked)
Code (Text):
/DC gamemode GappleUnranked
Now, a GUI will open up, with different options.Check out this video to see how it works.
I will list the possibilities as of now here:
- ELO: Toggle it on/off for this gamemode
- Parties Only: Toggle on/off this gamemode for only parties
- Predefined Kit: Make it so that YOU (the owner) choose what kit the players will be using for that specific gamemode (we'll get to that in a second)
- Hide Players: Use the Dynamic hiding, so muliple players can fight in one arena without causing problems (toggle off for FFA's)
- Queue wait: Self explanatory; make the player wait for another player in queue
Once you've chosen whatever options, you HAVE to click "Next ->" on the bottom right.Then once your gamemode(s) are done with the command, you HAVE TO RELOAD.
3) Arenas, Kits & Binding
A very big feature is the possibility (and obligation) to bind certain things to certain gamemodes.
You HAVE to bind an arena to a gamemode (you can bind 1 arena to multiple gamemodes & vice versa).
You CAN bind a kit to a certain gamemode (only if you chose Predefined Kit = true).
To bind a certain kit to a certain gamemode, what you want to do is get the full kit on you (armor & items, as if you were about to pvp), and execute the command
Code (Text):
/DC Kit "KITNAME" (without brackets)
so if I want the kit GappleKit, I do
Code (Text):
/DC Kit GappleKit
So now if you do
Code (Text):
/DC
& you go to "Kits" -> "Kit List", you will have the created kit there.
If it's there, good, so now you want to click back, and go to "Bind to Gamemode" -> Click on a gamemode.
Success, you did it!
Video:
I also showed in the video that after creating all your kits, you HAVE to reload, aswell as the "try on kit" option.
Onto Arenas, you HAVE to have at least 1 arena binded to a gamemode so you can play that certain gamemode.
The arena binding is exactly the same as the kit binding, so I'll just show you how to make your arenas & bind them to a gamemode without a video.
If you already know how arenas work in DynamiCombat v1, then you're all good.
What you want to do is
Code (Text):
/setarena [Arena Number] [Arena Side, either 1 or 2]
So lets say I want to create 10 different arenas, I would do the following:
Code (Text):
First arena:
/setarena 1 1
/setarena 1 2
Second arena:
/setarena 2 1
/setarena 2 2
Third arena:
/setarena 3 1
/setarena 3 2
Fourth arena:
/setarena 4 1
/setarena 4 2
Fifth arena:
/setarena 5 1
/setarena 5 2
Sixth arena:
/setarena 6 1
/setarena 6 2
Seventh arena:
/setarena 7 1
/setarena 7 2
Eight arena:
/setarena 8 1
/setarena 8 2
Ninth arena:
/setarena 9 1
/setarena 9 2
Tenth arena:
/setarena 10 1
/setarena 10 2
And so on..
Keep in mind that you obviously have to go to one arena, set both sides, and go to your next arena, set both sides, ect
Then RELOAD, and do the same binding as you did with the kits.
Code (Text):
/DC
go to "Arenas" -> "Bind to Gamemode" -> Click on your arena -> Click on whatever gamemodes you want to bind it to.
DONE!
PS: Look at the different options you have, you can delete the arenas, gamemodes, kits & such directly using /DC
4) Ranked Items & Party Item
Every time you die or join the server, you are given 2 swords, named unranked & ranked.
In unranked, there are all your non-ELO gamemodes, and in the ranked, all your ELO gamemodes.
AS OF NOW, to change your 2 sword to custom items, you have to put your 2 items in the 1 and 2 slot of your hotbar, then execute
Code (Text):
/DC rankeditems
To change the party item, do the same, but put your item on the 9th slot of your hotbar and execute
Code (Text):
/DC Partyitem
Video:
You are obviously given the party item when you're in a party instead of the ranked & unranked items.
5) Parties & Duels & 1v1's
Now lets get to the real deal.
First of all, to do a random match, just right click your ranked & unranked items, and click on a gamemode to join.That's straightforward.
To duel, you want to do
Code (Text):
/duel "PLAYER NAME"
You will be prompted with all the gamemodes that have ELO & party turned off.Just click on any gamemode, and the player you dueled will recieve a clickable message! (request expires in 10 seconds)
Here are all the party commands as of now:
Code (Text):
/Party create - creates a party
/Party invite "PLAYER NAME" - invites a select player
/Party leave - Leave your party if you're in one (if you're the leader, the party gets disbanded)
/Party kick "PLAYER NAME" - kicks that player if he's in your party
/Party join "LEADER NAME" - Join a party (when you're invited you'll be sent a clickable message, so don't worry)
To play against other parties, what you have to do is right click the Party Item (blaze rod as default), and choose a gamemode you made (gamemodes with party = true)
If you need help setting up, contact me (below) so I can help you out.
6) Permissions
dynamicombat.rankedmatches.<NUMBER OF MATCHES> - Sets a number of matches permitted in x amount of time (the x amount of time is configurable in the config.yml)