Помогите Плагин на торговца - жителя

  • Автор темы Автор темы Sergeo
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

Sergeo

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
Solomka
У меня очень массивный вопрос :). Если можно с примерами кода))

Во-первых, как сделать спавн жителя на рандомных координатах и его не могли бить или же убить, а так же он не мог двигаться, если я сделал верно, то пропускайте, а если нет поправьте :)

Код:
private Location niceRandLoc (Location loc0) {
Location loc1 = randLoc(loc0);
if (loc1.getWorld().getBlockAt(loc1.getBlockX(), loc1.getBlockY() - 1, loc1.getBlockZ()).getType() == WHATEVER BLOCK)
loc1 = niceRandLoc(loc0);
return loc1;
}

Во-вторых, мне надо получить координаты жителя на которых он заспавнится и создать там регион на 10 блоков на время пока житель не пропадает(об этом в след пункте).

В-третьих, Как получить механику жителя, если я сделал верно пропускайте этот пункт, а если нет, то поправьте :).
Его обмен товарами и создать время спустя которое он будет появляться и исчезать ( это будет настраиваться в конфиге плагина )


Код:
        @Override
        public boolean isTrading() {
            MerchantAPI api = MerchantAPI.get();
            // Create a new merchant
            MerchantAPI merchant = api.newMerchant("Village");
            // Add some offers
            // Arg: 1=result; 2=first offer item; 3=(optional)second offer item
            merchant.addOffer(api.newOffer(new ItemStack(Material.EMERALD, 10), new ItemStack(Material.DIAMOND, 3)));
            merchant.addOffer(api.newOffer(new ItemStack(Material.EMERALD, 30), new ItemStack(Material.DIAMOND, 3),
                    new ItemStack(Material.STONE, 64)));
            // Open the inventory for a player
            Player player = (Player) player; // Access by any way
            merchant.addCustomer(player);
            return true;
        }


Код:
    @EventHandler
    public void onInteract1(PlayerInteractEntityEvent e) {
        Player p = e.getPlayer();
        if (p.hasPermission("villager.interact") && e.getRightClicked() instanceof LivingEntity) {
            LivingEntity en = (LivingEntity) e.getRightClicked();
            int x = (int) en.getLocation().getX();
            int y = (int) en.getLocation().getY();
            int z = (int) en.getLocation().getZ();
            if (en.getType() == EntityType.VILLAGER && en.getLocation().getX() == x && en.getLocation().getY() == y
                    && en.getLocation().getZ() == z
                    && en.getLocation().getWorld().getName().equalsIgnoreCase("world")) {

                e.setCancelled(true);
                Inventory i = Bukkit.createInventory(null, InventoryType.MERCHANT);
                i.setItem(0, new ItemStack(Material.APPLE));
                i.setItem(1, new ItemStack(Material.STONE));
            }
        }
    }

    @EventHandler
    public void onInteract2(PlayerInteractEntityEvent e) {
        Player p = e.getPlayer();
        if (!p.hasPermission("villager.interact"))
            return;
        if (!(e.getRightClicked() instanceof LivingEntity))
            return;
        LivingEntity en = (LivingEntity) e.getRightClicked();
        if (en.getType() != EntityType.VILLAGER)
            return;
        int x = (int) en.getLocation().getX();
        int y = (int) en.getLocation().getY();
        int z = (int) en.getLocation().getZ();
        if (en.getLocation().getX() != x)
            return;
        if (en.getLocation().getY() != y)
            return;
        if (en.getLocation().getZ() != z)
            return;
        if (!en.getLocation().getWorld().getName().equalsIgnoreCase("world"))
            return;

        e.setCancelled(true);
        Inventory i = Bukkit.createInventory(null, InventoryType.MERCHANT);
        i.setItem(0, new ItemStack(Material.APPLE));
        i.setItem(1, new ItemStack(Material.STONE));
    }

В четвертых, мне нужно сделать так: при обмене какой-то вещи у жителя у игрока снимались деньги и опыт.

Это весь мой вопрос! Надеюсь будет человек, который сможет мне помочь :)
 
Последнее редактирование:
Тема закрыта. Плагин был написан мной :)
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх