Jump to content

Recommended Posts

Posted

Hello i would like to get help with a problem. I have been making a custom modpack and for some odd reason it crashs starting and won't leave a crash report i get a log though.

Also im using 47 mods. https://www.dropbox.com/s/h2c37g0h2ekst3t/mods.rar?dl=0

 

 

[13:27:00] [main/INFO] [LaunchWrapper]: Loading tweak class name cpw.mods.fml.common.launcher.FMLTweaker

[13:27:00] [main/INFO] [LaunchWrapper]: Using primary tweak class name cpw.mods.fml.common.launcher.FMLTweaker

[13:27:00] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.common.launcher.FMLTweaker

[13:27:00] [main/INFO] [FML]: Forge Mod Loader version 7.99.26.1481 for Minecraft 1.7.10 loading

[13:27:00] [main/INFO] [FML]: Java is Java HotSpot 64-Bit Server VM, version 1.8.0_60, running on Windows 10:amd64:10.0, installed at C:\Program Files\Java\jre1.8.0_60

[13:27:00] [main/INFO] [FML]: [AppEng] Core Init

[13:27:00] [main/WARN] [FML]: The coremod codechicken.core.launch.CodeChickenCorePlugin does not have a MCVersion annotation, it may cause issues with this version of Minecraft

[13:27:01] [main/WARN] [FML]: The coremod cofh.asm.LoadingPlugin does not have a MCVersion annotation, it may cause issues with this version of Minecraft

[13:27:01] [main/WARN] [FML]: The coremod cofh.asm.LoadingPlugin does not have a MCVersion annotation, it may cause issues with this version of Minecraft

[13:27:01] [main/WARN] [FML]: The coremod codechicken.core.launch.DepLoader does not have a MCVersion annotation, it may cause issues with this version of Minecraft

[13:27:01] [main/WARN] [FML]: The coremod ic2.core.coremod.IC2core does not have a MCVersion annotation, it may cause issues with this version of Minecraft

[13:27:01] [main/WARN] [FML]: The coremod invtweaks.forge.asm.FMLPlugin does not have a MCVersion annotation, it may cause issues with this version of Minecraft

[13:27:01] [main/WARN] [FML]: The coremod micdoodle8.mods.miccore.MicdoodlePlugin does not have a MCVersion annotation, it may cause issues with this version of Minecraft

[13:27:01] [main/INFO] [sTDOUT]: [micdoodle8.mods.miccore.DepLoader$DepLoadInst:<init>:333]: MicdoodleCore searching for dependencies in mods file: C:\Users\Nick\AppData\Roaming\.minecraft\mods

[13:27:02] [main/WARN] [FML]: The coremod codechicken.nei.asm.NEICorePlugin does not have a MCVersion annotation, it may cause issues with this version of Minecraft

[13:27:02] [main/INFO] [FML]: Loading tweaker optifine.OptiFineForgeTweaker from OptiFine_1.7.10_HD_U_C1 (9).jar

[13:27:02] [main/WARN] [FML]: The coremod codechicken.core.launch.DepLoader does not have a MCVersion annotation, it may cause issues with this version of Minecraft

[13:27:02] [main/WARN] [FML]: The coremod codechicken.core.launch.DepLoader does not have a MCVersion annotation, it may cause issues with this version of Minecraft

[13:27:02] [main/INFO] [LaunchWrapper]: Loading tweak class name cpw.mods.fml.common.launcher.FMLInjectionAndSortingTweaker

[13:27:02] [main/INFO] [LaunchWrapper]: Loading tweak class name optifine.OptiFineForgeTweaker

[13:27:02] [main/INFO] [LaunchWrapper]: Loading tweak class name cpw.mods.fml.common.launcher.FMLDeobfTweaker

[13:27:02] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.common.launcher.FMLInjectionAndSortingTweaker

[13:27:02] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.common.launcher.FMLInjectionAndSortingTweaker

[13:27:02] [main/INFO] [LaunchWrapper]: Calling tweak class optifine.OptiFineForgeTweaker

[13:27:02] [main/INFO] [sTDOUT]: [optifine.OptiFineForgeTweaker:dbg:49]: OptiFineForgeTweaker: acceptOptions

