Войти или зарегистрироваться

Сборник ссылок Альтернатива Cauldron - Svarka, ядро 1.10.2 Craftbukkit + Forge

Сам ивент вроде тут чинил.

Код:
    public void onDeath(DamageSource cause)
    {
        if (net.minecraftforge.common.ForgeHooks.onLivingDeath(this, cause)) return;
        boolean flag = this.worldObj.getGameRules().getBoolean("showDeathMessages");
        this.connection.sendPacket(new SPacketCombatEvent(this.getCombatTracker(), SPacketCombatEvent.Event.ENTITY_DIED, flag));
        List<org.*********ventory.ItemStack> loot = new ArrayList();
        boolean keepInventory = this.worldObj.getGameRules().getBoolean("keepInventory");
        if (!keepInventory) {
          for (int i = 0; i < this.inventory.mainInventory.length; i++) {
            if (this.inventory.mainInventory[i] != null) {
              loot.add(CraftItemStack.asCraftMirror(this.inventory.mainInventory[i]));
            }
          }
          for (int i = 0; i < this.inventory.armorInventory.length; i++) {
            if (this.inventory.armorInventory[i] != null) {
              loot.add(CraftItemStack.asCraftMirror(this.inventory.armorInventory[i]));
            }
          }
          for (int i = 0; i < this.inventory.offHandInventory.length; i++) {
            if (this.inventory.offHandInventory[i] != null) {
              loot.add(CraftItemStack.asCraftMirror(this.inventory.offHandInventory[i]));
            }
          }
        }
        PlayerDeathEvent eventb = CraftEventFactory.callPlayerDeathEvent(this, loot, this.getCombatTracker().getDeathMessage().getFormattedText(), this.worldObj.getGameRules().getBoolean("keepInventory"));
        if (!eventb.getKeepInventory())
        {
          for (int i = 0; i < this.inventory.mainInventory.length; i++) {
            this.inventory.mainInventory[i] = null;
          }
          for (int i = 0; i < this.inventory.armorInventory.length; i++) {
            this.inventory.armorInventory[i] = null;
          }
          for (int i = 0; i < this.inventory.offHandInventory.length; i++) {
            this.inventory.offHandInventory[i] = null;
          }
        }
        if (flag)
        {
            Team team = this.getTeam();

            if (team != null && team.getDeathMessageVisibility() != Team.EnumVisible.ALWAYS)
            {
                if (team.getDeathMessageVisibility() == Team.EnumVisible.HIDE_FOR_OTHER_TEAMS)
                {
                    this.mcServer.getPlayerList().sendMessageToAllTeamMembers(this, this.getCombatTracker().getDeathMessage());
                }
                else if (team.getDeathMessageVisibility() == Team.EnumVisible.HIDE_FOR_OWN_TEAM)
                {
                    this.mcServer.getPlayerList().sendMessageToTeamOrAllPlayers(this, this.getCombatTracker().getDeathMessage());
                }
            }
            else
            {
                this.mcServer.getPlayerList().sendChatMsg(this.getCombatTracker().getDeathMessage());
            }
        }
        
        if (!this.worldObj.getGameRules().getBoolean("keepInventory") && !this.isSpectator())
        {
            System.out.println("onDeath keep false");
            captureDrops = true;
            capturedDrops.clear();

            this.inventory.dropAllItems();

            captureDrops = false;
            
            net.minecraftforge.event.entity.player.PlayerDropsEvent event = new net.minecraftforge.event.entity.player.PlayerDropsEvent(this, cause, capturedDrops, recentlyHit > 0);
            if (!net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(event))
            {
                for (net.minecraft.entity.item.EntityItem item : capturedDrops)
                {
                    this.worldObj.spawnEntityInWorld(item);
                }
            }
        }

        for (ScoreObjective scoreobjective : this.worldObj.getScoreboard().getObjectivesFromCriteria(IScoreCriteria.DEATH_COUNT))
        {
            Score score = this.getWorldScoreboard().getOrCreateScore(this.getName(), scoreobjective);
            score.incrementScore();
        }

        EntityLivingBase entitylivingbase = this.getAttackingEntity();

        if (entitylivingbase != null)
        {
            EntityList.EntityEggInfo entitylist$entityegginfo = (EntityList.EntityEggInfo)EntityList.ENTITY_EGGS.get(EntityList.getEntityString(entitylivingbase));

            if (entitylist$entityegginfo != null)
            {
                this.addStat(entitylist$entityegginfo.entityKilledByStat);
            }

            entitylivingbase.addToPlayerScore(this, this.scoreValue);
        }

        this.addStat(StatList.DEATHS);
        this.takeStat(StatList.TIME_SINCE_DEATH);
        this.getCombatTracker().reset();
    }
 
