Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

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

Тема в разделе "Разработка плагинов для новичков", создана пользователем NINJA, 10 окт 2013.

  1. Автор темы
    NINJA

    NINJA Старожил Пользователь

    Баллы:
    123
    Здравствуйте , можете помочь с кодом, идея такова:
    Если высота Y>80(или любого другого числа) то действие к примеру розлив воды (или установка блока)event.setCancelled(true);
    В набросках нечто ужасное как вот так :
    Код:
    @EventHandler
    public void OnBlockPlace(BlockPlaceEvent e) {
    int y = 80;
    if (e.getBlock().getY() > y){
    e.setCancelled(true);
    }
    }  
     
  2. Хостинг MineCraft
    <
  3. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    event.getPlacedBlock()[DOUBLEPOST=1381412801,1381412619][/DOUBLEPOST]
    А это ещё что за бред? Какое ещё действие в установке блока может быть, кроме как установка блока?
     
  4. Автор темы
    NINJA

    NINJA Старожил Пользователь

    Баллы:
    123
    Я переработал
    Код:
      }
    @EventHandler
    public void OnBlockPlace(BlockPlaceEvent e) {
    int y = 80;
    if (e.getBlock().getY() > y){
    e.setCancelled(true);
    }
    }  
    но тут запрещает вообще строить выше 80 всем я бы хотел только блокировать например воду из ведра и как блок к примеру булыжник . Как блокировать их отдельно ? на этой основе?
     
  5. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    if(event.getPlacedBlock().getType() == Material.блок)
     
  6. Автор темы
    NINJA

    NINJA Старожил Пользователь

    Баллы:
    123
    Спасибо большое но еще вот проблемка if(e.getBlockPlaced().getType()== Material.WATER_BUCKET) для воды из ведра нельзя только для блока. Вот я вроде помню нужно по другому как то для ведра с водой.
     
  7. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    PlayerBucketEmptyEvent
     
    fromgate нравится это.
  8. Автор темы
    NINJA

    NINJA Старожил Пользователь

    Баллы:
    123
    Во его искал спасибо большое .:)[DOUBLEPOST=1381420628,1381414470][/DOUBLEPOST]Сделал почти все получилось единственное что не завершил так это исключение для 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 уже есть но как проверить доступ к региону не получается.
     
    GJEvolution нравится это.
  9. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
  10. Автор темы
    NINJA

    NINJA Старожил Пользователь

    Баллы:
    123
    Смотрел но не получается.
    Код:
      @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);
    }
    }
    }
     
  11. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    getWorldGuard().canBuild(p, event.getBlockClicked)
    Что сложного?
     
    DJames нравится это.
  12. Автор темы
    NINJA

    NINJA Старожил Пользователь

    Баллы:
    123
    Спасибо теперь понятно :)
     

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