[13:27:02] [main/INFO] [sTDOUT]: [optifine.OptiFineForgeTweaker:dbg:49]: OptiFineForgeTweaker: injectIntoClassLoader

[13:27:02] [main/INFO] [sTDOUT]: [optifine.OptiFineClassTransformer:dbg:179]: OptiFine ClassTransformer

[13:27:02] [main/INFO] [sTDOUT]: [optifine.OptiFineClassTransformer:dbg:179]: OptiFine URL: file:/C:/Users/Nick/AppData/Roaming/.minecraft/mods/OptiFine_1.7.10_HD_U_C1%20(9).jar

[13:27:02] [main/INFO] [sTDOUT]: [optifine.OptiFineClassTransformer:dbg:179]: OptiFine ZIP file: java.util.zip.ZipFile@79b06cab

[13:27:02] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.relauncher.CoreModManager$FMLPluginWrapper

[13:27:05] [main/INFO] [FML]: Found valid fingerprint for Minecraft Forge. Certificate fingerprint e3c3d50c7c986df74c645c0ac54639741c90a557

[13:27:05] [main/INFO] [FML]: Found valid fingerprint for Minecraft. Certificate fingerprint cd99959656f753dc28d863b46769f7f8fbaefcfc

[13:27:05] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.relauncher.CoreModManager$FMLPluginWrapper

[13:27:05] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.relauncher.CoreModManager$FMLPluginWrapper

[13:27:05] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.relauncher.CoreModManager$FMLPluginWrapper

[13:27:05] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.relauncher.CoreModManager$FMLPluginWrapper

[13:27:05] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.relauncher.CoreModManager$FMLPluginWrapper

[13:27:06] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.relauncher.CoreModManager$FMLPluginWrapper

[13:27:06] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.relauncher.CoreModManager$FMLPluginWrapper

[13:27:06] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.relauncher.CoreModManager$FMLPluginWrapper

[13:27:06] [main/INFO] [iC2-core]: Loaded library EJML-core-0.26.jar.

[13:27:06] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.relauncher.CoreModManager$FMLPluginWrapper

[13:27:06] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.relauncher.CoreModManager$FMLPluginWrapper

[13:27:06] [main/INFO] [sTDOUT]: [micdoodle8.mods.miccore.MicdoodlePlugin:getASMTransformerClass:102]: Successfully Registered Transformer

Failed to find Galacticraft file in mods folder!1

[13:27:09] [main/INFO] [sTDOUT]: [micdoodle8.mods.miccore.MicdoodlePlugin:injectData:295]: [Micdoodle8Core]: Patching game...

[13:27:09] [main/INFO] [sTDOUT]: [micdoodle8.mods.miccore.MicdoodlePlugin:injectData:295]: [Micdoodle8Core]: Patching game...

[13:27:09] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.relauncher.CoreModManager$FMLPluginWrapper

[13:27:09] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.relauncher.CoreModManager$FMLPluginWrapper

[13:27:09] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.relauncher.CoreModManager$FMLPluginWrapper

[13:27:09] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.common.launcher.FMLDeobfTweaker

[13:27:09] [main/INFO] [sTDOUT]: [cofh.asm.PCCAccessTransformer:readMappingFile:40]: Adding Accesstransformer map: CoFH_at.cfg

[13:27:09] [main/INFO] [sTDOUT]: [cofh.asm.PCCAccessTransformer:readMappingFile:40]: Adding Accesstransformer map: CoFH_at.cfg

[13:27:09] [main/INFO] [sTDOUT]: [cofh.asm.PCCAccessTransformer:readMappingFile:40]: Adding Accesstransformer map: CoFH_at.cfg

[13:27:10] [main/INFO] [LaunchWrapper]: Loading tweak class name cpw.mods.fml.common.launcher.TerminalTweaker

[13:27:10] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.common.launcher.TerminalTweaker

[13:27:10] [main/INFO] [sTDOUT]: [optifine.OptiFineForgeTweaker:dbg:49]: OptiFineForgeTweaker: getLaunchArguments

