Jump to content

[MC 1.16.3] I need help with how Forge works. Implementing new PVP and PVE mechanics.


Recommended Posts

Posted (edited)

 

VERSION I'M USING RIGHT NOW: MINECRAFT 1.16.3

 

Currently I'm developing a mod that changes the pvp and pve mechanics, adding a stamina system with the existir air system, overwriting it.

So far so good, I haven't had so much problems, but I'm sure there will be a lot more problems, because of my not enough knowledge of java and the forge api.

 

First I'm implementing a stamina mechanic which the "air" of the player will play a role here.

I put the max air number "99" to show it forever, even outside the water.

I "use" the air with each action, like jumping or sprinting.

 

My questions:

  • The sword swings, I'm not sure how to implement those, how do I detect a sword swing? Is that an event? I'll try detecting left clicks...
    • Because the approach I tried was, checking the "isSwingInProgress" and checking "swingProgress" but I only want it to happen 1 tick to make the player always waste 80 air in one step, and not 40 air in several random steps (depending on how fast is the swing of the sword, will either deplete much or less oxygen, not a reliable solution...)
  • Using air while charging bow, how? is there an event for that? or checking "holding right click" directly while char is holding a bow? which approach is the best?
  • What is the ideal place to learn about this mod API? if there is none, I just want to know, to not waste my time looking for it and to only focus on downloading examples.



If you have a source of an example mod that changes gameplay and not only adds blocks or items, I'd be really grateful to you.

This is the code of these first features:

 @SubscribeEvent
    public static void onPlayerTick(TickEvent.PlayerTickEvent event){
        if(event.player.isSprinting()){
             event.player.setAir(event.player.getAir() - 3);
        }else if(!event.player.isSprinting() && !event.player.isSneaking()){
            event.player.setAir(event.player.getAir());
        }

        if(event.player.getAir() <= 0){
            event.player.attackEntityFrom(DamageSource.GENERIC, 1.0F);
            if(event.player.getAir() < 0) {
                event.player.setAir(0);
            }
        }else if(event.player.getAir() > event.player.getMaxAir()-1){
            event.player.setAir(event.player.getMaxAir()-1);
        }

        if(event.player.isSwingInProgress && event.player.swingProgressInt == 3
                && event.player.prevSwingProgress != event.player.swingProgressInt){
            event.player.setAir(event.player.getAir()-40);
        }


        if(enhanceLevel ==1){
            ((PlayerEntity) event.player).removePotionEffect(Effects.STRENGTH);
        }else if(enhanceLevel == 2){
            ((PlayerEntity) event.player).addPotionEffect(new EffectInstance(Effects.STRENGTH,9999, 0));
        }else if(enhanceLevel == 3){
            ((PlayerEntity) event.player).addPotionEffect(new EffectInstance(Effects.STRENGTH,9999, 1));
        }
    }

 

This is the code I used, I'm planning to refactor it today. The enhanceLevel is another mechanic but I'll leave it for later until I polish enough the custom breathing system.


I tried reading the documentation and I have seen a lot of times, it's not as documented as I expected. I don't know the reasons why the official documentation is just an introduction and not a whole explanation of each function, class, methods but at least I've read that the autocompletion will give you enough explanation of what is going to happen with each function, classes, methods, events...

 

The event system also has worked, but there are not enough events or maybe they are implemented somewhere else, like how I used "PlayerTickEvent".

 

 

Edited by jkf16m
Posted (edited)

If the official documentation has the whole explanation of every methods, classes, fields... etc, the time taken to update it will be long enough for Vanilla to release another version. If you don't think the doc  contains enough information, you can always make new pr and improve it.

PlayerTickEvent is a type of TickEvent which it is triggered twice a tick, TickEvent.Phase.Start/End, you should check for one of them.

For the swingProgress because it is triggered once a tick so it take away 80 instead of 40

For the bow you can check if player's holding the bow and if the hand is active, see how ItemModelProperties decides "pulling" property for bows.

 

 

Edited by poopoodice
Posted

About the bow, how do I use ItemModelProperties?

 

