Jump to content

Recommended Posts

Posted

Edit: This first question is resolved. Scroll down to see my later questions.

 

I created an entity (EntityPMPlayer) that extends EntityPlayerMP. When I tried spawning it in the exact same way I spawned an EntityPlayerMP the console spat out an error that it was missing the method <init>(net.minecraft.world.World). Why does it do this with my entity but not with EntityPlayerMP, and how can I fix it?

 

EntityPMPlayer:

 

  Reveal hidden contents

 

 

Error:

 

  Reveal hidden contents

 

I am very busy on the weekdays so don't expect me to make more than one post per day.

 

If you curse in your responses to me I will smite you. It's as simple as that.

Posted

Here is the code I use to spawn the player.

 

 

  Reveal hidden contents

 

I am very busy on the weekdays so don't expect me to make more than one post per day.

 

If you curse in your responses to me I will smite you. It's as simple as that.

Posted
  On 3/2/2016 at 4:03 PM, GotoLink said:

It does this because the constructor is missing.

Explicit constructors need to be defined by the child class.

See Java constructor rules.

 

I know. The only problem is that I can't do a constructor with super(world) because EntityPlayerMP doesn't have that constructor either, but for some reason it works. I don't know how to do a constructor that just has one parameter (World world) while still referring to the EntityPlayerMP constructor (super(server, world, profile, interactionManager)) without making up lots of hard coded things to fill in the blanks.

I am very busy on the weekdays so don't expect me to make more than one post per day.

 

If you curse in your responses to me I will smite you. It's as simple as that.

Posted

When entity is spawned on server a packet is sent to client telling to spawn client-sided representation of that entity. Those 2 entities are bound by entityId.

All entities should have constructor that has one arg: World, because that is how they will be spawned on client (internally using that constructor).

 

Now - EntityPlayer is different. While all other entities have one shared class, a player has class for Client and Server:

Server: EntityPlayerMP

Client: EntityPlayerSP + EntityOtherPlayerMP

It is obvious that player is a special entity.

 

So solution: DON'T EXTEND EntityPlayer!

Make goddamn entity that behaves like player - it is much simpler and works better.

 

And if you really want to make extension to players - you will need sided implementations (MP and OtherSP probably) and some ASM to make it work NICE. Without ASM you will messup a lot of things. It is not possible to spawn player like a normal mob. You need handlers that handle EntityPlayer (INetHandler).

 

  Quote

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

  • 2 weeks later...
Posted