UPD: Вот папка на ЯД. Туда буду заливать последние билды с библиотеками
Исправил работу спавна Entity от модов.
https://yadi.sk/d/2yofwf_B3RjQnJ
Так же добавил поддержку MySQL, SQLite.
 
UPD: Вот папка на ЯД. Туда буду заливать последние билды с библиотеками
Исправил работу спавна Entity от модов.
https://yadi.sk/d/2yofwf_B3RjQnJ
Так же добавил поддержку MySQL, SQLite.
Good job.
Как приду с работы, протестирую и обновлю шапку. О найденных багах сообщу здесь.
Обновление до 1.12 планируется? Кое кто уже обновил, но имеется дофига ошибок:
https://github.com/CDAGaming/Svarka
 
Деад ивент был недописал точно. Еще какие то ексепшены из за 8 java, во время асм патчей некоторых модов.
В ядре есть только две недоработки:
1) Отсутствие библиотеки sqllite. Следовательно, плагины, завязанные на бд, не запустятся. Решается довольно простым патчингом.
2) Отсутствие класса CraftCustomEntity (или CustomCraftEntity, не помню) не позволяет загрузить в мир сущности из модов. Соответственно, краш сервера. Из этого следует вывод, что в данный момент, запускаются только модификации без добавления новых мобов. Проблема решается добавлением этого класса.
На счёт деад эвента надо чекнуть будет.
 
Good job.
Как приду с работы, протестирую и обновлю шапку. О найденных багах сообщу здесь.
Обновление до 1.12 планируется? Кое кто уже обновил, но имеется дофига ошибок:
https://github.com/CDAGaming/Svarka
пока что не знаю насчёт 1.12...
Хочу пока что на этом ядра позаниматься, а потом уже переходить на полноценную разработку.
 
Good job.
Как приду с работы, протестирую и обновлю шапку. О найденных багах сообщу здесь.
Обновление до 1.12 планируется? Кое кто уже обновил, но имеется дофига ошибок:
https://github.com/CDAGaming/Svarka
а с этого гита лучше ничего не брать..
Там чувак хотел все JDK библиотеки засунуть в проект..
 
Ядро обновил. Библиотеки те же.
Теперь доступны команды:
/svarka
/svarka tps
/svarka dump
/svarka restart - пока что ещё TODO.
В ближайшее время постараюсь Spigot подтянуть.
 
Ядро обновил. Библиотеки те же.
Теперь доступны команды:
/svarka
/svarka tps
/svarka dump
/svarka restart - пока что ещё TODO.
В ближайшее время постараюсь Spigot подтянуть.
На гите обновлять будешь?
Патчи бы позакидывали
 
Так есть же Sponge. Что такое? Я пытаюсь понять
 
Сегодня постараюсь выложить новый релиз.
Добавляю Spigot с некоторыми патчами.
 
не очень хорошо дружит с EssentialsX. Про Essentials молчу.
Исправил работу с библиотеками + ядро теперь само подключает нужные библиотеки(спасибо MANIFEST.MF)
Сейчас накладываю Spigot и чиню работу с EssentialsX
UPD: EssentialsX build 588 - не работает нормально, а вот 488 без проблем запускается.
 
Последнее редактирование:
не очень хорошо дружит с EssentialsX. Про Essentials молчу.
Исправил работу с библиотеками + ядро теперь само подключает нужные библиотеки(спасибо MANIFEST.MF)
Сейчас накладываю Spigot и чиню работу с EssentialsX
UPD: EssentialsX build 588 - не работает нормально, а вот 488 без проблем запускается.
А че ты хочешь то? Тут наверное библиотеки старые все.
 
А че ты хочешь то? Тут наверное библиотеки старые все.
да нет. с библиотеками всё хорошо. Сам Essentials неочень хорошо определяет NMS версию
Это баг самого билда 588. Так что всё норм :)
 
Последнее редактирование:
Исправил работу плагинов от EssentialsX.
Теперь все последние билды поднимаются.
 
Последнее редактирование:
Назад
Верх