- Баллы
- 76
- Имя в Minecraft
- Solomka
У меня очень массивный вопрос
. Если можно с примерами кода))
Во-первых, как сделать спавн жителя на рандомных координатах и его не могли бить или же убить, а так же он не мог двигаться, если я сделал верно, то пропускайте, а если нет поправьте
Во-вторых, мне надо получить координаты жителя на которых он заспавнится и создать там регион на 10 блоков на время пока житель не пропадает(об этом в след пункте).
В-третьих, Как получить механику жителя, если я сделал верно пропускайте этот пункт, а если нет, то поправьте
.
Его обмен товарами и создать время спустя которое он будет появляться и исчезать ( это будет настраиваться в конфиге плагина )
В четвертых, мне нужно сделать так: при обмене какой-то вещи у жителя у игрока снимались деньги и опыт.
Это весь мой вопрос! Надеюсь будет человек, который сможет мне помочь
. Если можно с примерами кода))Во-первых, как сделать спавн жителя на рандомных координатах и его не могли бить или же убить, а так же он не мог двигаться, если я сделал верно, то пропускайте, а если нет поправьте

Код:
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));
}
В четвертых, мне нужно сделать так: при обмене какой-то вещи у жителя у игрока снимались деньги и опыт.
Это весь мой вопрос! Надеюсь будет человек, который сможет мне помочь

Последнее редактирование: