KitBattle Advanced
Native Minecraft Version:1.13Tested Minecraft Versions:
  • 1.7
  • 1.8
  • 1.9
  • 1.10
  • 1.11
  • 1.12
  • 1.13
  • 1.14
  • 1.15
  • 1.16
  • 1.17
[IMG]


KitBattle Advanced is a plugin that will help your players get better in minecraft pvp while having fun! the features it offer will make sure your players are enjoying their battles against their foes! I really hope you like this plugin as i put so much effort into it
This is a better/updated version of the one on Bukkit!

[IMG]

Check out my other projects as well!

[IMG][IMG]
[IMG][IMG][IMG][IMG]
[IMG][IMG]
[IMG][IMG]

[IMG]

[IMG]

- If you own 3 or more of my plugins, you can purchase any of the remaining plugins for 35% off! (づ。◕‿‿◕。)づ
If you don't own 3 or more but you want to purchase 3 at once, you get a 25% discount! (ノ◕ヮ◕)ノ*:・゚✧
To perform any of the above, you need to contact me through email -> [email protected] and also message me here as well!

̿̿ ̿̿ ̿̿ ̿'̿'\̵͇̿̿\З= ( ▀ ͜͞ʖ▀) =Ε/̵͇̿̿/’̿’̿ ̿ ̿̿ ̿̿ ̿̿

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

[IMG]


- Create as many maps as you want! and add as many spawnpoints as you want to prevent spawn camping, you can also disable/enable these maps to update them.
- Comes with 38 Default kits
- You can create kit upgrades! People can spend more money on kits they like to improve! You create as many upgrades as you want and make them as unique as you want!
- You can create as many kits as you want
- 26 Unique ability that you can customize everything about
- Custom abilities! The API let's you add completely new abilities
- Create/Delete/Enable/Disable/Rename/Give Kits on the fly with a simple command
- You can create regions where abilities cannot be used (Such as in spawn)
- Customize each kit items, armor, price and everything!
- Give any kit any amount of abilities you want, or remove those abilities
- Coins system
- Kits shop system
- Assists system, coins will be shared and each player gets a percentage based on the damage dealt.
- Tournaments! players can queue to start tournaments where only one person can come out on top and receive epic rewards!
- Option for animated scoreboard title
- Kit preview!
- Players can rearrange purchased kits in their menu
- Spectator mode!
- Command aliases!
- PlaceholderAPI Support! and MVdWPlaceholderAPI Support!
- Can display titles and action bars on its own! It also supports TitleManager!
- Option to make kits purchased permanently or for one life
- Kitunlockers (Unlock a random kit for free, with some cool effects)
- Ranking system! Create your own ranks and customize the required exp and prizes for reaching that rank
- Trails! Players with permission can equip trails that will show when they shoot a projectile!
- MySql support
- Option to use either UUID or normal names
- Leaderboards! Use signs or Holograms to display top players for all stats!
- Bounties!
- Display top players heads above signs
- You can create join signs that display player count and you can also have leave signs and soup signs and potion signs!
- Amazing cooldown system that wont cause any lag on your server! and it also notifies the user when the cooldown goes away as well as display in action bar
- Option to use BungeeMode (Forces people to join the game and prevents them from leaving)
- Map Shuffler for bungee mode! Maps will automatically switch every x seconds
- Map voting for bungee mode! Players can vote for which map they want for the next switch if shuffler is enabled
- Change the amount of coins and exp earned per kill!
- Create permissions that change the player coins and exp modifier, for example the permission kitbattle.vip gives double the coins and exp!
- Sponges act as launchpads
- Change the default kits that the players start with
- Option to make any kit require a permission!
- You can enable building! This can be helpful if you want to allow players to build plots or something somewhere! (Maybe a special map)
- Use /kb spawn to respawn and change your kit
- Ranked (ELO) & Unranked Challenges system! you can make maps for 1v1 or 2v2 or 3v3 or any number! And people can join queues to play them! You can also set the number of lives each player has before being eliminated!
- Killstreaks! (Will be shown in exp bar)
- Killstreaks rewards! Customize commands executed when a player reaches a specific killstreak
- Deathstreaks! You can give buffs or execute any type of commands on players that are on a deathstreak to help them and keep them motivated
- Achievements! Players can earn achievements for doing certain things and earn rewards for doing so!
- A profile gui that shows players stats and achievements
- Vault support
- Option to display players ranks in chat
- Enchant, name, lore, dye, change the durability, of any item in any kit
- Control the allowed commands that can be performed while playing kitbattle
- AdvancedEnchantments support
- Record many player stats! Kills, coins, deaths, abilities used, tournaments won, challenges won, soups eaten, projectiles hit and more!
- Soup heals 3.5 hearts!
- Reset players stats with one quick command!
- Create various types of signs!
- Very cool scoreboards that display many useful information (Normal map scoreboard is FULLY customizable)
- Customize most of the plugin messages including the plugin messages and the Scoreboard it self! but keep in mind that there are many things u cant customize, so some messages will be forced to be english
- PlayerUseAbilityEvent for other devs to hook into and make something creative with the current Abilities.
- User command tab completion!
- Customize the way signs look!

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

[IMG]


Spoiler: Commands & Permissions
/kb - None
/kb List - None
/kb Join - None
/kb Leave - None
/kb Vote - None
/kb Stats - None
/kb Selectkit - None
/kb Gui - None
/kb Spawn - kitbattle.spawn
/kb Spectate - kitbattle.spectate
/kb Bounty - kitbattle.bounty
/kb Info - None
/kb Admin - kitbattle.admin
/kb Create - kitbattle.create
/kb Delete - kitbattle.delete
/kb Enable - kitbattle.enable
/kb Disable - kitbattle.disable
/kb Addspawncuboid - kitbattle.addspawncuboid
/kb Removespawncuboid - kitbattle.removespawncuboid
/kb Wand- kitbattle.wand
/kb Addspawn - kitbattle.addspawn
/kb Removespawn - kitbattle.removespawn
/kb Reset - kitbattle.reset
/kb Coins - kitbattle.coins
/kb Exp - kitbattle.exp
/kb Setchallenge - kitbattle.setchallenge
/kb Kit - kitbattle.kit
/kb Kitunlocker - kitbattle.kitunlocker
/kb Holograms - kitbattle.holograms
/kb Editmode - kitbattle.editmode
/kb Pastebin - kitbattle.pastebin
/kb Reload - kitbattle.reload

---- Lonely permissions
:D
----
kitbattle.breaksigns - Allows the player to break kitbattle signs
kitbattle.createsigns- Allows the player to create kitbattle signs
kitbattle.unblockcmd - Allows the player to execute other commands while in kitbattle
kitbattle.trails - Allows the player to equip a trail that will show when they shoot a projectile
kitbattle.spawn.bypass - Allows the player to bypass the waiting time when doing the /kb spawn command
kitbattle.spectate.bypass - Allows the player to bypass the waiting time when doing the /kb spectate command

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

Customization:

This plugin is highly customizable, but not fully. so be aware of that! and please don't complain about that as I have seen too many people talk about it in my other minigames :l, which becomes bothering after a while
So... here is an example of some of the files created by the plugin. You will be able to see what you can change and what you can not!

