Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

Capability usage across mods


TheGreyGhost
 Share

Recommended Posts

Howdy folks

I'm currently investigating Forge Capabilities and there's one aspect that I haven't figured out yet.

If I want to access a Capability introduced by another mod, how am I supposed to do that?

 

For inbuilt Capability (such as CapabilityItemHandler) it's no problem, but for anything defined by another mod I can't see an obvious way to access the Capability and its interface (unless of course I include the mod source as a library / dependency).

 

How is that intended to work?  

 

-TGG

 

Link to comment
Share on other sites

You use @CapabilityInject to inject the other mod's capability. You can put this annotation on a method too (see the javadocs) and that method will then only be called if the other mod is present.

In that method you can then enable your mod's compatibility features. If you put this method in a separate class that class will never load unless the other mod is present.

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

1 hour ago, diesieben07 said:

You use @CapabilityInject to inject the other mod's capability. You can put this annotation on a method too (see the javadocs) and that method will then only be called if the other mod is present.

In that method you can then enable your mod's compatibility features. If you put this method in a separate class that class will never load unless the other mod is present.

OK.  So I still need to include that mod's source (or just the jar?) as a library, but if the other mod isn't present then my code will still run (even though the capability interface isn't present).

 

Could you point me in the direction of a working example?

 

TGG

 

 

Link to comment
Share on other sites

1 hour ago, TheGreyGhost said:

OK.  So I still need to include that mod's source (or just the jar?) as a library

Just at build time. You don't need to ship the other mod.

 

1 hour ago, TheGreyGhost said:

if the other mod isn't present then my code will still run (even though the capability interface isn't present).

You need to "shield" the part of your code that uses the code from the other mod. You cannot reference it from other parts of your code, only from that @CapabilityInject method.

 

1 hour ago, TheGreyGhost said:

Could you point me in the direction of a working example?

I don't have one, sorry.

  • Thanks 1
