Jump to content

Recommended Posts

Posted

I've tried to add NBT data to the player, but to no avail. I have a method that should work (I think) but it doesn't here's my code.

https://github.com/code-lyoko-modding/CodeLyokoMod/blob/master/matt/lyoko/network/PlayerTracker.java

and here is what I tried before what is currently on GitHub.

player.getEntityData().newTag((byte)1, "lifePoints");
player.getEntityData().setByte("lifePoints", (byte)100);

I also tried

player.getEntityData().newTag((byte)1, "lifePoints");
player.getEntityData().setByte("lifePoints", (byte)100);
player.writeToNBT(player.getEntityData());

any help would be appreciated.

Posted

If you can add a listener to when the player is saved, you can use reflection to extract the NBT tag, and add to it. Same for loading the player.

 

Or, if the field is not a new thing on the player, just use reflection to set it if it is private, or just set it if it has a setter or is public.

So, what would happen if I did push that shiny red button over there? ... Really? ... Can I try it? ... Damn.

Posted
  On 6/17/2013 at 6:42 PM, endershadow said:

How would i go about registering IAdditionalEntityData?

Um, someone had this same problem... half a minute...

 

...oh wait, they never solved it. Oh wait, that was you.  :-[

 

Um, the code you have should work. newTag() is a static method that creates a new tag, and you don't need it. But setByte() should work just fine. Does it not save? If you set it and then read it, does it work?

BEWARE OF GOD

---

Co-author of Pentachoron Labs' SBFP Tech.

Posted

If you want just additional data to your player I would suppose to write an IPlayerTracker or add something if you have one yet. This is a convenient method to get the method onPlayerLogin(EntityPlayer player) called every time a player logs in. Then you get the NBTString (getEntityData()) and read from there. You store your read values in some sort of static Helper-Class (e.g.

class HelperHelper implements IPlayerTracker{
public static final instance = new HelperHelper();
private static HashMap<EntityPlayer, a_class_that_can_store_your_values> playerData = new HashMap<EntityPlayer, a_class_that_can_store_your_values>();

public static a_class_that_can_store_your_values getValuesFor(EntityPlayer player)
{
return playerData.get(player);
}

@Override
public void onPlayerLogin(EntityPlayer player)
{
if(player.getEntityData().hasKey("what_so_ever")
{
	playerData.put(player, readFromNBTStream(player.getEntityData().getCompoundTag("what_so_ever");
}else{
playerData.put(player, new a_class_that_can_store_your_values());
}

@Override
public void onPlayerLogout(EntityPlayer player)
{
NBTTagCompound toWriteTo = new NBTTagCompound();
playerData.get(player).writeToNBTTagCompound(toWriteTo);
player.getEntityData().setCompoundTag("what_so_ever", toWriteTo);
}

private a_class_that_can_store_your_values readFromNBTStream(NBTTagCompound playerCompound)
{
a_class_that_can_store_your_values toReturn = new a_class_that_can_store_your_values();
toReturn.readFromNBTTagCompound(playerCompound);
return toReturn;
}
... include additional methods from IPlayerTracker
}

Please note that this is only what I would suppose, maybe you have to edit it slightly.

Please note: your a_class_that_can_store_your_values has to feature the two public methods readFromNBTTagCompound(NBTTagCompound someName) and writeToNBTTagCompound(NBTTagCompound someOtherName). I hope you know how to read and write from/to NBTTagCompounds correctly. Maybe you also want to edit the method onPlayerLogin slightly cause it will always give you the default values of the NBTTagCompounds. You can check if the player has data already by calling player.getEntityData().hasKey("what_so_ever") and deciding what default values you put in.

Please note.3: you have to register your IPlayerTracker in your @Mod file preferably by typing GameRegistry.registerPlayerTracker(HelperHelper.instance);

Please note.4: also, all text with "_" has to be replaced with any name you choose as far as it is the same you use for the same placeholder.

Please note.5: if I have any typos please be kind and don't mention them if they are not really, really, really, really, really stuhpid ;)

Posted

I'm sorry WorldsEnder, I can't figure out what your code is telling me to do. It's so confusing and error ridden.

  On 6/17/2013 at 7:18 PM, ObsequiousNewt said:

  Quote

How would i go about registering IAdditionalEntityData?

Um, someone had this same problem... half a minute...

 

...oh wait, they never solved it. Oh wait, that was you.  :-[

 

Um, the code you have should work. newTag() is a static method that creates a new tag, and you don't need it. But setByte() should work just fine. Does it not save? If you set it and then read it, does it work?

I've tried that, but it doesn't work.

Posted

Try something like IExtendedEntityProperties. Here are some examples:

Class that implements IExtendedEntityProperties:

https://github.com/ModderPenguin/MinePG/blob/master/source/minepg/rpg_common/rpg/playerinfo/PlayerInformation.java

How to register it:

https://github.com/ModderPenguin/MinePG/blob/master/source/minepg/rpg_common/rpg/handlers/events/GenericEventHandler.java*

Register it like any normal forge event handler.

 

* The first method is the one you want

I am Mew. The Legendary Psychic. I behave oddly and am always playing practical jokes.

 

I have also found that I really love making extremely long and extremely but sometimes not so descriptive variables. Sort of like what I just did there xD

Posted

Try something like this:

 

  Reveal hidden contents

 

 

And if you are wanting to change the life points, you just have to call pi.increaseLifePoints(amountToIncrease) or pi.decreaseLifePoints(amountToDecrease) or pi.setLifePoints(amountToSetTo) (the variable pi was taken from your event handler variable of it xD

 

[Edit] Also in your main class, you register your event handler twice... So I think if you are wanting to keep with my code, delete that first registry of it then keep the last two  :)

I am Mew. The Legendary Psychic. I behave oddly and am always playing practical jokes.

 

I have also found that I really love making extremely long and extremely but sometimes not so descriptive variables. Sort of like what I just did there xD

Posted
  On 6/18/2013 at 6:47 AM, Mew said:

Try something like this:

 

  Reveal hidden contents

 

 

And if you are wanting to change the life points, you just have to call pi.increaseLifePoints(amountToIncrease) or pi.decreaseLifePoints(amountToDecrease) or pi.setLifePoints(amountToSetTo) (the variable pi was taken from your event handler variable of it xD

 

[Edit] Also in your main class, you register your event handler twice... So I think if you are wanting to keep with my code, delete that first registry of it then keep the last two  :)

 

isn't that what I did? and you're supposed to register it twice. if you look at the mod that did it, they did it the same way I did it.

  • 7 months later...

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

    • ✅ Crobo Coupon Code: 51k3b0je — Get Your \$25 Amazon Gift Card Bonus! If you’re new to Crobo and want to make the most out of your first transaction, you’ve come to the right place. The **Crobo coupon code: 51k3b0je** is a fantastic way to get started. By using this code, you can unlock an exclusive **\$25 Amazon gift card** after completing your first eligible transfer. Let’s dive deep into how the **Crobo coupon code: 51k3b0je** works, why you should use it, and how to claim your reward. --- 🌟 What is Crobo? Crobo is a trusted, modern platform designed for **international money transfers**. It offers fast, secure, and low-cost transactions, making it a favorite choice for individuals and businesses alike. Crobo is committed to transparency, low fees, and competitive exchange rates. And with promo deals like the **Crobo coupon code: 51k3b0je**, it becomes even more attractive. Crobo focuses on providing customers with: * Quick transfer speeds * Minimal fees * Safe, encrypted transactions * Great referral and promo code rewards When you choose Crobo, you’re choosing a platform that values your time, money, and loyalty. And now with the **Crobo coupon code: 51k3b0je**, you can start your Crobo journey with a **bonus reward**! ---# 💥 What is the Crobo Coupon Code: 51k3b0je? The **Crobo coupon code: 51k3b0je** is a **special promotional code** designed for new users. By entering this code during signup, you’ll be eligible for: ✅ A **\$25 Amazon gift card** after your first qualifying transfer. ✅ Access to Crobo’s referral system to earn more rewards. ✅ The ability to combine with future seasonal Crobo discounts. Unlike generic promo codes that just offer small fee reductions, the **Crobo coupon code: 51k3b0je** directly gives you a tangible, valuable reward — perfect for online shopping or gifting. --- ### 🎯 Why Use Crobo Coupon Code: 51k3b0je? There are many reasons why users choose to apply the **Crobo coupon code: 51k3b0je**: 🌟 **Free bonus reward** — Your first transfer can instantly earn you a \$25 Amazon gift card. 🌟 **Trusted platform** — Crobo is known for secure, fast, and affordable transfers. 🌟 **Easy to apply** — Simply enter **Crobo coupon code: 51k3b0je** at signup — no complicated steps. 🌟 **Referral opportunities** — Once you’ve used **Crobo coupon code: 51k3b0je**, you can invite friends and earn more rewards. 🌟 **Stackable savings** — Pair **Crobo coupon code: 51k3b0je** with Crobo’s ongoing offers or holiday deals for even more benefits. --- ### 📝 How to Use Crobo Coupon Code: 51k3b0je Getting started with **Crobo coupon code: 51k3b0je** is quick and easy. Just follow these steps: 1️⃣ **Download the Crobo app** (available on Google Play Store and Apple App Store) or visit the official Crobo website. 2️⃣ **Start the sign-up process** by entering your basic details (name, email, phone number, etc.). 3️⃣ When prompted, enter **Crobo coupon code: 51k3b0je** in the promo code or coupon code field. 4️⃣ Complete your first transaction — be sure to meet the minimum amount required to qualify for the reward (usually specified in Crobo’s promo terms). 5️⃣ After the transaction is verified, receive your **\$25 Amazon gift card** directly via email or within your Crobo account. --- ### 💡 Tips to Maximize Your Crobo Coupon Code: 51k3b0je Bonus 👉 **Transfer the minimum qualifying amount or more** — this ensures you meet the conditions for the gift card. 👉 **Refer friends after your signup** — Crobo allows users who’ve signed up with codes like **Crobo coupon code: 51k3b0je** to share their own code for extra bonuses. 👉 **Check for additional Crobo promotions** — sometimes Crobo offers seasonal or regional deals that stack with the coupon code. 👉 **Complete your transaction soon after signup** — many bonuses have time limits, so act quickly! --- ### 🚀 Frequently Asked Questions about Crobo Coupon Code: 51k3b0je **Q: Can I use Crobo coupon code: 51k3b0je if I already have a Crobo account?** A: No — the **Crobo coupon code: 51k3b0je** is intended for **new users only**. It must be applied during the initial registration process. --- **Q: How long does it take to get the \$25 Amazon gift card after using Crobo coupon code: 51k3b0je?** A: Typically, the gift card is sent **within a few business days** after your first qualifying transfer is completed and verified. --- **Q: Are there hidden fees when using Crobo coupon code: 51k3b0je?** A: No — Crobo is transparent about its fees. The **Crobo coupon code: 51k3b0je** simply adds a bonus reward without increasing your costs. --- **Q: Can I combine Crobo coupon code: 51k3b0je with other promo codes?** A: The **Crobo coupon code: 51k3b0je** is generally applied as a standalone signup bonus. However, Crobo often offers **ongoing promotions** that may apply to future transactions. ---  📌 Reference Crobo promo code: {51k3b0je} Crobo discount code: {51k3b0je} --- # 🌍 Final Thoughts If you want to enjoy safe, fast, and affordable money transfers with an added bonus, **Crobo coupon code: 51k3b0je** is your best option. Not only will you experience excellent service, but you’ll also earn a **\$25 Amazon gift card** — a reward that you can use immediately for shopping or gifts. 👉 **Don’t wait — sign up today using Crobo coupon code: 51k3b0je and claim your bonus!**
    • Does this schematic contain stuff from the mod prettypipes? Looks like Forgematica has issues to load it Try to load the schematic with worldedit - remove the pipes, save it and test it again
    • I found a potential easy solution! You see, I also had the same error, even one of the same libraries as you and @jarmyco were unable to install, and I found a relatively easy fix after about 2 hours of searching. If you, like me, are just trying to install forge to use forge mods with Minecraft, then this should work. For me, I was trying to install forge for 1.8.0. I had downloaded the Recommended forge version (not the latest version) for 1.8.0, but that version caused 1 or more libraries to fail to download/install. To fix this, I found that simply going back to the forge website and trying a different version of forge (still for 1.8.0) fixed it. For me, I tried using the latest version for 1.8.0, and it worked, but maybe you will have to try a few and find what works, I'm not sure how it all works tbh. It may just be a compatibility issue with certain versions of Java and certain versions of Forge. I had been using a very new Java version, and a very old Forge version. Good luck! - Metal Master
  • Topics

×
×
  • Create New...

Important Information

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