Jump to content

Recommended Posts

Posted

Currently so far I've been dealing with Entities and I seem to have that handled fairly well.

 

I have an Attribute Capability that can be on Entities and items (I can easily modify the provider and constructors to take and save an ItemStack as well as an Entity, easy)

 

My question is will I have to create update packets for ItemStack Capabilities or will it be handled like NBT is (more or less synced automatically by MC all ready)

If I need to create these update events, when should I have them "query" the server for their information? Player Update event (check inventory, see if needs to be updated, ask server, get response)

 

Also the current way I'm using it:

@SubscribeEvent
    public void onAddCapabilities(AttachCapabilitiesEvent.Entity e) 
{
	if (canHaveAttributes(e.getEntity()))
	{
		EntityLivingBase ent = (EntityLivingBase)e.getEntity();

		if (ent instanceof EntityPlayer)
			e.addCapability(CapPlayerExtraProvider.KEY, new CapPlayerExtraProvider(ent));

		e.addCapability(CapAttributeProvider.KEY, new CapAttributeProvider(ent));
	}
    }

 

says the subEvent is deprecated, what is the new/upcoming correct way to use this?

Posted

Syncing of item capabilities is tricky. Capability-only changes to an

ItemStack

in a server-side

Container

will cause an

SPacketSetSlot

to be sent for the slot, but this doesn't include the capability data so the client-side copy of the capability data will be reset to the default.

 

There are two open PRs with different fixes for this: #3099 and #3283. If either of these are merged, it should simplify the situation a bit.

 

One way to handle the syncing currently is to register an

IContainerListener

, as described in this thread.

 

The sub-events of

AttachCapabilitiesEvent

were deprecated in this commit with the addition of generic filtering of events. Instead of

AttachCapabilitiesEvent.Entity

, use

AttachCapabilitiesEvent<Entity>

.

Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.

Posted

Hmm..

Ok so I updated the event to what you suggested, no issues, good.

 

I might have to stick with ye olde NBT read and write that I had before, However Once something for ItemStacks becomes a little easier I'll be converting ASAP. Going by the thread the asker had to do quite a bit of tinkering just to get the attach and removal of listeners.

 

Since the Cap is still server-side and most of my mechanics are server-side (events) would be fine, only issue is allowing the player to read what is added to the item (client-side) as their stats only take place once the player is holding (main or offhand) or wearing the piece. But would be nice to see if the stats are harmful before putting on/holding

 

The reads mainly happened every few seconds before or when hovering over an item "ItemTooltipEvent" which I guess if I really wanted to, I could just have it check during that event to update the cap if the default cap had a "boolean needsUpdate = true" to ask the server the stacks real cap.

 

Would that work? (Using a request/reponse packet system in the ItemTooltipEvent) As when wearing gear or holding something, it's the server that tallies up all the values, and just fires a packet off (if it needs to) to update the client for any GUIs I use

Posted

A request/response system may work, I haven't really tried something like that myself.

Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.

Posted

Ah Crud, just remembered, When a mob is killed. I had random loot drop based on how tough it was, likewise the toughness of the mob determined the stats of the loot dropped (if valid equipment type)

 

Now the mob stats are easy to get (the loot table) it's having the Items get their stats rolled based on the dead mob's power. Does the "Attach Capability" event trigger as soon as "New ItemStack" is called?

 

Likewise I do this for crafting too (ItemCraftedEvent) so players have a chance to at least make some gear that has some ok stats so they can start the grind.

 

Q:

When does an ItemStack get it's Capability Attached? Right as it is created in code via New ItemStack?

Posted

AttachCapabilitiesEvent.Item

is fired from

ItemStack#setItem

, which is called from the

ItemStack

constructor.

 

In general,

AttachCapabilitiesEvent

will be fired before you have access to any dynamic data.

AttachCapabilitiesEvent.Item

gives you the

ItemStack

and

Item

,

AttachCapabilitiesEvent<TileEntity>

and

AttachCapabilitiesEvent<Entity>

give you the

TileEntity

/

Entity

before it's been constructed and read from NBT,

AttachCapabilitiesEvent<World>

gives you the

World

when it's mostly initialised.

 

You'll need to generate the random stats for the item when it's crafted or dropped by a mob, not in

AttachCapabilitiesEvent

.

Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.

Posted

So far is the "AttachCapabilitiesEvent<>" the only way to put capabilities on? Only wondering because I was thinking of adding "Unique" look items (weapons) that are not from the standard ItemTool/ItemSword era IE Baked_Potato. However I don't want to put the capability on ALL items just certain types.

 

And in this case a Bake_Potato does not fall into that list. Now this item will be created during a mobs death so created by me dynamically, is there anyway to attach a capability to an item even if it doesn't make it through the check for the event?

 

Item created

Event checks

Fails Item Instance pass

Is from unique item list

Attach Capability?

apply unique stats

apply custom name and enchantment (to give the shiny effect)

 

I'm trying to stay away from adding new blocks and items if I can, as I'd like my mod to be something like the Infernal Mobs mod where it doesn't add new content just new mechanics and can adapt to any other mod. And also reuse all Vanilla items/blocks if I can.

 

Idk the impact of adding a capability to ALL items. If there is no impact at all then I will go ahead and just slap it on, then check if it's the correct item type or a unique to roll stats

 

EDIT:

 

Ran into an issue with my idea for the request/response. The toolTipEvent doesn't supply a "Item current index" and I don't have any other ID's to use to try to toss to the server asking for "get Cap from ItemStack in player inventory at INDEX" then return it (with index) and update it on the client.

 

How would I go about getting what item the player is looking at/mouse is hovering over? Was thinking of using a loop to go through the players inventory and match the itemstack 1=1 but I think if I had say two Iron Swords and I was looking at the sword deeper in the inventory the one that was higher up on the list would be returned instead.

Posted

AttachCapabilitiesEvent

is the only way to attach a capability to an external object, so you'll need to attach the capability to all potential

Item

s and then check if an

ItemStack

is allowed to have stats before you do anything stat-related with it.

 

There shouldn't be much impact of adding a capability to all

Item

s, as long as your

ICapabilityProvider

doesn't do anything expensive in

hasCapability

/

getCapability

it should just be one more iteration of the loops in

CapabilityDispatcher

's implementations of these methods.

 

ItemTooltipEvent

gives you the

ItemStack

, so you can search the player's inventory to find the slot containing the same

ItemStack

(i.e. use

==

instead of checking for equivalency).

Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.

Posted

So ran into a different issue. For attaching capabilities I was using:

@SubscribeEvent

public void onAddCapabilitiesItemStack(AttachCapabilitiesEvent<ItemStack> e)

 

wondering why nothing was getting a capability looked at the documentation and i'm supposed to use <Item>

 

changed it, and some console.outs are telling me things are now being set. However I don't think my provider is working correctly. Anyone have an example of attaching Capabilities to Items? because I've noticed only ItemStack has getCapability()

 

[spoiler=Capability]

package htd.rot.capability.attribute;

import java.util.concurrent.Callable;

import net.minecraft.nbt.NBTBase;
import net.minecraft.util.EnumFacing;
import net.minecraftforge.common.capabilities.Capability;
import net.minecraftforge.common.capabilities.CapabilityInject;
import net.minecraftforge.common.capabilities.CapabilityManager;

public class CapAttribute {
@CapabilityInject(CapAttributeData.class)
public static Capability<CapAttributeData> CAPABILITY = null;

public static void register()
{
	CapabilityManager.INSTANCE.register(CapAttributeData.class, new StorageHelper(), new DefaultInstanceFactory());
}

public static class StorageHelper implements Capability.IStorage<CapAttributeData> {

	@Override
	public NBTBase writeNBT(Capability<CapAttributeData> capability, CapAttributeData instance, EnumFacing side)
	{
		return instance.writeData();
	}

	@Override
	public void readNBT(Capability<CapAttributeData> capability, CapAttributeData instance, EnumFacing side,
			NBTBase nbt)
	{
		instance.readData(nbt);
	}
}

public static class DefaultInstanceFactory implements Callable<CapAttributeData> {
	@Override
	public CapAttributeData call() throws Exception
	{
		return new CapAttributeData();
	}
}
}

 

 

[spoiler=CapabilityData]

package htd.rot.capability.attribute;

import java.util.Random;

import htd.rot.capability.playerextra.CapPlayerExtra;
import htd.rot.capability.playerextra.CapPlayerExtraData;
import htd.rot.libs.HTDDataInfo;
import htd.rot.managers.PlayerCPTypeManager;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.item.Item;
import net.minecraft.nbt.NBTBase;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.math.BlockPos;

