Jump to content

Need HELP with my first mod, NoSuchMethodError


ByRodrick

Recommended Posts

Hello, I just finished my first mod for MC for 1.19.2, I've used:
IntelliJ 2024.1.3

Forge MDK 43.4.0

SDK 17.0.11 (Adoptium)

Basically, my mod plays scary music at night time, stopping any music played by the game. For that I needed to access via reflection to a private MusicManager.class attribute (SoundInstance currentMusic), and the management of this is giving me errors (I think).


Here's the full stacktrace:

---- Minecraft Crash Report ----
// There are four lights!

Time: 2024-06-16 20:29:25
Description: Ticking entity

java.lang.NoSuchMethodError: 'net.minecraft.client.Minecraft net.minecraft.client.Minecraft.m_91087_()'
	at com.miorg.scarysounds.SoundHandler.onWorldTick(SoundHandler.java:64) ~[scarysounds-1.0.0.jar%23188!/:1.0.0] {re:classloading}
	at com.miorg.scarysounds.__SoundHandler_onWorldTick_PlayerTickEvent.invoke(.dynamic) ~[scarysounds-1.0.0.jar%23188!/:1.0.0] {re:classloading,pl:eventbus:B}
	at net.minecraftforge.eventbus.ASMEventHandler.invoke(ASMEventHandler.java:73) ~[eventbus-6.0.3.jar%23113!/:?] {}
	at net.minecraftforge.eventbus.EventBus.post(EventBus.java:315) ~[eventbus-6.0.3.jar%23113!/:?] {}
	at net.minecraftforge.eventbus.EventBus.post(EventBus.java:296) ~[eventbus-6.0.3.jar%23113!/:?] {}
	at net.minecraftforge.event.ForgeEventFactory.onPlayerPreTick(ForgeEventFactory.java:814) ~[forge-1.19.2-43.3.13_mapped_official_1.19.2.jar%23189%23197!/:?] {re:classloading}
	at net.minecraft.world.entity.player.Player.tick(Player.java:216) ~[forge-1.19.2-43.3.13_mapped_official_1.19.2.jar%23190!/:?] {re:classloading,pl:accesstransformer:B}
	at net.minecraft.client.player.LocalPlayer.tick(LocalPlayer.java:200) ~[forge-1.19.2-43.3.13_mapped_official_1.19.2.jar%23190!/:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
	at net.minecraft.client.multiplayer.ClientLevel.tickNonPassenger(ClientLevel.java:269) ~[forge-1.19.2-43.3.13_mapped_official_1.19.2.jar%23190!/:?] {re:classloading,pl:runtimedistcleaner:A}
	at net.minecraft.world.level.Level.guardEntityTick(Level.java:457) ~[forge-1.19.2-43.3.13_mapped_official_1.19.2.jar%23190!/:?] {re:classloading,pl:accesstransformer:B}
	at net.minecraft.client.multiplayer.ClientLevel.lambda$tickEntities$4(ClientLevel.java:251) ~[forge-1.19.2-43.3.13_mapped_official_1.19.2.jar%23190!/:?] {re:classloading,pl:runtimedistcleaner:A}
	at net.minecraft.world.level.entity.EntityTickList.forEach(EntityTickList.java:54) ~[forge-1.19.2-43.3.13_mapped_official_1.19.2.jar%23190!/:?] {re:classloading}
	at net.minecraft.client.multiplayer.ClientLevel.tickEntities(ClientLevel.java:249) ~[forge-1.19.2-43.3.13_mapped_official_1.19.2.jar%23190!/:?] {re:classloading,pl:runtimedistcleaner:A}
	at net.minecraft.client.Minecraft.tick(Minecraft.java:1791) ~[forge-1.19.2-43.3.13_mapped_official_1.19.2.jar%23190!/:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
	at net.minecraft.client.Minecraft.runTick(Minecraft.java:1078) ~[forge-1.19.2-43.3.13_mapped_official_1.19.2.jar%23190!/:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
	at net.minecraft.client.Minecraft.run(Minecraft.java:700) ~[forge-1.19.2-43.3.13_mapped_official_1.19.2.jar%23190!/:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
	at net.minecraft.client.main.Main.run(Main.java:212) ~[forge-1.19.2-43.3.13_mapped_official_1.19.2.jar%23190!/:?] {re:classloading,pl:runtimedistcleaner:A}
	at net.minecraft.client.main.Main.main(Main.java:51) ~[forge-1.19.2-43.3.13_mapped_official_1.19.2.jar%23190!/:?] {re:classloading,pl:runtimedistcleaner:A}
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?] {}
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?] {}
	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?] {}
	at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?] {}
	at net.minecraftforge.fml.loading.targets.ForgeClientUserdevLaunchHandler.lambda$launchService$0(ForgeClientUserdevLaunchHandler.java:25) ~[fmlloader-1.19.2-43.3.13.jar%23101!/:?] {}
	at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:30) [modlauncher-10.0.9.jar%23114!/:?] {}
	at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:53) [modlauncher-10.0.9.jar%23114!/:?] {}
	at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:71) [modlauncher-10.0.9.jar%23114!/:?] {}
	at cpw.mods.modlauncher.Launcher.run(Launcher.java:108) [modlauncher-10.0.9.jar%23114!/:?] {}
	at cpw.mods.modlauncher.Launcher.main(Launcher.java:78) [modlauncher-10.0.9.jar%23114!/:?] {}
	at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:26) [modlauncher-10.0.9.jar%23114!/:?] {}
	at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:23) [modlauncher-10.0.9.jar%23114!/:?] {}
	at cpw.mods.bootstraplauncher.BootstrapLauncher.main(BootstrapLauncher.java:141) [bootstraplauncher-1.1.2.jar:?] {}


