Jump to content

[1.8] Extending MapItem to render annotation data


McGrizzle

Recommended Posts

Hello again!

 

I recently posted here on the forum needing assistance and got some great help, so I'm back, this time with a little less confidence that I'm doing something correctly.  :P

 

Basically, I'm attempting to read

MapItem

in ForgeSrc and extend it to render data from an arbitrary location, whether it's from a database, metadata, or something else entirely.

 

By doing some research, I've found out several things about the way maps work:

 

  • Colors are indexed and color variants are calculated from a base byte value. These colors are fetched statically by id from
    MapColor

    , based on block material.

  • The way colors are fetched can likely be changed before it's added to the map, allowing what I'd like to do. I'm not looking to add custom colors, but use existing colors for annotations based on other data besides block material.

 

The only issue is that the file is largely obfuscated, with much of the information needed to implement my goal concealed in a 7-deep nested monster branching statement inside the

updateMapData

method.

 

The MapItem class in question (I've added comments to certain sections that I believe explain what the code is doing, but I could very wrong and I haven't made much progress):

package net.minecraft.item;

import com.google.common.collect.HashMultiset;
import com.google.common.collect.Iterables;
import com.google.common.collect.Multisets;
import java.util.List;
import net.minecraft.block.Block;
import net.minecraft.block.BlockDirt;
import net.minecraft.block.BlockStone;
import net.minecraft.block.material.MapColor;
import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.network.Packet;
import net.minecraft.util.BlockPos;
import net.minecraft.util.MathHelper;
import net.minecraft.world.World;
import net.minecraft.world.chunk.Chunk;
import net.minecraft.world.storage.MapData;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;

public class ItemMap extends ItemMapBase
{
    private static final String __OBFID = "CL_00000047";

    protected ItemMap()
    {
        this.setHasSubtypes(true);
    }

    @SideOnly(Side.CLIENT)
    public static MapData loadMapData(int mapId, World worldIn)
    {
        String s = "map_" + mapId;
        MapData mapdata = (MapData)worldIn.loadItemData(MapData.class, s);

        if (mapdata == null)
        {
            mapdata = new MapData(s);
            worldIn.setItemData(s, mapdata);
        }

        return mapdata;
    }

    public MapData getMapData(ItemStack stack, World worldIn)
    {
        String s = "map_" + stack.getMetadata();
        MapData mapdata = (MapData)worldIn.loadItemData(MapData.class, s);

        if (mapdata == null && !worldIn.isRemote)
        {
            stack.setItemDamage(worldIn.getUniqueDataId("map"));
            s = "map_" + stack.getMetadata();
            mapdata = new MapData(s);
            mapdata.scale = 3;
            mapdata.func_176054_a((double)worldIn.getWorldInfo().getSpawnX(), (double)worldIn.getWorldInfo().getSpawnZ(), mapdata.scale);
            mapdata.dimension = worldIn.provider.getDimensionId();
            mapdata.markDirty();
            worldIn.setItemData(s, mapdata);
        }

        return mapdata;
    }

