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

Помогите Не могу заспавнить сущность без игроков

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

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

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

    Баллы:
    61
    Здравствуйте, не могу заспавнить сущность через spawnEntity, то-есть как это работает. Если я рядом нахожусь с локацией где должен заспавниться босс, то он спавнится (в радиусе 20 блоков), а если я ушёл куда-нибудь, то его нету, якобы я телепортируюсь когда заспавнил на точку, а от него следа даже нет только остаётся боссбар, который при перезаходе может пропасть. (Также она пропадает тоже если игрок ушёл от неё)
    Paper 1.19.4, Minecraft, Java

    Код, в котором может возникать ошибка:
    Код:
       public void spawnBoss(Boss boss) {
          this.boss = boss;
          boss.getLocation().getChunk().load();
          this.bossEntity = (LivingEntity)boss.getLocation().getWorld().spawnEntity(boss.getLocation(), boss.getType());
          this.bossEntity.setCanPickupItems(false);
          this.bossEntity.setMaxHealth((double)boss.getHealth());
          this.bossEntity.setHealth((double)boss.getHealth());
          this.bossEntity.setCustomName(boss.getName());
          this.bossEntity.setCustomNameVisible(true);
          this.bossEntity.setGlowing(true);
          if (this.bossEntity.getType() == EntityType.ZOMBIE) {
             ((Zombie)this.bossEntity).setBaby(false);
          }
    
          this.bossEntity.setMetadata(boss.getId(), new FixedMetadataValue(this, "from_ricebosses"));
          this.bossBar = this.getServer().createBossBar(ColorHelper.colorize(Configs.MAIN_CONFIG.getBossbar().replace("%name%", boss.getName()).replace("%health%", String.valueOf(Math.round(this.bossEntity.getHealth())))), boss.getColor(), BarStyle.SEGMENTED_12, new BarFlag[0]);
          this.bossBar.setVisible(true);
          this.bossBar.setProgress(1.0D);
          Collection<? extends Player> onlinePlayers = this.getServer().getOnlinePlayers();
          BossBar bossBar = this.bossBar;
          onlinePlayers.forEach(player -> bossBar.addPlayer(player));
          this.getServer().getOnlinePlayers().forEach((player) -> {
             Lang.SPAWNED.send(player, new Pair("%id%", boss.getId()), new Pair("%name%", boss.getName()));
          });
       }
     
  2. Dymeth

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

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Попробуй
    this.bossEntity.setRemoveWhenFarAway(false)
     
  3. Автор темы
    Loltik

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

    Баллы:
    61
    Спасибо! Это помогло!
     
Статус темы:
Закрыта.

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