Link to comment
Share on other sites

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
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.

 Share



  • Recently Browsing

    No registered users viewing this page.

  • Posts

    • User was banned for piracy. Buy the game.
    • So, i have installed some mods and i keep getting this error when loading or creating worlds. Here is the crash report:       ---- Minecraft Crash Report ---- // I let you down. Sorry Time: 2021.12.01. 12:05 Description: Ticking player java.lang.BootstrapMethodError: java.lang.LinkageError: loader constraint violation: loader (instance of sun/misc/Launcher$AppClassLoader) previously initiated loading for a different type with name "org/apache/logging/log4j/util/MessageSupplier"     at net.minecraftforge.eventbus.EventBus.handleException(EventBus.java:316) ~[eventbus-4.0.0.jar:?] {}     at net.minecraftforge.eventbus.EventBus.post(EventBus.java:307) ~[eventbus-4.0.0.jar:?] {}     at net.minecraftforge.eventbus.EventBus.post(EventBus.java:283) ~[eventbus-4.0.0.jar:?] {}     at net.minecraftforge.common.ForgeHooks.onLivingUpdate(ForgeHooks.java:340) ~[?:?] {re:classloading}     at net.minecraft.entity.LivingEntity.func_70071_h_(LivingEntity.java:2112) ~[?:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:citadel.mixins.json:LivingEntityMixin,pl:mixin:APP:assets/botania/botania.mixins.json:AccessorLivingEntity,pl:mixin:A}     at net.minecraft.entity.player.PlayerEntity.func_70071_h_(PlayerEntity.java:223) ~[?:?] {re:mixin,pl:accesstransformer:B,xf:fml:tlskincape:PlayerEntityTransformer,re:classloading,pl:accesstransformer:B,xf:fml:tlskincape:PlayerEntityTransformer,pl:mixin:APP:assets/botania/botania.mixins.json:MixinPlayerEntity,pl:mixin:A,re:computing_frames,pl:accesstransformer:B,xf:fml:tlskincape:PlayerEntityTransformer}     at net.minecraft.entity.player.ServerPlayerEntity.func_71127_g(ServerPlayerEntity.java:404) ~[?:?] {re:classloading,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,re:mixin,pl:accesstransformer:B}     at net.minecraft.network.play.ServerPlayNetHandler.func_73660_a(ServerPlayNetHandler.java:207) ~[?:?] {re:classloading,pl:accesstransformer:B}     at net.minecraft.network.NetworkManager.func_74428_b(NetworkManager.java:226) ~[?:?] {re:classloading,re:mixin}     at net.minecraft.network.NetworkSystem.func_151269_c(NetworkSystem.java:134) ~[?:?] {re:classloading}     at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:865) ~[?:?] {re:classloading,pl:accesstransformer:B}     at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:787) ~[?:?] {re:classloading,pl:accesstransformer:B}     at net.minecraft.server.integrated.IntegratedServer.func_71217_p(IntegratedServer.java:118) ~[?:?] {re:classloading,xf:OptiFine:default}     at net.minecraft.server.MinecraftServer.func_240802_v_(MinecraftServer.java:642) [?:?] {re:classloading,pl:accesstransformer:B}     at net.minecraft.server.MinecraftServer.func_240783_a_(MinecraftServer.java:232) [?:?] {re:classloading,pl:accesstransformer:B}     at net.minecraft.server.MinecraftServer$$Lambda$12200/991723054.run(Unknown Source) [?:?] {}     at java.lang.Thread.run(Thread.java:745) [?:1.8.0_51] {} Caused by: java.lang.LinkageError: loader constraint violation: loader (instance of sun/misc/Launcher$AppClassLoader) previously initiated loading for a different type with name "org/apache/logging/log4j/util/MessageSupplier"     at java.lang.ClassLoader.defineClass1(Native Method) ~[?:1.8.0_51] {}     at java.lang.ClassLoader.defineClass(ClassLoader.java:760) ~[?:1.8.0_51] {}     at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) ~[?:1.8.0_51] {}     at java.net.URLClassLoader.defineClass(URLClassLoader.java:467) ~[?:1.8.0_51] {}     at java.net.URLClassLoader.access$100(URLClassLoader.java:73) ~[?:1.8.0_51] {}     at java.net.URLClassLoader$1.run(URLClassLoader.java:368) ~[?:1.8.0_51] {}     at java.net.URLClassLoader$1.run(URLClassLoader.java:362) ~[?:1.8.0_51] {}     at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_51] {}     at java.net.URLClassLoader.findClass(URLClassLoader.java:361) ~[?:1.8.0_51] {}     at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[?:1.8.0_51] {}     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) ~[?:1.8.0_51] {}     at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[?:1.8.0_51] {}     ... 17 more A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- Head -- Thread: Server thread Stacktrace:     at net.minecraftforge.eventbus.EventBus.handleException(EventBus.java:316) ~[eventbus-4.0.0.jar:?] {}     at net.minecraftforge.eventbus.EventBus.post(EventBus.java:307) ~[eventbus-4.0.0.jar:?] {}     at net.minecraftforge.eventbus.EventBus.post(EventBus.java:283) ~[eventbus-4.0.0.jar:?] {}     at net.minecraftforge.common.ForgeHooks.onLivingUpdate(ForgeHooks.java:340) ~[?:?] {re:classloading}     at net.minecraft.entity.LivingEntity.func_70071_h_(LivingEntity.java:2112) ~[?:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:citadel.mixins.json:LivingEntityMixin,pl:mixin:APP:assets/botania/botania.mixins.json:AccessorLivingEntity,pl:mixin:A}     at net.minecraft.entity.player.PlayerEntity.func_70071_h_(PlayerEntity.java:223) ~[?:?] {re:mixin,pl:accesstransformer:B,xf:fml:tlskincape:PlayerEntityTransformer,re:classloading,pl:accesstransformer:B,xf:fml:tlskincape:PlayerEntityTransformer,pl:mixin:APP:assets/botania/botania.mixins.json:MixinPlayerEntity,pl:mixin:A,re:computing_frames,pl:accesstransformer:B,xf:fml:tlskincape:PlayerEntityTransformer} -- Player being ticked -- Details:     Entity Type: minecraft:player (net.minecraft.entity.player.ServerPlayerEntity)     Entity ID: 150     Entity Name: thisnot5544324     Entity's Exact location: 154.50, 62.00, 128.50     Entity's Block location: World: (154,62,128), Chunk: (at 10,3,0 in 9,8; contains blocks 144,0,128 to 159,255,143), Region: (0,0; contains chunks 0,0 to 31,31, blocks 0,0,0 to 511,255,511)     Entity's Momentum: 0.00, 0.00, 0.00     Entity's Passengers: []     Entity's Vehicle: ~~ERROR~~ NullPointerException: null Stacktrace:     at net.minecraft.entity.player.ServerPlayerEntity.func_71127_g(ServerPlayerEntity.java:404) ~[?:?] {re:classloading,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,re:mixin,pl:accesstransformer:B}     at net.minecraft.network.play.ServerPlayNetHandler.func_73660_a(ServerPlayNetHandler.java:207) ~[?:?] {re:classloading,pl:accesstransformer:B}     at net.minecraft.network.NetworkManager.func_74428_b(NetworkManager.java:226) ~[?:?] {re:classloading,re:mixin}     at net.minecraft.network.NetworkSystem.func_151269_c(NetworkSystem.java:134) ~[?:?] {re:classloading}     at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:865) ~[?:?] {re:classloading,pl:accesstransformer:B}     at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:787) ~[?:?] {re:classloading,pl:accesstransformer:B}     at net.minecraft.server.integrated.IntegratedServer.func_71217_p(IntegratedServer.java:118) ~[?:?] {re:classloading,xf:OptiFine:default}     at net.minecraft.server.MinecraftServer.func_240802_v_(MinecraftServer.java:642) [?:?] {re:classloading,pl:accesstransformer:B}     at net.minecraft.server.MinecraftServer.func_240783_a_(MinecraftServer.java:232) [?:?] {re:classloading,pl:accesstransformer:B}     at net.minecraft.server.MinecraftServer$$Lambda$12200/991723054.run(Unknown Source) [?:?] {}     at java.lang.Thread.run(Thread.java:745) [?:1.8.0_51] {} -- System Details -- Details:     Minecraft Version: 1.16.5     Minecraft Version ID: 1.16.5     Operating System: Windows 10 (amd64) version 10.0     Java Version: 1.8.0_51, Oracle Corporation     Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation     Memory: 5907582904 bytes (5633 MB) / 8556380160 bytes (8160 MB) up to 8556380160 bytes (8160 MB)     CPUs: 4     JVM Flags: 11 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xss1M -XX:+IgnoreUnrecognizedVMOptions -Xmn128M -Xmx8132M -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:G1NewSizePercent=20 -XX:G1ReservePercent=20 -XX:MaxGCPauseMillis=50 -XX:G1HeapRegionSize=32M     ModLauncher: 8.0.9+86+master.3cf110c     ModLauncher launch target: fmlclient     ModLauncher naming: srg     ModLauncher services:          /mixin-0.8.4.jar mixin PLUGINSERVICE          /eventbus-4.0.0.jar eventbus PLUGINSERVICE          /forge-1.16.5-36.2.19.jar object_holder_definalize PLUGINSERVICE          /forge-1.16.5-36.2.19.jar runtime_enum_extender PLUGINSERVICE          /accesstransformers-3.0.1.jar accesstransformer PLUGINSERVICE          /forge-1.16.5-36.2.19.jar capability_inject_definalize PLUGINSERVICE          /forge-1.16.5-36.2.19.jar runtimedistcleaner PLUGINSERVICE          /mixin-0.8.4.jar mixin TRANSFORMATIONSERVICE          /OptiFine-1.16.5_HD_U_G8_pre2.jar OptiFine TRANSFORMATIONSERVICE          /forge-1.16.5-36.2.19.jar fml TRANSFORMATIONSERVICE      FML: 36.2     Forge: net.minecraftforge:36.2.19     FML Language Providers:          javafml@36.2         minecraft@1     Mod List:          ExtraWeaponsModv1.16.0.0.b270.jar                 |Extra Weapons                 |extraweapons                  |1.16.0.0.270        |DONE      |Manifest: NOSIGNATURE         mowziesmobs-1.5.19.jar                            |Mowzie's Mobs                 |mowziesmobs                   |1.5.19              |DONE      |Manifest: NOSIGNATURE         Randomizer-2.0.0.jar                              |Randomizer                    |randomizer                    |1.0.0               |DONE      |Manifest: NOSIGNATURE         jei-1.16.5-7.7.1.126.jar                          |Just Enough Items             |jei                           |7.7.1.126           |DONE      |Manifest: NOSIGNATURE         goblintraders-1.6.0-1.16.3.jar                    |Goblin Traders                |goblintraders                 |1.6.0               |DONE      |Manifest: NOSIGNATURE         torohealth-1.16.4-forge-4.jar                     |ToroHealth                    |torohealth                    |NONE                |DONE      |Manifest: NOSIGNATURE         gildedarmor-forge-1.16.5-1.1.4.jar                |Gilded Armor                  |gildedarmor                   |1.1.4               |DONE      |Manifest: NOSIGNATURE         BlockArmor-1.16.5-2.6.3.jar                       |Block Armor                   |blockarmor                    |2.6.3               |DONE      |Manifest: NOSIGNATURE         Neat+1.7-27.jar                                   |Neat                          |neat                          |1.7-27              |DONE      |Manifest: NOSIGNATURE         Waystones_1.16.5-7.6.3.jar                        |Waystones                     |waystones                     |7.6.3               |DONE      |Manifest: NOSIGNATURE         EpicFightMod-1.16.5-5.1.3.jar                     |Epic Fight Mod                |epicfight                     |5.1.0               |DONE      |Manifest: NOSIGNATURE         OresAboveDiamonds-1.16.5-v6.4.1.jar               |Ores Above Diamonds           |oresabovediamonds             |6.4.1               |DONE      |Manifest: NOSIGNATURE         journeymap-1.16.5-5.7.3.jar                       |Journeymap                    |journeymap                    |5.7.3               |DONE      |Manifest: NOSIGNATURE         citadel-1.8.1-1.16.5.jar                          |Citadel                       |citadel                       |1.8.1               |DONE      |Manifest: NOSIGNATURE         alexsmobs-1.12.1.jar                              |Alex's Mobs                   |alexsmobs                     |1.12.1              |DONE      |Manifest: NOSIGNATURE         TravelersBackpack-1.16.5-5.4.5.jar                |Traveler's Backpack           |travelersbackpack             |5.4.5               |DONE      |Manifest: NOSIGNATURE         NaturesCompass-1.16.5-1.9.1-forge.jar             |Nature's Compass              |naturescompass                |1.16.5-1.9.1-forge  |DONE      |Manifest: NOSIGNATURE         netheritehorsearmor-1.7.jar                       |Netherite Horse Armor Mod     |netheritehorsearmor           |1.7                 |DONE      |Manifest: NOSIGNATURE         MutantBeasts-1.16.4-1.1.3.jar                     |Mutant Beasts                 |mutantbeasts                  |1.16.4-1.1.3        |DONE      |Manifest: d9:be:bd:b6:9a:e4:14:aa:05:67:fb:84:06:77:a0:c5:10:ec:27:15:1b:d6:c0:88:49:9a:ef:26:77:61:0b:5e         guardvillagers-1.16.5.1.2.6.jar                   |Guard Villagers               |guardvillagers                |1.2.6               |DONE      |Manifest: NOSIGNATURE         u_team_core-1.16.5-3.2.1.196.jar                  |U Team Core                   |uteamcore                     |3.2.1.196           |DONE      |Manifest: f4:a6:0b:ee:cb:8a:1a:ea:9f:9d:45:91:8f:8b:b3:ae:26:f3:bf:05:86:1d:90:9e:f6:32:2a:1a:ed:1d:ce:b0         mcw-doors-1.0.3-mc1.16.5.jar                      |Macaw's Doors                 |mcwdoors                      |1.0.3               |DONE      |Manifest: NOSIGNATURE         inventorypets-1.16.5-2.0.15.jar                   |Inventory Pets                |inventorypets                 |2.0.15              |DONE      |Manifest: NOSIGNATURE         carryon-1.16.5-1.15.5.15.jar                      |Carry On                      |carryon                       |1.15.5.15           |DONE      |Manifest: 8c:03:ac:7d:21:62:65:e2:83:91:f3:22:57:99:ed:75:78:1e:db:de:03:99:ef:53:3b:59:95:18:01:bc:84:a9         Exp+Ore+Mod+-+1.16.5+-+1.3.jar                    |Exp Ore Block                 |exp_ore                       |1.3                 |DONE      |Manifest: NOSIGNATURE         forge-1.16.5-36.2.19-universal.jar                |Forge                         |forge                         |36.2.19             |DONE      |Manifest: 22:af:21:d8:19:82:7f:93:94:fe:2b:ac:b7:e4:41:57:68:39:87:b1:a7:5c:c6:44:f9:25:74:21:14:f5:0d:90         twilightforest-1.16.5-4.0.546-universal.jar       |The Twilight Forest           |twilightforest                |NONE                |DONE      |Manifest: NOSIGNATURE         tl_skin_cape_forge_1.16.5-1.17.jar                |TLSkinCape                    |tlskincape                    |1.17                |DONE      |Manifest: 19:f5:ce:44:81:0c:e4:22:05:5e:73:c5:a8:cd:de:f3:c8:cf:a9:b3:01:70:40:a0:ee:2d:50:7a:1c:3d:1c:8a         SimpleOres2-1.16.5-2.4.7.2.jar                    |Simple Ores                   |simpleores                    |1.16.5-2.4.7.2      |DONE      |Manifest: NOSIGNATURE         ironchest-1.16.5-11.2.13.jar                      |Iron Chests                   |ironchest                     |1.16.5-11.2.13      |DONE      |Manifest: NOSIGNATURE         forge-1.16.5-36.2.19-client.jar                   |Minecraft                     |minecraft                     |1.16.5              |DONE      |Manifest: NOSIGNATURE         luckyblock-1.16.5-1.jar                           |Lucky Block                   |lucky                         |1.16.5-1            |DONE      |Manifest: NOSIGNATURE         useful_backpacks-1.16.5-1.12.1.90.jar             |Useful Backpacks              |usefulbackpacks               |1.12.1.90           |DONE      |Manifest: f4:a6:0b:ee:cb:8a:1a:ea:9f:9d:45:91:8f:8b:b3:ae:26:f3:bf:05:86:1d:90:9e:f6:32:2a:1a:ed:1d:ce:b0         BiomesOPlenty-1.16.5-13.1.0.482-universal.jar     |Biomes O' Plenty              |biomesoplenty                 |1.16.5-13.1.0.482   |DONE      |Manifest: NOSIGNATURE         ironfurnaces-1.16.5-2.7.7.jar                     |Iron Furnaces                 |ironfurnaces                  |2.7.7               |DONE      |Manifest: NOSIGNATURE         SimpleCoreLib-1.16.5-2.0.8.22.jar                 |SimpleCoreLib                 |simplecorelib                 |1.16.5-2.0.8.22     |DONE      |Manifest: NOSIGNATURE         Botania-1.16.5-419.jar                            |Botania                       |botania                       |1.16.5-419          |DONE      |Manifest: NOSIGNATURE         curios-forge-1.16.5-4.0.5.3.jar                   |Curios API                    |curios                        |1.16.5-4.0.5.3      |DONE      |Manifest: NOSIGNATURE         SpartanShields-1.16.5-2.1.2.jar                   |Spartan Shields               |spartanshields                |2.1.2               |DONE      |Manifest: NOSIGNATURE         Patchouli-1.16.4-53.2.jar                         |Patchouli                     |patchouli                     |1.16.4-53.2         |DONE      |Manifest: NOSIGNATURE         gravestone-1.16.5-1.0.7.jar                       |Gravestone Mod                |gravestone                    |1.16.5-1.0.7        |DONE      |Manifest: NOSIGNATURE         [1.16.5]+SecurityCraft+v1.8.23.jar                |SecurityCraft                 |securitycraft                 |v1.8.23             |DONE      |Manifest: NOSIGNATURE         sit-1.16.5-v1.3.1.jar                             |Sit                           |sit                           |v1.3.1              |DONE      |Manifest: NOSIGNATURE         OreExcavation-1.8.157.jar                         |Ore Excavation                |oreexcavation                 |1.8.157             |DONE      |Manifest: e7:68:1c:0d:b9:7e:cf:f8:f3:40:9c:84:c5:39:d7:a4:59:78:b0:6b:c3:fd:b7:4f:69:18:a3:88:e3:76:8c:3f         obfuscate-0.6.2-1.16.3.jar                        |Obfuscate                     |obfuscate                     |0.6.2               |DONE      |Manifest: e1:59:1a:56:ec:97:b3:d0:b3:4b:25:06:1f:83:b0:f4:fd:0c:24:e3:6d:ea:94:b1:9f:22:b0:38:13:60:88:ea         vehicle-mod-0.45.2-1.16.3.jar                     |MrCrayfish's Vehicle Mod      |vehicle                       |0.45.2              |DONE      |Manifest: NOSIGNATURE         morevanillaarmor-1.16.4-1.2.4.jar                 |MoreVanillaArmor              |morevanillaarmor              |1.16.4-1.2.4        |DONE      |Manifest: NOSIGNATURE         SpartanWeaponry-1.16.4-2.1.0-beta-4.jar           |Spartan Weaponry              |spartanweaponry               |2.1.0 beta 4        |DONE      |Manifest: NOSIGNATURE         cfm-7.0.0pre22-1.16.3.jar                         |MrCrayfish's Furniture Mod    |cfm                           |7.0.0-pre22         |DONE      |Manifest: NOSIGNATURE         appleskin-forge-mc1.16.x-2.1.0.jar                |AppleSkin                     |appleskin                     |mc1.16.4-2.1.0      |DONE      |Manifest: NOSIGNATURE         MoreTool-ver-1.0.2.jar                            |More Tool                     |moretool                      |1.0.1               |DONE      |Manifest: NOSIGNATURE         cloth-config-4.11.26-forge.jar                    |Cloth Config v4 API           |cloth-config                  |4.11.26             |DONE      |Manifest: NOSIGNATURE         FallingTree-1.16.5-2.11.5.jar                     |FallingTree                   |fallingtree                   |2.11.5              |DONE      |Manifest: 3c:8e:df:6c:df:a6:2a:9f:af:64:ea:04:9a:cf:65:92:3b:54:93:0e:96:50:b4:52:e1:13:42:18:2b:ae:40:29         mcsa-forge-2.2.2-Forge.jar                        |Mcsa Forge                    |mcsaforge                     |2.2.2-Forge         |DONE      |Manifest: NOSIGNATURE         geckolib-forge-1.16.5-3.0.48.jar                  |GeckoLib                      |geckolib3                     |3.0.48              |DONE      |Manifest: NOSIGNATURE         supertools-1.16.5-4.5.jar                         |Vanilla+ Tools                |supertools                    |version             |DONE      |Manifest: NOSIGNATURE         Cyclic-1.16.5-1.5.6.jar                           |Cyclic                        |cyclic                        |1.16.5-1.5.6        |DONE      |Manifest: 1f:47:ac:b1:61:82:96:b8:47:19:16:d2:61:81:11:60:3a:06:4b:61:31:56:7d:44:31:1e:0c:6f:22:5b:4c:ed     Crash Report UUID: c169c3a4-33c1-4794-a733-01b772ca267f     Patchouli open book context: n/a     Player Count: 1 / 8; [ServerPlayerEntity['thisnot5544324'/150, l='ServerLevel[New World]', x=154.50, y=62.00, z=128.50]]     Data Packs: vanilla, mod:extraweapons, mod:mowziesmobs (incompatible), mod:randomizer, mod:jei, mod:goblintraders, mod:torohealth, mod:gildedarmor, mod:blockarmor, mod:neat (incompatible), mod:waystones (incompatible), mod:epicfight, mod:oresabovediamonds (incompatible), mod:journeymap (incompatible), mod:citadel (incompatible), mod:alexsmobs, mod:travelersbackpack (incompatible), mod:naturescompass (incompatible), mod:netheritehorsearmor, mod:mutantbeasts (incompatible), mod:guardvillagers, mod:uteamcore, mod:mcwdoors, mod:inventorypets (incompatible), mod:carryon, mod:exp_ore (incompatible), mod:forge, mod:twilightforest, mod:tlskincape (incompatible), mod:simpleores, mod:ironchest, mod:lucky (incompatible), mod:usefulbackpacks, mod:biomesoplenty, mod:ironfurnaces, mod:simplecorelib, mod:botania, mod:curios, mod:spartanshields, mod:patchouli (incompatible), mod:gravestone, mod:securitycraft (incompatible), mod:sit, mod:oreexcavation, mod:obfuscate (incompatible), mod:vehicle (incompatible), mod:morevanillaarmor (incompatible), mod:spartanweaponry, mod:cfm (incompatible), mod:appleskin, mod:moretool, mod:cloth-config (incompatible), mod:fallingtree, mod:mcsaforge, mod:geckolib3 (incompatible), mod:supertools (incompatible), mod:cyclic (incompatible)     Type: Integrated Server (map_client.txt)     Is Modded: Definitely; Client brand changed to 'forge'     OptiFine Version: OptiFine_1.16.5_HD_U_G8_pre2     OptiFine Build: 20210305-002749     Render Distance Chunks: 8     Mipmaps: 4     Anisotropic Filtering: 1     Antialiasing: 0     Multitexture: false     Shaders: null     OpenGlVersion: 4.6.0 NVIDIA 456.71     OpenGlRenderer: GeForce GTX 1050 Ti/PCIe/SSE2     OpenGlVendor: NVIDIA Corporation     CpuCount: 4
    • Thanks, but I had already solved it.
    • You should read the documentation from mcforge.readthedocs.io. "On RenderPlayerEvent.Pre" is exactly what is sounds like : on that event, do as instructed above. "I even know java, c++ and python" irrelevant. Programming is not necessarily about how many languages you've learned, but how well you can use one of them. Just being familiar with an OOP language would have made it possible to study the vanilla code.  I'll tell you again. On RenderPlayerEvent.Pre set the visible field on the rightArm model to false, and in post, set it to true, then set it's x, y, z position and rotation values (look at how vanilla does it). Then call the render method passing in the matrix from the event object. Also see how vanilla does it. This example is not very good for practical purposes, but I hope is enough to satisfy the stack overflow trend: @SubscribeEvent public void renderPlayerPre(RenderPlayerEvent.Pre event) { event.getRenderer().getModel().rightArm.visible = false; } @SubscribeEvent public void renderPlayerPost(RenderPlayerEvent.Post event) { PlayerEntity player = event.getPlayer(); PlayerModel<AbstractClientPlayerEntity> model = event.getRenderer().getModel(); ModelRenderer rightArm = model.rightArm; rightArm.visible = true; // rotation point rightArm.x = -MathHelper.cos((float) Math.toRadians(player.yRot)) * 5.0F; rightArm.y = 20; rightArm.z = -MathHelper.sin((float) Math.toRadians(player.yRot)) * 5.0F; // rotation rightArm.xRot = (float) Math.toRadians(42); rightArm.yRot = (float) -Math.toRadians(player.yBodyRot); rightArm.render( event.getMatrixStack(), event.getBuffers().getBuffer(RenderType.entitySolid(((AbstractClientPlayerEntity)player).getSkinTextureLocation())), Minecraft.getInstance().getEntityRenderDispatcher().getPackedLightCoords(player, 1f), OverlayTexture.NO_OVERLAY); }  
  • Topics

  • Who's Online (See full list)

×
×
  • Create New...

Important Information

By using this site, you agree to our Privacy Policy.