Jump to content

[1.9.4] Render Items in TESR


XFactHD

Recommended Posts

I am trying to render items in a blocks TESR.

This is what I tried:

package XFactHD.thermalreactors.client.render.tesr;

import XFactHD.thermalreactors.common.blocks.metal.TileEntityLeadChest;
import net.minecraft.client.Minecraft;
import net.minecraft.client.model.ModelChest;
import net.minecraft.client.renderer.BlockModelRenderer;
import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.client.renderer.ItemModelMesher;
import net.minecraft.client.renderer.RenderHelper;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.item.ItemStack;

import java.util.ArrayList;

public class TileEntityLeadChestRenderer extends TileEntitySpecialRenderer<TileEntityLeadChest>
{
    @Override
    public void renderTileEntityAt(TileEntityLeadChest te, double x, double y, double z, float partialTicks, int destroyStage)
    {
        ItemModelMesher mesher = Minecraft.getMinecraft().getRenderItem().getItemModelMesher();
        BlockModelRenderer blockModelRenderer = Minecraft.getMinecraft().getBlockRendererDispatcher().getBlockModelRenderer();

        GlStateManager.pushAttrib();
        GlStateManager.pushMatrix();
        GlStateManager.translate((float)x, (float)y, (float)z);

        int angle = 90;
        switch (te.getFacing())
        {
            case NORTH: angle *= 0; break;
            case EAST: angle *= 1; break;
            case SOUTH: angle *= 2; break;
            case WEST: angle *= 3;
        }

        GlStateManager.rotate(angle, 0, 1, 0);

        if (te.isOpen())
        {
            GlStateManager.translate((float)x, (float)y, (float)z);
            GlStateManager.translate(0, 5, 0);

            int offset = 5;

            ArrayList<ItemStack> teInv = te.getInventory();
            renderItemAt(blockModelRenderer, mesher, (float) x+0, (float) y+2, (float) z+0, teInv.get(0)); //The x, y and z values are for testing purposes as I
            renderItemAt(blockModelRenderer, mesher, (float) x+0, (float) y+2, (float) z+0, teInv.get(1)); // need to get the items rendering befor I can finetune
            renderItemAt(blockModelRenderer, mesher, (float) x+0, (float) y+2, (float) z+0, teInv.get(2)); //them
            renderItemAt(blockModelRenderer, mesher, (float) x+0, (float) y+2, (float) z+0, teInv.get(3));
            renderItemAt(blockModelRenderer, mesher, (float) x+0, (float) y+2, (float) z+0, teInv.get(4));
            renderItemAt(blockModelRenderer, mesher, (float) x+0, (float) y+2, (float) z+0, teInv.get(5));
            renderItemAt(blockModelRenderer, mesher, (float) x+0, (float) y+2, (float) z+0, teInv.get(6));
            renderItemAt(blockModelRenderer, mesher, (float) x+0, (float) y+2, (float) z+0, teInv.get(7));
            renderItemAt(blockModelRenderer, mesher, (float) x+0, (float) y+2, (float) z+0, teInv.get();
        }

        GlStateManager.popMatrix();
        GlStateManager.popAttrib();
    }

    private void renderItemAt(BlockModelRenderer blockModelRenderer, ItemModelMesher mesher, float x, float y, float z, ItemStack stack)
    {
        GlStateManager.pushMatrix();
        GlStateManager.translate(x, y, z);
        if (stack != null)
        {
            RenderHelper.enableStandardItemLighting();
            blockModelRenderer.renderModelBrightnessColor(mesher.getItemModel(stack), 1.0F, 1.0F, 1.0F, 1.0F);
            RenderHelper.disableStandardItemLighting();
        }
        GlStateManager.popMatrix();
    }
}

but this doesn't seem to work. Either the render method doesn't like to get an item with a missing model or I am probably overlooking something really simple.

Link to comment
Share on other sites

I am trying to render items in a blocks TESR.

This is what I tried:

package XFactHD.thermalreactors.client.render.tesr;

import XFactHD.thermalreactors.common.blocks.metal.TileEntityLeadChest;
import net.minecraft.client.Minecraft;
import net.minecraft.client.model.ModelChest;
import net.minecraft.client.renderer.BlockModelRenderer;
import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.client.renderer.ItemModelMesher;
import net.minecraft.client.renderer.RenderHelper;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.item.ItemStack;

import java.util.ArrayList;

public class TileEntityLeadChestRenderer extends TileEntitySpecialRenderer<TileEntityLeadChest>
{
    @Override
    public void renderTileEntityAt(TileEntityLeadChest te, double x, double y, double z, float partialTicks, int destroyStage)
    {
        ItemModelMesher mesher = Minecraft.getMinecraft().getRenderItem().getItemModelMesher();
        BlockModelRenderer blockModelRenderer = Minecraft.getMinecraft().getBlockRendererDispatcher().getBlockModelRenderer();

        GlStateManager.pushAttrib();
        GlStateManager.pushMatrix();
        GlStateManager.translate((float)x, (float)y, (float)z);

        int angle = 90;
        switch (te.getFacing())
        {
            case NORTH: angle *= 0; break;
            case EAST: angle *= 1; break;
            case SOUTH: angle *= 2; break;
            case WEST: angle *= 3;
        }

        GlStateManager.rotate(angle, 0, 1, 0);

        if (te.isOpen())
        {
            GlStateManager.translate((float)x, (float)y, (float)z);
            GlStateManager.translate(0, 5, 0);

            int offset = 5;

            ArrayList<ItemStack> teInv = te.getInventory();
            renderItemAt(blockModelRenderer, mesher, (float) x+0, (float) y+2, (float) z+0, teInv.get(0)); //The x, y and z values are for testing purposes as I
            renderItemAt(blockModelRenderer, mesher, (float) x+0, (float) y+2, (float) z+0, teInv.get(1)); // need to get the items rendering befor I can finetune
            renderItemAt(blockModelRenderer, mesher, (float) x+0, (float) y+2, (float) z+0, teInv.get(2)); //them
            renderItemAt(blockModelRenderer, mesher, (float) x+0, (float) y+2, (float) z+0, teInv.get(3));
            renderItemAt(blockModelRenderer, mesher, (float) x+0, (float) y+2, (float) z+0, teInv.get(4));
            renderItemAt(blockModelRenderer, mesher, (float) x+0, (float) y+2, (float) z+0, teInv.get(5));
            renderItemAt(blockModelRenderer, mesher, (float) x+0, (float) y+2, (float) z+0, teInv.get(6));
            renderItemAt(blockModelRenderer, mesher, (float) x+0, (float) y+2, (float) z+0, teInv.get(7));
            renderItemAt(blockModelRenderer, mesher, (float) x+0, (float) y+2, (float) z+0, teInv.get();
        }

        GlStateManager.popMatrix();
        GlStateManager.popAttrib();
    }

    private void renderItemAt(BlockModelRenderer blockModelRenderer, ItemModelMesher mesher, float x, float y, float z, ItemStack stack)
    {
        GlStateManager.pushMatrix();
        GlStateManager.translate(x, y, z);
        if (stack != null)
        {
            RenderHelper.enableStandardItemLighting();
            blockModelRenderer.renderModelBrightnessColor(mesher.getItemModel(stack), 1.0F, 1.0F, 1.0F, 1.0F);
            RenderHelper.disableStandardItemLighting();
        }
        GlStateManager.popMatrix();
    }
}

but this doesn't seem to work. Either the render method doesn't like to get an item with a missing model or I am probably overlooking something really simple.

Link to comment
Share on other sites

This is what the chest looks like now:

This chest is made to contain radiation from fuel rods and raw uranium. If you put a fuel rod in there, it should be rendered upright (it has a max stacksize of 1) and if you insert up to 64 uranium pellets/chunks/whatever (with a max stack size of 64), they should be rendered as a pile with the height being proportional to the stack size. If I wouldn't use a TESR, how could I translate the item models to specific spots in the chest?

Link to comment
Share on other sites

This is what the chest looks like now:

This chest is made to contain radiation from fuel rods and raw uranium. If you put a fuel rod in there, it should be rendered upright (it has a max stacksize of 1) and if you insert up to 64 uranium pellets/chunks/whatever (with a max stack size of 64), they should be rendered as a pile with the height being proportional to the stack size. If I wouldn't use a TESR, how could I translate the item models to specific spots in the chest?

Link to comment
Share on other sites

I took a look at the OBJLoader and the ICustomModelLoader interface.

This is how far I got:

package XFactHD.thermalreactors.client.render.models;

import net.minecraft.client.resources.IResource;
import net.minecraft.client.resources.IResourceManager;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.model.ICustomModelLoader;
import net.minecraftforge.client.model.IModel;

import java.io.FileNotFoundException;
import java.util.HashMap;
import java.util.Map;

public enum  ModelLoaderLeadChest implements ICustomModelLoader
{
    INSTANCE;