    public void updateMapData(World worldIn, Entity viewer, MapData data)
    {
        if (worldIn.provider.getDimensionId() == data.dimension && viewer instanceof EntityPlayer)
        {
            int i = 1 << data.scale;
            int j = data.xCenter;
            int k = data.zCenter;
            int l = MathHelper.floor_double(viewer.posX - (double)j) / i + 64;
            int i1 = MathHelper.floor_double(viewer.posZ - (double)k) / i + 64;
            int j1 = 128 / i;

            if (worldIn.provider.getHasNoSky())
            {
                j1 /= 2;
            }

            MapData.MapInfo mapinfo = data.getMapInfo((EntityPlayer)viewer);
            ++mapinfo.field_82569_d;
            boolean flag = false;

            for (int k1 = l - j1 + 1; k1 < l + j1; ++k1)
            {
                if ((k1 & 15) == (mapinfo.field_82569_d & 15) || flag)
                {
                    flag = false;
                    double d0 = 0.0D;

                    for (int l1 = i1 - j1 - 1; l1 < i1 + j1; ++l1)
                    {
                        if (k1 >= 0 && l1 >= -1 && k1 < 128 && l1 < 128)
                        {
                            int i2 = k1 - l;
                            int j2 = l1 - i1;
                            boolean flag1 = i2 * i2 + j2 * j2 > (j1 - 2) * (j1 - 2);
                            int k2 = (j / i + k1 - 64) * i;
                            int l2 = (k / i + l1 - 64) * i;
                            HashMultiset hashmultiset = HashMultiset.create();
                            Chunk chunk = worldIn.getChunkFromBlockCoords(new BlockPos(k2, 0, l2));

                            if (!chunk.isEmpty())
                            {
                                int i3 = k2 & 15;
                                int j3 = l2 & 15;
                                int k3 = 0;
                                double d1 = 0.0D;
                                int l3;

                                // Noise is generated in place of meaningful data when in the Nether or the End. The if statement below does this.
                                // if the current dimension has no sky (ie, is the Nether or the End)...
                                if (worldIn.provider.getHasNoSky())
                                {
                                    l3 = k2 + l2 * 231871;
                                    l3 = l3 * l3 * 31287121 + l3 * 11;

                                    if ((l3 >> 20 & 1) == 0)
                                    {
                                        hashmultiset.add(Blocks.dirt.getMapColor(Blocks.dirt.getDefaultState().withProperty(BlockDirt.VARIANT, BlockDirt.DirtType.DIRT)), 10);
                                    }
                                    else
                                    {
                                        hashmultiset.add(Blocks.stone.getMapColor(Blocks.stone.getDefaultState().withProperty(BlockStone.VARIANT, BlockStone.EnumType.STONE)), 100);
                                    }

                                    d1 = 100.0D;
                                }

                                // The good stuff...
                                else
                                {
                                    for (l3 = 0; l3 < i; ++l3)
                                    {
                                        for (int i4 = 0; i4 < i; ++i4)
                                        {
                                            int j4 = chunk.getHeight(l3 + i3, i4 + j3) + 1;
                                            IBlockState iblockstate = Blocks.air.getDefaultState();

                                            if (j4 > 1)
                                            {
                                                do
                                                {
                                                    --j4;
                                                    iblockstate = chunk.getBlockState(new BlockPos(l3 + i3, j4, i4 + j3));
                                                }
                                                while (iblockstate.getBlock().getMapColor(iblockstate) == MapColor.airColor && j4 > 0);

                                                if (j4 > 0 && iblockstate.getBlock().getMaterial().isLiquid())
                                                {
                                                    int k4 = j4 - 1;
                                                    Block block;

                                                    do
                                                    {
                                                        block = chunk.getBlock(l3 + i3, k4--, i4 + j3);
                                                        ++k3;
                                                    }
                                                    while (k4 > 0 && block.getMaterial().isLiquid());
                                                }
                                            }

                                            d1 += (double)j4 / (double)(i * i);
                                            hashmultiset.add(iblockstate.getBlock().getMapColor(iblockstate));
                                        }
                                    }
                                }
                                
                                // Below - generic depth test w/ shadows (probably)
                                k3 /= i * i;
                                double d2 = (d1 - d0) * 4.0D / (double)(i + 4) + ((double)(k1 + l1 & 1) - 0.5D) * 0.4D;
                                byte b0 = 1;

                                if (d2 > 0.6D)
                                {
                                    b0 = 2;
                                }

                                if (d2 < -0.6D)
                                {
                                    b0 = 0;
                                }

                                MapColor mapcolor = (MapColor)Iterables.getFirst(Multisets.copyHighestCountFirst(hashmultiset), MapColor.airColor);

                                // Below - most likely a water depth test for coloring deeper water darker shades of blue
                                if (mapcolor == MapColor.waterColor)
                                {
                                    d2 = (double)k3 * 0.1D + (double)(k1 + l1 & 1) * 0.2D;
                                    b0 = 1;

                                    if (d2 < 0.5D)
                                    {
                                        b0 = 2;
                                    }

                                    if (d2 > 0.9D)
                                    {
                                        b0 = 0;
                                    }
                                }

                                d0 = d1;
                                
                                // According to Minecraft wiki: Below - data being accessed via data[xOffset + yOffset *128] and color data is added based on color index
                                if (l1 >= 0 && i2 * i2 + j2 * j2 < j1 * j1 && (!flag1 || (k1 + l1 & 1) != 0))
                                {
                                    byte b1 = data.colors[k1 + l1 * 128];
                                    byte b2 = (byte)(mapcolor.colorIndex * 4 + b0);

                                    if (b1 != b2)
                                    {
                                        data.colors[k1 + l1 * 128] = b2;
                                        data.updateMapData(k1, l1);
                                        flag = true;
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }

    /**
     * Called each tick as long the item is on a player inventory. Uses by maps to check if is on a player hand and
     * update it's contents.
     */
    public void onUpdate(ItemStack stack, World worldIn, Entity entityIn, int itemSlot, boolean isSelected)
    {
        if (!worldIn.isRemote)
        {
            MapData mapdata = this.getMapData(stack, worldIn);

            if (entityIn instanceof EntityPlayer)
            {
                EntityPlayer entityplayer = (EntityPlayer)entityIn;
                mapdata.updateVisiblePlayers(entityplayer, stack);
            }

            if (isSelected)
            {
                this.updateMapData(worldIn, entityIn, mapdata);
            }
        }
    }

    public Packet createMapDataPacket(ItemStack stack, World worldIn, EntityPlayer player)
    {
        return this.getMapData(stack, worldIn).getMapPacket(stack, worldIn, player);
    }

    /**
     * Called when item is crafted/smelted. Used only by maps so far.
     */
    public void onCreated(ItemStack stack, World worldIn, EntityPlayer playerIn)
    {
        if (stack.hasTagCompound() && stack.getTagCompound().getBoolean("map_is_scaling"))
        {
            MapData mapdata = Items.filled_map.getMapData(stack, worldIn);
            stack.setItemDamage(worldIn.getUniqueDataId("map"));
            MapData mapdata1 = new MapData("map_" + stack.getMetadata());
            mapdata1.scale = (byte)(mapdata.scale + 1);

            if (mapdata1.scale > 4)
            {
                mapdata1.scale = 4;
            }

            mapdata1.func_176054_a((double)mapdata.xCenter, (double)mapdata.zCenter, mapdata1.scale);
            mapdata1.dimension = mapdata.dimension;
            mapdata1.markDirty();
            worldIn.setItemData("map_" + stack.getMetadata(), mapdata1);
        }
    }

    /**
     * allows items to add custom lines of information to the mouseover description
     *  
     * @param tooltip All lines to display in the Item's tooltip. This is a List of Strings.
     * @param advanced Whether the setting "Advanced tooltips" is enabled
     */
    @SideOnly(Side.CLIENT)
    public void addInformation(ItemStack stack, EntityPlayer playerIn, List tooltip, boolean advanced)
    {
        MapData mapdata = this.getMapData(stack, playerIn.worldObj);

        if (advanced)
        {
            if (mapdata == null)
            {
                tooltip.add("Unknown map");
            }
            else
            {
                tooltip.add("Scaling at 1:" + (1 << mapdata.scale));
                tooltip.add("(Level " + mapdata.scale + "/" + 4 + ")");
            }
        }
    }
}

 

Now, the thing is I could be going about this completely wrong and there could be a more effective way of making an item that does what I described, or there may not even be a good way to do it.

 

My questions:

 

[*]Does anyone have experience in extending maps or even working with the code, and if so, do you know if I'm doing this in the best way?

[*]Is there anyone that can provide details about the variables and what they may be doing? I've identified several blocks (such as the block that tests for water depth and the nether/end noise block, among others) but would anyone have more? I'm obviously doing my best to look though it myself, but it's a daunting task.

 

Sorry if I look like an idiot. Admittedly, this is my first time ever analyzing obfuscated code. Thanks for the help if anyone offers!  :)

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • my server is crashing for some reason I don't understand i have mods on the server   ---- Minecraft Crash Report ---- WARNING: coremods are present:   CorePlugin (smooth-font-mod-1_12_2.jar)   TransformLoader (DynamicSurroundings-1.12.2-3.6.1.0.jar)   LoadingPlugin (Bloodmoon_MC1.12.2_1.5.3.jar)   LoadingPlugin (resourceloader-mc1.12.1-1.5.3.jar)   XaeroWorldMapPlugin (WorldMap-v1.29.3-for-Forge-1.12.2.jar)   Aqua Acrobatics Transformer (AquaAcrobatics-v1.2.2-1.12.2.jar)   AppleCore (AppleCore-mc1.12.2-3.2.0.jar)   ItemPatchingLoader (ItemPhysic_Full_1.4.37_mc1.12.2.jar)   XaeroMinimapPlugin (Minimap-v22.16.2-for-Forge-1.12.2.jar)   llibrary (llibrary-core-1.0.11-1.12.2.jar)   AstralCore (astralsorcery-1.12.2-1.10.27.jar)   ForgelinPlugin (forgelin-1.8.4.jar)   PhosphorFMLLoadingPlugin (phosphor_forge_mc1.12.2_0.2.7_universal.jar)   BetterFoliageLoader (betterfoliage-mc1.12-2.3.3.jar)   CreativePatchingLoader (CreativeCore_v1.10.65_mc1.12.2.jar)   Inventory Tweaks Coremod (InventoryTweaks_1.12.2_1.64dev.151.jar)   SurgeLoadingPlugin (surge-1.12.2-2.0.79.jar) Contact their authors BEFORE contacting forge // Hi. I'm Minecraft, and I'm a crashaholic. Time: 9/30/23 1:22 PM Description: Exception in server tick loop java.lang.NullPointerException: Exception in server tick loop     at net.minecraft.world.WorldEntitySpawner.func_77191_a(WorldEntitySpawner.java:297)     at net.minecraft.world.gen.ChunkGeneratorOverworld.func_185931_b(ChunkGeneratorOverworld.java:466)     at net.minecraft.world.chunk.Chunk.func_186034_a(Chunk.java:1019)     at net.minecraft.world.chunk.Chunk.func_186030_a(Chunk.java:999)     at net.minecraft.world.gen.ChunkProviderServer.func_186025_d(ChunkProviderServer.java:157)     at net.minecraft.server.MinecraftServer.func_71222_d(MinecraftServer.java:344)     at net.minecraft.server.MinecraftServer.func_71247_a(MinecraftServer.java:314)     at net.minecraft.server.dedicated.DedicatedServer.func_71197_b(DedicatedServer.java:270)     at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:486)     at java.lang.Thread.run(Thread.java:748) A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- System Details -- Details:     Minecraft Version: 1.12.2     Operating System: Linux (amd64) version 4.19.0-22-amd64     Java Version: 1.8.0_312, Oracle Corporation     Java VM Version: OpenJDK 64-Bit Server VM (mixed mode), Oracle Corporation     Memory: 3256290592 bytes (3105 MB) / 3777495040 bytes (3602 MB) up to 3817865216 bytes (3641 MB)     JVM Flags: 1 total; -Xmx4096M     IntCache: cache: 0, tcache: 0, allocated: 13, tallocated: 95     FML: MCP 9.42 Powered by Forge 14.23.5.2860 86 mods loaded, 86 mods active     States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored     | State  | ID                   | Version              | Source                                        | Signature                                |     |:------ |:-------------------- |:-------------------- |:--------------------------------------------- |:---------------------------------------- |     | LCHIJA | minecraft            | 1.12.2               | minecraft.jar                                 | None                                     |     | LCHIJA | mcp                  | 9.42                 | minecraft.jar                                 | None                                     |     | LCHIJA | FML                  | 8.0.99.99            | server.jar                                    | e3c3d50c7c986df74c645c0ac54639741c90a557 |     | LCHIJA | forge                | 14.23.5.2860         | server.jar                                    | e3c3d50c7c986df74c645c0ac54639741c90a557 |     | LCHIJA | creativecoredummy    | 1.0.0                | minecraft.jar                                 | None                                     |     | LCHIJA | itemphysic           | 1.4.0                | minecraft.jar                                 | None                                     |     | LCHIJA | xaerominimap_core    | 1.12.2-1.0           | minecraft.jar                                 | None                                     |     | LCHIJA | smoothfontcore       | mc1.12.2-2.0-alpha-7 | minecraft.jar                                 | None                                     |     | LCHIJA | xaeroworldmap_core   | 1.12.2-1.0           | minecraft.jar                                 | None                                     |     | LCHIJA | aether_legacy        | 1.5.3.2              | aether-1.12.2-v1.5.3.2.jar                    | None                                     |     | LCHIJA | applecore            | 3.2.0                | AppleCore-mc1.12.2-3.2.0.jar                  | None                                     |     | LCHIJA | crafttweaker         | 4.1.20               | CraftTweaker2-1.12-4.1.20.682.jar             | None                                     |     | LCHIJA | jei                  | 4.16.1.1001          | jei_1.12.2-4.16.1.1001.jar                    | None                                     |     | LCHIJA | appleskin            | 1.0.14               | AppleSkin_mc1.12_1.0.14.jar                   | None                                     |     | LCHIJA | aquaacrobatics       | 1.1.6                | AquaAcrobatics-v1.2.2-1.12.2.jar              | None                                     |     | LCHIJA | baubles              | 1.5.2                | Baubles_1.12_1.5.2.jar                        | None                                     |     | LCHIJA | astralsorcery        | 1.10.27              | astralsorcery-1.12.2-1.10.27.jar              | a0f0b759d895c15ceb3e3bcb5f3c2db7c582edf0 |     | LCHIJA | guideapi             | 1.12-2.1.8-63        | guide-api-1.12-2.1.8-63.jar                   | None                                     |     | LCHIJA | bloodmagic           | 1.12.2-2.4.3-105     | BloodMagic-1.12.2-2.4.3-105.jar               | None                                     |     | LCHIJA | bloodmoon            | 1.5.3                | Bloodmoon_MC1.12.2_1.5.3.jar                  | d72e0dd57935b3e9476212aea0c0df352dd76291 |     | LCHIJA | bookshelf            | 2.3.590              | Bookshelf_1.12.2_2.3.590.jar                  | d476d1b22b218a10d845928d1665d45fce301b27 |     | LCHIJA | botania              | r1.10-364            | Botania-r1.10-364.4.jar                       | None                                     |     | LCHIJA | crafttweakerjei      | 2.0.3                | CraftTweaker2-1.12-4.1.20.682.jar             | None                                     |     | LCHIJA | creativecore         | 1.10.0               | CreativeCore_v1.10.65_mc1.12.2.jar            | None                                     |     | LCHIJA | gamestages           | 2.0.123              | GameStages-1.12.2-2.0.123.jar                 | d476d1b22b218a10d845928d1665d45fce301b27 |     | LCHIJA | dimstages            | 2.0.23               | DimensionStages-1.12.2-2.0.23.jar             | d476d1b22b218a10d845928d1665d45fce301b27 |     | LCHIJA | durability101        | 0.0.4                | durability101-forge-1.12-0.0.4.jar            | None                                     |     | LCHIJA | orelib               | 3.6.0.1              | orelib-1.12.2-3.6.0.1.jar                     | 7a2128d395ad96ceb9d9030fbd41d035b435753a |     | LCHIJA | dsurround            | 3.6.1.0              | DynamicSurroundings-1.12.2-3.6.1.0.jar        | 7a2128d395ad96ceb9d9030fbd41d035b435753a |     | LCHIJA | ebwizardry           | 4.3.9                | electroblobswizardry-4.3.9.jar                | None                                     |     | LCHIJA | eplus                | 5.0.178              | EnchantingPlus_1.12.2_5.0.178.jar             | d476d1b22b218a10d845928d1665d45fce301b27 |     | LCHIJA | endreborn            | 0.3.5                | EndReborn_1.12.2_III0.3.6.jar                 | None                                     |     | LCHIJA | waila                | 1.8.26               | Hwyla_1.8.26_B41_1.12.2.jar                   | None                                     |     | LCHIJA | mtlib                | 3.0.7                | mtlib-3.0.7.jar                               | None                                     |     | LCHIJA | extrabotany          | 60                   | extrabotany-r1.1-60-beta-hotfix.jar           | None                                     |     | LCHIJA | fencejumper          | 1.0.1                | Fence_Jumper_Mod_1.12.2.jar                   | None                                     |     | LCHIJA | forbidden_arcanus    | 1.12.2-1.1.4         | forbidden_arcanus_1.12.2_1.1.4.jar            | None                                     |     | LCHIJA | forgelin             | 1.8.4                | forgelin-1.8.4.jar                            | None                                     |     | LCHIJA | ftblib               | 5.4.7.2              | FTBLib-5.4.7.2.jar                            | None                                     |     | LCHIJA | itemfilters          | 1.0.4.2              | ItemFilters-1.0.4.2.jar                       | None                                     |     | LCHIJA | ftbquests            | 1202.9.0.14          | FTBQuests-1.12.2-1202.9.0.14.jar              | None                                     |     | LCHIJA | gamestagebooks       | 1.12.2-1.0.2         | gamestagebooks-1.12.2-1.0.2-universal.jar     | None                                     |     | LCHIJA | geckolib3            | 3.0.30               | geckolib-forge-1.12.2-3.0.31.jar              | None                                     |     | LCHIJA | initialinventory     | 2.0.2                | initialinventory-3_0_0.jar                    | None                                     |     | LCHIJA | inventorytweaks      | 1.64+dev.151.822d839 | InventoryTweaks_1.12.2_1.64dev.151.jar        | 55d2cd4f5f0961410bf7b91ef6c6bf00a766dcbe |     | LCHIJA | ironbackpacks        | 1.12.2-3.0.8-12      | ironbackpacks-1.12.2-3.0.8-12.jar             | None                                     |     | LCHIJA | ironchest            | 1.12.2-7.0.67.844    | ironchest_1.12.2_7.0.72.847.jar               | None                                     |     | LCHIJA | ironfurnaces         | 1.3.5                | ironfurnaces-1.3.5.jar                        | None                                     |     | LCHIJA | itemstages           | 2.0.49               | ItemStages-1.12.2-2.0.49.jar                  | d476d1b22b218a10d845928d1665d45fce301b27 |     | LCHIJA | libraryex            | 1.2.2                | LibraryEx-1.12.2-1.2.2.jar                    | None                                     |     | LCHIJA | lost_aether          | 1.0.2                | lost-aether-content-1.12.2-1.0.2.jar          | None                                     |     | LCHIJA | magical_void_books   | 1.0.0                | MagicalVoidBooks_1.12.2_1.0.1.jar             | None                                     |     | LCHIJA | xaerominimap         | 22.16.2              | Minimap-v22.16.2-for-Forge-1.12.2.jar         | None                                     |     | LCHIJA | mobsunscreen         | @version@            | mobsunscreen-1.12.2-3.1.5.jar                 | None                                     |     | LCHIJA | llibrary             | 1.7.20               | llibrary_1.7.20_1.12.2.jar                    | b9f30a813bee3b9dd5652c460310cfcd54f6b7ec |     | LCHIJA | mowziesmobs          | 1.5.8                | mowziesmobs_1.12.2_1.5.8.jar                  | None                                     |     | LCHIJA | patchouli            | 1.0-23.6             | patchouli-1.0-23.6.jar                        | None                                     |     | LCHIJA | naturesaura          | 18.1                 | naturesaura-18.1.jar                          | None                                     |     | LCHIJA | naturescompass       | 1.8.5                | NaturesCompass_1.12.2_1.8.5.jar               | None                                     |     | LCHIJA | netherex             | 2.2.5                | NetherEx-1.12.2-2.2.5.jar                     | None                                     |     | LCHIJA | nutrition            | 4.9.0                | nutrition-1.12.2-4.9.0.jar                    | None                                     |     | LCHIJA | orestages            | 2.0.37               | OreStages-1.12.2-2.0.37.jar                   | d476d1b22b218a10d845928d1665d45fce301b27 |     | LCHIJA | puddles              | 1.1                  | Puddles_1.12.2_1.1.jar                        | None                                     |     | LCHIJA | qsilkspawners        | 1.0.0                | qsilkspawners_1.0.0.jar                       | None                                     |     | LCHIJA | rallyhealth          | 1.0.0                | RallyHealth_1.0.jar                           | None                                     |     | LCHIJA | realisticarmortiers  | 1.1.1                | realisticarmortiers-1.12.2-1.1.1.jar          | None                                     |     | LCHIJA | recipestages         | 1.1.3                | RecipeStages-1.1.3.8.jar                      | None                                     |     | LCHIJA | additionalstructures | 2.5.0                | rexs-additionalstructures-1.12.xv.2.5.0.jar   | None                                     |     | LCHIJA | sit                  | v1.1.1               | sit_1.12.x_v1.1.1.jar                         | None                                     |     | LCHIJA | skilltree            | 1.2.3.0              | skilltree-1.2.3.0.jar                         | None                                     |     | LCHIJA | surge                | 2.0.79               | surge-1.12.2-2.0.79.jar                       | d476d1b22b218a10d845928d1665d45fce301b27 |     | LCHIJA | twilightforest       | 3.11.1021            | twilightforest_1.12.2_3.11.1021_universal.jar | None                                     |     | LCHIJA | tfspellpack          | 1.1.0                | tfspellpack-1.1.0-mc1.12.2.jar                | None                                     |     | LCHIJA | titlechanger         | 1.1.4                | titlechanger-1.1.4.jar                        | None                                     |     | LCHIJA | tombmanygraves       | 1.12-4.2.0           | TombManyGraves_1.12_4.2.0.jar                 | None                                     |     | LCHIJA | totemic              | 1.12.2-0.11.7        | Totemic-1.12.2-0.11.7.jar                     | None                                     |     | LCHIJA | toughasnails         | 3.1.0.140            | ToughAsNails_1.12.2_3.1.0.140_universal.jar   | None                                     |     | LCHIJA | wawla                | 2.6.275              | Wawla_1.12.2_2.6.275.jar                      | d476d1b22b218a10d845928d1665d45fce301b27 |     | LCHIJA | winterwonderland     | 1.2.2                | WinterWonderLand_1.12_1.2.2.jar               | None                                     |     | LCHIJA | xaeroworldmap        | 1.29.3               | WorldMap-v1.29.3-for-Forge-1.12.2.jar         | None                                     |     | LCHIJA | xpfromharvest        | 1.2.0                | xpfromharvest-1.12.2-1.2.0.jar                | None                                     |     | LCHIJA | zenstages            | 0.5.0-null           | zenstages-0.5.0.jar                           | None                                     |     | LCHIJA | rtg                  | 6.1.0.0-snapshot.1   | RTG-1.12.2-6.1.0.0-snapshot.1.jar             | None                                     |     | LCHIJA | phosphor-lighting    | 1.12.2-0.2.7         | phosphor_forge_mc1.12.2_0.2.7_universal.jar   | None                                     |     | LCHIJA | betteranimalsplus    | 9.0.1                | betteranimalsplus_1.12.2_9.0.1.jar            | None                                     |     | LCHIJA | solcarrot            | 1.8.4                | solcarrot-1.12.2-1.8.4.jar                    | None                                     |     Loaded coremods (and transformers):  CorePlugin (smooth-font-mod-1_12_2.jar)   bre.smoothfont.asm.Transformer TransformLoader (DynamicSurroundings-1.12.2-3.6.1.0.jar)    LoadingPlugin (Bloodmoon_MC1.12.2_1.5.3.jar)   lumien.bloodmoon.asm.ClassTransformer LoadingPlugin (resourceloader-mc1.12.1-1.5.3.jar)   lumien.resourceloader.asm.ClassTransformer XaeroWorldMapPlugin (WorldMap-v1.29.3-for-Forge-1.12.2.jar)   xaero.map.core.transformer.ChunkTransformer   xaero.map.core.transformer.NetHandlerPlayClientTransformer   xaero.map.core.transformer.EntityPlayerTransformer   xaero.map.core.transformer.AbstractClientPlayerTransformer   xaero.map.core.transformer.WorldClientTransformer   xaero.map.core.transformer.PlayerListTransformer   xaero.map.core.transformer.SaveFormatTransformer   xaero.map.core.transformer.BiomeColorHelperTransformer   xaero.map.core.transformer.MinecraftTransformer Aqua Acrobatics Transformer (AquaAcrobatics-v1.2.2-1.12.2.jar)    AppleCore (AppleCore-mc1.12.2-3.2.0.jar)   squeek.applecore.asm.TransformerModuleHandler ItemPatchingLoader (ItemPhysic_Full_1.4.37_mc1.12.2.jar)   com.creativemd.itemphysic.ItemTransformer XaeroMinimapPlugin (Minimap-v22.16.2-for-Forge-1.12.2.jar)   xaero.common.core.transformer.ChunkTransformer   xaero.common.core.transformer.NetHandlerPlayClientTransformer   xaero.common.core.transformer.EntityPlayerTransformer   xaero.common.core.transformer.AbstractClientPlayerTransformer   xaero.common.core.transformer.WorldClientTransformer   xaero.common.core.transformer.EntityPlayerSPTransformer   xaero.common.core.transformer.PlayerListTransformer   xaero.common.core.transformer.SaveFormatTransformer   xaero.common.core.transformer.GuiIngameForgeTransformer   xaero.common.core.transformer.GuiBossOverlayTransformer   xaero.common.core.transformer.ModelRendererTransformer llibrary (llibrary-core-1.0.11-1.12.2.jar)   net.ilexiconn.llibrary.server.core.plugin.LLibraryTransformer   net.ilexiconn.llibrary.server.core.patcher.LLibraryRuntimePatcher AstralCore (astralsorcery-1.12.2-1.10.27.jar)    ForgelinPlugin (forgelin-1.8.4.jar)    PhosphorFMLLoadingPlugin (phosphor_forge_mc1.12.2_0.2.7_universal.jar)    BetterFoliageLoader (betterfoliage-mc1.12-2.3.3.jar)   mods.betterfoliage.loader.BetterFoliageTransformer CreativePatchingLoader (CreativeCore_v1.10.65_mc1.12.2.jar)    Inventory Tweaks Coremod (InventoryTweaks_1.12.2_1.64dev.151.jar)   invtweaks.forge.asm.ContainerTransformer SurgeLoadingPlugin (surge-1.12.2-2.0.79.jar)        Profiler Position: N/A (disabled)     Player Count: 0 / 20; []     Is Modded: Definitely; Server brand changed to 'fml,forge'     Type: Dedicated Server (map_server.txt)
    • Was working fine last night with the same mods but now I am getting this: The game crashed whilst rendering overlay Error: java.lang.ExceptionInInitializerError: null https://pastebin.com/rEpcDEFM
    • Hello. I am having a problem with my All the Mods 9 server, version 0.1.9, crashing after a period of time in which players time out in a certain area. In that area, there are a combination of modpacks at play. I was wondering if anyone could interpret what was causing this crash. Here is the crash report. https://gist.github.com/Logic-alFallacy/0ba6004a8dc0ab1c834b7f0776d3d4a5 Thank you in advance.
    • I just solved my issue I hope this helps   I have an AMD gpu and a dedicated NVIDIA GPU in my device settings, in the NVIDIA control panel it was set to Auto select under 3D Settings>Global settings> Preferred Graphics processor dropdown menu I changed the setting to High-Performance NVIDIA processor and then made sure under  3D Settings>Program settings I made sure the minecraft launcher (minecraft.exe) was added to use the Dedicated GPU now all of a sudden everything works A-OK   This fixed my issue about to try adding mods through curseforge I hope this helps someone else
    • One of these mods are directly modifying the game instead of using the Forge API and crashing:  
  • Topics

×
×
  • Create New...

Important Information

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