// see if the player's hand is active (idk what that means) and is holding a bow.
        if(player.isHandActive() && player.getHeldItemMainhand().getTranslationKey() == new ItemStack(Items.BOW).getTranslationKey()){
            Item playersBow = player.getHeldItemMainhand().getItem(); //get player item

            ItemModelsProperties.func_239417_a_(); //?
            ItemModelsProperties.func_239418_a_(); //?

        }

 

which is the variable to make the comparison for this property?

 

This is what I found in the implementation
 

func_239418_a_(Items.BOW, new ResourceLocation("pulling"), (p_239428_0_, p_239428_1_, p_239428_2_) -> {
         return p_239428_2_ != null && p_239428_2_.isHandActive() && p_239428_2_.getActiveItemStack() == p_239428_0_ ? 1.0F : 0.0F;
      });

 

Posted (edited)
Quote

 return p_239428_2_ != null && p_239428_2_.isHandActive() && p_239428_2_.getActiveItemStack() == p_239428_0_

This statement in ItemModelProperties decides whether the player is pulling the bow (what I meant was you can have a look at the class to get an idea of how it does it, instead of directly use the methods in that place), which was one of the thing you were looking for.

On 11/13/2020 at 10:03 PM, jkf16m said:

 

  • Using air while charging bow, how? is there an event for that? or checking "holding right click" directly while char is holding a bow? which approach is the best?

 

Quote

player.getHeldItemMainhand().getTranslationKey() == new ItemStack(Items.BOW).getTranslationKey()