    private IResourceManager manager;
    private final Map<ResourceLocation, IModel> cache = new HashMap<ResourceLocation, IModel>();

    @Override
    public boolean accepts(ResourceLocation modelLocation)
    {
        return modelLocation.getResourcePath().endsWith("_iRadioactive");
    }

    @Override
    public IModel loadModel(ResourceLocation modelLocation) throws Exception
    {
        ResourceLocation file = new ResourceLocation(modelLocation.getResourceDomain(), modelLocation.getResourcePath());
        if (!cache.containsKey(file))
        {
            IResource resource = null;
            try
            {
                resource = manager.getResource(file);
            }
            catch (FileNotFoundException e)
            {
                if (modelLocation.getResourcePath().startsWith("models/block/"))
                {
                    resource = manager.getResource(new ResourceLocation(file.getResourceDomain(), "models/item/" + file.getResourcePath().substring("models/block/".length())));
                }
                else if (modelLocation.getResourcePath().startsWith("models/item/"))
                {
                    resource = manager.getResource(new ResourceLocation(file.getResourceDomain(), "models/block/" + file.getResourcePath().substring("models/item/".length())));
                }
                else throw e;
            }
        }
        return cache.get(file);
    }

    @Override
    public void onResourceManagerReload(IResourceManager resourceManager)
    {
        this.manager = resourceManager;
        cache.clear();
    }