Spoiler: Files
Spoiler: messages.yml of version 5.2
https://pastebin.com/3DguME4R
The remaining files below are of an old version
Spoiler: config.yml
Code (Text):
use-UUID: false
Load-Delay: 10
Starting-Coins: 1000
Check-For-Updates: true
Scoreboard-Enabled: true
Do-Players-Drop-Items-On-Death: false
Can-Players-Drop-Items-On-Ground: false
Can-Players-Pick-Items-On-Ground: false
Do-Players-Lose-Hunger: false
Purchaseable-Kits-Are-Permanent: true
Starting-Amount-Of-Kit-Unlockers: 2
Respawn-Screen-On-Death: true
Spawn-Teleport-Countdown-Seconds: 5
Spectate-Countdown-Seconds: 5
Earned-Coins-Per-Kill: 10
Minimum-Exp-Per-Kill: 2
Maximum-Exp-Per-Kill: 5
Stats-Load-Delay: 20
Sponge-Boost-Upwards: 1.5
Update-Top-Signs-Every-In-Minutes: 60
Sell-Value: 0.33
Fall-Damage-Enabled: true
Broadcast-Rank-Up: true
Show-Rank-In-Chat: true
Send-Death-Message-To-Everyone: true
Ranks-Prefix: '&6[&e%rank%&6] '
Default-Kits:
- Pvp
Challenge-Kit: Pvp
Challenge-Duratiaon: 120
Commands-Executed-When-Player-Win-Challenge:
- kb coins add %player% 30
Commands-Executed-When-Player-Lose-Challenge: []
Send-Killstreaks-To-Everyone: true
Killstreaks-Enabled: true
use-Vault: false
Saving-Task:
Enabled: true
Save-Every-Minutes: 10
use-mysql: false
table-prefix: kitbattle_
mysql-host: localhost
mysql-port: 3306
mysql-database: database
mysql-username: root
mysql-password: root
Bungee-Mode: false
Map-Shuffle: true
Shuffle-Every-In-Minutes: 10
Time-Shown-Before-Shuffle:
- 60
- 30
- 15
- 10
- 5
- 4
- 3
- 2
- 1
Create-Default-Kits: false
Aliases:
- kitpvp
- pvp
Allowed-Commands:
- kb
- kitbattle
- tell
- help
- t
- r
Items:
Kit-Selector: 'CHEST : &7Kit Selector (&aRight click!&7)'
Shop-Opener: 'ANVIL : &7Shop (&aRight click!&7)'
Challenger: 'BLAZE_ROD : &aRight click a player to challenge him!'
Kit-Unlocker: 'CHEST : &7Kit Unlocker! (&aRight click!&7)'
Modifiers:
permission: kitbattle.modifiers
modifiers:
- '2 : kitbattle.vip'
- '3 : kitbattle.ultravip'
Action-Bar-Enabled: true
Titles:
enabled: true
fadeIn: 10
stay: 40
fadeOut: 10
Scoreboard-Title-Animation:
enabled: true
interval: 8
frames:
- '&b&l&nKitBattle'
- '&e&l&nKitBattle'
- '&b&l&nKitBattle'
- '&a&l&nKitBattle'
- '&b&l&nKitBattle'
- '&c&l&nKitBattle'
- '&e&l&nK&b&l&nitBattle'
- '&b&l&nK&e&l&ni&b&l&ntBattle'
- '&b&l&nKi&e&l&nt&b&l&nBattle'
- '&b&l&nKit&e&l&nB&b&l&nattle'
- '&b&l&nKitB&e&l&na&b&l&nttle'
- '&b&l&nKitBa&e&l&nt&b&l&ntle'
- '&b&l&nKitBat&e&l&nt&b&l&nle'
- '&b&l&nKitBatt&e&l&nl&b&l&ne'
- '&b&l&nKitBattl&e&l&ne'
Killstreaks:
'3':
Commands-Executed:
- kb coins add %player% 20
'5':
Commands-Executed:
- kb coins add %player% 30
'10':
Commands-Executed:
- kb coins add %player% 50
'20':
Commands-Executed:
- kb coins add %player% 100
'30':
Commands-Executed:
- kb coins add %player% 200