A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------

-- Head --
Thread: Render thread
Suspected Mod: 
	ScarySounds (scarysounds), Version: 1.0.0
		at TRANSFORMER/[email protected]/com.miorg.scarysounds.SoundHandler.onWorldTick(SoundHandler.java:64)
Stacktrace:
	at com.miorg.scarysounds.SoundHandler.onWorldTick(SoundHandler.java:64) ~[scarysounds-1.0.0.jar%23188!/:1.0.0] {re:classloading}
	at com.miorg.scarysounds.__SoundHandler_onWorldTick_PlayerTickEvent.invoke(.dynamic) ~[scarysounds-1.0.0.jar%23188!/:1.0.0] {re:classloading,pl:eventbus:B}
	at net.minecraftforge.eventbus.ASMEventHandler.invoke(ASMEventHandler.java:73) ~[eventbus-6.0.3.jar%23113!/:?] {}
	at net.minecraftforge.eventbus.EventBus.post(EventBus.java:315) ~[eventbus-6.0.3.jar%23113!/:?] {}
	at net.minecraftforge.eventbus.EventBus.post(EventBus.java:296) ~[eventbus-6.0.3.jar%23113!/:?] {}
	at net.minecraftforge.event.ForgeEventFactory.onPlayerPreTick(ForgeEventFactory.java:814) ~[forge-1.19.2-43.3.13_mapped_official_1.19.2.jar%23189%23197!/:?] {re:classloading}
	at net.minecraft.world.entity.player.Player.tick(Player.java:216) ~[forge-1.19.2-43.3.13_mapped_official_1.19.2.jar%23190!/:?] {re:classloading,pl:accesstransformer:B}
	at net.minecraft.client.player.LocalPlayer.tick(LocalPlayer.java:200) ~[forge-1.19.2-43.3.13_mapped_official_1.19.2.jar%23190!/:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
	at net.minecraft.client.multiplayer.ClientLevel.tickNonPassenger(ClientLevel.java:269) ~[forge-1.19.2-43.3.13_mapped_official_1.19.2.jar%23190!/:?] {re:classloading,pl:runtimedistcleaner:A}
	at net.minecraft.world.level.Level.guardEntityTick(Level.java:457) ~[forge-1.19.2-43.3.13_mapped_official_1.19.2.jar%23190!/:?] {re:classloading,pl:accesstransformer:B}
	at net.minecraft.client.multiplayer.ClientLevel.lambda$tickEntities$4(ClientLevel.java:251) ~[forge-1.19.2-43.3.13_mapped_official_1.19.2.jar%23190!/:?] {re:classloading,pl:runtimedistcleaner:A}
	at net.minecraft.world.level.entity.EntityTickList.forEach(EntityTickList.java:54) ~[forge-1.19.2-43.3.13_mapped_official_1.19.2.jar%23190!/:?] {re:classloading}
	at net.minecraft.client.multiplayer.ClientLevel.tickEntities(ClientLevel.java:249) ~[forge-1.19.2-43.3.13_mapped_official_1.19.2.jar%23190!/:?] {re:classloading,pl:runtimedistcleaner:A}
-- Entity being ticked --
Details:
	Entity Type: minecraft:player (net.minecraft.client.player.LocalPlayer)
	Entity ID: 227
	Entity Name: Dev
	Entity's Exact location: -55.87, 119.00, -7.99
	Entity's Block location: World: (-56,119,-8), Section: (at 8,7,8 in -4,7,-1; chunk contains blocks -64,-64,-16 to -49,319,-1), Region: (-1,-1; contains chunks -32,-32 to -1,-1, blocks -512,-64,-512 to -1,319,-1)
	Entity's Momentum: 0.00, 0.00, 0.00
	Entity's Passengers: []
	Entity's Vehicle: null
Stacktrace:
	at net.minecraft.world.level.Level.guardEntityTick(Level.java:457) ~[forge-1.19.2-43.3.13_mapped_official_1.19.2.jar%23190!/:?] {re:classloading,pl:accesstransformer:B}
	at net.minecraft.client.multiplayer.ClientLevel.lambda$tickEntities$4(ClientLevel.java:251) ~[forge-1.19.2-43.3.13_mapped_official_1.19.2.jar%23190!/:?] {re:classloading,pl:runtimedistcleaner:A}
	at net.minecraft.world.level.entity.EntityTickList.forEach(EntityTickList.java:54) ~[forge-1.19.2-43.3.13_mapped_official_1.19.2.jar%23190!/:?] {re:classloading}
	at net.minecraft.client.multiplayer.ClientLevel.tickEntities(ClientLevel.java:249) ~[forge-1.19.2-43.3.13_mapped_official_1.19.2.jar%23190!/:?] {re:classloading,pl:runtimedistcleaner:A}
	at net.minecraft.client.Minecraft.tick(Minecraft.java:1791) ~[forge-1.19.2-43.3.13_mapped_official_1.19.2.jar%23190!/:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
	at net.minecraft.client.Minecraft.runTick(Minecraft.java:1078) ~[forge-1.19.2-43.3.13_mapped_official_1.19.2.jar%23190!/:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
	at net.minecraft.client.Minecraft.run(Minecraft.java:700) ~[forge-1.19.2-43.3.13_mapped_official_1.19.2.jar%23190!/:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
	at net.minecraft.client.main.Main.run(Main.java:212) ~[forge-1.19.2-43.3.13_mapped_official_1.19.2.jar%23190!/:?] {re:classloading,pl:runtimedistcleaner:A}
	at net.minecraft.client.main.Main.main(Main.java:51) ~[forge-1.19.2-43.3.13_mapped_official_1.19.2.jar%23190!/:?] {re:classloading,pl:runtimedistcleaner:A}
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?] {}
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?] {}
	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?] {}
	at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?] {}
	at net.minecraftforge.fml.loading.targets.ForgeClientUserdevLaunchHandler.lambda$launchService$0(ForgeClientUserdevLaunchHandler.java:25) ~[fmlloader-1.19.2-43.3.13.jar%23101!/:?] {}
	at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:30) [modlauncher-10.0.9.jar%23114!/:?] {}
	at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:53) [modlauncher-10.0.9.jar%23114!/:?] {}
	at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:71) [modlauncher-10.0.9.jar%23114!/:?] {}
	at cpw.mods.modlauncher.Launcher.run(Launcher.java:108) [modlauncher-10.0.9.jar%23114!/:?] {}
	at cpw.mods.modlauncher.Launcher.main(Launcher.java:78) [modlauncher-10.0.9.jar%23114!/:?] {}
	at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:26) [modlauncher-10.0.9.jar%23114!/:?] {}
	at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:23) [modlauncher-10.0.9.jar%23114!/:?] {}
	at cpw.mods.bootstraplauncher.BootstrapLauncher.main(BootstrapLauncher.java:141) [bootstraplauncher-1.1.2.jar:?] {}