    @Override
    public String toString()
    {
        return "LeadChestLoader.INSTANCE";
    }
}

Now I've got some qestions:

[*]How do I get the IModel from an IResource? I took a look at the Vanilla Loader but I don't understand it at all.

[*]The chest can contain up to 9 different items, if the item has a stacksize higher than 1, it is even rendered multiple times. How would I go about caching that without filling up the memory with thousands of different models?

[*]What do I need to do in IModel#bake to create an IBakedModel?

Link to comment
Share on other sites

I took a look at the OBJLoader and the ICustomModelLoader interface.

This is how far I got:

package XFactHD.thermalreactors.client.render.models;

import net.minecraft.client.resources.IResource;
import net.minecraft.client.resources.IResourceManager;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.model.ICustomModelLoader;
import net.minecraftforge.client.model.IModel;

import java.io.FileNotFoundException;
import java.util.HashMap;
import java.util.Map;

public enum  ModelLoaderLeadChest implements ICustomModelLoader
{
    INSTANCE;

    private IResourceManager manager;
    private final Map<ResourceLocation, IModel> cache = new HashMap<ResourceLocation, IModel>();

    @Override
    public boolean accepts(ResourceLocation modelLocation)
    {
        return modelLocation.getResourcePath().endsWith("_iRadioactive");
    }

    @Override
    public IModel loadModel(ResourceLocation modelLocation) throws Exception
    {
        ResourceLocation file = new ResourceLocation(modelLocation.getResourceDomain(), modelLocation.getResourcePath());
        if (!cache.containsKey(file))
        {
            IResource resource = null;
            try
            {
                resource = manager.getResource(file);
            }
            catch (FileNotFoundException e)
            {
                if (modelLocation.getResourcePath().startsWith("models/block/"))
                {
                    resource = manager.getResource(new ResourceLocation(file.getResourceDomain(), "models/item/" + file.getResourcePath().substring("models/block/".length())));
                }
                else if (modelLocation.getResourcePath().startsWith("models/item/"))
                {
                    resource = manager.getResource(new ResourceLocation(file.getResourceDomain(), "models/block/" + file.getResourcePath().substring("models/item/".length())));
                }
                else throw e;
            }
        }
        return cache.get(file);
    }

    @Override
    public void onResourceManagerReload(IResourceManager resourceManager)
    {
        this.manager = resourceManager;
        cache.clear();
    }

