What's new
Versions
  1. 1.8
  2. 1.9
  3. 1.10
  4. 1.11
  5. 1.12
  6. 1.13
  7. 1.14
  8. 1.15
  9. 1.16
  10. 1.17
  11. 1.18
  12. 1.19
5N3NqJj.png


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!


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

Sd5s8Xt.png


- 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
- CrackShot support
- 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
- Guns support through QualityArmory
- 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
- Built in Combat Log!
- 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!


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

CpFCmF5.png


/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!
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!


The remaining files below are of an old version
Code:
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

This is a sample and not the full file
Code:
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'

Code:
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

Code:
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

Code:
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

Code:
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

Code:
Signs-Prefix: '&3[&bKB&3]'
Join-Prefix: '&bJoin'
Join-Line-3-Color: '&0'
Leave-Prefix: '&bLeave'
Soup-Prefix: '&bSoup'
Stats-Prefix: '&bStats'

Pre-made translations of files into different languages

You can of course translate the files on your own, but here are some pre-made translations done by the community.
Please note that these translations are made by users and not by me. You should check these files using a yaml parser before installing them on the server as they might have some errors.

https://1drv.ms/u/s!Ar7IHWG_oZWhgR4S9x-A-0nhEYCm?e=cGhIE7
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

BpRsvWB.png


Video on version 5.0





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


Xl23dUb.png



ALL OF THEM ARE OUTDATED FOR VERSION 3.8

English review made by
LtJim007


Spanish review made by

YanFrancisco


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

biNfKm5.png


ZtQmuR9.png

2udSDG3.png

toiMrbT.png

9ZWRpzo.png

tmYWSqQ.png

hSpchRW.png

0KYi7hK.png

QKF2TDk.png

igxwvix.png

1LhR7yo.png

PjicfYN.png

Etr4RkC.png

9S4MrDY.png

XpWyrn8.png

eVyf5CZ.png

gHwvveY.png

8nmhGvR.png

plbgnJE.png

W2Ya7Af.png

dXsJ3Uk.png

hc2KyCb.png

JBh19B3.png

I7oRuHa.png

o1VXXSl.png

Ajz7oHT.png

wReOsSA.png
YxeLsCC.gif

8AXFVhx.png
RdLV4pJ.gif

VmVDS1T.gif

zdJJlxI.png

u9p4fJh.png

D4hLQCC.png

YaPsdYp.png


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


Uho8Lr6.png


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

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

Kw04LHi.png


here are some servers you can try out kitbattle on!

proyectolatino.online
play.purpleland.ml
mc.HyperCraft.cz
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


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


zGrESMe.png


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

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


8H0aXLz.png



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
Code:
        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
Code:
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;
    }

}

Code:
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();


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, kitbattle_ability_cooldown, kitbattle_bounty, kitbattle_elo, kitbattle_kdr

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%

U0hugLN.jpg

Check out my other projects as well!







ahlhDEx.jpg

psaAgsL.gif

- 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!

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

4gVBXC5.jpg


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


    • Discussion area

    • Private Message

    • Discord (Click image below to join)


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

JaI8EGa.png


Please note that by buying this plugin you agree to the following!
1 - You are not allowed to redistribute 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
Author
Wazup92
Downloads
0
Type
Digital product
License Duration
Unlimited
Price
13.00 USD
Views
647
First release
Last update
Rating
0.00 star(s) 0 ratings

More resources from Wazup92

Top