-- Affected level --
Details:
	All players: 1 total; [LocalPlayer['Dev'/227, l='ClientLevel', x=-55.87, y=119.00, z=-7.99]]
	Chunk stats: 961, 400
	Level dimension: minecraft:overworld
	Level spawn location: World: (0,106,0), Section: (at 0,10,0 in 0,6,0; chunk contains blocks 0,-64,0 to 15,319,15), Region: (0,0; contains chunks 0,0 to 31,31, blocks 0,-64,0 to 511,319,511)
	Level time: 6100 game time, 14340 day time
	Server brand: forge
	Server type: Integrated singleplayer server
Stacktrace:
	at net.minecraft.client.multiplayer.ClientLevel.fillReportDetails(ClientLevel.java:450) ~[forge-1.19.2-43.3.13_mapped_official_1.19.2.jar%23190!/:?] {re:classloading,pl:runtimedistcleaner:A}
	at net.minecraft.client.Minecraft.fillReport(Minecraft.java:2280) ~[forge-1.19.2-43.3.13_mapped_official_1.19.2.jar%23190!/:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
	at net.minecraft.client.Minecraft.run(Minecraft.java:717) ~[forge-1.19.2-43.3.13_mapped_official_1.19.2.jar%23190!/:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
	at net.minecraft.client.main.Main.run(Main.java:212) ~[forge-1.19.2-43.3.13_mapped_official_1.19.2.jar%23190!/:?] {re:classloading,pl:runtimedistcleaner:A}
	at net.minecraft.client.main.Main.main(Main.java:51) ~[forge-1.19.2-43.3.13_mapped_official_1.19.2.jar%23190!/:?] {re:classloading,pl:runtimedistcleaner:A}
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?] {}
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?] {}
	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?] {}
	at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?] {}
	at net.minecraftforge.fml.loading.targets.ForgeClientUserdevLaunchHandler.lambda$launchService$0(ForgeClientUserdevLaunchHandler.java:25) ~[fmlloader-1.19.2-43.3.13.jar%23101!/:?] {}
	at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:30) [modlauncher-10.0.9.jar%23114!/:?] {}
	at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:53) [modlauncher-10.0.9.jar%23114!/:?] {}
	at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:71) [modlauncher-10.0.9.jar%23114!/:?] {}
	at cpw.mods.modlauncher.Launcher.run(Launcher.java:108) [modlauncher-10.0.9.jar%23114!/:?] {}
	at cpw.mods.modlauncher.Launcher.main(Launcher.java:78) [modlauncher-10.0.9.jar%23114!/:?] {}
	at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:26) [modlauncher-10.0.9.jar%23114!/:?] {}
	at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:23) [modlauncher-10.0.9.jar%23114!/:?] {}
	at cpw.mods.bootstraplauncher.BootstrapLauncher.main(BootstrapLauncher.java:141) [bootstraplauncher-1.1.2.jar:?] {}