public class CapAttributeData {
private EntityLivingBase entity;
private Item item;

public int[] attributes = new int[HTDDataInfo.ATTRIBUTE_TAGS.length];

public float[] stats = new float[HTDDataInfo.STAT_TAGS.length];

public boolean isExhausted = false, needsUpdate = true;

public CapAttributeData()
{
	initData();
}

public EntityLivingBase getEntity()
{
	return entity;
}

public void setEntity(EntityLivingBase entity)
{
	this.entity = entity;
}

public Item getItem()
{
	return item;
}

public void setItem(Item item)
{
	this.item = item;
}

private void initData()
{
	for (int index = 0; index < attributes.length; index++)
	{
		attributes[index] = HTDDataInfo.attributes[index];
	}

	for (int index = 0; index < stats.length; index++)
	{
		stats[index] = HTDDataInfo.stats[index];
	}
}

// Stamina
public boolean needsStam()
{
	return stats[HTDDataInfo.STAM] < HTDDataInfo.MAX_STAM_MANA;
}

public boolean consumeStam(float cost)
{
	float adjustedCost = (cost * getAdjustedStamCostPercent(cost));
	if (stats[HTDDataInfo.STAM] - adjustedCost >= 0)
	{
		stats[HTDDataInfo.STAM] -= adjustedCost;
		return true;
	}
	return false;
}

public void regenStam()
{
	float amount = (stats[HTDDataInfo.VITALITY] * 0.0578f) + (stats[HTDDataInfo.BONUS_STAM_REGEN] * 0.20f);
	addStam(amount);
}

public void addStam(float amount)
{
	stats[HTDDataInfo.STAM] += (HTDDataInfo.MAX_STAM_MANA
			* (((getAdjustedMaxStam() + amount) / getAdjustedMaxStam()) - 1f));
	if (stats[HTDDataInfo.STAM] > HTDDataInfo.MAX_STAM_MANA)
		stats[HTDDataInfo.STAM] = HTDDataInfo.MAX_STAM_MANA;
}

public float getAdjustedMaxStam()
{
	CapPlayerExtraData playerExtra = entity.getCapability(CapPlayerExtra.CAPABILITY, null);
	float maxStam = HTDDataInfo.MAX_STAM_MANA;
	if (playerExtra != null && playerExtra.getCurrentClass() != -1)
		maxStam += (PlayerCPTypeManager.classes[playerExtra.getCurrentClass()].stamPerVitStat
				* attributes[HTDDataInfo.VITALITY])
				+ PlayerCPTypeManager.classes[playerExtra.getCurrentClass()].stats[HTDDataInfo.BONUS_STAM];
	else // Mobs
		maxStam += (5 * attributes[HTDDataInfo.VITALITY]);

	maxStam += stats[HTDDataInfo.BONUS_STAM];

	return maxStam;
}

public float getAdjustedCurrentStam()
{
	return getAdjustedMaxStam() * (stats[HTDDataInfo.STAM] / HTDDataInfo.MAX_STAM_MANA);
}

public float getAdjustedStamCostPercent(float cost)
{
	return 1f - ((getAdjustedMaxStam() - cost) / getAdjustedMaxStam());
}

// Mana
public boolean needsMana()
{
	return stats[HTDDataInfo.MANA] < HTDDataInfo.MAX_STAM_MANA;
}

public boolean consumeMana(float cost)
{
	float adjustedCost = (cost * getAdjustedManaCostPercent(cost));
	if (stats[HTDDataInfo.MANA] - adjustedCost >= 0)
	{
		stats[HTDDataInfo.MANA] -= adjustedCost;
		return true;
	}
	return false;
}

public void regenMana()
{
	float amount = (stats[HTDDataInfo.INTELLIGENCE] * 0.0578f) + (stats[HTDDataInfo.BONUS_MANA_REGEN] * 0.20f);
	addMana(amount);
}

public void addMana(float amount)
{
	stats[HTDDataInfo.MANA] += (HTDDataInfo.MAX_STAM_MANA
			* (((getAdjustedMaxMana() + amount) / getAdjustedMaxMana()) - 1f));
	if (stats[HTDDataInfo.MANA] > HTDDataInfo.MAX_STAM_MANA)
		stats[HTDDataInfo.MANA] = HTDDataInfo.MAX_STAM_MANA;
}

public float getAdjustedMaxMana()
{
	CapPlayerExtraData playerExtra = entity.getCapability(CapPlayerExtra.CAPABILITY, null);
	float maxMana = HTDDataInfo.MAX_STAM_MANA;
	if (playerExtra != null && playerExtra.getCurrentClass() != -1)
		maxMana += (PlayerCPTypeManager.classes[playerExtra.getCurrentClass()].manaPerIntStat
				* attributes[HTDDataInfo.INTELLIGENCE])
				+ PlayerCPTypeManager.classes[playerExtra.getCurrentClass()].stats[HTDDataInfo.BONUS_MANA];
	else // Mobs
		maxMana += (5 * attributes[HTDDataInfo.INTELLIGENCE]);

	maxMana += stats[HTDDataInfo.BONUS_MANA];

	return maxMana;
}

public float getAdjustedCurrentMana()
{
	return getAdjustedMaxMana() * (stats[HTDDataInfo.MANA] / HTDDataInfo.MAX_STAM_MANA);
}

public float getAdjustedManaCostPercent(float cost)
{
	return 1f - ((getAdjustedMaxMana() - cost) / getAdjustedMaxMana());
}

// Health
public float getAdjustedMaxHealth()
{
	CapPlayerExtraData playerExtra = entity.getCapability(CapPlayerExtra.CAPABILITY, null);
	float maxHP = entity.getMaxHealth() * HTDDataInfo.BASE_UPSCALE;

	if (playerExtra != null && playerExtra.getCurrentClass() != -1)
		maxHP += (PlayerCPTypeManager.classes[playerExtra.getCurrentClass()].hpPerVit
				* attributes[HTDDataInfo.VITALITY])
				+ PlayerCPTypeManager.classes[playerExtra.getCurrentClass()].stats[HTDDataInfo.BONUS_HP];
	else // Mobs
		maxHP += (5 * attributes[HTDDataInfo.VITALITY]);

	maxHP += stats[HTDDataInfo.BONUS_HP];

	return maxHP;
}

public float getAdjustedCurrentHealth()
{
	return getAdjustedMaxHealth() * (entity.getHealth() / entity.getMaxHealth());
}

public float getAdjustedDamagePercent(float damage)
{
	return 1f - ((getAdjustedMaxHealth() - damage) / getAdjustedMaxHealth());
}

public void rollStats()
{
	int[] attrs = new int[attributes.length];
	int lowerHeight = 62;
	int upperHeight = 100;

	int yHeight = (int) entity.posY;
	int heightBonus = 0;
	int sunlessDepth = 0;

	if (!entity.worldObj.canBlockSeeSky(new BlockPos(entity.posX, entity.posY, entity.posZ)))
	{
		for (int yOffset = 1; yOffset <= 50; yOffset++)
		{
			if (!entity.worldObj.canBlockSeeSky(new BlockPos(entity.posX, entity.posY + yOffset, entity.posZ)))
				sunlessDepth++;
			else
				break;
		}
	}

	if (yHeight < lowerHeight)
		heightBonus = (int) ((yHeight - lowerHeight) * 2.85f);
	else if (yHeight > upperHeight)
		heightBonus = yHeight - upperHeight;

	heightBonus = heightBonus < 0 ? heightBonus * -1 : heightBonus;

	int baseBonus = 5 + sunlessDepth;

	Random rand = new Random();
	for (int index = 0; index < attributes.length; index++)
	{
		attrs[index] = (baseBonus + (heightBonus <= 0 ? 0 : rand.nextInt(heightBonus))
				+ (sunlessDepth <= 0 ? 0 : rand.nextInt(sunlessDepth)));
	}
	attrs[HTDDataInfo.LIFE_STEAL] = 0;
	attrs[HTDDataInfo.MANA_STEAL] = 0;
	updateAttributes(attrs);
}

public void rollItemStats()
{
	int[] attrs = new int[attributes.length];
	int baseBonus = 5;

	Random rand = new Random();
	for (int index = 0; index < attributes.length; index++)
	{
		attrs[index] = (baseBonus + rand.nextInt(12));
	}
	attrs[HTDDataInfo.LIFE_STEAL] = 0;
	attrs[HTDDataInfo.MANA_STEAL] = 0;
	updateAttributes(attrs);
}

public NBTBase writeData()
{
	NBTTagCompound tag = new NBTTagCompound();
	for (int index = 0; index < attributes.length; index++)
	{
		tag.setInteger(HTDDataInfo.ATTRIBUTE_TAGS[index].trim().toLowerCase(), attributes[index]);
	}

	for (int index = 0; index < stats.length; index++)
	{
		tag.setFloat(HTDDataInfo.STAT_TAGS[index].trim().toLowerCase(), stats[index]);
	}

	return tag;
}

public void readData(NBTBase nbt)
{
	NBTTagCompound tag = (NBTTagCompound) nbt;
	for (int index = 0; index < attributes.length; index++)
	{
		attributes[index] = tag.getInteger(HTDDataInfo.ATTRIBUTE_TAGS[index].trim().toLowerCase());
	}

	for (int index = 0; index < stats.length; index++)
	{
		stats[index] = tag.getFloat(HTDDataInfo.STAT_TAGS[index].trim().toLowerCase());
	}
}

public Object[] compressData()
{
	Object[] data = new Object[attributes.length + stats.length];
	int dataIndex = 0;

	for (int index = 0; index < attributes.length; index++)
	{
		data[dataIndex++] = attributes[index];
	}

	for (int index = 0; index < stats.length; index++)
	{
		data[dataIndex++] = stats[index];
	}

	return data;
}

public void decompressData(Object[] data)
{
	int dataIndex = 0;

	for (int index = 0; index < attributes.length; index++)
	{
		attributes[index] = (int) data[dataIndex++];
	}

	for (int index = 0; index < stats.length; index++)
	{
		stats[index] = (float) data[dataIndex++];
	}

	updateAttributes(attributes);
}

public void updateAttributes(int[] attributes)
{
	int[] pulledAttributes = attributes;
	for (int index = 0; index < this.attributes.length; index++)
	{
		pulledAttributes[index] = pulledAttributes[index] > HTDDataInfo.ATTRIBUTE_MAX_LIMIT
				? HTDDataInfo.ATTRIBUTE_MAX_LIMIT : pulledAttributes[index];

		pulledAttributes[index] = pulledAttributes[index] < (HTDDataInfo.ATTRIBUTE_MAX_LIMIT * -1)
				? (HTDDataInfo.ATTRIBUTE_MAX_LIMIT * -1) : pulledAttributes[index];
	}
	pulledAttributes[HTDDataInfo.MAX_DAMAGE] = pulledAttributes[HTDDataInfo.MAX_DAMAGE] < pulledAttributes[HTDDataInfo.MIN_DAMAGE]
			? pulledAttributes[HTDDataInfo.MIN_DAMAGE] : pulledAttributes[HTDDataInfo.MAX_DAMAGE];
	this.attributes = pulledAttributes;
}
}

 

 

[spoiler=CapabilityProvider]

package htd.rot.capability.attribute;

import htd.rot.Rot;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.item.Item;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.common.capabilities.Capability;
import net.minecraftforge.common.capabilities.ICapabilityProvider;
import net.minecraftforge.common.capabilities.ICapabilitySerializable;

public class CapAttributeProvider implements ICapabilityProvider, ICapabilitySerializable<NBTTagCompound> {

public static final ResourceLocation KEY = new ResourceLocation(Rot.MODID, "htd_attributes");

private CapAttributeData INSTANCE = new CapAttributeData();

public CapAttributeProvider(EntityLivingBase entity)
{
	INSTANCE.setEntity(entity);
}

public CapAttributeProvider(Item item)
{
	INSTANCE.setItem(item);
}

@Override
public boolean hasCapability(Capability<?> capability, EnumFacing facing)
{
	return capability == CapAttribute.CAPABILITY;
}

@Override
public <T> T getCapability(Capability<T> capability, EnumFacing facing)
{
	if (capability == CapAttribute.CAPABILITY)
		return (T) INSTANCE;
	return null;
}

@Override
public NBTTagCompound serializeNBT()
{
	return (NBTTagCompound) CapAttribute.CAPABILITY.writeNBT(INSTANCE, null);
}

@Override
public void deserializeNBT(NBTTagCompound nbt)
{
	CapAttribute.CAPABILITY.readNBT(INSTANCE, null, nbt);
}

}

 

 

[spoiler=Event]

	@SubscribeEvent
public void onAddCapabilitiesItemStack(AttachCapabilitiesEvent<Item> e)
{
	if (canHaveAttributes(e.getObject()))
	{
		Console.out().println(e.getObject().getClass().getName());
		e.addCapability(CapAttributeProvider.KEY, new CapAttributeProvider(e.getObject()));
	}
}

public static boolean canHaveAttributes(Item item)
{
	if ((item instanceof ItemTool || item instanceof ItemSword || item instanceof ItemBow
			|| item instanceof ItemArmor || item instanceof ItemShield))
		return true;
	return false;
}

 

 

EDIT:

Updated my REPO found in my sig, incase I forgot a file that you'd want to look at

Posted

ItemStack

is the class that implements

ICapabilityProvider

, so this is where you retrieve your capability instance from.

 

I can't see any obvious errors in your code.

 

I attach this provider for this capability to

Items.CLAY_BALL

here.

Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.

Posted

Hmm... I made some tweaks and removed the "item" from the Capability as since the item is just the INSTANCE no point holding it as the ItemStack would hold more power..

 

The tweaks did nothing which isn't surpising. However this code doesn't seem to display what I intend, which is at the very bottom of this:

@SubscribeEvent
public void onItemToolTipUpdate(ItemTooltipEvent e)
{
	if (e.getItemStack().hasCapability(CapAttribute.CAPABILITY, null))
	{
		CapAttributeData cap = e.getItemStack().getCapability(CapAttribute.CAPABILITY, null);
		if (cap != null)
		{
			if (!cap.needsUpdate)
			{
				int ITEMS_PER_LINE = 2;
				int currentLineItems = 0;

				String lineItems = "";
				for (int index = 0; index < cap.attributes.length; index++)
				{
					if (currentLineItems < ITEMS_PER_LINE)
					{
						if (cap.attributes[index] != 0)
						{
							lineItems += HTDDataInfo.ATTRIBUTE_TAGS[index] + ": " + cap.attributes[index];
							currentLineItems++;
						}
					} else
					{
						e.getToolTip().add(lineItems);
						lineItems = "";
						currentLineItems = 0;
					}
				}
				if (currentLineItems > 0)
					e.getToolTip().add(lineItems);
				lineItems = "";
				currentLineItems = 0;
				for (int index = 0; index < cap.stats.length; index++)
				{
					if (currentLineItems < ITEMS_PER_LINE)
					{
						if (cap.stats[index] != 0)
						{
							lineItems += HTDDataInfo.STAT_TAGS[index] + ": " + cap.stats[index];
							currentLineItems++;
						}
					} else
					{
						e.getToolTip().add(lineItems);
						lineItems = "";
						currentLineItems = 0;
					}
				}
				if (currentLineItems > 0)
					e.getToolTip().add(lineItems);
			}
		} else
		{
			e.getToolTip().add("Unidentified...");
		}
	}

}

 

If there is a Capability on the ItemStack but since the capability on the client would be a fresh make of the Capability the Boolean needsUpdate will be true, triggering the code to say "This item is unidentified" to show in the toolTip at the bottom. This is also where I'd start putting the "search through inventories, find matching stack, return Inventory and Slot Id send to server. ask it for the updated capability, update client. And since this event runs "per tick" more or less once the data gets there it will be rendered in the toolTip.

 

So there is a great chance I have messed up somewhere.

Posted

The

else

block that adds the

"Unidentified..."

tooltip is part of the

cap != null

if

statement instead of the

!cap.needsUpdate

if

statement, so it's only running when

cap == null

.

Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.

Posted

Thank you very much, I must have just over complicated the whole darn thing. Thankfully I have a check to go through the equipped items and tally up the stats + class stats and send them off to the player. So even tho they all show up as "Unidentified" I can still see the stats in action via my GUI

 

Now it's getting this update request response system going.

Posted

I've gotten it to the point where I'm happy, If the item is in another container. There is no way to to see what the items have "Unidentified..." but if you move them into your inventory and hover over they will update and show their colors. I'm wondering would it be possible to ask the forge team to let itemStacks hold a reference of their "current" inventory if not I think I'll look into some more events for when loot chests generate loot (so chests in dark places will have strong items) and maybe look into any container open events to try to get a packet sync system for external inventories

 

I've also updated my repo for anyone that wants to see how I did it.

 

htd.rot.managers.PacketManager

htd.rot.events.EventItemLogic

htd.rot.comms.packets.capabilities.CapAttributeItemRequestPacket

htd.rot.comms.packets.capabilities.CapAttributeItemResponsePacket

 

It's a bit messy for now since the player has like 3 inventories inside the InventoryPlayer (Main, Offhand, Armor)

Thanks for the help Choonster

Posted

I'm glad you got it mostly working in the end.

 

I'd say it's unlikely that a PR to add an inventory reference to

