Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Помогите Высота Y отмена действия если Y > 80

NINJA

Старожил
Пользователь
Баллы
123
Здравствуйте , можете помочь с кодом, идея такова:
Если высота Y>80(или любого другого числа) то действие к примеру розлив воды (или установка блока)event.setCancelled(true);
В набросках нечто ужасное как вот так :
Код:
@EventHandler
public void OnBlockPlace(BlockPlaceEvent e) {
int y = 80;
if (e.getBlock().getY() > y){
e.setCancelled(true);
}
}
 
Я переработал
Код:
  }
@EventHandler
public void OnBlockPlace(BlockPlaceEvent e) {
int y = 80;
if (e.getBlock().getY() > y){
e.setCancelled(true);
}
}
но тут запрещает вообще строить выше 80 всем я бы хотел только блокировать например воду из ведра и как блок к примеру булыжник . Как блокировать их отдельно ? на этой основе?
 
Я переработал
Код:
  }
@EventHandler
public void OnBlockPlace(BlockPlaceEvent e) {
int y = 80;
if (e.getBlock().getY() > y){
e.setCancelled(true);
}
}
но тут запрещает вообще строить выше 80 всем я бы хотел только блокировать например воду из ведра и как блок к примеру булыжник . Как блокировать их отдельно ? на этой основе?
if(event.getPlacedBlock().getType() == Material.блок)
 
if(event.getPlacedBlock().getType() == Material.блок)
Спасибо большое но еще вот проблемка if(e.getBlockPlaced().getType()== Material.WATER_BUCKET) для воды из ведра нельзя только для блока. Вот я вроде помню нужно по другому как то для ведра с водой.
 
Спасибо большое но еще вот проблемка if(e.getBlockPlaced().getType()== Material.WATER_BUCKET) для воды из ведра нельзя только для блока. Вот я вроде помню нужно по другому как то для ведра с водой.
PlayerBucketEmptyEvent
 
Во его искал спасибо большое .:)
Сделал почти все получилось единственное что не завершил так это исключение для Wg не получается. Надо как то проверить есть ли доступ и тогда не отменять действие.
Код:
public void OnPlayerBucketEmptyEvent(PlayerBucketEmptyEvent e) {
final Player p = (Player) e.getPlayer();
int y = 80;
if (e.getBlockClicked().getY() > y){
    e.setCancelled(true);
p.sendMessage(ChatColor.GOLD + "Вы не можете разлить воду на этой высоте."); 
 
}
private WorldGuardPlugin getWorldGuard уже есть но как проверить доступ к региону не получается.
 
Смотрел но не получается.
Код:
  @EventHandler
public void OnPlayerBucketEmptyEvent(PlayerBucketEmptyEvent e) {
 
final Player p = (Player) e.getPlayer();
int y = 80;
if (e.getBlockClicked().getY() > y){
    e.setCancelled(true);
p.sendMessage(ChatColor.GOLD + "Вы не можете разлить воду на этой высоте."); 
if (getWorldGuard().canBuild(p, ???)){
e.setCancelled(false);
}
}
}
 
Смотрел но не получается.
Код:
  @EventHandler
public void OnPlayerBucketEmptyEvent(PlayerBucketEmptyEvent e) {
 
final Player p = (Player) e.getPlayer();
int y = 80;
if (e.getBlockClicked().getY() > y){
    e.setCancelled(true);
p.sendMessage(ChatColor.GOLD + "Вы не можете разлить воду на этой высоте.");
if (getWorldGuard().canBuild(p, ???)){
e.setCancelled(false);
}
}
}
getWorldGuard().canBuild(p, event.getBlockClicked)
Что сложного?
 

Поделиться этой страницей

Назад
Верх