Spoiler: kits.yml
This is a sample and not the full file
Code (Text):
Kits:
Dragon:
Enabled: true
Require-Permission: false
Item: FIREBALL
Price: 1000
Armor:
Helmet: 'LEATHER_HELMET : 1 : dye:RED'
Chestplate: 'DIAMOND_CHESTPLATE : 1'
Leggings: 'IRON_LEGGINGS : 1'
Boots: 'LEATHER_BOOTS : 1 : dye:RED'
Items:
- 'DIAMOND_SWORD : 1'
- 'FIREBALL : 1 : name:&cFlames'
- 'MUSHROOM_SOUP : 1'
- 'MUSHROOM_SOUP : 1'
- 'MUSHROOM_SOUP : 1'
- 'MUSHROOM_SOUP : 1'
- 'MUSHROOM_SOUP : 1'
- 'MUSHROOM_SOUP : 1'
- 'MUSHROOM_SOUP : 1'
- 'MUSHROOM_SOUP : 1'
- 'MUSHROOM_SOUP : 1'
- 'MUSHROOM_SOUP : 1'
- 'MUSHROOM_SOUP : 1'
- 'MUSHROOM_SOUP : 1'
- 'MUSHROOM_SOUP : 1'
- 'MUSHROOM_SOUP : 1'
- 'MUSHROOM_SOUP : 1'
- 'MUSHROOM_SOUP : 1'
- 'MUSHROOM_SOUP : 1'
- 'MUSHROOM_SOUP : 1'
- 'MUSHROOM_SOUP : 1'
- 'MUSHROOM_SOUP : 1'
- 'MUSHROOM_SOUP : 1'
- 'MUSHROOM_SOUP : 1'
- 'MUSHROOM_SOUP : 1'
- 'MUSHROOM_SOUP : 1'
- 'MUSHROOM_SOUP : 1'
- 'MUSHROOM_SOUP : 1'
- 'MUSHROOM_SOUP : 1'
- 'MUSHROOM_SOUP : 1'
- 'MUSHROOM_SOUP : 1'
- 'MUSHROOM_SOUP : 1'
- 'MUSHROOM_SOUP : 1'
- 'MUSHROOM_SOUP : 1'
- 'MUSHROOM_SOUP : 1'
- 'MUSHROOM_SOUP : 1'
Abilities:
- Dragon
Potion-Effects:
- 'FIRE_RESISTANCE : 999999 : 1'
Description:
- '&bBreathe fire!'
- '&bAnd be immune for fire damage'

Spoiler: Achievements.yml
Code (Text):
Achievements:
kills:
'10':
description: Get 10 kills!
prize-description: Earn 50 coins!
executed-command: kb coins add %player% 50
'50':
description: Get 50 kills!
prize-description: Earn 250 coins!
executed-command: kb coins add %player% 250
'100':
description: Get 100 kills!
prize-description: Earn 500 coins!
executed-command: kb coins add %player% 500
'200':
description: Get 200 kills!
prize-description: Earn 1000 coins!
executed-command: kb coins add %player% 1000
'300':
description: Get 300 kills!
prize-description: Earn 1500 coins!
executed-command: kb coins add %player% 1500
'400':
description: Get 400 kills!
prize-description: Earn 2000 coins!
executed-command: kb coins add %player% 2000
'500':
description: Get 500 kills!
prize-description: Earn 2500 coins!
executed-command: kb coins add %player% 2500
'600':
description: Get 600 kills!
prize-description: Earn 3000 coins!
executed-command: kb coins add %player% 3000
'700':
description: Get 700 kills!
prize-description: Earn 3500 coins!
executed-command: kb coins add %player% 3500
'800':
description: Get 800 kills!
prize-description: Earn 4000 coins!
executed-command: kb coins add %player% 4000
'900':
description: Get 900 kills!
prize-description: Earn 4500 coins!
executed-command: kb coins add %player% 4500
'1000':
description: Get 1000 kills!
prize-description: Earn 5000 coins!
executed-command: kb coins add %player% 5000
projectiles_hit:
'5':
description: Hit 5 projectile!
prize-description: Earn 50 coins!
executed-command: kb coins add %player% 50
//More
Spoiler: abilities.yml
Code (Text):
Abilities:
Kangaroo:
Cooldown: 5
Hades:
Cooldown: 45
Amount-Of-Dogs: 3
Dogs-Last-For: 10
Thor:
Cooldown: 10
Lightning-Damage: 4
Strike-Radius: 5
Stomper:
Stomp-Radius: 5
Max-Fall-Damage: 2
Max-Damage-Dealt-When-Stomped-While-Shifting: 2
Spiderman:
Cooldown: 30
Webs-Last-For: 10
Prisoner:
Cooldown: 60
Prison-Lasts-For: 6
Climber:
Cooldown: 30
Time-Until-Chicken-Disappear: 5
Dragon:
Cooldown: 30
Amount-Of-Bursts: 3
Damage-Dealt: 4
Fire-Lasts-For: 5
Fire-Range: 10
Phantom:
Cooldown: 45
Flight-Lasts-For: 5
Timelord:
Cooldown: 45
Freeze-Radius: 7
Freeze-Time: 10
Burrower:
Cooldown: 60
Room-Lasts-For: 8
Zen:
Cooldown: 60
Max-Range: 60
Viper:
Poison-Chance: 5%
Poison-Lasts-For: 10
Poison-Level: 1
Monk:
Cooldown: 45
Hulk:
Cooldown: 30
Damage-Dealt: 5
Damage-Radius: 10
Rider:
Cooldown: 45
Horse-Lasts-For: 10
Summoner:
Cooldown: 70
Golem-Lasts-For: 20
Suicidal:
Cooldown: 30
Fisherman:
Cooldown: 5
Dracula:
Cooldown: 30
Lasts-For: 15

Spoiler: ranks.yml
Code (Text):
Ranks:
Newbie:
Required-Exp: 0
Commands-Excuted-When-Rank-Reached: []
Starter:
Required-Exp: 25
Commands-Excuted-When-Rank-Reached:
- kb coins add %player% 500
- kb kitunlocker give %player% 1
Survivor:
Required-Exp: 75
Commands-Excuted-When-Rank-Reached:
- kb coins add %player% 750
- kb kitunlocker give %player% 1
Pro:
Required-Exp: 150
Commands-Excuted-When-Rank-Reached:
- kb coins add %player% 1000
- kb kitunlocker give %player% 1
Legend:
Required-Exp: 300
Commands-Excuted-When-Rank-Reached:
- kb coins add %player% 2000
- kb kitunlocker give %player% 1
Immortal:
Required-Exp: 600
Commands-Excuted-When-Rank-Reached:
- kb coins add %player% 4000
- kb kitunlocker give %player% 1
God:
Required-Exp: 1200
Commands-Excuted-When-Rank-Reached:
- kb coins add %player% 5000
- kb kitunlocker give %player% 1

Spoiler: shop.yml
Code (Text):
Shops:
'&cList #1':
'10': Prisoner
'11': Burrower
'12': Dracula
'13': Kangaroo
'14': Switcher
'15': Dragon
'16': Spiderman
'19': Assassin
'20': Rider
'21': Miner
'22': Stomper
'23': Ghost
'24': Zombie
'25': Cactus
'28': Summoner
'29': Tank
'30': Hades
'31': Vanilla
'32': Viking
'33': Thor
'34': Zen
'37': Climber
'38': Monk
'39': Phantom
'40': Pyro
'41': Suicidal
'42': Ninja
'43': Archer
'&cList #2':
'10': Timelord
'11': Viper
'12': Fisherman
'13': Hulk

Spoiler: signs.yml
Code (Text):
Signs-Prefix: '&3[&bKB&3]'
Join-Prefix: '&bJoin'
Join-Line-3-Color: '&0'
Leave-Prefix: '&bLeave'
Soup-Prefix: '&bSoup'
Stats-Prefix: '&bStats'

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

[IMG]


Video on version 5.0




Spoiler: Outdated videos



=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-


[IMG]



ALL OF THEM ARE OUTDATED FOR VERSION 3.8

English review made by
LtJim007



Spanish review made by

YanFrancisco



=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

[IMG]


Spoiler: Pictures
[IMG]

[IMG]

[IMG]

[IMG]

[IMG]

[IMG]

[IMG]

[IMG]

[IMG]

[IMG]

[IMG]

[IMG]

[IMG]

[IMG]

[IMG]

[IMG]

[IMG]

[IMG]

[IMG]

[IMG]

[IMG]

[IMG]

[IMG]

[IMG]

[IMG]

[IMG]
[IMG]

[IMG]
[IMG]

[IMG]

[IMG]

[IMG]

[IMG]

[IMG]


=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-


[IMG]


Spoiler: Signs
Join signs:
Line-1: [kb]
Line-2: join
Line-3: <Map>

Leave signs:

Line-1: [kb]
Line-2: leave

Stats signs:

Line-1: [kb]
Line-2: stats

Soup signs:

Line-1: [kb]
Line-2: soup
Line-4: this line is optional, but you can add cost here!

Potion signs:

Line-1: [kb]
Line-2: potion
Line-4: this line is optional, but you can add cost here!


Top signs:

Line-1: [kb]
Line-2: top
Line-3: Rank (Rank is the target you looking for, if you want to display top 1, simply enter the number 1, For second player you enter number 2, and so on! the rank can be anything!

Top signs: these signs update every specified minutes (Configurable) to see when the next update occurs use /kb info
To display heads above the signs simply add a skull above it

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-


[IMG]


[IMG]

Get 35% off your first month with code Wazup92
here are some servers you can try out kitbattle on!

mc.esastechnology.com
play.revelationcraft.net
play.mcmexico.net
ContinuityCraft.net
amber.rip
jogar.craftsgp.net
mc.distritomemories.es
mc.galacticmp.net
play.rinaorc.com (the kitbattle server is named sky kit pvp)
perugames.net
play.mc-bananacraft.net
play.castlecrafters.net
play.incognitopvp.com
Mc.golicraft.net
play.decemcraft.nl
planetmine.org

Post your servers that have KitBattle running on it and i may add it

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-


[IMG]


Spoiler: Setup Text
Use /kb create <Map name> <Normal/Tournament/Challenge> to create a new map, 'Normal' is the normal free play map that people can join, 'Tournament' is a map that people can not join manually but they have to queue for tournaments, 'Challenge' is a map for challenges that people queue for, and it must have 2 spawn points for the 2 teams (RED/BLUE).

* Running the create command will automatically run the /kb addspawn <Map> command so that it adds a spawnpoint at your location, so create the map at the spawnpoint location. You can add as many as you want with the command or remove spawnpoints with /kb removespawn <Map>. If you created a challenge map then you MUST have 2 spawnpoints minimum.

Finished! It is as simple as that! 'create' 'addspawn' 'finished'

You can additionally add a spawn region in your 'normal' maps, this prevents players from using their kit abilities in spawn and pvp. to do so you do /kb wand to get the wand, then you select the 2 corners surrounding your spawn, and then you do /kb addspawncuboid <Map>

To join challenge/tournament maps, players have to be first inside a normal map.

If you want players to automatically run /kb join when they join the server then you have to enable bungee mode after you create these maps, Bungee-Mode is located in config.yml

To generate holographic leaderboards, you need to have HolographicDisplays plugin installed on the server and then run the command /kb holograms set leaderboard, at the desired location

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-


[IMG]



The plugin is made for 1.7.9+


While modifying any file (kits.yml for example) make sure to not mess up the file with incorrect letters/format or anything of this sort or otherwise the file would reset! To make sure that what you have written is correct, paste your modifications into this: https://yaml-online-parser.appspot.com/

Any plugin that prevents teleporting while in combat such as CombatLog may cause bugs with KitBattle!

If your players keep their items after dying in kitbattle then make sure that gamerule keepInventory is off and that there is no other plugins causing this! EssentialsX is one of the plugins that cause this because it keeps players inventory if they have a certain permission for example.

The amount of trails you get on your server depends on your version! To get the most use 1.11.2

In order to have Holographic leaderboards you need to install HolographicDisplays!

Read update notes!

Using mysql is highly recommended!

Im sorry for any grammar mistakes! im not English.

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-


API
Spoiler: API
Code (Text):
KitbattleAPI api = Kitbattle.getInstance().kitbattleApi;

Player player = Bukkit.getPlayer("Wazup92");

//You can access player data with this method
PlayerData data = api.getPlayerData(player);

//Using player data, you can modify statistics or get them and also do other things.
data.addExp(player, 5);
int coins = data.getCoins(player);


//The below is to get the top players
//This should run ASYNC

try {
HashMap<String, String> playersData = api.getAllPlayersData();
List<Entry<String, Integer>> topKillers = api.getTopPlayers(playersData, Stat.KILLS, 10); //This orders the data based on the KILLS stat, and it gets the top 10

for(int i = 0; i < 10; i++) {
Bukkit.broadcastMessage("#" + (i + 1) + " is " + topKillers.get(i).getKey() + " with a score of " + topKillers.get(i).getValue());
}

} catch (SQLException e) {
e.printStackTrace();
}


//To register your own abilities, you have to use the method below
AbilityManager.getInstance().registerAbility(new MyAbility());

//If your custom abilities read values from the abilities.yml file, then use
AbilityManager.getInstance().loadAbilitiesConfig();

//After registering all of your custom abilities, you should call the following method
AbilityManager.getInstance().updateKitAbilities();
Abilities example code
Spoiler: Kangaroo Ability
Code (Text):
package me.wazup.kitbattle.abilities.list;

import org.bukkit.Material;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.Player;
import org.bukkit.event.Event;
import org.bukkit.util.Vector;

import me.wazup.kitbattle.PlayerData;
import me.wazup.kitbattle.XMaterial;
import me.wazup.kitbattle.abilities.Ability;

public class KangarooAbility extends Ability {

int cooldown;

@Override
public String getName() {
return "Kangaroo";
}

@Override
public void load(FileConfiguration file) {
cooldown = file.getInt("Abilities.Kangaroo.Cooldown");
}

Material activationMaterial = XMaterial.FIREWORK_ROCKET.parseMaterial();

@Override
public Material getActivationMaterial() {
return activationMaterial;
}

@Override
public EntityType getActivationProjectile() {
return null;
}

@Override
public boolean isAttackActivated() {
return false;
}

@Override
public boolean isAttackReceiveActivated() {
return false;
}

@Override
public boolean isDamageActivated() {
return false;
}

@Override
public boolean isEntityInteractionActivated() {
return false;
}

@Override
public boolean execute(Player p, PlayerData data, Event event) {
if(p.isOnGround()){
if(data.hasCooldown(p, "Kangaroo")) return false;
data.setCooldown(p, "Kangaroo", cooldown, true);

Vector vector = p.getEyeLocation().getDirection();
if(p.isSneaking()){
vector.setY(0.2);
vector.multiply(4);
} else vector.setY(1.2);
p.setVelocity(vector);

return true;
}

return false;
}

}

Spoiler: Spiderman Ability
Code (Text):
package me.wazup.kitbattle.abilities.list;

import java.util.ArrayList;
import java.util.List;

import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.block.BlockState;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.Player;
import org.bukkit.entity.Snowball;
import org.bukkit.event.Event;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.bukkit.metadata.FixedMetadataValue;

import me.wazup.kitbattle.Kitbattle;
import me.wazup.kitbattle.PlayerData;
import me.wazup.kitbattle.Utils;
import me.wazup.kitbattle.XMaterial;
import me.wazup.kitbattle.abilities.Ability;

public class SpidermanAbility extends Ability {

int cooldown;
int duration;

@Override
public String getName() {
return "Spiderman";
}

@Override
public void load(FileConfiguration file) {
cooldown = file.getInt("Abilities.Spiderman.Cooldown");
duration = file.getInt("Abilities.Spiderman.Webs-Last-For") * 20;
}

Material activationMaterial = XMaterial.COBWEB.parseMaterial();
EntityType activationProjectile = EntityType.SNOWBALL;

@Override
public Material getActivationMaterial() {
return activationMaterial;
}

@Override
public EntityType getActivationProjectile() {
return activationProjectile;
}

@Override
public boolean isAttackActivated() {
return false;
}

@Override
public boolean isAttackReceiveActivated() {
return false;
}

@Override
public boolean isDamageActivated() {
return false;
}

@Override
public boolean isEntityInteractionActivated() {
return false;
}

@Override
public boolean execute(Player p, PlayerData data, Event event) {
if(event.getEventName().equals("PlayerInteractEvent")) {

if(data.hasCooldown(p, "Spiderman")) return false;
data.setCooldown(p, "Spiderman", cooldown, true);
Kitbattle.getInstance().sendUseAbility(p, data);
p.launchProjectile(Snowball.class).setMetadata("spiderman", new FixedMetadataValue(Kitbattle.getInstance(), true));
return true;

} else {
EntityDamageByEntityEvent e = (EntityDamageByEntityEvent) event;
if(e.getDamager().hasMetadata("spiderman")){

Kitbattle plugin = Kitbattle.getInstance();

Player damaged = (Player) e.getEntity();

Location loc = damaged.getLocation();
final List<BlockState> blocks = new ArrayList<BlockState>();
Block b = loc.getBlock();
if(b.getType().equals(Material.WATER) || b.getType().equals(Material.LAVA)){
loc.add(0, 1, 0);
b = loc.getBlock();
}
Material webMaterial = XMaterial.COBWEB.parseMaterial();
for(Location x: Utils.getSurroundingLocations(loc)){
if(webMaterial.equals(x.getBlock().getType())) continue;
blocks.add(x.getBlock().getState());
}
if(!webMaterial.equals(b.getType())){
blocks.add(b.getState());
}
for(BlockState oo: blocks){
plugin.toRollback.add(oo);
oo.getBlock().setType(webMaterial);
}
Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, new Runnable(){
public void run(){
for(BlockState state: blocks){
state.getWorld().createExplosion(state.getLocation(), 0, false);
Utils.Rollback(state);
plugin.toRollback.remove(state);
}
}
}, duration);
return true;
}
return false;
}
}

}

if getActivationMaterial() does not return null, that means that this ability is activated by right clicking a specific material.

if getActivationProjectile() does not return null, that means that this ability is activated when a player hits another player with a projectile

if isAttackActivated is true, that means that this ability activates when the player attacks another player

if isAttackReceiveActivated is true, that means that this ability activates when the player is damaged by another player

if isDamageActivated is true, that means that the ability is activated when the player is damaged in general

if isEntityInteractionActivated is true, that means that the ability is activated when the player right clicks another player

Any of the above will call the execute method and pass the event that caused the ability to fire.

the execute method should return true if the PlayerUseAbilityEvent should be fired, and should return false if the event should not be fired.

Events:
Event name: PlayerUseAbilityEvent
Getters: getPlayer(), getAbility()

Event name: PlayerSelectKitEvent
Getters: getPlayer(), getKit();
Spoiler: Placeholders
PlaceholderAPI / MVdWPlaceholderAPI support:
General placeholders:

kitbattle_players_count, kitbattle_maps_count, kitbattle_kits_count, kitbattle_ranks_count

Player specific placeholders:
kitbattle_kills, kitbattle_killstreak, kitbattle_deaths, kitbattle_player_exp, kitbattle_player_rank, kitbattle_player_rank_prefix, kitbattle_player_next_rank, kitbattle_player_next_rank_exp, kitbattle_player_next_rank_exp_difference, kitbattle_map, kitbattle_selected_kit, kitbattle_coins, kitbattle_deathstreak