Ok, so I've found a few problems that I can't seem to handle in the past few days. At first I kept trying to use the entity that extended from EntityPlayerMP, but there were so many things to override that I decided to just have a custom net handler only (extends from NetHandlerPlayServer, I called it NetHandlerPMPlayServer). I can link it with a player just fine, but for some reason EntityPlayerMP only updates(super.onUpdate()) when its net handler recieves a packet from the client (C03PacketPlayer), which is sent every tick in EntityPlayerSP's onUpdate(). Of course, my players don't have a client (except for the EntityOtherPlayerMP, which doesn't really count), so they aren't being updated. I tried to make my net handler "send itself" the packet in it's update() method, but that wasn't being called either. Instead I tried using the event PlayerTickEvent to call NetHandlerPMPlayer.update() whenever the EntityOtherPlayerMP version of my player ticked. This worked fine, but when I created an sent the packet in NetHandlerPMPlayer.update() MC crashes with a net.minecraft.network.ThreadQuickExitException.

 

If you don't read ALL the above you might get confused, so just read it.

 

In the end I have two questions:

-Why isn't NetHandlerPMPlayServer.update() being called in vanilla code somewhere?

-How can I make my net handler "send" itself packets?

 

GitHub Source: https://github.com/Vitridax/PlayerMod.git

Sorry if the files are a bit messy with all the comments everywhere. If you can't find something just ask.

 

Edit:

Crash. Sorry I forgot about it earlier.

 

  Reveal hidden contents

 

I am very busy on the weekdays so don't expect me to make more than one post per day.

 

If you curse in your responses to me I will smite you. It's as simple as that.

Posted

Bump

I am very busy on the weekdays so don't expect me to make more than one post per day.

 

If you curse in your responses to me I will smite you. It's as simple as that.

Posted
  On 3/14/2016 at 4:39 PM, Dylem said:

For your first question, you could override EntityLivingBase's onEntityUpdate

 

For what Entity? I can't change any vanilla classes and I'm trying not to use my old entity (EntityPMPlayerServer) because of all the problems it causes. Instead I'm just using the NetHandlerPMPlayServer. Or are you talking about the very first question I asked on March 2nd? That's resolved because I'm not using EntityPMPlayerServer anymore.

I am very busy on the weekdays so don't expect me to make more than one post per day.

 

If you curse in your responses to me I will smite you. It's as simple as that.

Posted

Bump.

I am very busy on the weekdays so don't expect me to make more than one post per day.

 

If you curse in your responses to me I will smite you. It's as simple as that.

Posted

I managed to solve my problems by myself. It took a week of many tests and crashes, but at least it was very informative.

 

For the first question, my NetHandler wasn't being updated because it's manager was a client side manager. The server side manager it was connected to was stored in a private list in the NetworkSystem, so I got it using reflection, and used it for my NetHandler instead.

 

For the second question, right now I'm just creating packets in NetHandlerPMPlayServer.update() and calling the correct method to handle the packet. I'm not sure if this will cause problems later, but for now it works.

I am very busy on the weekdays so don't expect me to make more than one post per day.

 

If you curse in your responses to me I will smite you. It's as simple as that.

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

    • Working $200 Off Temu Coupon Code [acu639380] First Order Exclusive Temu Coupon Code (acu639380) – Save Big on Your Shopping! Temu has become a go-to online marketplace for shoppers looking for high-quality products at unbeatable prices. With millions of trending items, fast delivery, and free shipping available in 67 countries, Temu ensures a seamless shopping experience for its users. Now, you can make your purchases even more rewarding by using the Temu coupon code (acu639380) to unlock huge discounts of up to $200 and exclusive deals. Why Use the Temu Coupon Code (acu639380)? By applying the Temu discount code (acu639380) at checkout, you can enjoy massive savings of up to $200 on a wide range of categories, including electronics, fashion, home essentials, beauty products, and more. This special offer is available to both new and existing users, ensuring that everyone gets a chance to save big on their favorite items What Discounts Can You Get with Temu Coupon Code (acu639380)? Here’s what you can unlock with the Temu promo code (acu639380): $200 Off for New Users – First-time shoppers can enjoy a flat $200 discount on their initial order. $200 Off for Existing Users – Loyal customers can also claim $200 off their purchases with the same code. Extra 40% Off – The Temu discount code (acu639380) provides an additional 40% off on select items, maximizing your savings. $200 Coupon Bundle – Both new and existing users can receive a $200 coupon bundle, perfect for future purchases. Free Gifts for New Users – If you’re shopping on Temu for the first time, you June receive free gifts with your order. Temu Coupons for Different Countries Temu caters to shoppers worldwide, offering incredible discounts based on your location. Here’s how the Temu coupon code (acu639380) benefits users across different regions: United States – Get $200 off your first order using the Temu coupon code (acu639380). Canada – Enjoy $200 off on your first-time purchase. United Kingdom – Use the Temu promo code (acu639380) to get $200 off your first order. Japan – Japanese shoppers can claim $200 off their initial purchase. Mexico – Get an extra 40% discount on select products with the Temu coupon (acu639380). Brazil – Shoppers in Brazil can also save 40% on select items. Germany – Receive a 40% discount on eligible products with the Temu promo code (acu639380). How to Use the Temu Coupon Code (acu639380)? Applying the Temu discount code (acu639380) is simple and hassle-free. Follow these easy steps to redeem your discount: Sign Up or Log In – Create a new account or log in to your existing Temu account. Shop for Your Favorite Items – Browse through Temu’s vast collection and add products to your cart. Enter the Coupon Code – At checkout, apply the Temu promo code (acu639380) in the designated field. Enjoy Your Discount – See the discount applied to your order and proceed with payment. Why Shop on Temu? Apart from huge discounts, Temu offers several benefits that make shopping more exciting and budget-friendly: Up to 90% Off on Select Products – Temu regularly offers massive discounts on top-selling items. Fast & Free Shipping – Get your products delivered quickly with free shipping to 67 countries. Wide Product Selection – Shop from a vast range of categories, including electronics, fashion, home essentials, and more. Safe & Secure Payments – Temu ensures a secure checkout process for a smooth shopping experience. Exclusive App Deals – Download the Temu app for extra discounts and app-only promotions. Final Thoughts With Temu’s exclusive coupon code (acu639380), you can unlock huge savings and enjoy a premium shopping experience at an affordable price. Whether you are a new user looking for a $200 discount or an existing customer wanting an extra 40% off, Temu has something for everyone. Don't forget to claim your $200 coupon bundle and free gifts before these amazing deals expire! Start shopping today on Temu and use the Temu coupon code (acu639380) to maximize your savings!  
    • Temu Coupon Code $100 Off [acu639380] First Time User Unlock Huge Savings: Temu Coupon Code (acu639380) for June 2025 Temu is transforming the way the world shops—and June 2025 delivers its boldest offers yet. With the exclusive Temu coupon code (acu639380), you're entering a world of rewards: from a $100 discount to premium coupon bundles, it's your passport to smart, stylish savings. The Temu Advantage in June 2025 Temu is known for redefining affordability and access. With unbeatable prices across trending categories—from fashion to electronics—it now delivers to 67 countries with speed and reliability. But this month, it’s not just about what you buy. It’s about how much you save. With Temu coupon code (acu639380) in hand, your savings soar. Instant Rewards with Temu Coupon Code (acu639380) If you haven't activated this exclusive code, here's what you're missing: $100 Off for first-time users $100 Off for returning customers 40% Off on sitewide items Free gifts for new sign-ups $100 Coupon Bundle available for all users What Makes Temu Coupon Code (acu639380) Unique? This code is designed to reward all shoppers—first-timers and loyal fans alike. Here’s how each discount delivers: Temu coupon code (acu639380) $100 off: Best for newcomers stocking up. Temu coupon code (acu639380) $100 off for existing users: Returning shoppers save big. Temu coupon code (acu639380) 40% off: Big savings on trending picks. Temu $100 coupon bundle: Split savings across several purchases. Temu first time user coupon: Ideal to kickstart your shopping spree. Global Value, Personalized Access Temu isn't just generous—it’s international. Whether you're in a Toronto high-rise or a Yorkshire farmhouse, the Temu promo code (acu639380) unlocks smart deals and chic finds. Coupon Code Highlights by Country Temu coupon code $100 off for USA – (acu639380) Temu coupon code $100 off for Canada – (acu639380) Temu coupon code $100 off for UK – (acu639380) Temu coupon code $100 off for Japan – (acu639380) Temu coupon code 40% off for Mexico – (acu639380) Temu coupon code 40% off for Brazil – (acu639380) Why Temu is the Marketplace of the Moment Unbeatable prices: Save up to 90% every day Worldwide reach: Ships to 67 countries New promotions: Fresh Temu new offers in June 2025 Fast, free delivery: No matter where you are FAQ: Maximize Your Temu Experience What’s the best Temu discount in June 2025? The top offer is Temu coupon code (acu639380) $100 off, for both new and existing users. Can I use these deals worldwide? Yes. The Temu discount code (acu639380) for June 2025 is valid in North America, South America, Europe, and Asia. Can I combine discounts? Absolutely. Pair your Temu $100 coupon bundle with seasonal deals for extra savings. Final Takeaway Smart shopping isn’t just about what you add to your cart—it’s about how you unlock value. With Temu coupon codes for new users, Temu coupon codes for existing users, and exciting June 2025 promotions, the best time to save is now. Don’t wait. Use Temu coupon code (acu639380) today to claim your rewards and transform the way you shop. New offers, global access, and exclusive savings await.  
    • Maybe it refers to an issue with the system - check for CPU/GPU driver updates
    • I haven't tried any other launchers, but I was getting the same results when I tried using forge with the vanilla launcher.
    • Make a test without sodiumextras
  • Topics

×
×
  • Create New...

Important Information

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