You should not compare the items like this, this is not how you compare strings either (it will never be true, use Object#equals). Since items in vanilla are singletons, you can use == to compare them, for example

stack.getItem() == Items.BOW

 

isHandActive() checks if the player is using something like eating, drinking...etc

Edited by poopoodice

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

    • After removing shieldexpansion it wont let me join the server because it's included in the server's modpack. is there a way to bypass that?  
    • Getting this, been trying to comb thru but cant seem to find the error... [13:11:35] [main/INFO]: Loading 169 mods:     - ad_astra 1.15.19     - ae2 15.3.3     - aether 1.20.1-1.5.2-neoforge         |-- cumulus_menus 1.20.1-1.0.1-neoforge         \-- nitrogen_internals 1.20.1-1.0.12-neoforge     - aiimprovements 0.5.2     - alexsmobs 1.22.9     - almostunified 1.20.1-0.9.4     - appleskin 2.5.1+mc1.20.1     - architectury 9.2.14     - athena 3.1.2     - bellsandwhistles 0.4.3-1.20.x     - betterchunkloading 1.20.1-5.3     - betterdeserttemples 1.20-Forge-3.0.3     - betterdungeons 1.20-Forge-4.0.4     - betterendisland 1.20-Forge-2.0.6     - betterfortresses 1.20-Forge-2.0.6     - betterjungletemples 1.20-Forge-2.0.5     - bettermineshafts 1.20-Forge-4.0.4     - betteroceanmonuments 1.20-Forge-3.0.4     - betterstrongholds 1.20-Forge-4.0.3     - bettervillage 3.2.0     - betterwitchhuts 1.20-Forge-3.0.3     - bookshelf 20.2.13     - botanypots 13.0.40     - botarium 2.3.4     - canary 0.3.3     - carryon 2.1.2.7     - cgm 1.4.18     - chipped 3.0.7     - chunkloaders 1.2.8a     - citadel 2.6.1     - cofh_core 11.0.2     - comforts 6.4.0+1.20.1         \-- spectrelib 0.13.15+1.20.1     - copycats 2.2.0+mc.1.20.1-forge     - corpse 1.20.1-1.0.20     - create 0.5.1.j         \-- flywheel 0.6.11-13     - create_better_motors 1.1.0     - create_bic_bit 0.0.86     - create_central_kitchen 1.3.12         \-- create_dragon_lib 1.4.3     - create_confectionery 1.1.0     - create_connected 0.9.4-mc1.20.1     - create_copper_and_zinc 1.6.0     - create_crush_everything 1.0.2     - create_dd 0.1b.Release-Early-Dev     - create_enchantment_industry 1.2.9.d     - create_eureka 1.0.0+forge-1.20.1     - create_extra_casing 0.0.2     - create_factory 0.4b-1.20.1     - create_ltab_f 2.5.0     - create_mechanical_extruder 1.20.1-1.6.3.j-55     - create_new_age 1.1.2     - create_pillagers_arise 116.26.     - create_power_loader 1.5.0-mc1.20.1     - create_questing 1.0.0     - create_sa 2.0.8     - create_ultimate_factory 1.9.0     - createaddoncompatibility 0.2.2b     - createbigcannons 5.8.2         \-- ritchiesprojectilelib 2.0.0-dev+mc.1.20.1-forge-build.182     - createcasing 1.20.1-1.6.2-fix1     - createdieselgenerators 1.20.1-1.2i     - createloveandwar 0.4-1.20.1     - createmobeggs 2.0.1     - createoreexcavation 1.5.3     - createutilities 0.3.0+1.20.1     - crittersandcompanions 2.2.2     - crystal_clear 2.1-Beta     - cupboard 1.20.1-2.7     - curios 5.11.1+1.20.1     - diagonalfences 8.1.5         \-- diagonalblocks 8.0.6     - domum_ornamentum 1.20.1-1.0.284-snapshot     - duckling 3.0.0     - dungeons_arise 2.1.58-1.20.x     - dungeons_arise_seven_seas 1.0.2     - extendedgears 2.1.1-1.20.1-0.5.1.f-forge     - fallingleaves 2.1.0     - fallingtree 4.3.4     - farmersdelight 1.20.1-1.2.7     - fastasyncworldsave 1.20.1-2.3     - ferritecore 6.0.1     - flansmod 0.4         \-- flansphysics 0.4     - forge 47.3.0     - framedblocks 9.3.1     - framework 0.7.12     - ftblibrary 2001.2.9     - ftbquests 2001.4.11     - ftbteams 2001.3.1     - ftbxmodcompat 2.1.2     - fusion 1.2.4     - garnished 2.0.7     - geckolib 4.7     - goblintraders 1.9.3     - gpumemleakfix 1.20.1-1.8     - handcrafted 3.0.6     - interiors 0.5.6     - irisflw 1.1.2     - jade 11.12.3+forge     - jei 15.20.0.106     - kitchen_grow 0.1-1.20.1     - kotlinforforge 4.11.0     - leaky 1.20.1-2.1     - libraryferret 4.0.0     - lmft 1.0.4+1.20.1     - minecraft 1.20.1     - missions 0.4.2     - modernfix 5.20.2+mc1.20.1         \-- mixinextras 0.4.1     - moderntrainparts 0.1.7-forge-mc1.20.1-cr0.5.1.f     - molten_vents 2.0.9     - moonlight 1.20-2.13.62     - moped 1.0.0     - mr_warp_portals 1.4.0     - necronomicon 1.6.0     - numismatics 1.0.7+forge-mc1.20.1     - oculus 1.8.0     - puzzleslib 8.1.25         \-- puzzlesaccessapi 8.0.7     - quark 4.0-460     - railways 1.6.7+forge-mc1.20.1     - rechiseled 1.1.6     - rechiseledcreate 1.0.2     - resourcefulconfig 2.1.2     - resourcefullib 2.1.29     - ribbits 1.20.1-Forge-3.0.4     - rightclickharvest 3.2.3+1.20.1-forge     - simpleclouds 0.6.3+1.20.1-forge         \-- crackerslib 1.20.1-0.4.4     - skinlayers3d 1.7.4     - smoothchunk 1.20.1-4.0     - sophisticatedbackpacks 3.23.4.1196     - sophisticatedcore 1.2.9.867     - storagedrawers 12.9.13     - supermartijn642configlib 1.1.8     - supermartijn642corelib 1.1.18     - supplementaries 1.20-3.1.13         \-- mixinsquared 0.1.1     - tectonic 2.4.1     - terrablender 3.0.1.7     - terralith 2.5.4     - tfmg 0.9.3-1.20.1     - thermal_cultivation 11.0.1     - thermal_dynamics 11.0.1     - thermal_expansion 11.0.1     - thermal_foundation 11.0.6         \-- thermal 11.0.6     - thermal_innovation 11.0.1     - thermal_integration 11.0.1     - torchmaster 20.1.9     - trackwork 1.1.1b     - trashcans 1.0.18b     - travelersbackpack 9.1.16     - twilightforest 4.3.2508     - valkyrienskies 2.3.0-beta.5         \-- cloth_config 11.1.106     - vinery 1.4.38     - vs_clockwork 1.20.1-0.1.16-forge-b3b22e39fe     - vs_eureka 1.5.1-beta.3     - worldedit 7.2.15+6463-5ca4dff     - xaerominimap 25.0.0     - xaeroworldmap 1.39.2     - yungsapi 1.20-Forge-4.0.6     - yungsbridges 1.20-Forge-4.0.3     - yungsextras 1.20-Forge-4.0.3     - zeta 1.0-24 [13:11:35] [main/WARN]: Reference map 'create_eureka-common-refmap.json' for create_eureka-common.mixins.json could not be read. If this is a development environment you can ignore this message [13:11:35] [main/WARN]: Reference map 'eureka-1201-forge-refmap.json' for vs_eureka.mixins.json could not be read. If this is a development environment you can ignore this message [13:11:35] [main/WARN]: Reference map 'createmechanicalextruder.refmap.json' for create_mechanical_extruder.mixins.json could not be read. If this is a development environment you can ignore this message [13:11:35] [main/WARN]: Reference map 'mixins.trackwork.refmap.json' for trackwork.mixins.json could not be read. If this is a development environment you can ignore this message [13:11:35] [main/WARN]: Reference map 'tfmg.refmap.json' for tfmg.mixins.json could not be read. If this is a development environment you can ignore this message [13:11:35] [main/WARN]: Reference map 'Create_The_Kitchen_Must_Grow.refmap.json' for kitchen_grow.mixins.json could not be read. If this is a development environment you can ignore this message [13:11:36] [main/WARN]: Error loading class: mekanism/client/render/entity/RenderFlame (java.lang.ClassNotFoundException: mekanism.client.render.entity.RenderFlame) [13:11:36] [main/WARN]: Error loading class: mekanism/client/render/armor/MekaSuitArmor (java.lang.ClassNotFoundException: mekanism.client.render.armor.MekaSuitArmor) [13:11:36] [main/WARN]: Error loading class: xyz/przemyk/simpleplanes/upgrades/shooter/ShooterUpgrade (java.lang.ClassNotFoundException: xyz.przemyk.simpleplanes.upgrades.shooter.ShooterUpgrade) [13:11:36] [main/WARN]: @Mixin target xyz.przemyk.simpleplanes.upgrades.shooter.ShooterUpgrade was not found cgm.mixins.json:common.simpleplanes.ShooterUpgradeMixin [13:11:36] [main/WARN]: Error loading class: com/jamieswhiteshirt/reachentityattributes/ReachEntityAttributes (java.lang.ClassNotFoundException: com.jamieswhiteshirt.reachentityattributes.ReachEntityAttributes) [13:11:36] [main/WARN]: Error loading class: com/sonicether/soundphysics/SoundPhysics (java.lang.ClassNotFoundException: com.sonicether.soundphysics.SoundPhysics) [13:11:36] [main/WARN]: Error loading class: blusunrize/immersiveengineering/common/gui/BlockEntityInventory (java.lang.ClassNotFoundException: blusunrize.immersiveengineering.common.gui.BlockEntityInventory) [13:11:36] [main/WARN]: Error loading class: net/dries007/tfc/world/TFCChunkGenerator (java.lang.ClassNotFoundException: net.dries007.tfc.world.TFCChunkGenerator) [13:11:36] [main/WARN]: Error loading class: cofh/core/block/entity/TileCoFH (java.lang.ClassNotFoundException: cofh.core.block.entity.TileCoFH) [13:11:36] [main/WARN]: Error loading class: li/cil/tis3d/common/entity/InfraredPacketEntity (java.lang.ClassNotFoundException: li.cil.tis3d.common.entity.InfraredPacketEntity) [13:11:36] [main/WARN]: Error loading class: me/desht/modularrouters/container/RouterMenu (java.lang.ClassNotFoundException: me.desht.modularrouters.container.RouterMenu) [13:11:36] [main/WARN]: Error loading class: me/jellysquid/mods/sodium/client/render/chunk/RenderSectionManager (java.lang.ClassNotFoundException: me.jellysquid.mods.sodium.client.render.chunk.RenderSectionManager) [13:11:36] [main/WARN]: @Mixin target me.jellysquid.mods.sodium.client.render.chunk.RenderSectionManager was not found valkyrienskies-forge.mixins.json:compat.sodium.MixinRenderSectionManager [13:11:36] [main/WARN]: Error loading class: li/cil/tis3d/client/renderer/block/entity/CasingBlockEntityRenderer (java.lang.ClassNotFoundException: li.cil.tis3d.client.renderer.block.entity.CasingBlockEntityRenderer) [13:11:36] [main/WARN]: Error loading class: li/cil/tis3d/client/renderer/RenderContextImpl (java.lang.ClassNotFoundException: li.cil.tis3d.client.renderer.RenderContextImpl) [13:11:37] [main/WARN]: Error loading class: me/jellysquid/mods/lithium/common/ai/pathing/PathNodeDefaults (java.lang.ClassNotFoundException: me.jellysquid.mods.lithium.common.ai.pathing.PathNodeDefaults) [13:11:37] [main/WARN]: Error loading class: noobanidus/mods/lootr/config/ConfigManager (java.lang.ClassNotFoundException: noobanidus.mods.lootr.config.ConfigManager) [13:11:37] [main/WARN]: Error loading class: me/jellysquid/mods/sodium/client/render/chunk/compile/pipeline/FluidRenderer (java.lang.ClassNotFoundException: me.jellysquid.mods.sodium.client.render.chunk.compile.pipeline.FluidRenderer) [13:11:37] [main/WARN]: Error loading class: net/raphimc/immediatelyfast/feature/map_atlas_generation/MapAtlasTexture (java.lang.ClassNotFoundException: net.raphimc.immediatelyfast.feature.map_atlas_generation.MapAtlasTexture) [13:11:37] [main/WARN]: Error loading class: dan200/computercraft/shared/integration/MoreRedIntegration (java.lang.ClassNotFoundException: dan200.computercraft.shared.integration.MoreRedIntegration) [13:11:37] [main/WARN]: @Mixin target dan200.computercraft.shared.integration.MoreRedIntegration was not found create_central_kitchen.mixins.json:common.computercraft.MoreRedIntegrationMixin [13:11:37] [main/WARN]: Error loading class: com/sammy/minersdelight/content/block/copper_pot/CopperPotBlockEntity (java.lang.ClassNotFoundException: com.sammy.minersdelight.content.block.copper_pot.CopperPotBlockEntity) [13:11:37] [main/WARN]: @Mixin target com.sammy.minersdelight.content.block.copper_pot.CopperPotBlockEntity was not found create_central_kitchen.mixins.json:common.minersdelight.CopperPotBlockEntityMixin [13:11:37] [main/WARN]: Error loading class: com/sammy/minersdelight/content/block/sticky_basket/StickyBasketBlockEntity (java.lang.ClassNotFoundException: com.sammy.minersdelight.content.block.sticky_basket.StickyBasketBlockEntity) [13:11:37] [main/WARN]: @Mixin target com.sammy.minersdelight.content.block.sticky_basket.StickyBasketBlockEntity was not found create_central_kitchen.mixins.json:common.minersdelight.StickyBasketBlockEntityAccessor [13:11:37] [main/WARN]: Error loading class: com/sammy/minersdelight/content/block/sticky_basket/StickyBasketBlockEntity (java.lang.ClassNotFoundException: com.sammy.minersdelight.content.block.sticky_basket.StickyBasketBlockEntity) [13:11:37] [main/WARN]: @Mixin target com.sammy.minersdelight.content.block.sticky_basket.StickyBasketBlockEntity was not found create_central_kitchen.mixins.json:common.minersdelight.StickyBasketBlockEntityMixin [13:11:37] [main/WARN]: Error loading class: net/orcinus/overweightfarming/blocks/CropFullBlock (java.lang.ClassNotFoundException: net.orcinus.overweightfarming.blocks.CropFullBlock) [13:11:37] [main/WARN]: @Mixin target net.orcinus.overweightfarming.blocks.CropFullBlock was not found create_central_kitchen.mixins.json:common.overweightfarming.CropFullBlockMixin [13:11:37] [main/ERROR]: valkyrienskies-common.mixins.json:feature.container_distance_check.MixinContainer: Interface mixin contains a non-public method! Found includeShipsInDistanceCheck(Lnet/minecraft/world/entity/player/Player;DDD)D in valkyrienskies-common.mixins.json:feature.container_distance_check.MixinContainer org.spongepowered.asm.mixin.transformer.throwables.InvalidInterfaceMixinException: Interface mixin contains a non-public method! Found includeShipsInDistanceCheck(Lnet/minecraft/world/entity/player/Player;DDD)D in valkyrienskies-common.mixins.json:feature.container_distance_check.MixinContainer     at org.spongepowered.asm.mixin.transformer.MixinPreProcessorInterface.prepareMethod(MixinPreProcessorInterface.java:65) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4]     at org.spongepowered.asm.mixin.transformer.MixinPreProcessorStandard.prepare(MixinPreProcessorStandard.java:187) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4]     at org.spongepowered.asm.mixin.transformer.MixinInfo$State.validate(MixinInfo.java:322) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4]     at org.spongepowered.asm.mixin.transformer.MixinInfo.validate(MixinInfo.java:913) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4]     at org.spongepowered.asm.mixin.transformer.MixinConfig.postInitialise(MixinConfig.java:801) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4]     at org.spongepowered.asm.mixin.transformer.MixinProcessor.prepareConfigs(MixinProcessor.java:567) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4]     at org.spongepowered.asm.mixin.transformer.MixinProcessor.select(MixinProcessor.java:462) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4]     at org.spongepowered.asm.mixin.transformer.MixinProcessor.checkSelect(MixinProcessor.java:438) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4]     at org.spongepowered.asm.mixin.transformer.MixinProcessor.applyMixins(MixinProcessor.java:290) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4]     at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClass(MixinTransformer.java:250) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4]     at org.spongepowered.asm.service.modlauncher.MixinTransformationHandler.processClass(MixinTransformationHandler.java:131) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4]     at org.spongepowered.asm.launch.MixinLaunchPluginLegacy.processClass(MixinLaunchPluginLegacy.java:131) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4]     at cpw.mods.modlauncher.serviceapi.ILaunchPluginService.processClassWithFlags(ILaunchPluginService.java:156) ~[modlauncher-10.0.9.jar:10.0.9+10.0.9+main.dcd20f30]     at cpw.mods.modlauncher.LaunchPluginHandler.offerClassNodeToPlugins(LaunchPluginHandler.java:88) ~[modlauncher-10.0.9.jar:?]     at cpw.mods.modlauncher.ClassTransformer.transform(ClassTransformer.java:120) ~[modlauncher-10.0.9.jar:?]     at cpw.mods.modlauncher.TransformingClassLoader.maybeTransformClassBytes(TransformingClassLoader.java:50) ~[modlauncher-10.0.9.jar:?]     at cpw.mods.cl.ModuleClassLoader.readerToClass(ModuleClassLoader.java:113) ~[securejarhandler-2.1.10.jar:?]     at cpw.mods.cl.ModuleClassLoader.lambda$findClass$15(ModuleClassLoader.java:219) ~[securejarhandler-2.1.10.jar:?]     at cpw.mods.cl.ModuleClassLoader.loadFromModule(ModuleClassLoader.java:229) ~[securejarhandler-2.1.10.jar:?]     at cpw.mods.cl.ModuleClassLoader.findClass(ModuleClassLoader.java:219) ~[securejarhandler-2.1.10.jar:?]     at java.lang.ClassLoader.loadClass(ClassLoader.java:637) ~[?:?]     at java.lang.Class.forName(Class.java:545) ~[?:?]     at net.minecraftforge.fml.earlydisplay.DisplayWindow.lambda$updateModuleReads$14(DisplayWindow.java:601) ~[fmlearlydisplay-1.20.1-47.3.0.jar:1.0]     at java.util.Optional.map(Optional.java:260) ~[?:?]     at net.minecraftforge.fml.earlydisplay.DisplayWindow.updateModuleReads(DisplayWindow.java:601) ~[fmlearlydisplay-1.20.1-47.3.0.jar:1.0]     at net.minecraftforge.fml.loading.ImmediateWindowHandler.acceptGameLayer(ImmediateWindowHandler.java:71) ~[fmlloader-1.20.1-47.3.0.jar:1.0]     at net.minecraftforge.fml.loading.FMLLoader.beforeStart(FMLLoader.java:207) ~[fmlloader-1.20.1-47.3.0.jar:1.0]     at net.minecraftforge.fml.loading.targets.CommonLaunchHandler.launchService(CommonLaunchHandler.java:92) ~[fmlloader-1.20.1-47.3.0.jar:?]     at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:30) ~[modlauncher-10.0.9.jar:?]     at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:53) ~[modlauncher-10.0.9.jar:?]     at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:71) ~[modlauncher-10.0.9.jar:?]     at cpw.mods.modlauncher.Launcher.run(Launcher.java:108) ~[modlauncher-10.0.9.jar:?]     at cpw.mods.modlauncher.Launcher.main(Launcher.java:78) ~[modlauncher-10.0.9.jar:?]     at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:26) ~[modlauncher-10.0.9.jar:?]     at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:23) ~[modlauncher-10.0.9.jar:?]     at cpw.mods.bootstraplauncher.BootstrapLauncher.main(BootstrapLauncher.java:141) ~[bootstraplauncher-1.1.2.jar:?] [13:11:37] [main/INFO]: Initializing MixinExtras via com.llamalad7.mixinextras.service.MixinExtrasServiceImpl(version=0.4.1). [13:11:39] [pool-4-thread-1/INFO]: ModernFix reached bootstrap stage (11.29 s after launch) [13:11:39] [pool-4-thread-1/WARN]: @Final field delegatesByName:Ljava/util/Map; in modernfix-forge.mixins.json:perf.forge_registry_alloc.ForgeRegistryMixin should be final [13:11:39] [pool-4-thread-1/WARN]: @Final field delegatesByValue:Ljava/util/Map; in modernfix-forge.mixins.json:perf.forge_registry_alloc.ForgeRegistryMixin should be final [13:11:39] [pool-4-thread-1/INFO]: Injecting BlockStateBase cache population hook into getNeighborPathNodeType from com.abdelaziz.canary.mixin.ai.pathing.BlockStateBaseMixin [13:11:39] [pool-4-thread-1/INFO]: Injecting BlockStateBase cache population hook into getPathNodeType from com.abdelaziz.canary.mixin.ai.pathing.BlockStateBaseMixin [13:11:39] [pool-4-thread-1/WARN]: @Inject(@At("INVOKE")) Shift.BY=1 on crittersandcompanions.mixins.json:LivingEntityMixin::handler$cjk000$onDie exceeds the maximum allowed value: 0. Increase the value of maxShiftBy to suppress this warning. [13:11:40] [pool-4-thread-1/INFO]: Vanilla bootstrap took 1231 milliseconds [13:11:42] [pool-4-thread-1/WARN]: Static binding violation: PRIVATE @Overwrite method m_47505_ in modernfix-common.mixins.json:perf.remove_biome_temperature_cache.BiomeMixin cannot reduce visibiliy of PUBLIC target method, visibility will be upgraded. [13:11:42] [Render thread/WARN]: Error loading class: net/caffeinemc/mods/sodium/api/memory/MemoryIntrinsics (java.lang.ClassNotFoundException: net.caffeinemc.mods.sodium.api.memory.MemoryIntrinsics)  
    • It could be a mod conflict or world generation issue.
    • Start with removing controllable
  • Topics

×
×
  • Create New...

Important Information

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