I'm creating my own event system similar to forge in Minecraft on fabric.
But I have a problem with the arguments, I created a function (see the first code) and connected the event system annotation to it, specified the required argument and then called it in another place through the EventManger.post(new OnJoinEvent()); method. And the error java.lang.IllegalArgumentException: argument type mismatch. I don`t know what to do
Event
@SubscribeEvent
public static void test(Event event) {
StorymodServer.sendMessge();
}
Pojo OnJoinEvent
public class OnJoinEvent extends Event{
public OnJoinEvent(){
}
}
Event Manager (I know that my annotations are crutchily made differently, they just don't work)
public class EventManger {
static List<Method> methods = new ArrayList<>();
public static void register() throws IOException, IllegalAccessException {
final ClassLoader loader = Thread.currentThread().getContextClassLoader();
for (final ClassPath.ClassInfo info : ClassPath.from(loader).getTopLevelClasses()) {
if (info.getName().startsWith("ru.hoprik.")) {
final Class<?> clazz = info.load();
for (Annotation declaredAnnotation : clazz.getDeclaredAnnotations()) {
if (declaredAnnotation.annotationType().getSimpleName().equals("SubscribeEventListener")) {
for (Method method : clazz.getDeclaredMethods()) {
for (Annotation methodAnnotation : method.getDeclaredAnnotations()) {
if (methodAnnotation.annotationType().getSimpleName().equals("SubscribeEvent")) {
try {
method.setAccessible(true);
methods.add(method);
StorymodServer.logger.info("Registed");
} catch (Exception e) {
throw new RuntimeException(e.getMessage());
}
}
}
}
}
}
}
}
}
public static <E extends Event> void post(E event) {
StorymodServer.logger.info(event.getClass().toString());
for (Method method : methods) {
for (Parameter parameter : method.getParameters()) {
if (parameter.getType().getSimpleName().equals(event.getClass().getSimpleName())) {
try {
method.setAccessible(true);
method.invoke(null, event);
StorymodServer.logger.info("work!!!");
} catch (IllegalAccessException e) {
throw new RuntimeException(e);
} catch (InvocationTargetException e) {
throw new RuntimeException(e);
}
}
}
}
}
}
CrashLog
---- Minecraft Crash Report ----
// Uh... Did I do that?
Time: 2023-09-19 20:39:54
Description: Initializing game
java.lang.RuntimeException: Could not execute entrypoint stage 'main' due to errors, provided by 'mod'!
at net.fabricmc.loader.impl.entrypoint.EntrypointUtils.lambda$invoke0$0(EntrypointUtils.java:51)
at net.fabricmc.loader.impl.util.ExceptionUtil.gatherExceptions(ExceptionUtil.java:33)
at net.fabricmc.loader.impl.entrypoint.EntrypointUtils.invoke0(EntrypointUtils.java:49)
at net.fabricmc.loader.impl.entrypoint.EntrypointUtils.invoke(EntrypointUtils.java:35)
at net.fabricmc.loader.impl.game.minecraft.Hooks.startClient(Hooks.java:52)
at net.minecraft.client.Minecraft.<init>(Minecraft.java:458)
at net.minecraft.client.main.Main.main(Main.java:211)
at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:468)
at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:74)
at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23)
at net.fabricmc.devlaunchinjector.Main.main(Main.java:86)
Caused by: java.lang.IllegalArgumentException: argument type mismatch
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at ru.hoprik.storymod.engine.event.EventManger.post(EventManger.java:60)
at ru.hoprik.storymod.StorymodServer.onInitialize(StorymodServer.java:64)
at net.fabricmc.loader.impl.entrypoint.EntrypointUtils.invoke0(EntrypointUtils.java:47)
... 8 more
A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------
-- Head --
Thread: Render thread
Stacktrace:
at net.fabricmc.loader.impl.entrypoint.EntrypointUtils.lambda$invoke0$0(EntrypointUtils.java:51)
at net.fabricmc.loader.impl.util.ExceptionUtil.gatherExceptions(ExceptionUtil.java:33)
at net.fabricmc.loader.impl.entrypoint.EntrypointUtils.invoke0(EntrypointUtils.java:49)
at net.fabricmc.loader.impl.entrypoint.EntrypointUtils.invoke(EntrypointUtils.java:35)
at net.fabricmc.loader.impl.game.minecraft.Hooks.startClient(Hooks.java:52)
at net.minecraft.client.Minecraft.<init>(Minecraft.java:458)
-- Initialization --
Details:
Modules:
ADVAPI32.dll:Windows 32 Extended API Library:10.0.22621.2338 (WinBuild.160101.0800):Microsoft Corporation
COMCTL32.dll:Replacement libraries for version control with the user:6.10 (WinBuild.160101.0800):Microsoft
CRYPT32.dll:API32 cryptography:10.0.22621.2338 (WinBuild.160101.0800):Microsoft Corporation
CRYPTBASE.dll:The basic DLL of the cryptographic API:10.0.22621.1 (WinBuild.160101.0800):Microsoft Corporation
CRYPTSP.dll:Cryptographic Service Provider API:10.0.22621.1 (WinBuild.160101.0800):Microsoft Corporation
DBGHELP.DLL:Windows Image Creation Assistant:10.0.22621.1 (WinBuild.160101.0800):Microsoft Corporation
DNSAPI.dll:Dynamic DNS Client API Library:10.0.22621.2338 (WinBuild.160101.0800):Microsoft Corporation
GDI32.dll:GDI DLL Client Library:10.0.22621.2215 (WinBuild.160101.0800):Microsoft Corporation
IMM32.DLL:Windows IMM32 Multiuser Client API DLL:10.0.22621.1344 (WinBuild.160101.0800):Microsoft Corporation
IPHLPAPI.DLL:API for accessing IP:10.0.22621.2338 (WinBuild.160101.0800):Microsoft Corporation
KERNEL32.DLL:Libraries-Windows NT BASE API client:10.0.22621.2275 (WinBuild.160101.0800):Microsoft Corporation
KERNELBASE.dll:Windows NT BASE API Client Library:10.0.22621.2275 (WinBuild.160101.0800):Microsoft Corporation
MpOav.dll:IOfficeAntiVirus module:4.18.23080.2006 (04d8e871ffe7ba6b2204046883e1ad9b7a5989ce):Microsoft
NSI.dll:NSI User Mode Interface DLL:10.0.22621.1 (WinBuild.160101.0800):Microsoft Corporation
NTASN1.dll:Microsoft ASN.1 API:10.0.22621.2338 (WinBuild.160101.0800):Microsoft Corporation
OLEAUT32.dll:OLEAUT32.DLL:10.0.22621.1992 (WinBuild.160101.0800):Microsoft Ole32.dll Corporation
:Microsoft OLE for Windows:10.0.22621.2338 (WinBuild.160101.0800):Microsoft
POWRPROF.dll:DLL module to support the power management program:10.0.22621.818 (WinBuild.160101.0800):Microsoft Corporation
PSAPI.DLL:Process Status Assistant:10.0.22621.1 (WinBuild.160101.0800):Microsoft Corporation
Pdh.dll:Data loading module for Windows:10.0.22621.2338 (WinBuild.160101.0800):Microsoft Corporation
RPCRT4.dll:Remote Access Libraries version:10.0.22621.2338 (WinBuild.160101.0800):Microsoft Corporation
SHCORE.dll:SHCORE:10.0.22621.2338 (WinBuild.160101.0800):Microsoft Corporation
SHELL32.dll:Additional library for Windows:10.0.22621.2275 (WinBuild.160101.0800):Microsoft Corporation
UMPDC.dll:Coordinator of User mode power dependencies:10.0.22621.1 (WinBuild.160101.0800):Microsoft Corporation
USER32.dll:Windows Multiuser CLIENT API Library:10.0.22621.2338 (WinBuild.160101.0800):Microsoft Corporation
USERENV.dll:Userenv:10.0.22621.2338 (WinBuild.160101.0800):Microsoft Corporation
VCRUNTIME140.dll:Microsoft® Runtime Library C:14.16.27031.1 created: vcwrkspc:Microsoft Corporation
VERSION.dll:Libraries for checking the version and installing files:10.0.22621.1 (WinBuild.160101.0800):Microsoft Corporation
WINHTTP.dll:Windows HTTP Services:10.0.22621.2338 (WinBuild.160101.0800):Microsoft
WINMM.dll:MCI API DLL:10.0.22621.2338 (WinBuild.160101.0800):Microsoft Corporation
WS2_32.dll:32-bit Windows Socket 2.0 Library:10.0.22621.2338 (WinBuild.160101.0800):Microsoft Corporation
WSOCK32.dll:32-bit DLL for Windows Socket:10.0.22621.2338 (WinBuild.160101.0800):Microsoft Corporation
amsi.dll:Malware Scanning Interface:10.0.22621.1 (WinBuild.160101.0800):Microsoft Corporation
bcrypt.dll:Libraries Cryptographic interface for Windows:10.0.22621.2338 (WinBuild.160101.0800):Microsoft Corporation
bcryptPrimitives.dll:Windows Cryptographic Primitives Library:10.0.22621.1928 (WinBuild.160101.0800):Microsoft Corporation
clbcatq.dll:COM+ Configuration directory:2001.12.10941.16384 (WinBuild.160101.0800):Microsoft Corporation
combase.dll:Microsoft COM for Windows:10.0.22621.2338 (WinBuild.160101.0800):Microsoft Corporation
dbgcore.DLL:Windows Kernel Debugging Assistants:10.0.22621.1 (WinBuild.160101.0800):Microsoft Corporation
dhcpcsvc.DLL:DHCP Client Service:10.0.22621.2338 (WinBuild.160101.0800):Microsoft Corporation
dhcpcsvc6.DLL:DHCPv6 client:10.0.22621.2338 (WinBuild.160101.0800):Microsoft Corporation
fwpuclnt.dll:FWP/IPsec User Interface API:10.0.22621.2338 (WinBuild.160101.0800):Corporation
Microsoft gdi32full.dll:GDI Client Library:10.0.22621.2215 (WinBuild.160101.0800):Microsoft Corporation
iertutil.dll:Utility program for connecting to Internet Explorer:11.00.22621.2338 (WinBuild.160101.0800):Microsoft Corporation
java.dll:OpenJDK binary platform:17.0.8.0:Amazon.com Inc.
java.exe:OpenJDK binary platform:17.0.8.0:Amazon.com Inc.
jemalloc.dll
jimage.dll:OpenJDK binary platform:17.0.8.0:Amazon.com Inc.
jli.dll:OpenJDK binary platform:17.0.8.0:Amazon.com Inc.
jna1721872042997710250.dll:Own JNA library:6.1.4:Java(TM) Native Access (JNA)
jsvml.dll:OpenJDK binary platform:17.0.8.0:Amazon.com Inc.
jvm.dll:64-bit OpenJDK VM server:17.0.8.0:Amazon.com Inc.
kernel.appcore.dll:AppModel API Host:10.0.22621.1 (WinBuild.160101.0800):Microsoft Corporation
lwjgl.dll
management.dll:OpenJDK binary platform:17.0.8.0:Amazon.com Inc.
management_ext.dll:OpenJDK binary platform:17.0.8.0:Amazon.com Inc.
msvcp140.dll:Microsoft® Runtime Library C:14.16.27033.0 , created by: vcwrkspc:Microsoft Corporation
msvcp_win.dll:Microsoft® Runtime Library C:10.0.22621.608 (WinBuild.160101.0800):Microsoft Corporation
msvcrt.dll:Windows NT CRT DLL:7.0.22621.608 (WinBuild. 160101.0800):Microsoft Corporation
mswsock.dll:Extended version of the application
to support the Microsoft Windows Sockets 2.0 API:10.0.22621.2338 (WinBuild.160101.0800):Microsoft Corporation napinsp.dll:Application for downloading information for users email:10.0.22621.2338 (WinBuild.160101.0800):Microsoft Corporation
ncrypt.dll:Windows NCrypt Developer:10.0.22621.2338 (WinBuild.160101.0800):Microsoft Corporation
net.dll:OpenJDK binary platform:17.0.8.0:Amazon.com Inc.
netutils.dll:Net Win32 API Helpers DLL library:10.0.22621.674 (WinBuild.160101.0800):Microsoft Corporation
nio.dll:OpenJDK binary platform:17.0.8.0:Amazon.com Inc.
nlansp_c.dll:NLA DLL Namespace Service Provider:10.0.22621.2070 (WinBuild.160101.0800):Microsoft Corporation
ntdll.dll:NT System Library:10.0.22621.2275 (WinBuild.160101.0800):Microsoft
perfos.dll Corporation:Fairing Libraries for Windows operating system:10.0.22621.2338 (WinBuild.160101.0800):Microsoft Corporation
pfclient.dll:SysMain client:10.0.22621.1 (WinBuild.160101. 0800):Microsoft Corporation
pnrpnsp.dll:Software Installer and PNRP password:10.0.22621.2338 (WinBuild.160101.0800):Microsoft Corporation
profapi.dll:The basic API of the user profile:10.0.22621.1928 (WinBuild.160101.0800):Microsoft Corporation
rasadhlp.dll:Assistant for automatic dial-up of remote access:10.0.22621.1 (WinBuild.160101.0800):Microsoft Corporation
rsaenh.dll:Microsoft Enhanced Cryptographic Provider:10.0.22621.2338 (WinBuild.160101.0800):Microsoft Corporation
sechost.dll:Host for SCM/SDDL/LSA Search API:10.0.22621.2338 (WinBuild.160101.0800):Microsoft Corporation
shlwapi.dll:Libraries Problems in the program:10.0.22621.2338 (WinBuild.160101.0800):Microsoft Corporation
srvcli.dll:Client library of the server service:10.0.22621.1928 (WinBuild.160101.0800):Microsoft Corporation
sunmscapi.dll:OpenJDK binary platform:17.0.8.0:Amazon.com Inc.
ucrtbase.dll:Microsoft® Runtime Library C:10.0.22621.608 (WinBuild.160101.0800):Microsoft Corporation
urlmon.dll:OLE32 registration for Win32:11.00.22621.2338 (WinBuild.160101.0800):Microsoft Corporation
verify.dll:OpenJDK binary platform:17.0.8.0:Amazon.com Inc.
win32u.dll:Win32u:10.0.22621.2283 (WinBuild.160101.0800):Microsoft Corporation
windows.storage.dll:Microsoft WinRT API:10.0.22621.2338 (WinBuild.160101.0800):Microsoft Corporation
winrnr.dll:LDAP RnR Provider DLL: 10.0.22621.1 (WinBuild.160101.0800):Microsoft Corporation
wintypes.dll:DLL for Windows OS:10.0.22621.2338 (WinBuild.160101.0800):Microsoft Corporation
wshbth.dll:Windows Sockets Helper DLL:10.0.22621.1778 (WinBuild.160101.0800):Microsoft Corporation
zip.dll : OpenJDK binary platform:17.0.8.0:Amazon.com Inc.
Stacktrace:
at net.minecraft.client.main.Main.main(Main.java:211)
at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:468)
at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:74)
at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23)
at net.fabricmc.devlaunchinjector.Main.main(Main.java:86)
-- System Details --
Details:
Minecraft Version: 1.20.1
Minecraft Version ID: 1.20.1
Operating System: Windows 11 (amd64) version 10.0
Java Version: 17.0.8, Amazon.com Inc.
Java VM Version: OpenJDK 64-Bit Server VM (mixed mode, sharing), Amazon.com Inc.
Memory: 145630752 bytes (138 MiB) / 494927872 bytes (472 MiB) up to 6421479424 bytes (6124 MiB)
CPUs: 6
Processor Vendor: GenuineIntel
Processor Name: Intel(R) Core(TM) i5-9400F CPU @ 2.90GHz
Identifier: Intel64 Family 6 Model 158 Stepping 10
Microarchitecture: Coffee Lake
Frequency (GHz): 2.90
Number of physical packages: 1
Number of physical CPUs: 6
Number of logical CPUs: 6
Graphics card #0 name: NVIDIA GeForce GTX 1650
Graphics card #0 vendor: NVIDIA (0x10de)
Graphics card #0 VRAM (MB): 4095.00
Graphics card #0 deviceId: 0x1f82
Graphics card #0 versionInfo: DriverVersion=31.0.15.2647
Memory slot #0 capacity (MB): 8192.00
Memory slot #0 clockSpeed (GHz): 2.40
Memory slot #0 type: DDR4
Memory slot #1 capacity (MB): 4096.00
Memory slot #1 clockSpeed (GHz): 2.40
Memory slot #1 type: DDR4
Memory slot #2 capacity (MB): 8192.00
Memory slot #2 clockSpeed (GHz): 2.40
Memory slot #2 type: DDR4
Memory slot #3 capacity (MB): 4096.00
Memory slot #3 clockSpeed (GHz): 2.40
Memory slot #3 type: DDR4
Virtual memory max (MB): 30889.77
Virtual memory used (MB): 19304.91
Swap memory total (MB): 6400.00
Swap memory used (MB): 68.38
JVM Flags: 0 total;
Fabric Mods:
fabric-api: Fabric API 0.87.0+1.20.1
fabric-api-base: Fabric API Base 0.4.30+7abfd51577
fabric-api-lookup-api-v1: Fabric API Lookup API (v1) 1.6.35+4d8536c977
fabric-biome-api-v1: Fabric Biome API (v1) 13.0.10+b3afc78b77
fabric-block-api-v1: Fabric Block API (v1) 1.0.9+e022e5d177
fabric-blockrenderlayer-v1: Fabric BlockRenderLayer Registration (v1) 1.1.40+b3afc78b77
fabric-client-tags-api-v1: Fabric Client Tags 1.1.1+97bb207577
fabric-command-api-v1: Fabric Command API (v1) 1.2.33+f71b366f77
fabric-command-api-v2: Fabric Command API (v2) 2.2.12+b3afc78b77
fabric-commands-v0: Fabric Commands (v0) 0.2.50+df3654b377
fabric-containers-v0: Fabric Containers (v0) 0.1.63+df3654b377
fabric-content-registries-v0: Fabric Content Registries (v0) 4.0.9+b3afc78b77
fabric-convention-tags-v1: Fabric Convention Tags 1.5.4+a1a980da77
fabric-crash-report-info-v1: Fabric Crash Report Info (v1) 0.2.18+aeb40ebe77
fabric-data-generation-api-v1: Fabric Data Generation API (v1) 12.2.2+1e61dba177
fabric-dimensions-v1: Fabric Dimensions API (v1) 2.1.53+8536527b77
fabric-entity-events-v1: Fabric Entity Events (v1) 1.5.22+b3afc78b77
fabric-events-interaction-v0: Fabric Events Interaction (v0) 0.6.1+e91849a877
fabric-events-lifecycle-v0: Fabric Events Lifecycle (v0) 0.2.62+df3654b377
fabric-game-rule-api-v1: Fabric Game Rule API (v1) 1.0.38+b04edc7a77
fabric-gametest-api-v1: Fabric Game Test API (v1) 1.2.12+b3afc78b77
fabric-item-api-v1: Fabric Item API (v1) 2.1.27+b3afc78b77
fabric-item-group-api-v1: Fabric Item Group API (v1) 4.0.10+23d9108177
fabric-key-binding-api-v1: Fabric Key Binding API (v1) 1.0.36+fb8d95da77
fabric-keybindings-v0: Fabric Key Bindings (v0) 0.2.34+df3654b377
fabric-lifecycle-events-v1: Fabric Lifecycle Events (v1) 2.2.21+b3afc78b77
fabric-loot-api-v2: Fabric Loot API (v2) 1.1.39+b3afc78b77
fabric-loot-tables-v1: Fabric Loot Tables (v1) 1.1.43+9e7660c677
fabric-message-api-v1: Fabric Message API (v1) 5.1.7+3265161977
fabric-mining-level-api-v1: Fabric Mining Level API (v1) 2.1.49+b3afc78b77
fabric-model-loading-api-v1: Fabric Model Loading API (v1) 1.0.2+709a987177
fabric-models-v0: Fabric Models (v0) 0.4.1+9386d8a777
fabric-networking-api-v1: Fabric Networking API (v1) 1.3.10+eeb8eb3677
fabric-networking-v0: Fabric Networking (v0) 0.3.50+df3654b377
fabric-object-builder-api-v1: Fabric Object Builder API (v1) 11.1.1+6beca84877
fabric-particles-v1: Fabric Particles (v1) 1.1.1+201a23a077
fabric-recipe-api-v1: Fabric Recipe API (v1) 1.0.20+b3afc78b77
fabric-registry-sync-v0: Fabric Registry Sync (v0) 2.3.2+4df89eb277
fabric-renderer-api-v1: Fabric Renderer API (v1) 3.1.2+6bdb2ed077
fabric-renderer-indigo: Fabric Renderer - Indigo 1.4.2+6bdb2ed077
fabric-renderer-registries-v1: Fabric Renderer Registries (v1) 3.2.45+df3654b377
fabric-rendering-data-attachment-v1: Fabric Rendering Data Attachment (v1) 0.3.34+b3afc78b77
fabric-rendering-fluids-v1: Fabric Rendering Fluids (v1) 3.0.27+b3afc78b77
fabric-rendering-v0: Fabric Rendering (v0) 1.1.48+df3654b377
fabric-rendering-v1: Fabric Rendering (v1) 3.0.7+b3afc78b77
fabric-resource-conditions-api-v1: Fabric Resource Conditions API (v1) 2.3.5+ea08f9d877
fabric-resource-loader-v0: Fabric Resource Loader (v0) 0.11.9+132c48c177
fabric-screen-api-v1: Fabric Screen API (v1) 2.0.7+b3afc78b77
fabric-screen-handler-api-v1: Fabric Screen Handler API (v1) 1.3.29+b3afc78b77
fabric-sound-api-v1: Fabric Sound API (v1) 1.0.12+b3afc78b77
fabric-transfer-api-v1: Fabric Transfer API (v1) 3.3.0+cdf060b277
fabric-transitive-access-wideners-v1: Fabric Transitive Access Wideners (v1) 4.3.0+6c31357e77
fabricloader: Fabric Loader 0.14.22
geckolib: Geckolib 4.2.2
java: OpenJDK 64-Bit Server VM 17
minecraft: Minecraft 1.20.1
storymod: storymod 1.0.0
Launched Version: Fabric
Backend library: LWJGL version 3.3.1 SNAPSHOT
Backend API: Unknown
Window size: <not initialized>
GL Caps: Using framebuffer using OpenGL 3.2
GL debug messages: <disabled>
Using VBOs: Yes
Is Modded: Definitely; Client brand changed to 'fabric'
Type: Client (map_client.txt)
CPU: <unknown>
UPD: I changed the parameter class to object and everything worked, but I need custom classes
I`m use chat gpt and fix this bug 9 days........