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
//More
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
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;
}
}
}