-- Last reload --
Details:
	Reload number: 1
	Reload reason: initial
	Finished: Yes
	Packs: Default, Mod Resources

-- System Details --
Details:
	Minecraft Version: 1.19.2
	Minecraft Version ID: 1.19.2
	Operating System: Windows 10 (amd64) version 10.0
	Java Version: 17.0.11, Eclipse Adoptium
	Java VM Version: OpenJDK 64-Bit Server VM (mixed mode, sharing), Eclipse Adoptium
	Memory: 1080430488 bytes (1030 MiB) / 2302672896 bytes (2196 MiB) up to 4208984064 bytes (4014 MiB)
	CPUs: 12
	Processor Vendor: GenuineIntel
	Processor Name: 12th Gen Intel(R) Core(TM) i5-12450H
	Identifier: Intel64 Family 6 Model 154 Stepping 3
	Microarchitecture: unknown
	Frequency (GHz): 2.50
	Number of physical packages: 1
	Number of physical CPUs: 8
	Number of logical CPUs: 12
	Graphics card #0 name: NVIDIA GeForce RTX 3050 Laptop GPU
	Graphics card #0 vendor: NVIDIA (0x10de)
	Graphics card #0 VRAM (MB): 4095.00
	Graphics card #0 deviceId: 0x25a2
	Graphics card #0 versionInfo: DriverVersion=31.0.15.4680
	Graphics card #1 name: Intel(R) UHD Graphics
	Graphics card #1 vendor: Intel Corporation (0x8086)
	Graphics card #1 VRAM (MB): 128.00
	Graphics card #1 deviceId: 0x46a3
	Graphics card #1 versionInfo: DriverVersion=31.0.101.5186
	Memory slot #0 capacity (MB): 8192.00
	Memory slot #0 clockSpeed (GHz): 3.20
	Memory slot #0 type: DDR4
	Memory slot #1 capacity (MB): 8192.00
	Memory slot #1 clockSpeed (GHz): 3.20
	Memory slot #1 type: DDR4
	Virtual memory max (MB): 19530.51
	Virtual memory used (MB): 17390.07
	Swap memory total (MB): 3478.36
	Swap memory used (MB): 253.88
	JVM Flags: 1 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump
	Launched Version: MOD_DEV
	Backend library: LWJGL version 3.3.1 build 7
	Backend API: Intel(R) UHD Graphics GL version 3.2.0 - Build 31.0.101.5186, Intel
	Window size: 854x480
	GL Caps: Using framebuffer using OpenGL 3.2
	GL debug messages: 
	Using VBOs: Yes
	Is Modded: Definitely; Client brand changed to 'forge'; Server brand changed to 'forge'
	Type: Integrated Server (map_client.txt)
	Graphics mode: fancy
	Resource Packs: 
	Current Language: English (US)
	CPU: 12x 12th Gen Intel(R) Core(TM) i5-12450H
	Server Running: true
	Player Count: 1 / 8; [ServerPlayer['Dev'/227, l='ServerLevel[New World]', x=-55.87, y=119.00, z=-7.99]]
	Data Packs: vanilla, mod:scarysounds, mod:forge
	World Generation: Stable
	ModLauncher: 10.0.9+10.0.9+main.dcd20f30
	ModLauncher launch target: forgeclientuserdev
	ModLauncher naming: mcp
	ModLauncher services: 
		mixin-0.8.5.jar mixin PLUGINSERVICE 
		eventbus-6.0.3.jar eventbus PLUGINSERVICE 
		fmlloader-1.19.2-43.3.13.jar slf4jfixer PLUGINSERVICE 
		fmlloader-1.19.2-43.3.13.jar object_holder_definalize PLUGINSERVICE 
		fmlloader-1.19.2-43.3.13.jar runtime_enum_extender PLUGINSERVICE 
		fmlloader-1.19.2-43.3.13.jar capability_token_subclass PLUGINSERVICE 
		accesstransformers-8.0.4.jar accesstransformer PLUGINSERVICE 
		fmlloader-1.19.2-43.3.13.jar runtimedistcleaner PLUGINSERVICE 
		modlauncher-10.0.9.jar mixin TRANSFORMATIONSERVICE 
		modlauncher-10.0.9.jar fml TRANSFORMATIONSERVICE 
	FML Language Providers: 
		[email protected]
		lowcodefml@null
		javafml@null
	Mod List: 
		forge-1.19.2-43.3.13_mapped_official_1.19.2.jar   |Minecraft                     |minecraft                     |1.19.2              |DONE      |Manifest: a1:d4:5e:04:4f:d3:d6:e0:7b:37:97:cf:77:b0:de:ad:4a:47:ce:8c:96:49:5f:0a:cf:8c:ae:b2:6d:4b:8a:3f
		scarysounds-1.0.0.jar                             |ScarySounds                   |scarysounds                   |1.0.0               |DONE      |Manifest: NOSIGNATURE
		                                                  |Forge                         |forge                         |43.3.13             |DONE      |Manifest: NOSIGNATURE
	Crash Report UUID: dc1c47a9-be1f-45b8-b70f-eab49d54148b
	FML: 43.3
	Forge: net.minecraftforge:43.3.13

 