[13:27:10] [main/INFO] [LaunchWrapper]: Launching wrapped minecraft {net.minecraft.client.main.Main}

[13:27:10] [main/INFO] [sTDOUT]: [micdoodle8.mods.miccore.MicdoodleTransformer:printLog:1895]: Galacticraft successfully injected bytecode into: sv (1 / 1)

[13:27:10] [main/INFO] [sTDOUT]: [micdoodle8.mods.miccore.MicdoodleTransformer:printLog:1895]: Galacticraft successfully injected bytecode into: sa (1 / 1)

[13:27:11] [main/INFO] [sTDOUT]: [micdoodle8.mods.miccore.MicdoodleTransformer:printLog:1895]: Galacticraft successfully injected bytecode into: ahb (1 / 1)

[13:27:11] [main/ERROR] [LaunchWrapper]: Unable to launch

java.lang.reflect.InvocationTargetException

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_60]

at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_60]

at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_60]

at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_60]

at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.12.jar:?]

at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?]

Caused by: java.lang.NoClassDefFoundError: net/minecraft/world/World

at net.minecraft.client.main.Main.main(SourceFile:72) ~[Main.class:?]

... 6 more

Caused by: java.lang.ClassNotFoundException: net.minecraft.world.World

at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:191) ~[launchwrapper-1.12.jar:?]

at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_60]

at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_60]

at net.minecraft.client.main.Main.main(SourceFile:72) ~[Main.class:?]

... 6 more

Caused by: java.lang.ClassFormatError: Duplicate field name&signature in class file net/minecraft/world/World

at java.lang.ClassLoader.defineClass1(Native Method) ~[?:1.8.0_60]

at java.lang.ClassLoader.defineClass(Unknown Source) ~[?:1.8.0_60]

at java.security.SecureClassLoader.defineClass(Unknown Source) ~[?:1.8.0_60]

at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:182) ~[launchwrapper-1.12.jar:?]

at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_60]

at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_60]

at net.minecraft.client.main.Main.main(SourceFile:72) ~[Main.class:?]

... 6 more

