.

Статус
Закрыто для дальнейших ответов.

Mr_RoboMan

Старожил
Пользователь
Баллы
123
.
 
Последнее редактирование:
Кинь дебаг сюда
 
используй

Код:
        Bukkit.getScheduler().runTask(this, new Runnable() {
            @Override
            public void run() {
                // код
            }
        });
 
Вы плохо делаете( Не делайте так
 
Попробуй так в onEnable
Java:
        for (World w : Bukkit.getWorlds()) {
            if (w.getName().equalsIgnoreCase("World")) {
                int X = 100;
                int Z = 100;
                w.loadChunk(X,Z);
                for (LivingEntity ent : Bukkit.getWorld("World").getLivingEntities()) {
                    if (ent.getCustomName() != null && ent.getCustomName().equalsIgnoreCase("testmob")) {
                        ent.remove();
                        //Твой метод для спавнв мобов
                        spawnmob();
                }
            }
        }

И сделай загрузку плагина после загрузки мира в plugin.yml
 
В plugin.yml итак сделано:
load: POSTWORLD
А вот с таким кодом.. Хм, попытаюсь.. И как я понял, убивать мобов после остановки сервера с таким кодом не надо..

Хотя я тут посмотрел на этот код.. И подумал.. А может лучше будет просто "искать" ботов при запуске сервера (не удалять при остановке) и просто заново с ними делать что надо.. Ведь у меня есть координаты каждого бота в конфиге!
Мне кажется так намного экономнее будет, я прав?
Как я понял, то loadChunk должен загружать чанк на координатах в указанных коде. После этого ищи моба с нужым именем, и добавляй его в HashMap
 
Скорее всего через базу нпс брали их, а потом спавнили.
 
кинь полностью исходник. папку src, plugin.yml, config.yml
 
Только осторожнее, слишком много говнокода..
https://github.com/nkGWM/NEVENDAAR
P.S. Там какой-то один из вариантов автоматического создания ботов, но остальные тоже пробовал - не работает..
Чёто все сложно для меня. Не могу врубится откуда берётся имя, корды бота.
 
Берется из конфига, конфиг - ServerFile (extends YamlConfiguration)
Всёравно не понял. Может ты забыл добавить файл с самим ботов в исходники?

Java:
    @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
    public void testPlant2(ChunkUnloadEvent event) {
      // Тут типо корды моба.
        if (event.getWorld().getChunkAt(0,0).isLoaded()) {
            event.setCancelled(true);
        }
    }

    public static void LoadAllBots() {
        for (ServerFile bF : ServerFile.allSF.get(ServerFile.ServerFileType.BOT)) {
            for (World w : Bukkit.getWorlds()) {
                World world = Bukkit.getWorld("world");
                Chunk c = world.getChunkAt(0, 0);
                c.load();
                // тут ищи моба и добавляй его в свой лист, если нету, создавай.
            }
            if (IsAllParamsSet(bF)) {
                Main.bot.spawn(bF.name);
            }
        }
    }

Если добавить не получается, то тупо убивай моба, и создавай нового.
 
Есть такой чудесный плагин,называется Citizens, скачай его и радуйся :)
 
Ага... Особенно когда оно работает..
UP чтоле... Я пока-что смог добиться что при запуске сервера боты все-таки спавнятся (вроде..), но с ними можно взаимодействовать (толкать, и т.д.) ну и так-же при остановке сервера боты не "убиваются".. Из-за этого иногда скапливается по ~10 ботов на одном месте :D
Если спавнить их вручную (командами) то все по прежнему работает..
Ну я хз. Токо не юзай мой метод где отменяется анлоад чанков. А то у тебя чанки выгружаться вообще не будут.
 
Было бы интересно тоже пописать своих ботов, да...
ТС, куда дел свой репозиторий?
 
Правда там ОЧЕНЬМНОГАБУКАФ...
Либо много и внятно, либо мало и сам догадывайся, о чём речь :)
И при запуске сервера, и при написании в чат "LOAD" используется один и тот-же гр****ный метод:
public static void LoadAllBots()
Но вот, когда он используется при запуске сервера, он спавнит просто мобов (с ними можно взаимодействовать, толкать, они горят на солнце и т.д.), а вот когда ЭТОТ-ЖЕ метод вызывается когда я пишу в чат LOAD - то вуаля, все работает прекрасно, боты не горят, их нельзя бить, и с ними нельзя "взаимодействовать"...
Я не сказать, чтобы вообще смотрел твой код, но если не отвлекусь, то сейчас почитаю его.
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх