Jump to content

roflmuffin

Members
  • Posts

    4
  • Joined

  • Last visited

Everything posted by roflmuffin

  1. I can see how a EntityPlayer encapsulates an Inventory object etc. What would be the best way for me to associate my own object with a Player, and allow me to call it?
  2. It should be noted that events derived from net.minecraftforge must be registered using: MinecraftForge.EVENT_BUS.register(new CustomEvent()); Whereas events derived from cpw.mods.fml.common.gameevent must be registered using: FMLCommonHandler.instance().bus().register(new CustomEvent());
  3. You can just type Event. and wait for your IDE to autofill with Events, they are all pretty self explanatory. You can also download the Javadoc. The ones below are taken directly from the Javadocs. InputEvent.KeyInputEvent InputEvent.MouseInputEvent PlayerEvent.ItemCraftedEvent PlayerEvent.ItemPickupEvent PlayerEvent.ItemSmeltedEvent PlayerEvent.PlayerChangedDimensionEvent PlayerEvent.PlayerLoggedInEvent PlayerEvent.PlayerLoggedOutEvent PlayerEvent.PlayerRespawnEvent TickEvent.ClientTickEvent TickEvent.PlayerTickEvent TickEvent.RenderTickEvent TickEvent.ServerTickEvent TickEvent.WorldTickEvent As for some sample code... @EventHandler public void preInit(FMLPreInitializationEvent event) { FMLCommonHandler.instance().bus().register(new ExampleEvent()); } public class TestEvent { @SubscribeEvent public void onItemPickup(PlayerEvent.ItemPickupEvent event) { System.out.println("You just picked up: " + event.pickedUp.toString()); } }
  4. I have been experimenting with NBT tags and applying prefixes to tools in a random way. So far I have implemented the name/prefix and lore of each item because that can be done with NBT tags however I am struggling to find a way to implement instanced damage variables. My aim here is to have different stats on a single weapon that is generated on creation while only using a single ID to do so. With the way the new attribute system works, it sets the attackDamage attribute for all instances of my class which is not what I'm really looking for. Anyone have any ideas as to how I could achieve this? EDIT: After a long time searching and fiddling I found the solution and figured I would post here so people knew. Because the multimap method of applying attributes ( as ItemSword usually does ) applied it to all instances I am now manually applying the NBT Tags related to attributes manually. Here is the code. I have put it in another class for my own uses but you should be able to see how it works. public static void addModifier(ItemStack itemStack, String attribute, double amount, int mode){ NBTTagList list = new NBTTagList(); NBTTagCompound attributes = new NBTTagCompound(); attributes.setString("Name", "Attribute"); attributes.setString("AttributeName", attribute); // usually use SharedMonsterAttributes.attackDamage.getAttributeUnlocalizedName() attributes.setDouble("Amount", amount); attributes.setLong("UUIDMost", UUID.randomUUID().getMostSignificantBits()); attributes.setLong("UUIDLeast", UUID.randomUUID().getLeastSignificantBits()); attributes.setInteger("Operation", mode); list.appendTag(attributes); NBTTagCompound attributeModifierTag = new NBTTagCompound(); attributeModifierTag.setTag("AttributeModifiers", list); itemStack.setTagCompound(attributeModifierTag); }
×
×
  • Create New...

Important Information

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