Exception in thread "main" [13:27:11] [main/INFO] [sTDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: cpw.mods.fml.relauncher.FMLSecurityManager$ExitTrappedException

[13:27:11] [main/INFO] [sTDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at cpw.mods.fml.relauncher.FMLSecurityManager.checkPermission(FMLSecurityManager.java:25)

[13:27:11] [main/INFO] [sTDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at java.lang.SecurityManager.checkExit(Unknown Source)

[13:27:11] [main/INFO] [sTDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at java.lang.Runtime.exit(Unknown Source)

[13:27:11] [main/INFO] [sTDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at java.lang.System.exit(Unknown Source)

[13:27:11] [main/INFO] [sTDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at net.minecraft.launchwrapper.Launch.launch(Launch.java:138)

[13:27:11] [main/INFO] [sTDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at net.minecraft.launchwrapper.Launch.main(Launch.java:28)

  • Replies 60
  • Created
  • Last Reply

Top Posters In This Topic

Posted

I deleted forestry but i still get a error saying "Forestry: minimum version required is 3.6.0.0." Im not sure why this happens cause i deleted all forestry unless theres a api or something else named diff. ???

 

 

[21:22:40] [main/INFO]: Setting user: nicholasowens

[21:22:58] [Client thread/INFO]: LWJGL Version: 2.9.1

[21:23:06] [Twitch authenticator/ERROR]: Given twitch access token is invalid

[21:23:59] [Client thread/INFO]: Reloading ResourceManager: Default, FMLFileResourcePack:Forge Mod Loader, FMLFileResourcePack:Minecraft Forge, FMLFileResourcePack:OpenEye, FMLFileResourcePack:Applied Energistics 2, FMLFileResourcePack:asielib, FMLFileResourcePack:BD Lib, FMLFileResourcePack:BiblioCraft, FMLFileResourcePack:Big Reactors, FMLFileResourcePack:Biomes O' Plenty, FMLFileResourcePack:BC Builders, FMLFileResourcePack:BC Transport, FMLFileResourcePack:BC Energy, FMLFileResourcePack:BC Silicon, FMLFileResourcePack:BC Robotics, FMLFileResourcePack:BuildCraft, FMLFileResourcePack:BC Factory, FMLFileResourcePack:Carpenter's Blocks, FMLFileResourcePack:CoFH Core, FMLFileResourcePack:ComputerCraft, FMLFileResourcePack:ComputerCraftEdu, FMLFileResourcePack:Computronics, FMLFileResourcePack:CustomNpcs, FMLFileResourcePack:DragonAPI, FMLFileResourcePack:ElectriCraft, FMLFileResourcePack:EnderCore, FMLFileResourcePack:Ender IO, FMLFileResourcePack:Engineer's Toolbox, FMLFileResourcePack:Forestry for Minecraft, FMLFileResourcePack:Nuclear Control 2, FMLFileResourcePack:IndustrialCraft 2, FMLFileResourcePack:Inventory Tweaks, FMLFileResourcePack:Iron Chest, FMLFileResourcePack:Little Blocks, FMLFileResourcePack:Minecraft Comes Alive, FMLFileResourcePack:MineFactory Reloaded, FMLFileResourcePack:MFR Compat: Applied Energistics, FMLFileResourcePack:MFR Compat: Atum, FMLFileResourcePack:MFR Compat: BackTools, FMLFileResourcePack:MFR Compat: BuildCraft, FMLFileResourcePack:MFR Compat: Chococraft, FMLFileResourcePack:MFR Compat: ExtraBiomes, FMLFileResourcePack:MFR Compat: Forestry, FMLFileResourcePack:MFR Compat: ForgeMicroblock, FMLFileResourcePack:MFR Compat: IC2, FMLFileResourcePack:MFR Compat: Mystcraft, FMLFileResourcePack:MFR Compat ProjectRed, FMLFileResourcePack:MFR Compat: Railcraft, FMLFileResourcePack:MFR Compat: Sufficient Biomes, FMLFileResourcePack:MFR Compat: Thaumcraft, FMLFileResourcePack:MFR Compat: Thermal Expansion, FMLFileResourcePack:MFR Compat: Tinkers' Construct, FMLFileResourcePack:MFR Compat: TwilightForest, FMLFileResourcePack:MFR Compat: Vanilla, FMLFileResourcePack:§9MrCrayfish's Furniture Mod, FMLFileResourcePack:planetguyLib, FMLFileResourcePack:ProjectE, FMLFileResourcePack:ProjectRed, FMLFileResourcePack:ProjectRed-Compatibility, FMLFileResourcePack:ProjectRed-Integration, FMLFileResourcePack:ProjectRed-Transmission, FMLFileResourcePack:ProjectRed-Illumination, FMLFileResourcePack:ProjectRed-Expansion, FMLFileResourcePack:ProjectRed-Transportation, FMLFileResourcePack:ProjectRed-Exploration, FMLFileResourcePack:RadixCore, FMLFileResourcePack:Redstone Arsenal, FMLFileResourcePack:Remain In Motion, FMLFileResourcePack:RotaryCraft, FMLFileResourcePack:Slimevoid Library, FMLFileResourcePack:Thermal Expansion, FMLFileResourcePack:Thermal Foundation, FMLFileResourcePack:Forge Microblocks, FMLFileResourcePack:Forge Multipart, FMLFileResourcePack:Minecraft Multipart Plugin

[21:24:00] [Client thread/WARN]: ResourcePack: ignored non-lowercase namespace: planetguyLib in C:\Users\Nick\AppData\Roaming\.minecraft\mods\PlanetguyLib-1.9.1.jar

[21:24:00] [Client thread/WARN]: ResourcePack: ignored non-lowercase namespace: planetguyLib in C:\Users\Nick\AppData\Roaming\.minecraft\mods\PlanetguyLib-1.9.1.jar

[21:24:00] [Client thread/WARN]: ResourcePack: ignored non-lowercase namespace: planetguyLib in C:\Users\Nick\AppData\Roaming\.minecraft\mods\PlanetguyLib-1.9.1.jar

[21:24:07] [sound Library Loader/INFO]: Sound engine started

[21:24:30] [Client thread/WARN]: File customnpcs:sounds/human/girl/villager/What do you need.ogg does not exist, cannot add it to event customnpcs:human.girl.villager.what_do_you_need

[21:24:30] [Client thread/WARN]: File customnpcs:sounds/human/girl/villager/Would you like to trade.ogg does not exist, cannot add it to event customnpcs:human.girl.villager.trade

[21:24:34] [Client thread/INFO]: Created: 16x16 textures/blocks-atlas

[21:24:34] [Client thread/INFO]: Created: 16x16 textures/items-atlas

Posted

Ok something happened. when i started up minecraft it loaded but on the forge loading screen it gets to this one spot right now and just froze im not sure if its doing anything but ill keep trying. if you got any idea why its freezing like this for 30 mins please tell me.

Posted
java.lang.OutOfMemoryError: Java heap space

 

Java ran out of memory. Increase the amount of memory Java is allowed to use by editing the value of the

-Xmx

argument (use

1G

for 1 GB of memory). In the Mojang launcher, you can do this in the Profile Editor.

 

Large modpacks usually require at least 2-4 GB of memory

Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.

Posted

OK i changed it to 5G and i checked in my environment variables and i found _JAVA_OPTIONS at 512M so i just made it 5G. Also i had to go so i'm not sure if minecraft loaded but ill be back at 3:45pm eastern time.

Posted

This is the same crash as before.

 

You added

-Xmx

to the end of the arguments, but the default arguments include it at the start. Remove the original

-Xmx

argument.

Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.

Posted

You added
-Xmx

to the end of the arguments, but the default arguments include it at the start.

Other way around, but yes.

 

Are you sure? The default arguments for a profile are

-Xmx1G -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:-UseAdaptiveSizePolicy -Xmn128M

, the latest log shows 512M at the start and 5G at the end.

Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.

Posted

what do you mean?

 

Your current arguments are

[b]-Xmx512M[/b] -XX:+CMSIncrementalMode -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -XX:-UseAdaptiveSizePolicy -Djava.library.path=... -XX:+UseConcMarkSweepGC -Xmn128M [b]-Xmx5G[/b]

(notice the two

[b]-Xmx[/b]

arguments). Delete the first

[b]-Xmx[/b]

argument.

Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.

Posted

Choonster I think you are looking at the wrong log.

 

I think I was just looking at a different section of the log. The arguments are printed twice: once from Reika's DragonAPI (though it's not printed with a named logger, so it just shows as "FML") and once from the fake crash report generated by

SplashProgress

. These are in a different order to each other.

Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.

Posted

Are you sure you removed the first

[b]-Xmx[/b]

argument?

Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.

Posted

It looks like the

_JAVA_OPTIONS

and

JAVA_TOOL_OPTIONS

environment variables is applied before the actual command-line arguments, so Java will use the maximum memory specified by them instead of the launcher's JVM arguments. Try deleting the environment variable(s) and making sure you only have the one

[b]-Xmx[/b]

argument specified in the launcher.

 

Don't bump threads. Someone will post when they have something to say, bumping will just annoy people.

Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.

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

    • Version 1.19 - Forge 41.0.63 I want to create a wolf entity that I can ride, so far it seems to be working, but the problem is that when I get on the wolf, I can’t control it. I then discovered that the issue is that the server doesn’t detect that I’m riding the wolf, so I’m struggling with synchronization. However, it seems to not be working properly. As I understand it, the server receives the packet but doesn’t register it correctly. I’m a bit new to Java, and I’ll try to provide all the relevant code and prints *The comments and prints are translated by chatgpt since they were originally in Spanish* Thank you very much in advance No player is mounted, or the passenger is not a player. No player is mounted, or the passenger is not a player. No player is mounted, or the passenger is not a player. No player is mounted, or the passenger is not a player. No player is mounted, or the passenger is not a player. MountableWolfEntity package com.vals.valscraft.entity; import com.vals.valscraft.network.MountSyncPacket; import com.vals.valscraft.network.NetworkHandler; import net.minecraft.client.Minecraft; import net.minecraft.network.syncher.EntityDataAccessor; import net.minecraft.network.syncher.EntityDataSerializers; import net.minecraft.network.syncher.SynchedEntityData; import net.minecraft.server.MinecraftServer; import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.Mob; import net.minecraft.world.entity.ai.attributes.AttributeSupplier; import net.minecraft.world.entity.ai.attributes.Attributes; import net.minecraft.world.entity.animal.Wolf; import net.minecraft.world.entity.player.Player; import net.minecraft.world.entity.Entity; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; import net.minecraft.world.level.Level; import net.minecraft.world.phys.Vec3; import net.minecraftforge.event.TickEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.network.PacketDistributor; public class MountableWolfEntity extends Wolf { private boolean hasSaddle; private static final EntityDataAccessor<Byte> DATA_ID_FLAGS = SynchedEntityData.defineId(MountableWolfEntity.class, EntityDataSerializers.BYTE); public MountableWolfEntity(EntityType<? extends Wolf> type, Level level) { super(type, level); this.hasSaddle = false; } @Override protected void defineSynchedData() { super.defineSynchedData(); this.entityData.define(DATA_ID_FLAGS, (byte)0); } public static AttributeSupplier.Builder createAttributes() { return Wolf.createAttributes() .add(Attributes.MAX_HEALTH, 20.0) .add(Attributes.MOVEMENT_SPEED, 0.3); } @Override public InteractionResult mobInteract(Player player, InteractionHand hand) { ItemStack itemstack = player.getItemInHand(hand); if (itemstack.getItem() == Items.SADDLE && !this.hasSaddle()) { if (!player.isCreative()) { itemstack.shrink(1); } this.setSaddle(true); return InteractionResult.SUCCESS; } else if (!level.isClientSide && this.hasSaddle()) { player.startRiding(this); MountSyncPacket packet = new MountSyncPacket(true); // 'true' means the player is mounted NetworkHandler.CHANNEL.sendToServer(packet); // Ensure the server handles the packet return InteractionResult.SUCCESS; } return InteractionResult.PASS; } @Override public void travel(Vec3 travelVector) { if (this.isVehicle() && this.getControllingPassenger() instanceof Player) { System.out.println("The wolf has a passenger."); System.out.println("The passenger is a player."); Player player = (Player) this.getControllingPassenger(); // Ensure the player is the controller this.setYRot(player.getYRot()); this.yRotO = this.getYRot(); this.setXRot(player.getXRot() * 0.5F); this.setRot(this.getYRot(), this.getXRot()); this.yBodyRot = this.getYRot(); this.yHeadRot = this.yBodyRot; float forward = player.zza; float strafe = player.xxa; if (forward <= 0.0F) { forward *= 0.25F; } this.flyingSpeed = this.getSpeed() * 0.1F; this.setSpeed((float) this.getAttributeValue(Attributes.MOVEMENT_SPEED) * 1.5F); this.setDeltaMovement(new Vec3(strafe, travelVector.y, forward).scale(this.getSpeed())); this.calculateEntityAnimation(this, false); } else { // The wolf does not have a passenger or the passenger is not a player System.out.println("No player is mounted, or the passenger is not a player."); super.travel(travelVector); } } public boolean hasSaddle() { return this.hasSaddle; } public void setSaddle(boolean hasSaddle) { this.hasSaddle = hasSaddle; } @Override protected void dropEquipment() { super.dropEquipment(); if (this.hasSaddle()) { this.spawnAtLocation(Items.SADDLE); this.setSaddle(false); } } @SubscribeEvent public static void onServerTick(TickEvent.ServerTickEvent event) { if (event.phase == TickEvent.Phase.START) { MinecraftServer server = net.minecraftforge.server.ServerLifecycleHooks.getCurrentServer(); if (server != null) { for (ServerPlayer player : server.getPlayerList().getPlayers()) { if (player.isPassenger() && player.getVehicle() instanceof MountableWolfEntity) { MountableWolfEntity wolf = (MountableWolfEntity) player.getVehicle(); System.out.println("Tick: " + player.getName().getString() + " is correctly mounted on " + wolf); } } } } } private boolean lastMountedState = false; @Override public void tick() { super.tick(); if (!this.level.isClientSide) { // Only on the server boolean isMounted = this.isVehicle() && this.getControllingPassenger() instanceof Player; // Only print if the state changed if (isMounted != lastMountedState) { if (isMounted) { Player player = (Player) this.getControllingPassenger(); // Verify the passenger is a player System.out.println("Server: Player " + player.getName().getString() + " is now mounted."); } else { System.out.println("Server: The wolf no longer has a passenger."); } lastMountedState = isMounted; } } } @Override public void addPassenger(Entity passenger) { super.addPassenger(passenger); if (passenger instanceof Player) { Player player = (Player) passenger; if (!this.level.isClientSide && player instanceof ServerPlayer) { // Send the packet to the server to indicate the player is mounted NetworkHandler.CHANNEL.send(PacketDistributor.PLAYER.with(() -> (ServerPlayer) player), new MountSyncPacket(true)); } } } @Override public void removePassenger(Entity passenger) { super.removePassenger(passenger); if (passenger instanceof Player) { Player player = (Player) passenger; if (!this.level.isClientSide && player instanceof ServerPlayer) { // Send the packet to the server to indicate the player is no longer mounted NetworkHandler.CHANNEL.send(PacketDistributor.PLAYER.with(() -> (ServerPlayer) player), new MountSyncPacket(false)); } } } @Override public boolean isControlledByLocalInstance() { Entity entity = this.getControllingPassenger(); return entity instanceof Player; } @Override public void positionRider(Entity passenger) { if (this.hasPassenger(passenger)) { double xOffset = Math.cos(Math.toRadians(this.getYRot() + 90)) * 0.4; double zOffset = Math.sin(Math.toRadians(this.getYRot() + 90)) * 0.4; passenger.setPos(this.getX() + xOffset, this.getY() + this.getPassengersRidingOffset() + passenger.getMyRidingOffset(), this.getZ() + zOffset); } } } MountSyncPacket package com.vals.valscraft.network; import com.vals.valscraft.entity.MountableWolfEntity; import net.minecraft.network.FriendlyByteBuf; import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.player.Player; import net.minecraftforge.network.NetworkEvent; import java.util.function.Supplier; public class MountSyncPacket { private final boolean isMounted; public MountSyncPacket(boolean isMounted) { this.isMounted = isMounted; } public void encode(FriendlyByteBuf buffer) { buffer.writeBoolean(isMounted); } public static MountSyncPacket decode(FriendlyByteBuf buffer) { return new MountSyncPacket(buffer.readBoolean()); } public void handle(NetworkEvent.Context context) { context.enqueueWork(() -> { ServerPlayer player = context.getSender(); // Get the player from the context if (player != null) { // Verifies if the player has dismounted if (!isMounted) { Entity vehicle = player.getVehicle(); if (vehicle instanceof MountableWolfEntity wolf) { // Logic to remove the player as a passenger wolf.removePassenger(player); System.out.println("Server: Player " + player.getName().getString() + " is no longer mounted."); } } } }); context.setPacketHandled(true); // Marks the packet as handled } } networkHandler package com.vals.valscraft.network; import com.vals.valscraft.valscraft; import net.minecraft.resources.ResourceLocation; import net.minecraftforge.network.NetworkRegistry; import net.minecraftforge.network.simple.SimpleChannel; import net.minecraftforge.network.NetworkEvent; import java.util.function.Supplier; public class NetworkHandler { private static final String PROTOCOL_VERSION = "1"; public static final SimpleChannel CHANNEL = NetworkRegistry.newSimpleChannel( new ResourceLocation(valscraft.MODID, "main"), () -> PROTOCOL_VERSION, PROTOCOL_VERSION::equals, PROTOCOL_VERSION::equals ); public static void init() { int packetId = 0; // Register the mount synchronization packet CHANNEL.registerMessage( packetId++, MountSyncPacket.class, MountSyncPacket::encode, MountSyncPacket::decode, (msg, context) -> msg.handle(context.get()) // Get the context with context.get() ); } }  
    • Do you use features of inventory profiles next (ipnext) or is there a change without it?
    • Remove rubidium - you are already using embeddium, which is a fork of rubidium
  • Topics

×
×
  • Create New...

Important Information

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