    @Override
    public String toString()
    {
        return "LeadChestLoader.INSTANCE";
    }
}

Now I've got some qestions:

[*]How do I get the IModel from an IResource? I took a look at the Vanilla Loader but I don't understand it at all.

[*]The chest can contain up to 9 different items, if the item has a stacksize higher than 1, it is even rendered multiple times. How would I go about caching that without filling up the memory with thousands of different models?

[*]What do I need to do in IModel#bake to create an IBakedModel?

Link to comment
Share on other sites

#JavaQuestion

 

You have to cache it with "thousands of models". You can make it so your cache discards old models if it fills up, but if there are "thousands" of different versions of your block visible at a time then you need to have those "thousands" of models in memory.

 

As of now I am using WeakLinkedHashMap with maximum capacity (uses removeEldestEntry) which is basically LinkedHashMap that uses WeakValues (when value is not used entry is removed).

I had to do it myself since I couldn't find proper implementation.

 

Since you probably have more knowledge here - is there something in MC libs that allows such map that:

* Clears itself (values) when not used (values)

* Has max size

* Removes oldest entries when overloaded

 

I was looking into MapMaker and some of caching classes but didn't find anything to this extent.

 

In future I also want to improve mine with "waged values" since it (by logical analisys), when overloaded constantly will start recreating objects without caching them at all (since it is linked).

1.7.10 is no longer supported by forge, you are on your own.

Link to comment
Share on other sites

#JavaQuestion

 

You have to cache it with "thousands of models". You can make it so your cache discards old models if it fills up, but if there are "thousands" of different versions of your block visible at a time then you need to have those "thousands" of models in memory.

 

As of now I am using WeakLinkedHashMap with maximum capacity (uses removeEldestEntry) which is basically LinkedHashMap that uses WeakValues (when value is not used entry is removed).

I had to do it myself since I couldn't find proper implementation.

 

Since you probably have more knowledge here - is there something in MC libs that allows such map that:

* Clears itself (values) when not used (values)

* Has max size

* Removes oldest entries when overloaded

 

I was looking into MapMaker and some of caching classes but didn't find anything to this extent.

 

In future I also want to improve mine with "waged values" since it (by logical analisys), when overloaded constantly will start recreating objects without caching them at all (since it is linked).

1.7.10 is no longer supported by forge, you are on your own.

Link to comment
Share on other sites

You don't. You simply create a class implementing IModel and return it. Your model loader does not need to load anything from disk (resources).

What's the point of the custom ModelLoader then?

 

You have to cache it with "thousands of models". You can make it so your cache discards old models if it fills up, but if there are "thousands" of different versions of your block visible at a time then you need to have those "thousands" of models in memory.

What's the performance benefit of storing an obscene amount of models in comparison to rendering the block every frame?

 

Link to comment
Share on other sites

You don't. You simply create a class implementing IModel and return it. Your model loader does not need to load anything from disk (resources).

What's the point of the custom ModelLoader then?

 

You have to cache it with "thousands of models". You can make it so your cache discards old models if it fills up, but if there are "thousands" of different versions of your block visible at a time then you need to have those "thousands" of models in memory.

What's the performance benefit of storing an obscene amount of models in comparison to rendering the block every frame?

 

Link to comment
Share on other sites

If you are not rendering the block every frame, the block does not have to be rendered every frame (duh). Using some RAM does not reduce FPS.

Does this also apply if I have to regenerate the model(s) very often because the ItemStacks metadata or NBT data has changed and the ItemStack gotten from the extended block state is not equal to the reference stored in the Map as a key for the model?

Link to comment
Share on other sites

If you are not rendering the block every frame, the block does not have to be rendered every frame (duh). Using some RAM does not reduce FPS.

Does this also apply if I have to regenerate the model(s) very often because the ItemStacks metadata or NBT data has changed and the ItemStack gotten from the extended block state is not equal to the reference stored in the Map as a key for the model?

Link to comment
Share on other sites

I can't know beforehand what people (or myself) are doing to their ItemStacks (like making the ItemStack tick to simulate the half-life of an isotope) that could possibly be put into this chest.

 

EDIT: Also, I have no knowledge of the models/items that are to be put into my chest because they only need to implement an API interface to be able to put them into the chest.

Link to comment
Share on other sites

I can't know beforehand what people (or myself) are doing to their ItemStacks (like making the ItemStack tick to simulate the half-life of an isotope) that could possibly be put into this chest.

 

EDIT: Also, I have no knowledge of the models/items that are to be put into my chest because they only need to implement an API interface to be able to put them into the chest.

Link to comment
Share on other sites

I meant that I have no idea how to make the model work with what you told me above. I am understanding the reasoning of some of the parts of the puzzle now but overall I don't get how this is gonna work together. I have some questions again:

[*]The position of the item models depends on the rotation of the container and if I recall correctly (I am not at the computer right now), I do not have access to a block state in an IModel, how can I solve this?

[*]How is the TRSRTransformation supposed to work, this class just confuses me.

[*]Caching the models would mean saving the model in a Map with the ArrayList of stored items as a key, right?

Link to comment
Share on other sites

I meant that I have no idea how to make the model work with what you told me above. I am understanding the reasoning of some of the parts of the puzzle now but overall I don't get how this is gonna work together. I have some questions again:

[*]The position of the item models depends on the rotation of the container and if I recall correctly (I am not at the computer right now), I do not have access to a block state in an IModel, how can I solve this?

[*]How is the TRSRTransformation supposed to work, this class just confuses me.

[*]Caching the models would mean saving the model in a Map with the ArrayList of stored items as a key, right?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • it crashed again     What the console says : [00:02:03] [Server thread/INFO] [Easy NPC/]: [EntityManager] Server started! [00:02:03] [Server thread/INFO] [co.gi.al.ic.IceAndFire/]: {iceandfire:fire_dragon_roost=true, iceandfire:fire_lily=true, iceandfire:spawn_dragon_skeleton_fire=true, iceandfire:lightning_dragon_roost=true, iceandfire:spawn_dragon_skeleton_lightning=true, iceandfire:ice_dragon_roost=true, iceandfire:ice_dragon_cave=true, iceandfire:lightning_dragon_cave=true, iceandfire:cyclops_cave=true, iceandfire:spawn_wandering_cyclops=true, iceandfire:spawn_sea_serpent=true, iceandfire:frost_lily=true, iceandfire:hydra_cave=true, iceandfire:lightning_lily=true, iceandfireixie_village=true, iceandfire:myrmex_hive_jungle=true, iceandfire:myrmex_hive_desert=true, iceandfire:silver_ore=true, iceandfire:siren_island=true, iceandfire:spawn_dragon_skeleton_ice=true, iceandfire:spawn_stymphalian_bird=true, iceandfire:fire_dragon_cave=true, iceandfire:sapphire_ore=true, iceandfire:spawn_hippocampus=true, iceandfire:spawn_death_worm=true} [00:02:03] [Server thread/INFO] [co.gi.al.ic.IceAndFire/]: {TROLL_S=true, HIPPOGRYPH=true, AMPHITHERE=true, COCKATRICE=true, TROLL_M=true, DREAD_LICH=true, TROLL_F=true} [00:02:03] [Server thread/INFO] [ne.be.lo.WeaponRegistry/]: Encoded Weapon Attribute registry size (with package overhead): 41976 bytes (in 5 string chunks with the size of 10000) [00:02:03] [Server thread/INFO] [patchouli/]: Sending reload packet to clients [00:02:03] [Server thread/WARN] [voicechat/]: [voicechat] Running in offline mode - Voice chat encryption is not secure! [00:02:03] [VoiceChatServerThread/INFO] [voicechat/]: [voicechat] Using server-ip as bind address: 0.0.0.0 [00:02:03] [Server thread/WARN] [ModernFix/]: Dedicated server took 22.521 seconds to load [00:02:03] [VoiceChatServerThread/INFO] [voicechat/]: [voicechat] Voice chat server started at 0.0.0.0:25565 [00:02:03] [Server thread/WARN] [minecraft/SynchedEntityData]: defineId called for: class net.minecraft.world.entity.player.Player from class tschipp.carryon.common.carry.CarryOnDataManager [00:02:03] [Server thread/INFO] [ne.mi.co.AdvancementLoadFix/]: Using new advancement loading for net.minecraft.server.PlayerAdvancements@2941ffd5 [00:02:10] [Netty Epoll Server IO #2/INFO] [Calio/]: Received acknowledgment for login packet with id 0 [00:02:10] [Netty Epoll Server IO #2/INFO] [Calio/]: Received acknowledgment for login packet with id 1 [00:02:10] [Netty Epoll Server IO #2/INFO] [Calio/]: Received acknowledgment for login packet with id 2 [00:02:10] [Netty Epoll Server IO #2/INFO] [Calio/]: Received acknowledgment for login packet with id 3 [00:02:10] [Netty Epoll Server IO #2/INFO] [Calio/]: Received acknowledgment for login packet with id 4 [00:02:10] [Netty Epoll Server IO #2/INFO] [Calio/]: Received acknowledgment for login packet with id 5 [00:02:10] [Netty Epoll Server IO #2/INFO] [Calio/]: Received acknowledgment for login packet with id 6 [00:02:10] [Netty Epoll Server IO #2/INFO] [Calio/]: Received acknowledgment for login packet with id 7 [00:02:10] [Netty Epoll Server IO #2/INFO] [Calio/]: Received acknowledgment for login packet with id 8 [00:02:10] [Netty Epoll Server IO #2/INFO] [Calio/]: Received acknowledgment for login packet with id 9 [00:02:10] [Netty Epoll Server IO #2/INFO] [Calio/]: Received acknowledgment for login packet with id 10 [00:02:10] [Netty Epoll Server IO #2/INFO] [Calio/]: Received acknowledgment for login packet with id 11 [00:02:10] [Netty Epoll Server IO #2/INFO] [Calio/]: Received acknowledgment for login packet with id 12 [00:02:10] [Netty Epoll Server IO #2/INFO] [Calio/]: Received acknowledgment for login packet with id 13 [00:02:10] [Netty Epoll Server IO #2/INFO] [Calio/]: Received acknowledgment for login packet with id 14 [00:02:19] [Server thread/INFO] [ne.mi.co.AdvancementLoadFix/]: Using new advancement loading for net.minecraft.server.PlayerAdvancements@ebc7ef2 [00:02:19] [Server thread/INFO] [minecraft/PlayerList]: ZacAdos[/90.2.17.162:49242] logged in with entity id 1062 at (-1848.6727005281205, 221.0, -3054.2468255848935) [00:02:19] [Server thread/ERROR] [ModernFix/]: Skipping entity ID sync for com.talhanation.smallships.world.entity.ship.Ship: java.lang.NoClassDefFoundError: net/minecraft/client/CameraType [00:02:19] [Server thread/INFO] [minecraft/MinecraftServer]: - Gloop - ZacAdos joined the game [00:02:19] [Server thread/INFO] [xa.pa.OpenPartiesAndClaims/]: Updating all forceload tickets for cc56befd-d376-3526-a760-340713c478bd [00:02:19] [Server thread/INFO] [se.mi.te.da.DataManager/]: Sending data to client: ZacAdos [00:02:19] [Server thread/INFO] [voicechat/]: [voicechat] Received secret request of - Gloop - ZacAdos (17) [00:02:19] [Server thread/INFO] [voicechat/]: [voicechat] Sent secret to - Gloop - ZacAdos [00:02:21] [VoiceChatPacketProcessingThread/INFO] [voicechat/]: [voicechat] Successfully authenticated player cc56befd-d376-3526-a760-340713c478bd [00:02:22] [VoiceChatPacketProcessingThread/INFO] [voicechat/]: [voicechat] Successfully validated connection of player cc56befd-d376-3526-a760-340713c478bd [00:02:22] [VoiceChatPacketProcessingThread/INFO] [voicechat/]: [voicechat] Player - Gloop - ZacAdos (cc56befd-d376-3526-a760-340713c478bd) successfully connected to voice chat stop [00:02:34] [Server thread/INFO] [minecraft/MinecraftServer]: Stopping the server [00:02:34] [Server thread/INFO] [mo.pl.ar.ArmourersWorkshop/]: stop local service [00:02:34] [Server thread/INFO] [minecraft/MinecraftServer]: Stopping server [00:02:34] [Server thread/INFO] [minecraft/MinecraftServer]: Saving players [00:02:34] [Server thread/INFO] [minecraft/ServerGamePacketListenerImpl]: ZacAdos lost connection: Server closed [00:02:34] [Server thread/INFO] [minecraft/MinecraftServer]: - Gloop - ZacAdos left the game [00:02:34] [Server thread/INFO] [xa.pa.OpenPartiesAndClaims/]: Updating all forceload tickets for cc56befd-d376-3526-a760-340713c478bd [00:02:34] [Server thread/INFO] [minecraft/MinecraftServer]: Saving worlds [00:02:34] [Server thread/INFO] [minecraft/MinecraftServer]: Saving chunks for level 'ServerLevel[world]'/minecraft:overworld [00:02:34] [Server thread/INFO] [minecraft/MinecraftServer]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_end [00:02:34] [Server thread/INFO] [minecraft/MinecraftServer]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_nether [00:02:34] [Server thread/INFO] [minecraft/MinecraftServer]: ThreadedAnvilChunkStorage (world): All chunks are saved [00:02:34] [Server thread/INFO] [minecraft/MinecraftServer]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved [00:02:34] [Server thread/INFO] [minecraft/MinecraftServer]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved [00:02:34] [Server thread/INFO] [minecraft/MinecraftServer]: ThreadedAnvilChunkStorage: All dimensions are saved [00:02:34] [Server thread/INFO] [xa.pa.OpenPartiesAndClaims/]: Stopping IO worker... [00:02:34] [Server thread/INFO] [xa.pa.OpenPartiesAndClaims/]: Stopped IO worker! [00:02:34] [Server thread/INFO] [Calio/]: Removing Dynamic Registries for: net.minecraft.server.dedicated.DedicatedServer@7dc879e1 [MineStrator Daemon]: Checking server disk space usage, this could take a few seconds... [MineStrator Daemon]: Updating process configuration files... [MineStrator Daemon]: Ensuring file permissions are set correctly, this could take a few seconds... [MineStrator Daemon]: Pulling Docker container image, this could take a few minutes to complete... [MineStrator Daemon]: Finished pulling Docker container image container@pterodactyl~ java -version openjdk version "17.0.10" 2024-01-16 OpenJDK Runtime Environment Temurin-17.0.10+7 (build 17.0.10+7) OpenJDK 64-Bit Server VM Temurin-17.0.10+7 (build 17.0.10+7, mixed mode, sharing) container@pterodactyl~ java -Xms128M -Xmx6302M -Dterminal.jline=false -Dterminal.ansi=true -Djline.terminal=jline.UnsupportedTerminal -p libraries/cpw/mods/bootstraplauncher/1.1.2/bootstraplauncher-1.1.2.jar:libraries/cpw/mods/securejarhandler/2.1.4/securejarhandler-2.1.4.jar:libraries/org/ow2/asm/asm-commons/9.5/asm-commons-9.5.jar:libraries/org/ow2/asm/asm-util/9.5/asm-util-9.5.jar:libraries/org/ow2/asm/asm-analysis/9.5/asm-analysis-9.5.jar:libraries/org/ow2/asm/asm-tree/9.5/asm-tree-9.5.jar:libraries/org/ow2/asm/asm/9.5/asm-9.5.jar:libraries/net/minecraftforge/JarJarFileSystems/0.3.16/JarJarFileSystems-0.3.16.jar --add-modules ALL-MODULE-PATH --add-opens java.base/java.util.jar=cpw.mods.securejarhandler --add-opens java.base/java.lang.invoke=cpw.mods.securejarhandler --add-exports java.base/sun.security.util=cpw.mods.securejarhandler --add-exports jdk.naming.dns/com.sun.jndi.dns=java.naming -Djava.net.preferIPv6Addresses=system -DignoreList=bootstraplauncher-1.1.2.jar,securejarhandler-2.1.4.jar,asm-commons-9.5.jar,asm-util-9.5.jar,asm-analysis-9.5.jar,asm-tree-9.5.jar,asm-9.5.jar,JarJarFileSystems-0.3.16.jar -DlibraryDirectory=libraries -DlegacyClassPath=libraries/cpw/mods/securejarhandler/2.1.4/securejarhandler-2.1.4.jar:libraries/org/ow2/asm/asm/9.5/asm-9.5.jar:libraries/org/ow2/asm/asm-commons/9.5/asm-commons-9.5.jar:libraries/org/ow2/asm/asm-tree/9.5/asm-tree-9.5.jar:libraries/org/ow2/asm/asm-util/9.5/asm-util-9.5.jar:libraries/org/ow2/asm/asm-analysis/9.5/asm-analysis-9.5.jar:libraries/net/minecraftforge/accesstransformers/8.0.4/accesstransformers-8.0.4.jar:libraries/org/antlr/antlr4-runtime/4.9.1/antlr4-runtime-4.9.1.jar:libraries/net/minecraftforge/eventbus/6.0.3/eventbus-6.0.3.jar:libraries/net/minecraftforge/forgespi/6.0.0/forgespi-6.0.0.jar:libraries/net/minecraftforge/coremods/5.0.1/coremods-5.0.1.jar:libraries/cpw/mods/modlauncher/10.0.8/modlauncher-10.0.8.jar:libraries/net/minecraftforge/unsafe/0.2.0/unsafe-0.2.0.jar:libraries/com/electronwill/night-config/core/3.6.4/core-3.6.4.jar:libraries/com/electronwill/night-config/toml/3.6.4/toml-3.6.4.jar:libraries/org/apache/maven/maven-artifact/3.8.5/maven-artifact-3.8.5.jar:libraries/net/jodah/typetools/0.8.3/typetools-0.8.3.jar:libraries/net/minecrell/terminalconsoleappender/1.2.0/terminalconsoleappender-1.2.0.jar:libraries/org/jline/jline-reader/3.12.1/jline-reader-3.12.1.jar:libraries/org/jline/jline-terminal/3.12.1/jline-terminal-3.12.1.jar:libraries/org/spongepowered/mixin/0.8.5/mixin-0.8.5.jar:libraries/org/openjdk/nashorn/nashorn-core/15.3/nashorn-core-15.3.jar:libraries/net/minecraftforge/JarJarSelector/0.3.16/JarJarSelector-0.3.16.jar:libraries/net/minecraftforge/JarJarMetadata/0.3.16/JarJarMetadata-0.3.16.jar:libraries/net/minecraftforge/fmlloader/1.19.2-43.3.0/fmlloader-1.19.2-43.3.0.jar:libraries/net/minecraft/server/1.19.2-20220805.130853/server-1.19.2-20220805.130853-extra.jar:libraries/com/github/oshi/oshi-core/5.8.5/oshi-core-5.8.5.jar:libraries/com/google/code/gson/gson/2.8.9/gson-2.8.9.jar:libraries/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar:libraries/com/google/guava/guava/31.0.1-jre/guava-31.0.1-jre.jar:libraries/com/mojang/authlib/3.11.49/authlib-3.11.49.jar:libraries/com/mojang/brigadier/1.0.18/brigadier-1.0.18.jar:libraries/com/mojang/datafixerupper/5.0.28/datafixerupper-5.0.28.jar:libraries/com/mojang/javabridge/1.2.24/javabridge-1.2.24.jar:libraries/com/mojang/logging/1.0.0/logging-1.0.0.jar:libraries/commons-io/commons-io/2.11.0/commons-io-2.11.0.jar:libraries/io/netty/netty-buffer/4.1.77.Final/netty-buffer-4.1.77.Final.jar:libraries/io/netty/netty-codec/4.1.77.Final/netty-codec-4.1.77.Final.jar:libraries/io/netty/netty-common/4.1.77.Final/netty-common-4.1.77.Final.jar:libraries/io/netty/netty-handler/4.1.77.Final/netty-handler-4.1.77.Final.jar:libraries/io/netty/netty-resolver/4.1.77.Final/netty-resolver-4.1.77.Final.jar:libraries/io/netty/netty-transport/4.1.77.Final/netty-transport-4.1.77.Final.jar:libraries/io/netty/netty-transport-classes-epoll/4.1.77.Final/netty-transport-classes-epoll-4.1.77.Final.jar:libraries/io/netty/netty-transport-native-epoll/4.1.77.Final/netty-transport-native-epoll-4.1.77.Final-linux-x86_64.jar:libraries/io/netty/netty-transport-native-epoll/4.1.77.Final/netty-transport-native-epoll-4.1.77.Final-linux-aarch_64.jar:libraries/io/netty/netty-transport-native-unix-common/4.1.77.Final/netty-transport-native-unix-common-4.1.77.Final.jar:libraries/it/unimi/dsi/fastutil/8.5.6/fastutil-8.5.6.jar:libraries/net/java/dev/jna/jna/5.10.0/jna-5.10.0.jar:libraries/net/java/dev/jna/jna-platform/5.10.0/jna-platform-5.10.0.jar:libraries/net/sf/jopt-simple/jopt-simple/5.0.4/jopt-simple-5.0.4.jar:libraries/org/apache/commons/commons-lang3/3.12.0/commons-lang3-3.12.0.jar:libraries/org/apache/logging/log4j/log4j-api/2.17.0/log4j-api-2.17.0.jar:libraries/org/apache/logging/log4j/log4j-core/2.17.0/log4j-core-2.17.0.jar:libraries/org/apache/logging/log4j/log4j-slf4j18-impl/2.17.0/log4j-slf4j18-impl-2.17.0.jar:libraries/org/slf4j/slf4j-api/1.8.0-beta4/slf4j-api-1.8.0-beta4.jar cpw.mods.bootstraplauncher.BootstrapLauncher --launchTarget forgeserver --fml.forgeVersion 43.3.0 --fml.mcVersion 1.19.2 --fml.forgeGroup net.minecraftforge --fml.mcpVersion 20220805.130853 [00:02:42] [main/INFO] [cp.mo.mo.Launcher/MODLAUNCHER]: ModLauncher running: args [--launchTarget, forgeserver, --fml.forgeVersion, 43.3.0, --fml.mcVersion, 1.19.2, --fml.forgeGroup, net.minecraftforge, --fml.mcpVersion, 20220805.130853] [00:02:42] [main/INFO] [cp.mo.mo.Launcher/MODLAUNCHER]: ModLauncher 10.0.8+10.0.8+main.0ef7e830 starting: java version 17.0.10 by Eclipse Adoptium; OS Linux arch amd64 version 6.1.0-12-amd64 [00:02:43] [main/INFO] [mixin/]: SpongePowered MIXIN Subsystem Version=0.8.5 Source=union:/home/container/libraries/org/spongepowered/mixin/0.8.5/mixin-0.8.5.jar%2363!/ Service=ModLauncher Env=SERVER [00:02:43] [main/WARN] [ne.mi.fm.lo.mo.ModFileParser/LOADING]: Mod file /home/container/libraries/net/minecraftforge/fmlcore/1.19.2-43.3.0/fmlcore-1.19.2-43.3.0.jar is missing mods.toml file [00:02:43] [main/WARN] [ne.mi.fm.lo.mo.ModFileParser/LOADING]: Mod file /home/container/libraries/net/minecraftforge/javafmllanguage/1.19.2-43.3.0/javafmllanguage-1.19.2-43.3.0.jar is missing mods.toml file [00:02:43] [main/WARN] [ne.mi.fm.lo.mo.ModFileParser/LOADING]: Mod file /home/container/libraries/net/minecraftforge/lowcodelanguage/1.19.2-43.3.0/lowcodelanguage-1.19.2-43.3.0.jar is missing mods.toml file [00:02:43] [main/WARN] [ne.mi.fm.lo.mo.ModFileParser/LOADING]: Mod file /home/container/libraries/net/minecraftforge/mclanguage/1.19.2-43.3.0/mclanguage-1.19.2-43.3.0.jar is missing mods.toml file [00:02:44] [main/WARN] [ne.mi.ja.se.JarSelector/]: Attempted to select two dependency jars from JarJar which have the same identification: Mod File: and Mod File: . Using Mod File: [00:02:44] [main/WARN] [ne.mi.ja.se.JarSelector/]: Attempted to select a dependency jar for JarJar which was passed in as source: resourcefullib. Using Mod File: /home/container/mods/resourcefullib-forge-1.19.2-1.1.24.jar [00:02:44] [main/INFO] [ne.mi.fm.lo.mo.JarInJarDependencyLocator/]: Found 13 dependencies adding them to mods collection Latest log [29Mar2024 00:02:42.803] [main/INFO] [cpw.mods.modlauncher.Launcher/MODLAUNCHER]: ModLauncher running: args [--launchTarget, forgeserver, --fml.forgeVersion, 43.3.0, --fml.mcVersion, 1.19.2, --fml.forgeGroup, net.minecraftforge, --fml.mcpVersion, 20220805.130853] [29Mar2024 00:02:42.805] [main/INFO] [cpw.mods.modlauncher.Launcher/MODLAUNCHER]: ModLauncher 10.0.8+10.0.8+main.0ef7e830 starting: java version 17.0.10 by Eclipse Adoptium; OS Linux arch amd64 version 6.1.0-12-amd64 [29Mar2024 00:02:43.548] [main/INFO] [mixin/]: SpongePowered MIXIN Subsystem Version=0.8.5 Source=union:/home/container/libraries/org/spongepowered/mixin/0.8.5/mixin-0.8.5.jar%2363!/ Service=ModLauncher Env=SERVER [29Mar2024 00:02:43.876] [main/WARN] [net.minecraftforge.fml.loading.moddiscovery.ModFileParser/LOADING]: Mod file /home/container/libraries/net/minecraftforge/fmlcore/1.19.2-43.3.0/fmlcore-1.19.2-43.3.0.jar is missing mods.toml file [29Mar2024 00:02:43.877] [main/WARN] [net.minecraftforge.fml.loading.moddiscovery.ModFileParser/LOADING]: Mod file /home/container/libraries/net/minecraftforge/javafmllanguage/1.19.2-43.3.0/javafmllanguage-1.19.2-43.3.0.jar is missing mods.toml file [29Mar2024 00:02:43.877] [main/WARN] [net.minecraftforge.fml.loading.moddiscovery.ModFileParser/LOADING]: Mod file /home/container/libraries/net/minecraftforge/lowcodelanguage/1.19.2-43.3.0/lowcodelanguage-1.19.2-43.3.0.jar is missing mods.toml file [29Mar2024 00:02:43.878] [main/WARN] [net.minecraftforge.fml.loading.moddiscovery.ModFileParser/LOADING]: Mod file /home/container/libraries/net/minecraftforge/mclanguage/1.19.2-43.3.0/mclanguage-1.19.2-43.3.0.jar is missing mods.toml file [29Mar2024 00:02:44.033] [main/WARN] [net.minecraftforge.jarjar.selection.JarSelector/]: Attempted to select two dependency jars from JarJar which have the same identification: Mod File: and Mod File: . Using Mod File: [29Mar2024 00:02:44.034] [main/WARN] [net.minecraftforge.jarjar.selection.JarSelector/]: Attempted to select a dependency jar for JarJar which was passed in as source: resourcefullib. Using Mod File: /home/container/mods/resourcefullib-forge-1.19.2-1.1.24.jar [29Mar2024 00:02:44.034] [main/INFO] [net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator/]: Found 13 dependencies adding them to mods collection
    • I am unable to do that. Brigadier is a mojang library that parses commands.
    • Hi, i appreciate the answer. I would love to do that, but we have active players with all their belongings in SSN. Also this mod is really handy and they would be mad if we removed it. Are you really certain that SSN is causing this? It would require lots of work to test it and SSN was not really an issue before we removed Fast Suite. Can it be related somehow? I will provide you with log before removing FS. PasteBin: https://pastebin.com/Y5EpLpNe (crash before removing Fast Suite, which I suspected to be a problem from some crash before)
    • Backup the world and make a test without storagenetwork
  • Topics

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.