ItemStack

will be accepted, since that would be a massive change to a lot of vanilla and mod code.

Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.

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

    • im trying to install 1.21.4 for Minecraft and for some reason it wont install it. I installed the latest version of java and when i try to open to intsall forge it says that java wont work or that it's not installed. if anyone can help that would be great bc all i want is to play minecraft with mods 
    • [18:39:41] [main/INFO]:Fabric mod metadata not found in jar org.groovymc.gml, ignoring [18:39:41] [main/INFO]:Fabric mod metadata not found in jar thedarkcolour.kotlinforforge, ignoring [18:39:42] [main/INFO]:Dependency resolution found 1 candidates to load [18:39:43] [main/INFO]:Found mod file dark-waters-connector-1.20.1-0.0.22_mapped_srg_1.20.1.jar of type MOD with provider org.sinytra.connector.locator.ConnectorLocator@6c8f4bc7 [18:39:43] [main/INFO]:Starting runtime mappings setup... [18:39:43] [main/INFO]:Injecting ScriptModLocator candidates... [18:39:43] [main/INFO]:Injected Jimfs file system [18:39:43] [main/INFO]:Skipped loading script mods from directory C:\Users\wwwSc\curseforge\minecraft\Instances\L SMP (1)\mods\scripts as it did not exist. [18:39:43] [main/INFO]:Injected ScriptModLocator mod candidates. Found 0 valid mod candidates and 0 broken mod files. [18:39:44] [main/INFO]:Successfully made module authlib transformable [18:39:45] [GML Mappings Thread/INFO]:Loaded runtime mappings in 1616ms [18:39:45] [GML Mappings Thread/INFO]:Finished runtime mappings setup. then it crashes
    • ---- Minecraft Crash Report ---- // Embeddium instance tainted by mods: [oculus, embeddium_extra] // Please do not reach out for Embeddium support without removing these mods first. // ------- // Who set us up the TNT? Time: 2024-12-21 15:42:50 Description: Exception in server tick loop java.lang.RuntimeException: java.lang.NullPointerException: Cannot invoke "net.minecraft.world.level.ItemLike.m_5456_()" because "p_41604_" is null     at org.violetmoon.zetaimplforge.event.ForgeEventsRemapper.lambda$createForgeConsumer$2(ForgeEventsRemapper.java:125) ~[Zeta-1.0-24.jar%23417!/:1.0-24] {re:classloading}     at net.minecraftforge.eventbus.EventBus.doCastFilter(EventBus.java:260) ~[eventbus-6.0.5.jar%2387!/:?] {}     at net.minecraftforge.eventbus.EventBus.lambda$addListener$11(EventBus.java:252) ~[eventbus-6.0.5.jar%2387!/:?] {}     at net.minecraftforge.eventbus.EventBus.post(EventBus.java:315) ~[eventbus-6.0.5.jar%2387!/:?] {}     at net.minecraftforge.eventbus.EventBus.post(EventBus.java:296) ~[eventbus-6.0.5.jar%2387!/:?] {}     at net.minecraftforge.event.ForgeEventFactory.onPreServerTick(ForgeEventFactory.java:945) ~[forge-1.20.1-47.3.12-universal.jar%23423!/:?] {re:classloading}     at net.minecraft.server.MinecraftServer.m_5705_(MinecraftServer.java:812) ~[client-1.20.1-20230612.114412-srg.jar%23418!/:?] {re:mixin,pl:accesstransformer:B,xf:fml:xaeroworldmap:xaero_wm_minecraftserver,xf:fml:xaerominimap:xaero_minecraftserver,re:classloading,pl:accesstransformer:B,xf:fml:xaeroworldmap:xaero_wm_minecraftserver,xf:fml:xaerominimap:xaero_minecraftserver,pl:mixin:A}     at net.minecraft.client.server.IntegratedServer.m_5705_(IntegratedServer.java:89) ~[client-1.20.1-20230612.114412-srg.jar%23418!/:?] {re:classloading,pl:runtimedistcleaner:A}     at net.minecraft.server.MinecraftServer.m_130011_(MinecraftServer.java:661) ~[client-1.20.1-20230612.114412-srg.jar%23418!/:?] {re:mixin,pl:accesstransformer:B,xf:fml:xaeroworldmap:xaero_wm_minecraftserver,xf:fml:xaerominimap:xaero_minecraftserver,re:classloading,pl:accesstransformer:B,xf:fml:xaeroworldmap:xaero_wm_minecraftserver,xf:fml:xaerominimap:xaero_minecraftserver,pl:mixin:A}     at net.minecraft.server.MinecraftServer.m_206580_(MinecraftServer.java:251) ~[client-1.20.1-20230612.114412-srg.jar%23418!/:?] {re:mixin,pl:accesstransformer:B,xf:fml:xaeroworldmap:xaero_wm_minecraftserver,xf:fml:xaerominimap:xaero_minecraftserver,re:classloading,pl:accesstransformer:B,xf:fml:xaeroworldmap:xaero_wm_minecraftserver,xf:fml:xaerominimap:xaero_minecraftserver,pl:mixin:A}     at java.lang.Thread.run(Thread.java:833) ~[?:?] {re:mixin} Caused by: java.lang.NullPointerException: Cannot invoke "net.minecraft.world.level.ItemLike.m_5456_()" because "p_41604_" is null     at net.minecraft.world.item.ItemStack.<init>(ItemStack.java:147) ~[client-1.20.1-20230612.114412-srg.jar%23418!/:?] {re:mixin,xf:fml:forge:itemstack,re:classloading,xf:fml:forge:itemstack,pl:mixin:APP:itemfilters-common.mixins.json:ItemStackMixin,pl:mixin:APP:necronomicon-common.mixins.json:item.AnimatedItemNameMixin,pl:mixin:APP:quark.mixins.json:ItemStackMixin,pl:mixin:A}     at net.minecraft.world.item.ItemStack.<init>(ItemStack.java:143) ~[client-1.20.1-20230612.114412-srg.jar%23418!/:?] {re:mixin,xf:fml:forge:itemstack,re:classloading,xf:fml:forge:itemstack,pl:mixin:APP:itemfilters-common.mixins.json:ItemStackMixin,pl:mixin:APP:necronomicon-common.mixins.json:item.AnimatedItemNameMixin,pl:mixin:APP:quark.mixins.json:ItemStackMixin,pl:mixin:A}     at net.minecraft.world.item.ItemStack.<init>(ItemStack.java:127) ~[client-1.20.1-20230612.114412-srg.jar%23418!/:?] {re:mixin,xf:fml:forge:itemstack,re:classloading,xf:fml:forge:itemstack,pl:mixin:APP:itemfilters-common.mixins.json:ItemStackMixin,pl:mixin:APP:necronomicon-common.mixins.json:item.AnimatedItemNameMixin,pl:mixin:APP:quark.mixins.json:ItemStackMixin,pl:mixin:A}     at uwu.lopyluna.create_dd.content.items.equipment.gilded_rose_tools.GRHoeItem.getCraftingRemainingItem(GRHoeItem.java:103) ~[Create-DnDesire-1.20.1-0.1b.Release-Early-Dev.jar%23308!/:0.1b.Release-Early-Dev] {re:classloading}     at net.minecraftforge.common.extensions.IForgeItemStack.getCraftingRemainingItem(IForgeItemStack.java:62) ~[forge-1.20.1-47.3.12-universal.jar%23423!/:?] {re:computing_frames,re:mixin,re:classloading}     at org.violetmoon.zeta.util.handler.RecipeCrawlHandler.digest(RecipeCrawlHandler.java:159) ~[Zeta-1.0-24.jar%23417!/:1.0-24] {re:classloading}     at org.violetmoon.zeta.util.handler.RecipeCrawlHandler.onTick(RecipeCrawlHandler.java:142) ~[Zeta-1.0-24.jar%23417!/:1.0-24] {re:classloading}     at org.violetmoon.zetaimplforge.event.ForgeEventsRemapper.lambda$createForgeConsumer$2(ForgeEventsRemapper.java:123) ~[Zeta-1.0-24.jar%23417!/:1.0-24] {re:classloading}     ... 10 more A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- System Details -- Details:     Minecraft Version: 1.20.1     Minecraft Version ID: 1.20.1     Operating System: Windows 11 (amd64) version 10.0     Java Version: 17.0.8, Microsoft     Java VM Version: OpenJDK 64-Bit Server VM (mixed mode), Microsoft     Memory: 1657773056 bytes (1580 MiB) / 7033847808 bytes (6708 MiB) up to 8388608000 bytes (8000 MiB)     CPUs: 20     Processor Vendor: GenuineIntel     Processor Name: 12th Gen Intel(R) Core(TM) i7-12700H     Identifier: Intel64 Family 6 Model 154 Stepping 3     Microarchitecture: Alder Lake     Frequency (GHz): 2.69     Number of physical packages: 1     Number of physical CPUs: 14     Number of logical CPUs: 20     Graphics card #0 name: NVIDIA GeForce RTX 3060 Laptop GPU     Graphics card #0 vendor: NVIDIA (0x10de)     Graphics card #0 VRAM (MB): 4095.00     Graphics card #0 deviceId: 0x2520     Graphics card #0 versionInfo: DriverVersion=32.0.15.5597     Graphics card #1 name: Intel(R) Iris(R) Xe Graphics     Graphics card #1 vendor: Intel Corporation (0x8086)     Graphics card #1 VRAM (MB): 1024.00     Graphics card #1 deviceId: 0x46a6     Graphics card #1 versionInfo: DriverVersion=31.0.101.4146     Memory slot #0 capacity (MB): 8192.00     Memory slot #0 clockSpeed (GHz): 4.80     Memory slot #0 type: Unknown     Memory slot #1 capacity (MB): 8192.00     Memory slot #1 clockSpeed (GHz): 4.80     Memory slot #1 type: Unknown     Virtual memory max (MB): 33483.11     Virtual memory used (MB): 22077.64     Swap memory total (MB): 17408.00     Swap memory used (MB): 984.43     JVM Flags: 4 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xss1M -Xmx8000m -Xms256m     Loaded Shaderpack: ComplementaryReimagined_r5.3 + EuphoriaPatches_1.4.3         Profile: HIGH (+0 options changed by user)     Server Running: true     Player Count: 0 / 8; []     Data Packs: vanilla, mod:flansmod (incompatible), mod:kuma_api (incompatible), mod:create_things_and_misc, mod:easyanvils, mod:geckolib, mod:createdeco (incompatible), mod:botarium (incompatible), mod:critter_lib, mod:immersive_aircraft (incompatible), mod:sophisticatedcore (incompatible), mod:ironjetpacks, mod:ritchiesprojectilelib (incompatible), mod:xaeroworldmap (incompatible), mod:citadel (incompatible), mod:alexsmobs (incompatible), mod:mixinextras (incompatible), mod:bookshelf, mod:sophisticatedbackpacks (incompatible), mod:create_dragon_lib (incompatible), mod:pickupnotifier, mod:bygonenether (incompatible), mod:railways, mod:create_new_age, mod:balm, mod:immersive_armors (incompatible), mod:carryon (incompatible), mod:leavesbegone, mod:letsdoaddon_compat, mod:embeddium, mod:createcafe (incompatible), mod:create_connected, mod:farmersdelight, mod:ironfurnaces, mod:botania, mod:gardenofglass (incompatible), mod:baubly, mod:resourcefulconfig (incompatible), mod:curios (incompatible), mod:patchouli (incompatible), mod:create_factory, mod:advancednetherite, mod:ftbultimine (incompatible), mod:resourcefullib (incompatible), mod:architectury (incompatible), mod:camping, mod:doapi (incompatible), mod:vinery (incompatible), mod:beachparty (incompatible), mod:bloomingnature, mod:meadow, mod:herbalbrews, mod:toms_storage (incompatible), mod:customstartinggear (incompatible), mod:createteleporters, mod:sliceanddice (incompatible), mod:darkmodeeverywhere (incompatible), mod:quarkoddities, mod:estrogen (incompatible), mod:create_questing (incompatible), mod:createbigcannons (incompatible), mod:gourmet, mod:cucumber, mod:ftblibrary (incompatible), mod:ftbteams (incompatible), mod:sophisticatedstorage (incompatible), mod:copycats (incompatible), mod:itemfilters (incompatible), mod:easymagic, mod:jei, mod:nethervinery (incompatible), mod:furniture (incompatible), mod:createloveandwar, mod:waystones, mod:clumps (incompatible), mod:journeymap (incompatible), mod:comforts (incompatible), mod:naturescompass, mod:libx, mod:design_decor (incompatible), mod:create_confectionery, mod:fusion, mod:crafttweaker (incompatible), mod:mekanism, mod:puzzlesaccessapi, mod:forge, mod:farm_and_charm (incompatible), mod:candlelight (incompatible), mod:bakery (incompatible), mod:brewery (incompatible), mod:tfmg (incompatible), mod:ironchest, mod:jukeboxfix (incompatible), mod:alexscaves, mod:enchdesc (incompatible), mod:terrablender, mod:biomesoplenty (incompatible), mod:moonlight (incompatible), mod:paradigms_dyed_planks, mod:mousetweaks, mod:regions_unexplored (incompatible), mod:necronomicon, mod:ftbquests (incompatible), mod:mixinsquared (incompatible), mod:jade (incompatible), mod:ae2 (incompatible), mod:spectrelib (incompatible), mod:kotlinforforge (incompatible), mod:flywheel, mod:steampowered (incompatible), mod:amendments (incompatible), mod:create, mod:create_dd (incompatible), mod:crystal_clear (incompatible), mod:create_central_kitchen (incompatible), mod:createcasing (incompatible), mod:creategoggles (incompatible), mod:extendedgears (incompatible), mod:createoreexcavation (incompatible), mod:xaerominimap (incompatible), mod:create_sa, mod:storagedrawers (incompatible), mod:zeta (incompatible), mod:quark (incompatible), mod:supplementaries, mod:immediatelyfast (incompatible), mod:wildernature, mod:createmetallurgy (incompatible), mod:embeddium_extra, mod:puzzleslib, mod:kitchen_grow (incompatible), mod:just_ctgui, mod:create_oppenheimered, mod:euphoria_patcher, mod:oculus, mod:create_enchantment_industry (incompatible), mod:letsdoaddonstructures, mod:createaddition (incompatible), Supplementaries Generated Pack, better_leaves, builtin/loveandwar_simple_brass, builtin/loveandwar_vender_data, bushy_leaves, create_central_kitchen:farmersdelight (incompatible), green_stove, optifine_support, mod:mysticalagriculture, mod:matc, mod:gravestone     Enabled Feature Flags: minecraft:vanilla     World Generation: Stable     Type: Integrated Server (map_client.txt)     Is Modded: Definitely; Client brand changed to 'forge'; Server brand changed to 'forge'     Launched Version: forge-47.3.12     ModLauncher: 10.0.9+10.0.9+main.dcd20f30     ModLauncher launch target: forgeclient     ModLauncher naming: srg     ModLauncher services:          mixin-0.8.5.jar mixin PLUGINSERVICE          eventbus-6.0.5.jar eventbus PLUGINSERVICE          fmlloader-1.20.1-47.3.12.jar slf4jfixer PLUGINSERVICE          fmlloader-1.20.1-47.3.12.jar object_holder_definalize PLUGINSERVICE          fmlloader-1.20.1-47.3.12.jar runtime_enum_extender PLUGINSERVICE          fmlloader-1.20.1-47.3.12.jar capability_token_subclass PLUGINSERVICE          accesstransformers-8.0.4.jar accesstransformer PLUGINSERVICE          fmlloader-1.20.1-47.3.12.jar runtimedistcleaner PLUGINSERVICE          modlauncher-10.0.9.jar mixin TRANSFORMATIONSERVICE          modlauncher-10.0.9.jar fml TRANSFORMATIONSERVICE      FML Language Providers:          [email protected]         [email protected]         javafml@null         lowcodefml@null     Mod List:          flansmod-1.20.1-0.4.193.jar                       |Flan's Mod                    |flansmod                      |0.4                 |DONE      |Manifest: NOSIGNATURE         kuma-api-forge-20.1.9-SNAPSHOT.jar                |KumaAPI                       |kuma_api                      |20.1.9-SNAPSHOT     |DONE      |Manifest: NOSIGNATURE         create_misc_and_things_ 1.20.1_4.0A.jar           |create: things and misc       |create_things_and_misc        |1.0.0               |DONE      |Manifest: NOSIGNATURE         EasyAnvils-v8.0.2-1.20.1-Forge.jar                |Easy Anvils                   |easyanvils                    |8.0.2               |DONE      |Manifest: 9a:09:85:98:65:c4:8c:11:c5:49:f6:d6:33:23:39:df:8d:b4:ff:92:84:b8:bd:a5:83:9f:ac:7f:2a:d1:4b:6a         geckolib-forge-1.20.1-4.4.9.jar                   |GeckoLib 4                    |geckolib                      |4.4.9               |DONE      |Manifest: NOSIGNATURE         createdeco-2.0.2-1.20.1-forge.jar                 |Create Deco                   |createdeco                    |2.0.2-1.20.1-forge  |DONE      |Manifest: NOSIGNATURE         botarium-forge-1.20.1-2.3.4.jar                   |Botarium                      |botarium                      |2.3.4               |DONE      |Manifest: NOSIGNATURE         critter-forge-0.1-beta.11.jar                     |Critter Library               |critter_lib                   |0.1-beta.11         |DONE      |Manifest: NOSIGNATURE         immersive_aircraft-1.1.5+1.20.1-forge.jar         |Immersive Aircraft            |immersive_aircraft            |1.1.5+1.20.1        |DONE      |Manifest: NOSIGNATURE         sophisticatedcore-1.20.1-1.0.1.809.jar            |Sophisticated Core            |sophisticatedcore             |1.0.1.809           |DONE      |Manifest: NOSIGNATURE         IronJetpacks-1.20.1-7.0.7.jar                     |Iron Jetpacks                 |ironjetpacks                  |7.0.7               |DONE      |Manifest: NOSIGNATURE         ritchiesprojectilelib-2.0.0-dev+mc.1.20.1-forge-bu|Ritchie's Projectile Library  |ritchiesprojectilelib         |2.0.0-dev+mc.1.20.1-|DONE      |Manifest: NOSIGNATURE         XaerosWorldMap_1.39.2_Forge_1.20.jar              |Xaero's World Map             |xaeroworldmap                 |1.39.2              |DONE      |Manifest: NOSIGNATURE         citadel-2.6.1-1.20.1.jar                          |Citadel                       |citadel                       |2.6.1               |DONE      |Manifest: NOSIGNATURE         alexsmobs-1.22.9.jar                              |Alex's Mobs                   |alexsmobs                     |1.22.9              |DONE      |Manifest: NOSIGNATURE         mixinextras-forge-0.4.1.jar                       |MixinExtras                   |mixinextras                   |0.4.1               |DONE      |Manifest: NOSIGNATURE         Bookshelf-Forge-1.20.1-20.2.13.jar                |Bookshelf                     |bookshelf                     |20.2.13             |DONE      |Manifest: eb:c4:b1:67:8b:f9:0c:db:dc:4f:01:b1:8e:61:64:39:4c:10:85:0b:a6:c4:c7:48:f0:fa:95:f2:cb:08:3a:e5         sophisticatedbackpacks-1.20.1-3.20.17.1150.jar    |Sophisticated Backpacks       |sophisticatedbackpacks        |3.20.17.1150        |DONE      |Manifest: NOSIGNATURE         create_dragon_lib-1.20.1-1.4.3.jar                |Create: Dragon Lib            |create_dragon_lib             |1.4.3               |DONE      |Manifest: NOSIGNATURE         PickUpNotifier-v8.0.0-1.20.1-Forge.jar            |Pick Up Notifier              |pickupnotifier                |8.0.0               |DONE      |Manifest: 9a:09:85:98:65:c4:8c:11:c5:49:f6:d6:33:23:39:df:8d:b4:ff:92:84:b8:bd:a5:83:9f:ac:7f:2a:d1:4b:6a         bygonenether-1.3.2-1.20.x.jar                     |Bygone Nether                 |bygonenether                  |1.3.2               |DONE      |Manifest: NOSIGNATURE         Steam_Rails-1.6.7+forge-mc1.20.1.jar              |Create: Steam 'n' Rails       |railways                      |1.6.7+forge-mc1.20.1|DONE      |Manifest: NOSIGNATURE         create-new-age-forge-1.20.1-1.1.2.jar             |Create: New Age               |create_new_age                |1.1.2               |DONE      |Manifest: NOSIGNATURE         balm-forge-1.20.1-7.3.10-all.jar                  |Balm                          |balm                          |7.3.10              |DONE      |Manifest: NOSIGNATURE         immersive_armors-1.6.1+1.20.1-forge.jar           |Immersive Armors              |immersive_armors              |1.6.1+1.20.1        |DONE      |Manifest: NOSIGNATURE         carryon-forge-1.20.1-2.1.2.7.jar                  |Carry On                      |carryon                       |2.1.2.7             |DONE      |Manifest: NOSIGNATURE         LeavesBeGone-v8.0.0-1.20.1-Forge.jar              |Leaves Be Gone                |leavesbegone                  |8.0.0               |DONE      |Manifest: 9a:09:85:98:65:c4:8c:11:c5:49:f6:d6:33:23:39:df:8d:b4:ff:92:84:b8:bd:a5:83:9f:ac:7f:2a:d1:4b:6a         letsdo-addon-compat-forge-1.4.2.jar               |[Let's Do Addon] Compat       |letsdoaddon_compat            |1.4.2               |DONE      |Manifest: NOSIGNATURE         embeddium-0.3.31+mc1.20.1.jar                     |Embeddium                     |embeddium                     |0.3.31+mc1.20.1     |DONE      |Manifest: NOSIGNATURE         createcafe-1.2.4-1.20.1.jar                       |Create Cafe                   |createcafe                    |1.2.4-1.20.1        |DONE      |Manifest: NOSIGNATURE         create_connected-0.9.2-mc1.20.1-all.jar           |Create: Connected             |create_connected              |0.9.2-mc1.20.1      |DONE      |Manifest: NOSIGNATURE         FarmersDelight-1.20.1-1.2.6.jar                   |Farmer's Delight              |farmersdelight                |1.20.1-1.2.6        |DONE      |Manifest: NOSIGNATURE         ironfurnaces-1.20.1-4.1.6.jar                     |Iron Furnaces                 |ironfurnaces                  |4.1.6               |DONE      |Manifest: NOSIGNATURE         Botania-1.20.1-446-FORGE.jar                      |Botania                       |botania                       |1.20.1-446-FORGE    |DONE      |Manifest: NOSIGNATURE         gardenofglass-1.12.jar                            |Garden of Glass               |gardenofglass                 |1.12                |DONE      |Manifest: NOSIGNATURE         baubly-forge-1.20.1-1.0.1.jar                     |Baubly                        |baubly                        |1.0.1               |DONE      |Manifest: NOSIGNATURE         resourcefulconfig-forge-1.20.1-2.1.2.jar          |Resourcefulconfig             |resourcefulconfig             |2.1.2               |DONE      |Manifest: NOSIGNATURE         curios-forge-5.11.0+1.20.1.jar                    |Curios API                    |curios                        |5.11.0+1.20.1       |DONE      |Manifest: NOSIGNATURE         Patchouli-1.20.1-84-FORGE.jar                     |Patchouli                     |patchouli                     |1.20.1-84-FORGE     |DONE      |Manifest: NOSIGNATURE         create_factory-0.4b-1.20.1.jar                    |Create: Factory               |create_factory                |0.4b-1.20.1         |DONE      |Manifest: NOSIGNATURE         advancednetherite-forge-2.1.3-1.20.1.jar          |Advanced Netherite            |advancednetherite             |2.1.3               |DONE      |Manifest: NOSIGNATURE         ftb-ultimine-forge-2001.1.5.jar                   |FTB Ultimine                  |ftbultimine                   |2001.1.5            |DONE      |Manifest: NOSIGNATURE         resourcefullib-forge-1.20.1-2.1.29.jar            |Resourceful Lib               |resourcefullib                |2.1.29              |DONE      |Manifest: NOSIGNATURE         architectury-9.2.14-forge.jar                     |Architectury                  |architectury                  |9.2.14              |DONE      |Manifest: NOSIGNATURE         letsdo-camping-forge-1.0.4.jar                    |[Let's Do] Camping            |camping                       |1.0.4               |DONE      |Manifest: NOSIGNATURE         letsdo-API-forge-1.2.15-forge.jar                 |[Let's Do] API                |doapi                         |1.2.15              |DONE      |Manifest: NOSIGNATURE         letsdo-vinery-forge-1.4.34.jar                    |[Let's Do] Vinery             |vinery                        |1.4.34              |DONE      |Manifest: NOSIGNATURE         letsdo-beachparty-forge-1.1.5.jar                 |[Let's Do] Beachparty         |beachparty                    |1.1.5               |DONE      |Manifest: NOSIGNATURE         letsdo-bloomingnature-forge-1.0.9.jar             |[Let's Do] BloomingNature     |bloomingnature                |1.0.9               |DONE      |Manifest: NOSIGNATURE         letsdo-meadow-forge-1.3.19.jar                    |[Let's Do] Meadow             |meadow                        |1.3.19              |DONE      |Manifest: NOSIGNATURE         letsdo-herbalbrews-forge-1.0.8.jar                |[Let's Do] HerbalBrews        |herbalbrews                   |1.0.8               |DONE      |Manifest: NOSIGNATURE         toms_storage-1.20-1.6.9.jar                       |Tom's Simple Storage Mod      |toms_storage                  |1.6.9               |DONE      |Manifest: NOSIGNATURE         CustomStartingGear-1.20-2.0.3.jar                 |Custom Starter Gear           |customstartinggear            |2.0.3               |DONE      |Manifest: NOSIGNATURE         createteleporters2.2-1.20.1.jar                   |Create Teleporters            |createteleporters             |2.2                 |DONE      |Manifest: NOSIGNATURE         sliceanddice-forge-3.3.0.jar                      |Create Slice & Dice           |sliceanddice                  |3.3.0               |DONE      |Manifest: NOSIGNATURE         DarkModeEverywhere-1.20.1-1.2.3.jar               |DarkModeEverywhere            |darkmodeeverywhere            |1.20.1-1.2.3        |DONE      |Manifest: NOSIGNATURE         QuarkOddities-1.20.1.jar                          |Quark Oddities                |quarkoddities                 |1.20.1              |DONE      |Manifest: NOSIGNATURE         Estrogen-4.3.1+1.20.1-forge.jar                   |Create: Estrogen              |estrogen                      |4.3.1+1.20.1-forge  |DONE      |Manifest: NOSIGNATURE         Create_Questing-FORGE-1.20.1-1.0.0.jar            |Create Questing               |create_questing               |1.0.0               |DONE      |Manifest: NOSIGNATURE         createbigcannons-5.7.2-mc.1.20.1-forge.jar        |Create Big Cannons            |createbigcannons              |5.7.2               |DONE      |Manifest: NOSIGNATURE         gourmet-0.1.1b-1.20.1.jar                         |Create Gourmet                |gourmet                       |0.1.1b-1.20.1       |DONE      |Manifest: NOSIGNATURE         Cucumber-1.20.1-7.0.13.jar                        |Cucumber Library              |cucumber                      |7.0.13              |DONE      |Manifest: NOSIGNATURE         ftb-library-forge-2001.2.6.jar                    |FTB Library                   |ftblibrary                    |2001.2.6            |DONE      |Manifest: NOSIGNATURE         ftb-teams-forge-2001.3.0.jar                      |FTB Teams                     |ftbteams                      |2001.3.0            |DONE      |Manifest: NOSIGNATURE         sophisticatedstorage-1.20.1-1.0.2.985.jar         |Sophisticated Storage         |sophisticatedstorage          |1.0.2.985           |DONE      |Manifest: NOSIGNATURE         copycats-2.1.4+mc.1.20.1-forge.jar                |Create: Copycats+             |copycats                      |2.1.4+mc.1.20.1-forg|DONE      |Manifest: NOSIGNATURE         item-filters-forge-2001.1.0-build.59.jar          |Item Filters                  |itemfilters                   |2001.1.0-build.59   |DONE      |Manifest: NOSIGNATURE         EasyMagic-v8.0.1-1.20.1-Forge.jar                 |Easy Magic                    |easymagic                     |8.0.1               |DONE      |Manifest: 9a:09:85:98:65:c4:8c:11:c5:49:f6:d6:33:23:39:df:8d:b4:ff:92:84:b8:bd:a5:83:9f:ac:7f:2a:d1:4b:6a         jei-1.20.1-forge-15.20.0.105.jar                  |Just Enough Items             |jei                           |15.20.0.105         |DONE      |Manifest: NOSIGNATURE         letsdo-nethervinery-forge-1.2.16.jar              |[Let's Do] NetherVinery       |nethervinery                  |1.2.16              |DONE      |Manifest: NOSIGNATURE         letsdo-furniture-forge-1.0.4.jar                  |[Let's Do] Furniture          |furniture                     |1.0.4               |DONE      |Manifest: NOSIGNATURE         createloveandwar-0.3-1.20.1.jar                   |Create: Love and War          |createloveandwar              |0.3-1.20.1          |DONE      |Manifest: NOSIGNATURE         waystones-forge-1.20-14.1.6.jar                   |Waystones                     |waystones                     |14.1.6              |DONE      |Manifest: NOSIGNATURE         Clumps-forge-1.20.1-12.0.0.4.jar                  |Clumps                        |clumps                        |12.0.0.4            |DONE      |Manifest: NOSIGNATURE         journeymap-1.20.1-5.10.3-forge.jar                |Journeymap                    |journeymap                    |5.10.3              |DONE      |Manifest: NOSIGNATURE         comforts-forge-6.4.0+1.20.1.jar                   |Comforts                      |comforts                      |6.4.0+1.20.1        |DONE      |Manifest: NOSIGNATURE         NaturesCompass-1.20.1-1.11.2-forge.jar            |Nature's Compass              |naturescompass                |1.20.1-1.11.2-forge |DONE      |Manifest: NOSIGNATURE         LibX-1.20.1-5.0.14.jar                            |LibX                          |libx                          |1.20.1-5.0.14       |DONE      |Manifest: NOSIGNATURE         design_decor-0.4.0b-1.20.1.jar                    |Create: Design n' Decor       |design_decor                  |0.4.0b              |DONE      |Manifest: NOSIGNATURE         create-confectionery1.20.1_v1.1.0.jar             |Create Confectionery          |create_confectionery          |1.1.0               |DONE      |Manifest: NOSIGNATURE         fusion-1.1.1-forge-mc1.20.1.jar                   |Fusion                        |fusion                        |1.1.1               |DONE      |Manifest: NOSIGNATURE         CraftTweaker-forge-1.20.1-14.0.44.jar             |CraftTweaker                  |crafttweaker                  |14.0.44             |DONE      |Manifest: NOSIGNATURE         Mekanism-1.20.1-10.4.12.68.jar                    |Mekanism                      |mekanism                      |10.4.12             |DONE      |Manifest: NOSIGNATURE         puzzlesaccessapi-forge-8.0.7.jar                  |Puzzles Access Api            |puzzlesaccessapi              |8.0.7               |DONE      |Manifest: 9a:09:85:98:65:c4:8c:11:c5:49:f6:d6:33:23:39:df:8d:b4:ff:92:84:b8:bd:a5:83:9f:ac:7f:2a:d1:4b:6a         forge-1.20.1-47.3.12-universal.jar                |Forge                         |forge                         |47.3.12             |DONE      |Manifest: 84:ce:76:e8:45:35:e4:0e:63:86:df:47:59:80:0f:67:6c:c1:5f:6e:5f:4d:b3:54:47:1a:9f:7f:ed:5e:f2:90         letsdo-farm_and_charm-forge-1.0.4.jar             |[Let's Do] Farm & Charm       |farm_and_charm                |1.0.4               |DONE      |Manifest: NOSIGNATURE         letsdo-candlelight-forge-2.0.2.jar                |[Let's Do] Candlelight        |candlelight                   |2.0.2               |DONE      |Manifest: NOSIGNATURE         letsdo-bakery-forge-2.0.3.jar                     |[Let's Do] Bakery             |bakery                        |2.0.3               |DONE      |Manifest: NOSIGNATURE         letsdo-brewery-forge-2.0.3.jar                    |[Let's Do] Brewery            |brewery                       |2.0.3               |DONE      |Manifest: NOSIGNATURE         tfmg-0.9.3-1.20.1.jar                             |Create: The Factory Must Grow |tfmg                          |0.9.3-1.20.1        |DONE      |Manifest: NOSIGNATURE         MysticalAgriculture-1.20.1-7.0.14.jar             |Mystical Agriculture          |mysticalagriculture           |7.0.14              |DONE      |Manifest: NOSIGNATURE         matc-1.6.0.jar                                    |Mystical Agriculture Tiered Cr|matc                          |1.6.0               |DONE      |Manifest: NOSIGNATURE         ironchest-1.20.1-14.4.4.jar                       |Iron Chests                   |ironchest                     |1.20.1-14.4.4       |DONE      |Manifest: NOSIGNATURE         jukeboxfix-1.0.0-1.20.1.jar                       |Jukeboxfix                    |jukeboxfix                    |1.0.0+1.20.1        |DONE      |Manifest: NOSIGNATURE         client-1.20.1-20230612.114412-srg.jar             |Minecraft                     |minecraft                     |1.20.1              |DONE      |Manifest: a1:d4:5e:04:4f:d3:d6:e0:7b:37:97:cf:77:b0:de:ad:4a:47:ce:8c:96:49:5f:0a:cf:8c:ae:b2:6d:4b:8a:3f         alexscaves-2.0.2.jar                              |Alex's Caves                  |alexscaves                    |2.0.2               |DONE      |Manifest: NOSIGNATURE         EnchantmentDescriptions-Forge-1.20.1-17.1.19.jar  |EnchantmentDescriptions       |enchdesc                      |17.1.19             |DONE      |Manifest: eb:c4:b1:67:8b:f9:0c:db:dc:4f:01:b1:8e:61:64:39:4c:10:85:0b:a6:c4:c7:48:f0:fa:95:f2:cb:08:3a:e5         TerraBlender-forge-1.20.1-3.0.1.7.jar             |TerraBlender                  |terrablender                  |3.0.1.7             |DONE      |Manifest: NOSIGNATURE         BiomesOPlenty-1.20.1-18.0.0.592.jar               |Biomes O' Plenty              |biomesoplenty                 |18.0.0.592          |DONE      |Manifest: NOSIGNATURE         moonlight-1.20-2.13.41-forge.jar                  |Moonlight Library             |moonlight                     |1.20-2.13.41        |DONE      |Manifest: NOSIGNATURE         lettuces_dyed_planks-1.1.2 (1.20.1).jar           |Lettuce's Dyed Planks         |paradigms_dyed_planks         |1.1.2               |DONE      |Manifest: NOSIGNATURE         MouseTweaks-forge-mc1.20.1-2.25.1.jar             |Mouse Tweaks                  |mousetweaks                   |2.25.1              |DONE      |Manifest: NOSIGNATURE         RegionsUnexploredForge-0.5.6+1.20.1.jar           |Regions Unexplored            |regions_unexplored            |0.5.6               |DONE      |Manifest: NOSIGNATURE         Necronomicon-Forge-1.6.0+1.20.1.jar               |Necronomicon                  |necronomicon                  |1.6.0               |DONE      |Manifest: NOSIGNATURE         ftb-quests-forge-2001.4.9.jar                     |FTB Quests                    |ftbquests                     |2001.4.9            |DONE      |Manifest: NOSIGNATURE         mixinsquared-forge-0.1.2-beta.5.jar               |MixinSquared                  |mixinsquared                  |0.1.2-beta.5        |DONE      |Manifest: NOSIGNATURE         Jade-1.20.1-forge-11.11.1.jar                     |Jade                          |jade                          |11.11.1+forge       |DONE      |Manifest: NOSIGNATURE         appliedenergistics2-forge-15.3.1-beta.jar         |Applied Energistics 2         |ae2                           |15.3.1-beta         |DONE      |Manifest: NOSIGNATURE         spectrelib-forge-0.13.15+1.20.1.jar               |SpectreLib                    |spectrelib                    |0.13.15+1.20.1      |DONE      |Manifest: NOSIGNATURE         kffmod-4.11.0.jar                                 |Kotlin For Forge              |kotlinforforge                |4.11.0              |DONE      |Manifest: NOSIGNATURE         flywheel-forge-1.20.1-0.6.11-13.jar               |Flywheel                      |flywheel                      |0.6.11-13           |DONE      |Manifest: NOSIGNATURE         steampowered-1.20.1-3.0.2.jar                     |Create: Steam Powered         |steampowered                  |1.20.1-3.0.2        |DONE      |Manifest: NOSIGNATURE         amendments-1.20-1.2.12.jar                        |Amendments                    |amendments                    |1.20-1.2.12         |DONE      |Manifest: NOSIGNATURE         create-1.20.1-0.5.1.j.jar                         |Create                        |create                        |0.5.1.j             |DONE      |Manifest: NOSIGNATURE         Create-DnDesire-1.20.1-0.1b.Release-Early-Dev.jar |Create: Dreams & Desires      |create_dd                     |0.1b.Release-Early-D|DONE      |Manifest: NOSIGNATURE         Crystal-Clear-2.1-Beta-forge.jar                  |Create: Crystal Clear         |crystal_clear                 |2.1-Beta            |DONE      |Manifest: NOSIGNATURE         create_central_kitchen-1.20.1-for-create-0.5.1.f-1|Create: Central Kitchen       |create_central_kitchen        |1.3.12              |DONE      |Manifest: NOSIGNATURE         CreateCasing-1.20.1-1.6.2-fix1.jar                |Create : Encased              |createcasing                  |1.20.1-1.6.2-fix1   |DONE      |Manifest: NOSIGNATURE         creategoggles-1.20.1-0.5.5.g-[FORGE].jar          |Create Goggles                |creategoggles                 |0.5.5.g             |DONE      |Manifest: NOSIGNATURE         extendedgears-2.1.1-1.20.1-0.5.1.f-forge.jar      |Extended Cogwheels            |extendedgears                 |2.1.1-1.20.1-0.5.1.f|DONE      |Manifest: NOSIGNATURE         createoreexcavation-1.20-1.5.3.jar                |Create Ore Excavation         |createoreexcavation           |1.5.3               |DONE      |Manifest: NOSIGNATURE         Xaeros_Minimap_24.6.1_Forge_1.20.jar              |Xaero's Minimap               |xaerominimap                  |24.6.1              |DONE      |Manifest: NOSIGNATURE         gravestone-forge-1.20.1-1.0.24.jar                |Gravestone Mod                |gravestone                    |1.20.1-1.0.24       |DONE      |Manifest: NOSIGNATURE         create-stuff-additions1.20.1_v2.0.5.jar           |Create Stuff & Additions      |create_sa                     |2.0.5               |DONE      |Manifest: NOSIGNATURE         StorageDrawers-1.20.1-12.9.13.jar                 |Storage Drawers               |storagedrawers                |12.9.13             |DONE      |Manifest: NOSIGNATURE         Zeta-1.0-24.jar                                   |Zeta                          |zeta                          |1.0-24              |DONE      |Manifest: NOSIGNATURE         Quark-4.0-460.jar                                 |Quark                         |quark                         |4.0-460             |DONE      |Manifest: NOSIGNATURE         supplementaries-1.20-3.1.11.jar                   |Supplementaries               |supplementaries               |1.20-3.1.11         |DONE      |Manifest: NOSIGNATURE         ImmediatelyFast-Forge-1.3.3+1.20.4.jar            |ImmediatelyFast               |immediatelyfast               |1.3.3+1.20.4        |DONE      |Manifest: NOSIGNATURE         letsdo-wildernature-forge-1.0.3.jar               |[Let's Do] Wilder Nature      |wildernature                  |1.0.3               |DONE      |Manifest: NOSIGNATURE         createmetallurgy-0.0.6-1.20.1.jar                 |Create Metallurgy             |createmetallurgy              |0.0.6-1.20.1        |DONE      |Manifest: NOSIGNATURE         rubidium-extra-0.5.4.3+mc1.20.1-build.121.jar     |Embeddium Extra               |embeddium_extra               |0.5.4.3+mc1.20.1-bui|DONE      |Manifest: NOSIGNATURE         PuzzlesLib-v8.1.25-1.20.1-Forge.jar               |Puzzles Lib                   |puzzleslib                    |8.1.25              |DONE      |Manifest: 9a:09:85:98:65:c4:8c:11:c5:49:f6:d6:33:23:39:df:8d:b4:ff:92:84:b8:bd:a5:83:9f:ac:7f:2a:d1:4b:6a         kitchen_grow-0.1-1.20.1.jar                       |Create The Kitchen Must Grow  |kitchen_grow                  |0.1-1.20.1          |DONE      |Manifest: NOSIGNATURE         just_ctgui-0.1.6_release-forge-1.20.1.jar         |Just CTGUI                    |just_ctgui                    |0.1.6               |DONE      |Manifest: NOSIGNATURE         1.20.1-create_oppenheimered-1.0.4.jar             |Create: Oppenheimered         |create_oppenheimered          |1.0.4               |DONE      |Manifest: NOSIGNATURE         EuphoriaPatcher-1.4.3-r5.3-forge.jar              |Euphoria Patcher              |euphoria_patcher              |1.4.3-r5.3-forge    |DONE      |Manifest: NOSIGNATURE         oculus-mc1.20.1-1.7.0.jar                         |Oculus                        |oculus                        |1.7.0               |DONE      |Manifest: NOSIGNATURE         create_enchantment_industry-1.20.1-for-create-0.5.|Create Enchantment Industry   |create_enchantment_industry   |1.2.9.d             |DONE      |Manifest: NOSIGNATURE         letsdo-addon-structures-1.7.1.jar                 |Let's Do Addon: Structures    |letsdoaddonstructures         |1.7.1               |DONE      |Manifest: NOSIGNATURE         createaddition-1.20.1-1.2.4e.jar                  |Create Crafts & Additions     |createaddition                |1.20.1-1.2.4e       |DONE      |Manifest: NOSIGNATURE     Crash Report UUID: c57b94be-d38e-42a2-ae12-b3a24fd7c68f     FML: 47.3     Forge: net.minecraftforge:47.3.12     Flywheel Backend: Off  
  • Topics

  • Who's Online (See full list)

×
×
  • Create New...

Important Information

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