Here's my code, the most important lines are at the start of the class and the start of onWorldTick(). These lines manage the private attribute (currentMusic) and the exception fires at line 64:

MusicManager musicManager = Minecraft.getInstance().getMusicManager();

Anybody knows what is happening????? I've spent 2 days trying to find a solution and I can't get it  :(
Really appreciate your time

package com.miorg.scarysounds;

import net.minecraft.client.Minecraft;
import net.minecraft.client.resources.sounds.SoundInstance;
import net.minecraft.client.sounds.MusicManager;
import net.minecraft.client.sounds.SoundManager;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.sounds.Music;
import net.minecraft.sounds.Musics;
import net.minecraft.sounds.SoundEvent;
import net.minecraft.sounds.SoundSource;
import net.minecraft.util.profiling.jfr.event.WorldLoadFinishedEvent;
import net.minecraft.world.effect.MobEffectInstance;
import net.minecraft.world.effect.MobEffects;
import net.minecraftforge.client.ClientCommandHandler;
import net.minecraft.world.level.Level;
import net.minecraft.core.BlockPos;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.event.TickEvent;
import net.minecraftforge.event.entity.EntityJoinLevelEvent;
import net.minecraftforge.event.level.LevelEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.util.ObfuscationReflectionHelper;
import net.minecraftforge.registries.ForgeRegistries;
import net.minecraftforge.registries.RegistryObject;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.util.Random;

@Mod.EventBusSubscriber(modid = "scarysounds", value = Dist.CLIENT)
public class SoundHandler {
    private static Field currentMusicField;
    static {
        try {
            currentMusicField = MusicManager.class.getDeclaredField("currentMusic");
            currentMusicField.setAccessible(true);
        } catch (NoSuchFieldException e) {
            e.printStackTrace();
        }
    }
    private static final Random random = new Random();
    static int ticksUntilNextSound = 0;
    static int ticksRestantes = 0;
    static int espera;
    static boolean flag = false;
    static boolean flagLoad = false;
    static String soundName;
    private static final String[] SOUND_NAMES = {
            "sound1", "sound2", "sound3", "sound4",
            "sound5", "sound6", "sound7", "sound8",
            "sound9", "sound10", "sound11", "sound12",
            "sound13", "sound14", "sound15"
    };
    @SubscribeEvent
    public static void onWorldLoad(LevelEvent.Load event) {
        ticksUntilNextSound = getRandomTicks();
        flagLoad = true;
    }
    @SubscribeEvent
    public static void onWorldTick(TickEvent.PlayerTickEvent event) throws InterruptedException {
        if (flagLoad) {
            try {
                MusicManager musicManager = Minecraft.getInstance().getMusicManager();
                Object currentMusic = currentMusicField.get(musicManager);
                Level world = (Level) event.player.level;
                BlockPos playerPos = event.player.blockPosition(); //Coordenadas del jugador
                if (!world.isClientSide && event.phase == TickEvent.Phase.END) {
                    long dayTime = world.getDayTime() % 24000L;
                    if ((dayTime >= 13000L && dayTime <= 23000L) && !flag) { // De noche
                        if (ticksUntilNextSound > 0) {
                            ticksUntilNextSound--;
                            if (ticksUntilNextSound == 75)
                                Minecraft.getInstance().getMusicManager().stopPlaying();
                            if (ticksUntilNextSound == 110) {
                                if (currentMusic != null) {
                                    event.player.addEffect(new MobEffectInstance(MobEffects.MOVEMENT_SLOWDOWN, 200, 4, true, true));
                                    event.player.addEffect(new MobEffectInstance(MobEffects.CONFUSION, 200, 10, true, true));
                                    event.player.addEffect(new MobEffectInstance(MobEffects.DARKNESS, 200, 10, true, true));
                                    world.playSound(null, playerPos, ScarySounds.FX.get(), SoundSource.MUSIC, 1.0F, 1.0F);
                                }
                            }
                            System.out.println(ticksUntilNextSound);
                        } else {
                            soundName = SOUND_NAMES[random.nextInt(SOUND_NAMES.length)];
                            ResourceLocation resourceLocation = new ResourceLocation("scarysounds", soundName);
                            SoundEvent soundEvent = ForgeRegistries.SOUND_EVENTS.getValue(resourceLocation);
                            switch (soundName) {
                                case "sound1": {
                                    soundEvent = ScarySounds.SOUND1.get();
                                    espera = 112;
                                    break;
                                }
                                case "sound2": {
                                    soundEvent = ScarySounds.SOUND2.get();
                                    espera = 164;
                                    break;
                                }
                                case "sound3": {
                                    soundEvent = ScarySounds.SOUND3.get();
                                    espera = 70;
                                    break;
                                }
                                case "sound4": {
                                    soundEvent = ScarySounds.SOUND4.get();
                                    espera = 184;
                                    break;
                                }
                                case "sound5": {
                                    soundEvent = ScarySounds.SOUND5.get();
                                    espera = 135;
                                    break;
                                }
                                case "sound6": {
                                    soundEvent = ScarySounds.SOUND6.get();
                                    espera = 255;
                                    break;
                                }
                                case "sound7": {
                                    soundEvent = ScarySounds.SOUND7.get();
                                    espera = 151;
                                    break;
                                }
                                case "sound8": {
                                    soundEvent = ScarySounds.SOUND8.get();
                                    espera = 107;
                                    break;
                                }
                                case "sound9": {
                                    soundEvent = ScarySounds.SOUND9.get();
                                    espera = 304;
                                    break;
                                }
                                case "sound10": {
                                    soundEvent = ScarySounds.SOUND10.get();
                                    espera = 48;
                                    break;
                                }
                                case "sound11": {
                                    soundEvent = ScarySounds.SOUND11.get();
                                    espera = 181;
                                    break;
                                }
                                case "sound12": {
                                    soundEvent = ScarySounds.SOUND12.get();
                                    espera = 11;
                                    break;
                                }
                                case "sound13": {
                                    soundEvent = ScarySounds.SOUND13.get();
                                    espera = 216;
                                    break;
                                }
                                case "sound14": {
                                    soundEvent = ScarySounds.SOUND14.get();
                                    espera = 52;
                                    break;
                                }
                                case "sound15": {
                                    soundEvent = ScarySounds.SOUND15.get();
                                    espera = 120;
                                    break;
                                }
                            }
                            if (soundEvent != null) {
                                ticksRestantes = espera * 20;
                                world.playSound(null, playerPos, soundEvent, SoundSource.MUSIC, 1.0F, 1.0F);
                                flag = true;
                            } else {
                                System.out.println("SoundEvent es nulo para: " + resourceLocation);
                            }
                        }
                    } else {
                        if (ticksRestantes > 0) {
                            ticksRestantes--;
                            Minecraft.getInstance().getMusicManager().stopPlaying();
                            System.out.println("Ticks restantes: " + ticksRestantes);
                        } else {
                            flag = false;
                            ticksUntilNextSound = getRandomTicks();
                        }
                    }
                }
            } catch (IllegalAccessException e) {
                e.printStackTrace();
            }
        }
    }

    static int getRandomTicks() {
        return 500 + random.nextInt(1500);
    }
}

 

Edited by ByRodrick
Link to comment
Share on other sites

  • ByRodrick changed the title to Need HELP with my first mod, NoSuchMethodError

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

    • Hello I'm looking for help launching minecraft through curseforge. I've scoured the Internet and can't seem to find anyone with a solution to my specific situation/fix that I haven't tried. I'll post the Curseforge debug Logs below. But basically I'm on a Laptop (Lenovo Legion Slim 7 2021) And the people I've seen with the most similar scenario and found a fix they always had an AMD graphics card and were missing the correct drivers, Well i have the Nvidia geforce RTX 3060 Laptop version with all the most updated drivers, I've reinstalled the drivers so that doesn't seem to me the problem. Also, minecraft will launch in vanilla and through another modloader called modrinth. So it doesn't feel like a Java error either but I don't no how to read this debug page so I'm looking for advice. Please help?!  
    • Hello. Basically I made a custom standalone util library (https://github.com/lolhol/Pathfinder3D) and want to use it with my mod. Although I have done the normal jit pack stuff (basically the tutorial on their website) the Minecraft crashes the second it starts saying that it cannot find the name of a class inside of my library. (When I remove the implement(<my library link thingy>) mc launches normally and does not crash (if I comment out the code that uses the custom lib)). Now then, is there a quick fix for this because all of the other questions that I found on this topic were trying to load another mod (again, not what I’m trying to do). Am I doing something wrong? 
    • Fast Leaf Decay (by olafskiii) Rubidium (by Asek3) Artifacts (by ochotonida) Framework (by MrCrayfish) Max Health Fix (by DarkhaxDev) Embeddium/Rubidium Extras (by Txni) Essential Mod (by SparkUniverse_) Immersive Aircraft [Fabric/Forge] (by Conczin) Cherished Worlds (Fabric/Forge/NeoForge/Quilt) (by TheIllusiveC4) ExpandAbility (by florensie) Sophisticated Core (by P3pp3rF1y) Tinkers' Levelling Addon (by Pyre540) Better Advancements (by way2muchnoise) Immersive Melodies [Fabric/Forge] (by Conczin) Citadel (by sbom_xela) Vampirism - Become a vampire! (by maxanier) FerriteCore ((Neo)Forge) (by malte0811) CoroUtil (by Corosus) Create Big Cannons (by rbasamoyai) Controlling (by Jaredlll08) Cloth Config API (Fabric/Forge/NeoForge) (by shedaniel) Mekanism (by bradyaidanc) BetterF3 (by cominixo) Supplementaries (by MehVahdJukaar) Chest Cavity - Forge Port (by booneldanforever) ConnectedTexturesMod (by tterrag1098) NetherPortalFix (by BlayTheNinth) Spartan Weaponry (by ObliviousSpartan) Charm of Undying (Fabric/Forge/Quilt) (by TheIllusiveC4) Plushie Mod (by Link4real) JourneyMap (by techbrew) Farmer's Delight (by vectorwing) Connectivity[Forge/Fabric] (by someaddon) Create : Misc & Things (by To0pa) Create: Steam 'n' Rails (by IThundxr) Shutup Experimental Settings! (by Corgi_Taco) Alex's Mobs (by sbom_xela) Quark (by Vazkii) Tool Belt (by gigaherz) Just Enough Items (JEI) (by mezz) Bookshelf (by DarkhaxDev) FastWorkbench (by Shadows_of_Fire) Tinkers Construct (by mDiyo) Collective (by Serilum) Inventory HUD+ (by dmitrylovin) Explorer's Compass (by Chaosyr) playerAnimator (by KosmX) Size Devices (by DaFlame_rl) Jade 🔍 (by Snownee) Create Slice & Dice (by possible_triangle) Create Jetpack (by possible_triangle) Carry On (by Tschipp) Moonlight Lib (by MehVahdJukaar) Kotlin for Forge (by thedarkcolour) CraftTweaker (by Jaredlll08) Just Enough Resources (JER) (by way2muchnoise) AI Improvements (by QueenOfMissiles) Patchouli (by Vazkii) Catalogue (by MrCrayfish) Tool Stats (by DarkhaxDev) It Takes a Pillage (by izofar) JEITweaker (by Jaredlll08) Waystones (by BlayTheNinth) Vampires Need Umbrellas (by focamacho) Oculus (by Asek3) Mantle (by mDiyo) Mob Grinding Utils (by vadis365) Chiseled (by freepeopleworking) AutoRegLib (by Vazkii) Mystical Agriculture (by BlakeBr0) Embeddium/Rubidium Dynamic Lights (by Txni) Flywheel (Legacy) (by jozufozu) Builder's Delight (Forge) (by Tynoxs) Apotheosis (by Shadows_of_Fire) What Are They Up To (Watut) (by Corosus) Create: Interiors (by sudolev) FastFurnace (by Shadows_of_Fire) Balm (Forge Edition) (by BlayTheNinth) Clumps (by Jaredlll08) Iris & Oculus Flywheel Compat (by leon_mout) Configured (by MrCrayfish) Tinkers' Expansion (by Insane96) Crafting on a stick (by OfekN_) MrCrayfish's Gun Mod (by MrCrayfish) Create: Crystal Clear (by singularity_cyvack) FTB Library (Forge) (by FTB) AppleSkin (by squeek502) Curios API (Forge/NeoForge) (by TheIllusiveC4) Better Third Person (by Socolio) Caelus API (Forge/NeoForge) (by TheIllusiveC4) Sons Of Sins (by Furti_Two) SwingThroughGrass (by exidex) AttributeFix (by DarkhaxDev) Quests Additions (Forge) (by NaturaSpell) Building Gadgets (by Direwolf20) Enchantment Descriptions (by DarkhaxDev) Skin Layers 3D (Fabric/Forge) (by tr7zw) Bad Wither No Cookie - Reloaded (by Kreezxil) Placebo (by Shadows_of_Fire) FTB Teams (Forge) (by FTB) Mod Name Tooltip (by mezz) Enigmatic Graves (by Quarris) Sophisticated Backpacks (by P3pp3rF1y) GeckoLib (by Gecko) Builders Crafts & Additions (by MRHminer) Immersive Portals (for Forge) (by qouteall) Architectury API (Fabric/Forge/NeoForge) (by shedaniel) Lazy DataFixerUpper(LazyDFU) [FORGE] (by Corgi_Taco) Create Ore Excavation (by tom54541) Tinkers' Rapier (by sz0999312) Mowzie's Mobs (by bobmowzie) Better Combat [Fabric & Forge] (by daedelus_dev) Create Stuff & Additions (by Furti_Two) Cucumber Library (by BlakeBr0) FPS Reducer (by bre2el) Item Filters (by LatvianModder) FTB Quests (Forge) (by FTB) L_Ender 's Cataclysm (by mcl_ender) Starter Kit (by Serilum) Feature NBT Deadlock Be Gone (by telepathicgrunt) Materialis (by RCXcrafter) KleeSlabs (by BlayTheNinth) Pehkui (by Virtuoel) Grappling Hook Mod (by yyonne) Security Craft (by Geforce132) Ars Nouveau (by baileyholl2) Mouse Tweaks (by YaLTeR) Werewolves - Become a Beast! (by Cheaterpaul) Elytra Slot (Fabric/Forge/Quilt) (by TheIllusiveC4) Create (by simibubi) Budschie's Morph Mod (by budschie_) Ore Excavation (by Funwayguy) Create Confectionery (by Furti_Two)
    • Hello, im kind of a newbie on creating mods, and i been trying to make simples mods so far, Right now, i'm creating a mod which detect an specific type of mob and kill it if reach a certain number, by far the mod is detecting the mob and counting them but at the time it reach the limit number, it don't do anything. The Game don't tweak, don't crash, just i't don't run the method i call, which is kill().   public InteractionResultHolder<ItemStack> use(Level pLevel, Player pPlayer, InteractionHand pUsedHand) { final var TotalCows = pLevel.getNearbyEntities(Cow.class, TargetingConditions.forNonCombat(), pPlayer, pPlayer.getBoundingBox().inflate(5)); if(pLevel.isClientSide){ if(pPlayer.getItemInHand(InteractionHand.MAIN_HAND).getItem() == this.asItem()){ if(!TotalCows.isEmpty()){ if(TotalCows.get(0).isAlive()){ TotalCows.get(0).kill(); } }else{ pPlayer.sendSystemMessage(Component.literal("No hay vacas")); } } } The sendSystemMessage is get triggered, and when i change the method .kill() by any other like send a message it got called, can i get some tips, and a clue of what i'm missing
    • UPD: I DID IT   @Override public void applyEffectTick(LivingEntity livingEntity, int pAmplifier) { Level level = livingEntity.level(); if (!level.isClientSide()) { Holder<DamageType> entropyHolder = level .registryAccess() .registryOrThrow(Registries.DAMAGE_TYPE) .getHolderOrThrow(GTDamageTypes.ENTROPY_KEY); livingEntity.hurt(new DamageSource(entropyHolder), 1); } super.applyEffectTick(livingEntity, pAmplifier); }  
  • Topics

×
×
  • Create New...

Important Information

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