1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Помогите чтобы у меня не спаунились лошадки (и остальные того же вида) при натуральном спауне и генерации.

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

Статус темы:
Закрыта.
  1. Автор темы
    HauserGrim

    HauserGrim Активный участник Пользователь

    Баллы:
    96
    Короче говоря, хочу, чтобы у меня не спаунились лошадки (и остальные того же вида, т.е. ослики и мулы) при натуральном спауне и генерации.
    Не кодер и кодить не умею, но что-то сделал, что не выдавало ошибок компилятором.
    Код:
    package hausergrim;
    
    import org.bukkit.event.entity.CreatureSpawnEvent;
    import org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason;
    import org.bukkit.entity.EntityType;
    import org.bukkit.plugin.java.JavaPlugin;
    
    public class Main extends JavaPlugin {
    
      public void onSpawn(CreatureSpawnEvent e) {
        e.getSpawnReason();
        if(e.getSpawnReason() == SpawnReason.NATURAL);
        else if(e.getSpawnReason() == SpawnReason.CHUNK_GEN);
        {
          if(e.getEntityType().equals(EntityType.HORSE));
          else if(e.getEntityType().equals(EntityType.DONKEY));
          else if(e.getEntityType().equals(EntityType.MULE));
          {
            e.setCancelled(true);
          }
        }
      }
    }
     
  2. detamusi18429

    detamusi18429 Участник Пользователь

    Баллы:
    36
    Имя в Minecraft:
    detamusi18429
    Не много ли точек с запятой? Да и результат условий где, ты их else поперекрывал
    upload_2019-1-24_18-15-30.png
     

    Вложения:

  3. InterWall

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

    Баллы:
    173
    А вот здесь точно скобки { } нужны? Или ; убрать надо. Уже второй пост с такими вижу.
     
  4. IlyaHaker

    IlyaHaker Активный участник Пользователь

    Баллы:
    76
    Код:
    if(e.getSpawnReason() == SpawnReason.CHUNK_GEN && e.getEntityType().equals(EntityType.MULE)
        e.setCancelled(true);
    
    Остальное-то незачем
     
  5. Dymeth

    Dymeth Активный участник Пользователь

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Сказано же - для всех видов лошадей.
    Максимум, что тут сработает:
    e instanceof Horse
     
  6. IlyaHaker

    IlyaHaker Активный участник Пользователь

    Баллы:
    76
    хз, не читал сам пост, посмотрел тока на код
    ну тогда да, все условия через связку "ИЛИ" объеденить
     
    Последнее редактирование: 24 янв 2019
  7. Exception_Prototype

    Exception_Prototype Активный участник Пользователь

    Баллы:
    96
    Хз, попробуй так
    PHP:
    @EventHandler(ignoreCancelled true)
    void onSpawn(CreatureSpawnEvent event) {
        
    CreatureSpawnEvent.SpawnReason reason event.getSpawnReason();
        if ((
    reason == CreatureSpawnEvent.SpawnReason.CHUNK_GEN || reason == CreatureSpawnEvent.SpawnReason.NATURAL) && (event.getEntity() instanceof Horse)) {
                
    event.setCancelled(true);
        }
    }
     
    Последнее редактирование: 24 янв 2019
  8. Автор темы
    HauserGrim

    HauserGrim Активный участник Пользователь

    Баллы:
    96
    Дошел к вот этому, но это не работает
    Код:
    package hausergrim;
    
    import org.bukkit.event.entity.CreatureSpawnEvent;
    import org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason;
    import org.bukkit.entity.EntityType;
    import org.bukkit.plugin.java.JavaPlugin;
    
    public class Main extends JavaPlugin {
    
      public void onSpawn(CreatureSpawnEvent e) {
          
        e.getSpawnReason();
        if(e.getSpawnReason() == SpawnReason.NATURAL || e.getSpawnReason() == SpawnReason.CHUNK_GEN && e.getEntityType().equals(EntityType.HORSE) || e.getEntityType().equals(EntityType.DONKEY) || e.getEntityType().equals(EntityType.MULE))
        {
          e.setCancelled(true);
        }
      }
    }

    Сейчас попробую
     
  9. Автор темы
    HauserGrim

    HauserGrim Активный участник Пользователь

    Баллы:
    96
    upload_2019-1-24_21-7-11.png
    Мне показалось, они ржали надо мной.
     
  10. DeethzzCoder

    DeethzzCoder Активный участник Пользователь

    Баллы:
    76
    А ивент регать, не?
     
  11. Exception_Prototype

    Exception_Prototype Активный участник Пользователь

    Баллы:
    96
    Делай отладку, выводи причину спавна, тип энтити и т.д., смотри что не подходит под условие.
     
  12. Exception_Prototype

    Exception_Prototype Активный участник Пользователь

    Баллы:
    96
    ООооо, да тут на столько...
    PHP:
    public final class Main extends JavaPlugin implements Listener {

        @
    Override
        
    public void onEnable() {
            
    super.onEnable();
            
    Bukkit.getPluginManager().registerEvents(thisthis);
            
    getLogger().info("Plugin ON!");
        }


        @
    EventHandler(ignoreCancelled true)
        
    void onSpawn(CreatureSpawnEvent event) {
            
    CreatureSpawnEvent.SpawnReason reason event.getSpawnReason();
            if ((
    reason == CreatureSpawnEvent.SpawnReason.CHUNK_GEN || reason == CreatureSpawnEvent.SpawnReason.NATURAL) && (event.getEntity() instanceof Horse)) {
                
    event.setCancelled(true);
            }
        }
        
        @
    Override
        
    public void onDisable() {
            
    super.onDisable();
            
    getLogger().info("Plugin OFF!");
        }

    }
     
  13. Автор темы
    HauserGrim

    HauserGrim Активный участник Пользователь

    Баллы:
    96
    Да я с самого начала сказал что ничего не умею и тяп ляп, пока ошибки не перестало показывать, и готово.
     
  14. Exception_Prototype

    Exception_Prototype Активный участник Пользователь

    Баллы:
    96
    Дичь, про эвенты ты как то узнал, а про то, что на них нужно подписываться для прослушивания нет?
     
  15. Автор темы
    HauserGrim

    HauserGrim Активный участник Пользователь

    Баллы:
    96
    Да я такой, я почему-то часто не знаю самых базовых вещей.
    Было как-то тупо смотреть примеры в некоторых плагинах, но не смотреть как они начинаются...
     
  16. Exception_Prototype

    Exception_Prototype Активный участник Пользователь

    Баллы:
    96
    Короче, ты проверил? Я тебе всё скинул - иди тести.
     
  17. Автор темы
    HauserGrim

    HauserGrim Активный участник Пользователь

    Баллы:
    96
    Да проверял, лошадей не нашел, зато ослов нашел
     
  18. DeethzzCoder

    DeethzzCoder Активный участник Пользователь

    Баллы:
    76
    Ну естественно, в коде проверка только на лошадей.
     
  19. Автор темы
    HauserGrim

    HauserGrim Активный участник Пользователь

    Баллы:
    96
    Осталось осознать instanceof, но сегодня я уже думать не хочу.
    Спасибо всем за помощь (а точнее проделанную за меня работу (шутка))
    Завтра осликов прикручу, а сейчас спать пойду.
     
  20. Dymeth

    Dymeth Активный участник Пользователь

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Спаунятся, да, потому что не наследуют класс Horse, как выяснилось.
    Зато есть AbstractHorse, вот он тебе и нужен.
    Его наследуют и лошади, и мулы и прочие парнокопытные.

    instanceof - дословно "является".
    Получится "если (моб является абстрактной лошадью)".
    К абстрактным лошадям относятся:
    ChestedHorse, Donkey, Horse, Llama, Mule, SkeletonHorse, ZombieHorse
    Источник: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/entity/AbstractHorse.html
     
Статус темы:
Закрыта.

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