Skip to content
Plajer edited this page May 16, 2018 · 49 revisions

Developer API

Table of contents

❗️ Contents may be not up to date! Please use java docs instead. Here you can only get some simple examples.

Events


VillageGameJoinAttemptEvent (Cancellable)

The event is called when a player is trying to join an arena.

Example:

    @EventHandler
    public void onGameJoin(VillageGameJoinAttemptEvent e){
        e.getPlayer().sendMessage("You have joined " + e.getArena().getID());
        e.setCancelled(true);
        e.getPlayer().sendMessage("Or maybe not? :D");
    }

event#getPlayer() - returns player involved in this event

event#getArena() - returns existing arena where player is attempting to join


VillageGameStartEvent

The event is called when arena starts.

Example:

    @EventHandler
    public void onGameStart(VillageGameStartEvent e){
        for(Player p : e.getArena().getPlayers()){
            p.sendMessage("Game has started!");
        }
    }

event#getArena() - returns event arena


VillageGameLeaveAttemptEvent

The event is called when a player is trying to leave an arena.

Example:

    @EventHandler
    public void onGameQuit(VillageGameLeaveAttemptEvent e){
        e.getPlayer().sendMessage("You have quitted" + e.getArena().getID());
    }

event#getPlayer() - returns player involved in this event

event#getArena() - returns existing arena what player is attempting to leave


VillageGameStopEvent

The event is called when a game is stopped.

Example:

    @EventHandler
    public void onGameStop(VillageGameStopEvent e){
        for(Player p : e.getArena().getPlayers()){
            p.sendMessage("You've lost the game! Maybe play again?");
        }
    }

event#getArena() - returns existing arena that is stopped


VillageWaveEndEvent

The event is called when wave is finished (all zombies are killed).

Example:

    @EventHandler
    public void onWaveEnd(VillageWaveEndEvent e){
        for(Player p : e.getArena().getPlayers()){
            p.sendMessage("Wave has ended! You recived free diamond!");
            p.getInventory().addItem(new ItemStack(Material.DIAMOND, 1);
        }
    }

event#getArena() - returns event arena

event#getWaveNumber() - returns number of current wave


VillageWaveStartEvent

The event is called when wave starts.

Example:

    @EventHandler
    public void onWaveStart(VillageWaveStartEvent e){
        for(Player p : e.getArena().getPlayers()){
            p.sendMessage("Wave has started! Good luck.");
        }
    }

event#getArena() - returns event arena

event#getWaveNumber() - returns number of current wave

Stats storage

Table of contents

Retrieving online players stats

You can easily get online players stats using VD3 API - Stats Storage class.

Example:

    public int getZombieKills(Player p){
        return StatsStorage.getUserStats(p, StatsStorage.StatisticType.KILLS);
    }

Very easy, right?


Available statistic types

Statistic name (enum) Statistic identifier (string) (for advanced things) Type
KILLS kills int
DEATHS deaths int
GAMES_PLAYED gamesplayed int
HIGHEST_WAVE highestwave int
LEVEL level int
XP xp int

Kit registry

Registering new kit is quite simple. We need to implement all methods from abstract Kit class and edit it by yourself. After that just register it via KitRegistry.

Example:

        //This kit will be premium
        Kit supporter = new PremiumKit() {
            //We need to implement methods from abstract Kit class

            //Permissions needed to unlock it, if it is free just return true
            @Override
            public boolean isUnlockedByPlayer(Player p) {
                return p.hasPermission("my.super.kit");
            }

            //Items given on game start
            @Override
            public void giveKitItems(Player player) {
                player.getInventory().addItem(new ItemStack(Material.IRON_AXE, 1));
                player.getInventory().addItem(new ItemStack(Material.GOLDEN_APPLE, 5));
            }

            //Material represented by this kit in the kit menu. Must be unique!
            @Override
            public Material getMaterial() {
                return Material.GOLDEN_APPLE;
            }

            //Items given every next wave
            @Override
            public void reStock(Player player) {
                player.getInventory().addItem(new ItemStack(Material.GOLDEN_APPLE, 1));
            }
        };
        //Now just set kit name and description and register it via KitRegistry
        supporter.setName("Supporter");
        supporter.setDescription(new String[]{ChatColor.GREEN + "My super description"});
        KitRegistry.registerKit(supporter);

Clone this wiki locally