Jump to content

Recommended Posts

Posted

Hi

How would I go about changing the player's skin (not using the Mojang servers of course)? I tried binding a pre-made skin during the RenderPlayerEvent.Pre but that seems to do absolutely nothing. Does anyone know how to achieve this without creating a new player model (seems like to much work considering I would probably write a new RenderPlayer class)? Thanks in advance!

Development of Plugins [2012 - 2014] Development of Mods [2012 - Current]

Posted

If you want to do this using vanilla itself - you can.

Look deep into AbstractClientPlayer. Since 1.7 there is whole skin-caching system so idk how to work with it directly, but I did that in 1.6 (changed skin-downloading page). Difference between 1.6 and 1.7 is literally one thing - caching.

 

You will most likely need reflection to access skin fields. You can even change capes.

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

Posted

Thanks for the reply, @Ernio. I didn't have much time today earlier, but I took a quick look around in AbstractClientPlayer, RenderPlayer, and some of the methods in those pertaining to the player skin. The only time it returns a ResourceLocation locally (not downloaded) is when the player uses the default skin - Minecraft has to resort to the Steve / Alex player skin. Maybe I could find the method that returns true or false based on a custom skin and utilize reflection to return false there every time. Then I could again use reflection to change the method that grabs the Steve / Alex player skin and return my own ResourceLocation there. In theory, it might work, I'll try what I said and see if I can figure a solution. If someone has a better one, let me know. Thanks.

Development of Plugins [2012 - 2014] Development of Mods [2012 - Current]

Guest
This topic is now closed to further replies.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • Forge is probably the most feature loaded mod loader currently. You can change just about anything with the game mechanics by using mixins. You can also add more items and feature than what the docs show you. It is good to start with a Modding tutorial series like this one by Kaupenjoe.  Some good examples of what is possible with forge is clockwork, dynamic trees, and I guess create but its on fabric too.
    • I'm new to modding and trying to make a mod in 1.20.1. My mod currently just has a custom bow, but when I use my bow, it does not play the animation. I have the jsons and pngs in the right spots and I've compared my jsons with that of existing mods, everything seems to line up just fine. Anyone know what might be causing this? I've changed the item between a basic BowItem and a custom class extending from BowItem, even overriding the animation code, no dice. odysseus_bow.json: { "parent": "item/generated", "textures": { "layer0": "odyssey:item/odysseus_bow" }, "overrides": [ { "predicate": { "pulling": 1 }, "model": "odyssey:item/odysseus_bow_pulling_0" }, { "predicate": { "pulling": 1, "pull": 0.65 }, "model": "odyssey:item/odysseus_bow_pulling_1" }, { "predicate": { "pulling": 1, "pull": 0.9 }, "model": "odyssey:item/odysseus_bow_pulling_2" } ] } odysseus_bow_pulling_0.json: { "parent": "item/generated", "textures": { "layer0": "odyssey:item/odysseus_bow_pulling_0" }, "display": { "thirdperson_righthand": { "rotation": [ -80, 260, -40 ], "translation": [ -1, -2, 2.5 ], "scale": [ 1.2, 0.9, 1.2 ] }, "firstperson_righthand": { "rotation": [ 0, -90, 25 ], "translation": [ 1.13, 3.2, 1.13 ], "scale": [ 0.88, 0.68, 0.88 ] } } } (_1 and _2 are the same with the respective layer0)
    • Hello I've been having some issues with Multipart entities and that it is constantly taking damage. The video below shows the issues. Also the hit boxes that are moving constantly seem to be still, because you can still be seated on the hit box where it is suppose to be.  Here is some modified code taken from EnderDragonPart. public class TheHeartPart extends PartEntity<TheHeart> { public final TheHeart parentMob; public final String name; private final EntityDimensions size; public TheHeartPart(TheHeart pParentMob, String pName, float pWidth, float pHeight) { super(pParentMob); this.size = EntityDimensions.scalable(pWidth, pHeight); this.refreshDimensions(); this.parentMob = pParentMob; this.name = pName; } @Override protected void defineSynchedData() { } @Override protected void readAdditionalSaveData(CompoundTag pCompound) { } @Override protected void addAdditionalSaveData(CompoundTag pCompound) { } @Override public boolean isPickable() { return true; } @Nullable public ItemStack getPickResult() { return this.parentMob.getPickResult(); } @Override public boolean hurt(DamageSource pSource, float pAmount) { return false; //return this.isInvulnerableTo(pSource) ? false : this.parentMob.hurt(pSource, pAmount); } @Override public boolean is(Entity pEntity) { return this == pEntity || this.parentMob == pEntity; } @Override public Packet<ClientGamePacketListener> getAddEntityPacket() { throw new UnsupportedOperationException(); } @Override public EntityDimensions getDimensions(Pose pPose) { return this.size; } @Override public boolean shouldBeSaved() {return false;} } Any help is greatly appreciated!
    • I've been trying to run some modpacks through Prism launcher which haven't been working and I narrowed it down due to some forge issues. The issues only happen with modpacks using forge 1.20.1 so I tried to reinstall 1.20.1, but I keep getting this error log:https://pastebin.com/4w9pGURJ 
    • I split your reply to an unrelated topic into a separate request for help.   Please read the FAQ for how to properly request help and post logs.
  • Topics

×
×
  • Create New...

Important Information

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