If you want to use the placeholders in the normal map scoreboard customization (messages.yml) then remove kitbattle_, so for example the placeholder %kitbattle_kills% becomes %kills%

[IMG]


There are several ways to get support! Please use any of the following

[IMG]

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-


[IMG]


Please note that by buying this plugin you agree to the following!
1 - You are not allowed to -Redacted- this plugin any where! not even with your friends!
2 - Source code costs additional money! and you may modify the code for personal use only.
4 - No stupid reviews, such as (Its missing features! or the dev isn't adding features i request) Because the features are in the main page! and you knew them before purchasing, so no complaining!
5 - No refunds!
6 - Im not obligated to do updates at a specific time, BUT that doesn't mean i wont do updates, just to clear some things up

Latest reviews

Is a 3.7 version update it pls

Similar resources

KitBattle Advanced Skoo
Advanced version of KitBattle, The ultimate kitpvp plugin!
1.00 star(s) 5 ratings
Downloads
274
Updated
KitBattle Advanced NOVAPIE
Advanced version of KitBattle, The ultimate kitpvp plugin!
0.00 star(s) 0 ratings
Downloads
18
Updated
KitBattle Advanced M
Advanced version of KitBattle, The ultimate kitpvp plugin!
0.00 star(s) 0 ratings
Downloads
72
Updated
BlackSpigot General Chat
Rules Help Users
    S @ SexyRapidFish: 1000+ LEAKED STUFF FREE; EVERYTHING CRACKED NO VIRUSSES; flexleaksdotn et
    Top