 
                Advanced version of KitBattle, The ultimate kitpvp plugin!

 
 
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
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'
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
//MoreAbilities:
  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
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
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
Signs-Prefix: '&3[&bKB&3]'
Join-Prefix: '&bJoin'
Join-Line-3-Color: '&0'
Leave-Prefix: '&bLeave'
Soup-Prefix: '&bSoup'
Stats-Prefix: '&bStats'



 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  

 
 
 
 
 
 
 
 
 



        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 playersData = api.getAllPlayersData();
            List> 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();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;
    }
}
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 blocks = new ArrayList();
            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;
        }
    }
}
 

 



 

 

 
 
 
 
 


