Giter VIP home page Giter VIP logo

discord-game-sdk4j's Introduction

discord-game-sdk4j

This project provides Java bindings for the Discord GameSDK.

To be honest I'm not sure if people even need this, because Discord apparently discarded its game store idea.

But maybe the activity, overlay, user, and relationship features could be useful to some people.

Rich Presence

If you are just looking for an alternative to the deprecated Discord Rich Presence SDK, head over to the ActivityExample.java!

Features of the SDK

Some of the features are deprecated by Discord as of Wed, 09 Nov 2022 and will be decommissioned and stop working on Tuesday May 2, 2023. They are marked with ๐Ÿ’” in the table. Those already implemented will most likely continue to work until Discord decommissions them. Those not implemented will remains such, as putting work into features which will end working in less than a year does not seem worth it to me.

The Java-only implementation currently does not support all features fully. I am aiming to fully implement all non-deprecated features soon.

Feature State Example
Achievements โŒ not implemented ๐Ÿ’”
Activities โœ… partially implemented ActivityExample.java
Applications โŒ not implemented ๐Ÿ’”
Voice โœ… partially implemented ๐Ÿ’”
Images โœ”๏ธ implemented ๐Ÿ’” none yet ๐Ÿ˜ข (see imageTest() for now)
Lobbies โŒ not implemented ๐Ÿ’”
Networking โŒ not implemented ๐Ÿ’”
Overlay โœ”๏ธ implemented none yet ๐Ÿ˜ข (see overlayTest() for now)
Relationships โœ”๏ธ implemented RelationshipExample.java, FriendNotificationExample.java
Storage โŒ not implemented ๐Ÿ’”
Store โŒ not implemented ๐Ÿ’”
Users โœ… partially implemented none yet ๐Ÿ˜ข (see userTest() for now)

I will try to work on features that are not implemented yet soon, but the remaining ones are quite difficult to test, so I don't know how much progress I can make on them.

Installation

Pre-compiled

Maven, Gradle and other build tools

There are pre-compiled builds on JitPack together with instructions how to use them for all common build tools.

Manual installation

For projects not using any build tools, download a pre-compiled JAR-file (discord-game-sdk4j-<version>.jar) from the releases page.

If you want, you can also download the JavaDocs (discord-game-sdk4j-<version>-javadoc.jar) or the sources (discord-game-sdk4j-<version>-sources.jar).

After downloading those JARs, just add the main JAR to your project's classpath and optionally attach sources or JavaDocs.

Building from source

To install the library from source first of all clone the repository:

git clone https://github.com/JnCrMx/discord-game-sdk4j.git

Finally build (and install) the library with Maven:

mvn install

If you want to skip the tests (sometimes they fail for really weird reasons), add -DskipTests to the command arguments.

Usage

Create a Core object to start using the library:

try(CreateParams params = new CreateParams())
{
    params.setClientID(<your application ID as a long>);
    params.setFlags(CreateParams.getDefaultFlags());

    try(Core core = new Core(params))
    {
        // do something with your Core
    }
}

For real examples see the examples/ directory in this repository.

Environment Variables

DISCORD_INSTANCE_ID

This library supports using the DISCORD_INSTANCE_ID environment variable to select a Discord instance to use.

On Windows, this results in the socket \\.\pipe\discord-ipc-${DISCORD_INSTANCE_ID} being used. This should equal the behaviour of the official native libraries.

On Linux however, there are multiple locations and sockets, which this library tries to support, but the offical library does not. Therefore, an order of instances is established as follows:

  1. Discord instances running directly as host applications (i.e. $XDG_RUNTIME_DIR/discord-ipc-{0,1,2,3,...}). The following directories (in the order given) are searched: $XDG_RUNTIME_DIR, $TMPDIR, $TMP, $TEMP.
  2. Discord instances running as a Flatpak, whose socket is found in <one of the directories from 1.>/app/com.discordapp.Discord.
  3. Discord instances running as a Snap, whose socket is found in <one of the directories from 1.>/snap.discord.
  4. Discord instances running as a Snap with a different instance name (using the experimental.parallel-instances setting), whose socket is found in <one of the directories from 1.>/snap.discord_${instance_name} in alphabetical order.

Example: Let's say there are a total of five Discord instances running. Two of them are running on the host system directly, one is running as a Flatpak and one is running as a "normal" Snap and one running as a Snap (with experimental.parallel-instances) as discord_test.

Then the two Discord instances on the host system get the DISCORD_INSTANCE_ID 0 and 1. The Flatpak one is getting the DISCORD_INSTANCE_ID 2 and the normal Snap one is getting the DISCORD_INSTANCE_ID 3. Lately, the Snap one installed as discord_test gets DISCORD_INSTANCE_ID 4.

DISCORD_IPC_PATH

To make it possible to select one specific Discord instance, rather than relying on this ordering, this library introduces the environment variable DISCORD_IPC_PATH.

If this variable is set, this library will not search for any sockets at all. It will simply assume that a socket is preset at $DISCORD_IPC_PATH and use that one.

This can be useful for automated tests, that might break on changing Discord instances.

discord-game-sdk4j's People

Contributors

chrislo27 avatar desoroxxx avatar gamer153 avatar gravit0 avatar immails avatar jncrmx avatar kevin-ovi avatar letorbi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

discord-game-sdk4j's Issues

Ask to Join / Join Buttons not showing

So, firstly, really cool library! I love using this!

I ran into an issue while using it. I built your Networking branch and it's working, except the Join / Ask to Join buttons refuse to show up.

I used your example code for the activity, but it doesn't show at all.

Some more info if it helps:

Windows 10 Pro
Java 1.8.0_265

Compiled the DLL library using Visual Studio 2019

Edit: It works with your last jitpack release

Doesn't work on Ubuntu 20.04

Hello, I am using a minecraft launcher which has a module for Discord rich presence which uses this library, yet it doesn't work on Ubuntu 20.04 due to outdated libc6 version (upgrading to 21 is not an option for me, as most of the guides say to do (nor I want to spend hours of time to update libc manually)).

Error:

java.lang.UnsatisfiedLinkError: /home/alex/.minecraftlauncher/SoF/guard/libdiscord_game_sdk_jni.so: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by /home/alex/.minecraftlauncher/SoF/guard/libdiscord_game_sdk_jni.so)
$ uname -a
Linux pcdjoh 5.15.0-52-generic #58~20.04.1-Ubuntu SMP Thu Oct 13 13:09:46 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

Failed to configure networking

I use pretty much the same code as the activity example and DownloadNativeLibrary class. This may be an issue with Windows 11, I am not sure.

[ERROR] Failed to configure networking: ResponseError { code: TransactionAborted, message: "Transaction was aborted" }
Exception in thread "main" de.jcm.discordgamesdk.GameSDKException: Game SDK operation failed: TRANSACTION_ABORTED
	at de.jcm.discordgamesdk.Core.lambda$static$0(Core.java:386)
	at de.jcm.discordgamesdk.Core.destroy(Native Method)
	at de.jcm.discordgamesdk.Core.close(Core.java:628)
	at Discord.main(Discord.java:44)

Process finished with exit code 1

Maven dependency cannot be resolved for java-impl branch

I'm trying to work on my project that used this dependency but maven gives me error inside eclipse(tried older and new versions same issue)
I'm using this code to get the dependency

	<repositories>
		<repository>
			<id>jitpack.io</id>
			<url>https://jitpack.io</url>
		</repository>
	</repositories>

	<dependency>
	    <groupId>com.github.JnCrMx</groupId>
	    <artifactId>discord-game-sdk4j</artifactId>
	    <version>java-impl-SNAPSHOT</version>
	</dependency>

[WARNING] The POM for com.github.JnCrMx:discord-game-sdk4j:jar:java-impl-v0.1-g70b1e9d-210 is missing, no dependency information available

Clicking on log button on the jitpack io site shows file not found for java-impl and if I try to see log for master snapshot build log fine. EDIT: Seems like the log show build date of today at Date: Wed Jun 26 14:11:46. but still doesn't work in maven config file of the project.
https://jitpack.io/com/github/JnCrMx/discord-game-sdk4j/java-impl-v0.1-g70b1e9d-210/build.log
https://jitpack.io/com/github/JnCrMx/discord-game-sdk4j/-v0.1-g5cdac34-224/build.log

image

EDIT2: I'm going to close it i will just use -SNAPSHOT seems like button activity works with that. I noticed on discord that button doesn't show up but only if I run the app for others I can see it. I can also see the button on my phone on my status so I don't know whats going on on desktop client...

Discord is forcibly started and the application is terminated

This is a weird problem because it seems to behave in an inconsistent way but a user reported with video proof that my application which uses discord-game-sdk4j will cause Discord to be started and on CMD the following is printed out:

Discord 1.0.9006
Starting app.
Starting updater.
Module ./ElectronTestRpc was not included.
WEIGHT \\?\C:\Users\<my user name>\AppData\Local\Discord\app-1.0.9006\modules\discord_krisp-1\discord_krisp\NC_small_8k.thw
WEIGHT \\?\C:\Users\<my user name>\AppData\Local\Discord\app-1.0.9006\modules\discord_krisp-1\discord_krisp\NC_small_16k.thw
WEIGHT \\?\C:\Users\<my user name>\AppData\Local\Discord\app-1.0.9006\modules\discord_krisp-1\discord_krisp\c6.s.f.27f1a3.thw
WEIGHT \\?\C:\Users\<my user name>\AppData\Local\Discord\app-1.0.9006\modules\discord_krisp-1\discord_krisp\VAD_weight.thw

image

Also when this happens the main GUI/application is terminated in an instant. I assume that might have caused a Java VM crash but there is no respective crash log. If that user replaces the downloaded discord_game_sdk.dll with a corrupted one, Core.init() will fail with an UnsatisfiedLinkError and therefore the "weird" behavior explained above stops occurring and everything is back to "normal" besides the fact that the Discord SDK isn't working obviously.

If the above does not occur, if I start my application while Discord is closed and then terminate the application, I get the following exception upon closing the SDK:

[ERROR] Failed to configure networking: ResponseError { code: TransactionAborted, message: "Transaction was aborted" }
Exception in thread "Thread-11" de.jcm.discordgamesdk.GameSDKException: Game SDK operation failed: TRANSACTION_ABORTED
        at de.jcm.discordgamesdk.Core.lambda$static$0(Core.java:386)
        at de.jcm.discordgamesdk.Core.destroy(Native Method)
        at de.jcm.discordgamesdk.Core.close(Core.java:628)

Also, the activity state updates do not start working when I start Discord manually after the application has initialized the Discord SDK already. I basically need to have Discord already running for this to work properly.

Any ideas or fixes? I would prefer if the library does not ever start Discord on its own, does not crash the application or the JVM and just provides the Discord RPC functionality when Discord is open, similar to this project which is now deprecated. Besides on Mac OS X I didn't observe any issue using it (discord/discord-rpc#170).

Missing toolchain files

Hi JnCrMx,

when I try to compile the library, it fails with an number of CMake warnings and errors (see below). The most critical seems to be Could not find toolchain file: /home/letorbi/Desktop/discord-game-sdk4j/toolchains/linux-amd64.cmake.

I was able to fix this by creating my own toolchain file (see below), but the compilation then failed for the other platforms. Finally, after removing the compilation instructions for the other platform from /pom.xml, I was able to compile the library.

Could you please add your toolchain files to the project? I understand that they might be more or less specific to your system, but they would be a good reference for people like me, who try to compile the binaries on their own.

Cheers,
Torben

File /toolchains/linux-amd64.cmake:

set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_C_COMPILER clang)
set(CMAKE_CXX_COMPILER clang++)

Log of the failed compilation:

[letorbi@kalliope master discord-game-sdk4j]$ mvn install -DskipTests
[INFO] Scanning for projects...
[INFO] 
[INFO] ----------------< com.github.jncrmx:discord-game-sdk4j >----------------
[INFO] Building discord-game-sdk4j 0.5.5
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] 
[INFO] --- maven-resources-plugin:3.0.2:resources (default-resources) @ discord-game-sdk4j ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/letorbi/Desktop/discord-game-sdk4j/src/main/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.8.1:compile (default-compile) @ discord-game-sdk4j ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 41 source files to /home/letorbi/Desktop/discord-game-sdk4j/target/classes
[INFO] 
[INFO] --- maven-antrun-plugin:1.8:run (make-linux-amd64) @ discord-game-sdk4j ---
[INFO] Executing tasks

main:
    [mkdir] Created dir: /home/letorbi/Desktop/discord-game-sdk4j/target/native/linux/amd64
     [exec] CMake Warning (dev) in CMakeLists.txt:
     [exec]   No project() command is present.  The top-level CMakeLists.txt file must
     [exec]   contain a literal, direct call to the project() command.  Add a line of
     [exec]   code such as
     [exec] 
     [exec]     project(ProjectName)
     [exec] 
     [exec]   near the top of the file, but after cmake_minimum_required().
     [exec] 
     [exec]   CMake is pretending there is a "project(Project)" command on the first
     [exec]   line.
     [exec] This warning is for project developers.  Use -Wno-dev to suppress it.
     [exec] 
     [exec] -- Configuring incomplete, errors occurred!
     [exec] CMake Error at /usr/share/cmake/Modules/CMakeDetermineSystem.cmake:130 (message):
     [exec]   Could not find toolchain file:
     [exec]   /home/letorbi/Desktop/discord-game-sdk4j/toolchains/linux-amd64.cmake
     [exec] Call Stack (most recent call first):
     [exec]   CMakeLists.txt
     [exec] 
     [exec] 
     [exec] CMake Error: CMake was unable to find a build program corresponding to "Unix Makefiles".  CMAKE_MAKE_PROGRAM is not set.  You probably need to select a different build tool.
     [exec] CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage
     [exec] CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  1.866 s
[INFO] Finished at: 2022-12-13T23:54:11+01:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.8:run (make-linux-amd64) on project discord-game-sdk4j: An Ant BuildException has occured: exec returned: 1
[ERROR] around Ant part ...<exec failonerror="true" dir="/home/letorbi/Desktop/discord-game-sdk4j/target/native/linux/amd64" executable="cmake">... @ 5:120 in /home/letorbi/Desktop/discord-game-sdk4j/target/antrun/build-main.xml
[ERROR] -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

Activity.java spawns a non-daemon "Activity-Cleaner" thread

In Activity.java, a new thread QUEUE_THREAD is made which appears to help with cleaning up references when an Activity is constructed with a pointer. I am aware that that constructor is not supposed to be used as part of the public API.

Is it required that QUEUE_THREAD be a non-daemon thread for cleanup to work correctly? If not, I suggest making it a daemon thread so that applications shut down correctly (i.e., when the only threads remaining are daemons).

Thanks for the work you've put into this project!

Handle reply error

Error in console:
[ERROR] Handle reply error Error("unknown variant unknown, expected one of offline, online, idle, dnd", line: 0, column: 0)

Code:

public static void init() {
    File discordLibrary = downloadDiscordLib();
    Core.init(discordLibrary);

    CreateParams params = new CreateParams();
    params.setClientID(Long.parseLong(Global.DISCORD_APP_ID));
    params.setFlags(CreateParams.getDefaultFlags());

    params.registerEventHandler(new DiscordEventAdapter() {
        @Override
        public void onActivityJoinRequest(DiscordUser user) {
            super.onActivityJoinRequest(user);
            System.out.println(user);
        }
    });

    Activity activity = new Activity();

    activity.setDetails("Running an example");
    activity.setState("and having fun");

    activity.timestamps().setStart(Instant.now());

    activity.party().size().setMaxSize(100);
    activity.party().size().setCurrentSize(10);

    activity.assets().setLargeImage("logo");

    activity.party().setID("Party!");
    activity.secrets().setJoinSecret("Join!");

    Core core = new Core(params);
    core.activityManager().updateActivity(activity);

    while (true) {
        core.runCallbacks();

        try {
            Thread.sleep(16);
        } catch(InterruptedException e) {
            e.printStackTrace();
        }
    }
}

Discord Game SDK fails to initialize when Discord is not installed

I tested this library on a machine which does not have Discord installed, it causes the following exception:

de.jcm.discordgamesdk.GameSDKException: Game SDK operation failed: INTERNAL_ERROR
	at de.jcm.discordgamesdk.Core.<init>(Core.java:439) ~[discord-game-sdk4j-v0.5.5.jar:?]
        ...

Is this the cause of not installing Discord? Since this error seems quite opaque, it would be great to know or maybe provide a static boolean isDiscordInstalled() so we can skip using the library entirely in this case.

Activity not showing up in Discord

I took the ActivityExample and changed some small things, but there is no activity on Discord and theres also no error thrown.

The current code:

   public static void main(String[] args) {
        Core.init(new File("./DiscordGameSDK/lib/x86_64/discord_game_sdk.dll"));

        try(CreateParams params = new CreateParams()) {
            params.setClientID(661151077600722947L); //my discord client id
            params.setFlags(CreateParams.getDefaultFlags());
            params.setFlags(CreateParams.Flags.NO_REQUIRE_DISCORD);
            Core core = new Core(params);

            Activity activity = new Activity();

            activity.setDetails("Running an example");
            activity.setState("and having fun");

            activity.timestamps().setStart(Instant.now());
            activity.assets().setLargeImage("test");

            core.activityManager().updateActivity(activity);

            activity.close();

            while(true) {
                core.runCallbacks();
                try {
                    Thread.sleep(16);
                } catch(InterruptedException e) {
                    core.close();
                    e.printStackTrace();
                }
            }
        }
    }

What could be the reason for this problem?

How to know when lobby search finishes?

LobbyManager.search() calls DEFAULT_CALLBACK when the search finishes, but a bunch of other things also call it. There doesn't seem to be a Result specific to "your lobby search is done", so there's no way to tell whether the callback is related, as far as I can tell.

The C and C# versions of this function seem to take a callback as the second argument, but the Java version here only takes the query.

Activity doesn't seem to work correctly.

It would seem that the discord api to set the join and spectate secret does not work. On a separate c# project everything works as documented by discord, but on my new java project sending an activity payload with the join secret and / or the spectate secret set (as well as the party and id set of course) will not show the corresponding buttons inside discord.

`new Core(params)` Throwing when Discord is not running (java-impl branch)

When Discord is not running new Core(params) thows a FileNotFoundException.
I use this: params.setFlags(CreateParams.Flags.NO_REQUIRE_DISCORD);
So I wasn't really excepting this to happen, I expected a debug log saying that it could not find Discord so it was either not present or not running.

java.lang.RuntimeException: java.io.FileNotFoundException: \\?\pipe\discord-ipc-0 (The system cannot find the file specified)
	at de.jcm.discordgamesdk.Core.<init>(Core.java:126)
	at dev.redstudio.hh.handlers.DiscordGameSdkHandler.lambda$init$0(DiscordGameSdkHandler.java:34)
	at java.base/java.lang.VirtualThread.run(VirtualThread.java:309)
Caused by: java.io.FileNotFoundException: \\?\pipe\discord-ipc-0 (The system cannot find the file specified)
	at java.base/java.io.RandomAccessFile.open0(Native Method)
	at java.base/java.io.RandomAccessFile.open(RandomAccessFile.java:356)
	at java.base/java.io.RandomAccessFile.<init>(RandomAccessFile.java:273)
	at java.base/java.io.RandomAccessFile.<init>(RandomAccessFile.java:223)
	at java.base/java.io.RandomAccessFile.<init>(RandomAccessFile.java:137)
	at de.jcm.discordgamesdk.impl.channel.WindowsDiscordChannel.<init>(WindowsDiscordChannel.java:22)
	at de.jcm.discordgamesdk.Core.getDiscordChannel(Core.java:56)
	at de.jcm.discordgamesdk.Core.<init>(Core.java:119)
	... 2 more
	```

App not detected using Rich Presence

Hello, everybody!

I'm trying to code a Minecraft Fabric mod, and am currently integrating a Discord Rich Presence functionality.
However, when I run said mod and update the current activity, it's title is just 'RichTest'. I have looked for a few hours now, and cannot find any coverage on this kind of issue. I have also tried to manually set the title, but that is apparently impossible (if I just need to set the pointer, could someone please tell me how ; I'm new to this).
There is nothing special in the logs.

Here is the Java class (within a zip folder):
discord-rpc-class.zip

PS : The 'ActivityHolder' class is literally just a class that holds activity details and states.
PPS : I've basically just copied and pasted the example activity setter class from this repo.

Any help would be appreciated, thanks!
frisby_ninja

Setting ActivityType does nothing

So I followed the ActivityExample.java and added activity.setType(ActivityType.LISTENING); or activity.setType(ActivityType.CUSTOM); and noticed the displaying prefix wasn't changing and kept saying "Playing XYZ Game". Is this a Bug, unimplemented feature or am I doing something incorrectly?

ResponseError with code UnkownError shows up once Activity starts

I've implemented and modified the activity example for my needs and so far it works great. Everything runs and behaves like it should.

Issue is, when starting up my RPC I receive these lines:

[ERROR] ResponseError { code: UnknownError, message: "Request has been terminated\nPossible causes: the network is offline, Origin is not allowed by Access-Control-Allow-Origin, the page is being unloaded, etc." }

[ERROR] Failed to configure networking: ResponseError { code: UnknownError, message: "Request has been terminated\nPossible causes: the network is offline, Origin is not allowed by Access-Control-Allow-Origin, the page is being unlo
aded, etc." }

The program doesn't crash and even still runs fine but this kind of concerns me. Below is my activity file:
https://gist.github.com/drori200/a61284adeffc26117f087aee045620ff

Make native calls more secure

Keep track of native states in Java (and if possible also C) code to avoid crashes when e.g. destroying an already destroyed core.
Just thrown an IllegalStateException or something comparable in such cases.

I am also having this issue. I don't think the user is getting set properly.

I am also having this issue. I don't think the user is getting set properly.

[ERROR] Failed to configure networking: ResponseError { code: TransactionAborted, message: "Transaction was aborted" }
Exception in thread "main" de.jcm.discordgamesdk.GameSDKException: Game SDK operation failed: NOT_FOUND
	at de.jcm.discordgamesdk.UserManager.getCurrentUser(UserManager.java:75)
	at Discord.main(Discord.java:19)

Originally posted by @CG-Spectre in #32 (comment)

No way to set CreateFlags to NoRequireDiscord

The CreateFlags enum has two values in the Discord docs, but this library only provides CreateParams.getDefaultFlags(), and it doesn't look like Discord has documented anywhere what long value NoRequireDiscord corresponds to.

ResposneError when trying to initialize DiscordGameSDK

Hey,
So I am wanna make a simple disord presence application, but when i try to start my application, i get this weird message saying [ERROR] Failed to configure networking: ResponseError { code: TransactionAborted, message: "Transaction was aborted" } I am currently working on a Linux 64x system and do not know what to do. Any idea?

Here is my complete code:

    private static final long clientID = 931843550801449011L;
    private static final boolean enabled = true;

    private ModClient modClient;
    private int tickCount = 0;
    private Core core;

    public DiscordRPCManager(ModClient modClient) {
        this.modClient = modClient;
    }

    public void onTick(MinecraftClient minecraftClient) {
        if (!enabled) return;
        tickCount++;
        if (tickCount >= 200) {
            tickCount = 0;
            this.onTenSeconds();
        }
    }
    public void onTenSeconds() {
        if (core == null) return;
        core.runCallbacks();
    }

    public void init() throws IOException {
        if (!enabled) return;
        File discordLibrary = DownloadNativeLibrary.downloadDiscordLibrary();
        if (discordLibrary == null) {
            System.out.println("Failed to download discord library");
            return;
        }
        Core.init(discordLibrary);

        try (CreateParams params = new CreateParams()) {
            params.setClientID(clientID);
            params.setFlags(CreateParams.Flags.NO_REQUIRE_DISCORD);
            try(Core core = new Core(params)) {
                this.core = core;
                this.createPresence();
                this.onTenSeconds();
            }

        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("Failed to create discord rpc");
        }
    }

    private void createPresence() {
        try(Activity activity = new Activity())
            {
                activity.setDetails("Spielt auf JaHolLDE");
                activity.setState("der RP-Name");

                // Setting a start time causes an "elapsed" field to appear
                activity.timestamps().setStart(Instant.now());

                // We are in a party with 10 out of 100 people.
                    /*
                    activity.party().size().setMaxSize(100);
                    activity.party().size().setCurrentSize(10);*/

                // Make a "cool" image show up
                //activity.assets().setLargeImage("test");

                // Setting a join secret and a party ID causes an "Ask to Join" button to appear
                //activity.party().setID("Party!");
                //activity.secrets().setJoinSecret("Join!");

                // Finally, update the current activity to our activity
                core.activityManager().updateActivity(activity);
            } catch (Exception e) {
                System.out.println("Failed to create discord presence");
            }
    }

}```

java.lang.UnsatisfiedLinkError: Can't find dependent libraries

I downloaded the examples directory and imported the v0.3 jar through gradle. I ran the ActivityManager example and the program crashed with the following:

Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\Users\____\AppData\Local\Temp\nativeutils7090437070900\discord_game_sdk_jni.dll: Can't find dependent libraries
	at java.base/jdk.internal.loader.NativeLibraries.load(Native Method)
	at java.base/jdk.internal.loader.NativeLibraries$NativeLibraryImpl.open(NativeLibraries.java:383)
	at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:227)
	at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:169)
	at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2407)
	at java.base/java.lang.Runtime.load0(Runtime.java:747)
	at java.base/java.lang.System.load(System.java:1857)
	at cz.adamh.utils.NativeUtils.loadLibraryFromJar(NativeUtils.java:109)
	at de.jcm.discordgamesdk.Core.init(Core.java:45)
	at examples.ActivityExample.main(ActivityExample.java:25)

I suspect this is happening because i'm missing a header file in my computer, but i don't know what file.

Failed to configure networking

I have followed the basic setup and I'm using the DownloadNativeLibrary class to get the native library but when I try to run it I get
[ERROR] Failed to configure networking: ResponseError { code: TransactionAborted, message: "Transaction was aborted" }

my code looks like this. The DownloadNativeLibrary is the same as this one

public class Main {

    public static void main(String[] args) throws IOException {
        long applicationId = <my application id>;

        File discordLibrary = DownloadNativeLibrary.downloadDiscordLibrary();
        if(discordLibrary == null)
        {
            System.err.println("Error downloading Discord SDK.");
            System.exit(-1);
        }
        // Initialize the Core
        Core.init(discordLibrary);

        try(CreateParams params = new CreateParams())
        {
            params.setClientID(applicationId);
            params.setFlags(CreateParams.getDefaultFlags());

            try(Core core = new Core(params))
            {

            }
        }
    }

}

so what can be wrong?

Fatal error while running callbacks

So I'm making a Minecraft mod with this and so far it has been amazing but one thing that happens out of nowhere is a crash that I think is caused by running callbacks. Here is the Java dump:

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  EXCEPTION_UNCAUGHT_CXX_EXCEPTION (0xe06d7363) at pc=0x00007ffb5aea4b89, pid=3168, tid=22420
#
# JRE version: Java(TM) SE Runtime Environment (8.0_51-b16) (build 1.8.0_51-b16)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.51-b03 mixed mode windows-amd64 compressed oops)
# Problematic frame:
# C  [KERNELBASE.dll+0x34b89]
#
# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.java.com/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#

---------------  T H R E A D  ---------------

Current thread (0x0000000026303800):  JavaThread "Thread-361" daemon [_thread_in_native, id=22420, stack(0x0000000084030000,0x0000000084130000)]

siginfo: ExceptionCode=0xe06d7363, ExceptionInformation=0x0000000019930520 0x000000008412ea90 0x00007ffb10892d98 0x00007ffb10500000 

Registers:
RAX=0x0000000000001fa0, RBX=0x00007ffb10892d98, RCX=0x000000008412e4d0, RDX=0x00000000000a0008
RSP=0x000000008412e920, RBP=0x000000008412ea60, RSI=0x0000000000000001, RDI=0x000000008412ea90
R8 =0x0000000000000020, R9 =0x0000000000000020, R10=0x0000000000000000, R11=0x0000000000000000
R12=0x000000000000048d, R13=0x0000000005f16cd0, R14=0x00007ffb1080fd18, R15=0x000000008412ebf0
RIP=0x00007ffb5aea4b89, EFLAGS=0x0000000000000206

Top of Stack: (sp=0x000000008412e920)
0x000000008412e920:   00000000d6d50d20 00007ffb10892d98
0x000000008412e930:   0000000000000001 0000000000000000
0x000000008412e940:   00000001e06d7363 0000000000000000
0x000000008412e950:   00007ffb5aea4b89 0000000000000004
0x000000008412e960:   0000000019930520 000000008412ea90
0x000000008412e970:   00007ffb10892d98 00007ffb10500000
0x000000008412e980:   0000000005f16cd0 000000000000048d
0x000000008412e990:   0000000000000001 000000008412ea60
0x000000008412e9a0:   000000008412ea70 00007ffb5d1e4a5f
0x000000008412e9b0:   000000008412ea90 0000000000000000
0x000000008412e9c0:   000000008412ea50 00007ffb107889df
0x000000008412e9d0:   00007ffb10894000 00007ffb10500000
0x000000008412e9e0:   000037352f33ac40 00007ffb5d1d0000
0x000000008412e9f0:   00007ffb10892d98 00007ffb107ad9fd
0x000000008412ea00:   000000008412eab0 0000000000000000
0x000000008412ea10:   0000000000000000 00000000d6d50d40 

Instructions: (pc=0x00007ffb5aea4b89)
0x00007ffb5aea4b69:   8b d1 44 0f 47 c0 44 89 44 24 38 49 c1 e0 03 e8
0x00007ffb5aea4b79:   2a d3 05 00 48 8d 4c 24 20 48 ff 15 8f 9f 18 00
0x00007ffb5aea4b89:   0f 1f 44 00 00 48 8b 8c 24 c0 00 00 00 48 33 cc
0x00007ffb5aea4b99:   e8 62 95 05 00 48 81 c4 d8 00 00 00 c3 cc 83 64 


Register to memory mapping:

RAX=0x0000000000001fa0 is an unknown value
RBX=0x00007ffb10892d98 is an unknown value
RCX=0x000000008412e4d0 is pointing into the stack for thread: 0x0000000026303800
RDX=0x00000000000a0008 is an unknown value
RSP=0x000000008412e920 is pointing into the stack for thread: 0x0000000026303800
RBP=0x000000008412ea60 is pointing into the stack for thread: 0x0000000026303800
RSI=0x0000000000000001 is an unknown value
RDI=0x000000008412ea90 is pointing into the stack for thread: 0x0000000026303800
R8 =0x0000000000000020 is an unknown value
R9 =0x0000000000000020 is an unknown value
R10=0x0000000000000000 is an unknown value
R11=0x0000000000000000 is an unknown value
R12=0x000000000000048d is an unknown value
R13=0x0000000005f16cd0 is at entry_point+-368 in (nmethod*)0x0000000005f16cd0
R14=0x00007ffb1080fd18 is an unknown value
R15=0x000000008412ebf0 is pointing into the stack for thread: 0x0000000026303800


Stack: [0x0000000084030000,0x0000000084130000],  sp=0x000000008412e920,  free space=1018k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C  [KERNELBASE.dll+0x34b89]
C  [discord_game_sdk.dll+0x2ad9fd]
C  [discord_game_sdk.dll+0x28d838]
C  [discord_game_sdk.dll+0x288f38]
C  [discord_game_sdk.dll+0x288e0a]
C  [discord_game_sdk.dll+0x2888c4]
C  [discord_game_sdk.dll+0x2887a9]
C  [discord_game_sdk.dll+0x29a139]
C  [discord_game_sdk.dll+0x29a23f]
C  [discord_game_sdk.dll+0xfb73e]
C  [discord_game_sdk.dll+0x507c3]
C  0x0000000005c19175

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
J 16198  de.jcm.discordgamesdk.Core.runCallbacks(J)V (0 bytes) @ 0x0000000005c190fb [0x0000000005c190c0+0x3b]
J 34776% C2 io.github.dediamondpro.hycord.features.discord.RichPresence.lambda$onConnect$0()V (37 bytes) @ 0x0000000005f16ec4 [0x0000000005f16e40+0x84]
j  io.github.dediamondpro.hycord.features.discord.RichPresence$$Lambda$225.run()V+4
J 30043 C1 java.lang.Thread.run()V (17 bytes) @ 0x0000000005448784 [0x0000000005448640+0x144]
v  ~StubRoutines::call_stub

---------------  P R O C E S S  ---------------

Java Threads: ( => current thread )
  0x0000000045b02800 JavaThread "Keep-Alive-Timer" daemon [_thread_blocked, id=6368, stack(0x0000000051410000,0x0000000051510000)]
  0x0000000045af0800 JavaThread "connectionLostChecker-1" [_thread_blocked, id=5572, stack(0x0000000038930000,0x0000000038a30000)]
  0x0000000045af7000 JavaThread "WebSocketWriteThread-8924" [_thread_blocked, id=23528, stack(0x0000000038650000,0x0000000038750000)]
  0x0000000045af6800 JavaThread "WebSocketConnectReadThread-8923" [_thread_in_native, id=21692, stack(0x0000000038450000,0x0000000038550000)]
  0x0000000045b01000 JavaThread "pool-13-thread-20" [_thread_blocked, id=3564, stack(0x0000000032f30000,0x0000000033030000)]
  0x0000000045af9800 JavaThread "Async Executor Pool #30" [_thread_blocked, id=23048, stack(0x000000004d250000,0x000000004d350000)]
  0x0000000045af2800 JavaThread "pool-45-thread-1" [_thread_blocked, id=21568, stack(0x0000000086bc0000,0x0000000086cc0000)]
  0x0000000045af1000 JavaThread "pool-11-thread-1" [_thread_blocked, id=20856, stack(0x000000004cfa0000,0x000000004d0a0000)]
  0x0000000045aef000 JavaThread "AutotipThread" [_thread_blocked, id=19052, stack(0x0000000089820000,0x0000000089920000)]
  0x00000000262fd800 JavaThread "Netty Client IO #9" daemon [_thread_in_native, id=21896, stack(0x0000000085130000,0x0000000085230000)]
=>0x0000000026303800 JavaThread "Thread-361" daemon [_thread_in_native, id=22420, stack(0x0000000084030000,0x0000000084130000)]
  0x0000000026302000 JavaThread "Netty Client IO #8" daemon [_thread_in_native, id=8224, stack(0x0000000038c30000,0x0000000038d30000)]
  0x0000000026304000 JavaThread "Netty Client IO #7" daemon [_thread_in_native, id=17912, stack(0x0000000087b90000,0x0000000087c90000)]
  0x00000000262fc800 JavaThread "Netty Client IO #6" daemon [_thread_in_native, id=18728, stack(0x0000000086ac0000,0x0000000086bc0000)]
  0x00000000262f2000 JavaThread "Netty Client IO #5" daemon [_thread_in_native, id=20748, stack(0x0000000084710000,0x0000000084810000)]
  0x00000000262f1000 JavaThread "Netty Client IO #4" daemon [_thread_in_native, id=3372, stack(0x0000000084610000,0x0000000084710000)]
  0x00000000262ef000 JavaThread "Netty Client IO #3" daemon [_thread_in_native, id=12980, stack(0x0000000084510000,0x0000000084610000)]
  0x000000003d61a000 JavaThread "Netty Client IO #2" daemon [_thread_in_native, id=1624, stack(0x0000000081540000,0x0000000081640000)]
  0x000000003d612800 JavaThread "Server Pinger #3" daemon [_thread_blocked, id=8052, stack(0x000000004cc90000,0x000000004cd90000)]
  0x000000003d619800 JavaThread "Server Pinger #2" daemon [_thread_blocked, id=20872, stack(0x0000000039ca0000,0x0000000039da0000)]
  0x000000003d607800 JavaThread "Server Pinger #1" daemon [_thread_blocked, id=10372, stack(0x0000000038d30000,0x0000000038e30000)]
  0x000000003d5fe800 JavaThread "Server Pinger #0" daemon [_thread_blocked, id=5904, stack(0x0000000002e70000,0x0000000002f70000)]
  0x000000003d603000 JavaThread "pool-35-thread-1" [_thread_blocked, id=17480, stack(0x0000000038830000,0x0000000038930000)]
  0x000000003d618000 JavaThread "pool-42-thread-2" [_thread_blocked, id=2608, stack(0x0000000084410000,0x0000000084510000)]
  0x000000003d606800 JavaThread "pool-42-thread-1" [_thread_blocked, id=2892, stack(0x0000000038a30000,0x0000000038b30000)]
  0x00000000257c3800 JavaThread "pool-40-thread-4" [_thread_blocked, id=17744, stack(0x00000000848b0000,0x00000000849b0000)]
  0x00000000257c9800 JavaThread "pool-40-thread-3" [_thread_blocked, id=14224, stack(0x0000000089c10000,0x0000000089d10000)]
  0x00000000257c7800 JavaThread "pool-40-thread-2" [_thread_blocked, id=20920, stack(0x0000000087210000,0x0000000087310000)]
  0x00000000257bf000 JavaThread "pool-40-thread-1" [_thread_blocked, id=2448, stack(0x0000000085930000,0x0000000085a30000)]
  0x00000000262ed800 JavaThread "pool-4-thread-2" [_thread_blocked, id=18188, stack(0x000000002c1a0000,0x000000002c2a0000)]
  0x00000000262e6800 JavaThread "pool-12-thread-1" [_thread_blocked, id=1812, stack(0x000000002ac00000,0x000000002ad00000)]
  0x00000000262f2800 JavaThread "pool-4-thread-1" [_thread_blocked, id=4240, stack(0x0000000002bb0000,0x0000000002cb0000)]
  0x000000003d600800 JavaThread "pool-10-thread-1" [_thread_blocked, id=18596, stack(0x0000000085830000,0x0000000085930000)]
  0x000000003d60e000 JavaThread "TeamSpeak Netty Client" daemon [_thread_in_native, id=8692, stack(0x0000000085530000,0x0000000085630000)]
  0x000000003d60c000 JavaThread "AutotipThread" [_thread_blocked, id=2800, stack(0x0000000094e30000,0x0000000094f30000)]
  0x000000003d600000 JavaThread "Activity-Cleaner" [_thread_blocked, id=18300, stack(0x000000009c2f0000,0x000000009c3f0000)]
  0x000000003d606000 JavaThread "Thread 60" [_thread_blocked, id=11216, stack(0x0000000095030000,0x0000000095130000)]
  0x000000003d603800 JavaThread "Thread 59" [_thread_blocked, id=12880, stack(0x0000000094c30000,0x0000000094d30000)]
  0x000000003d605000 JavaThread "Thread 58" [_thread_blocked, id=3028, stack(0x0000000094b30000,0x0000000094c30000)]
  0x000000003d604800 JavaThread "Thread 57" [_thread_blocked, id=14112, stack(0x0000000093950000,0x0000000093a50000)]
  0x000000003d5fd000 JavaThread "Thread 56" [_thread_blocked, id=17584, stack(0x0000000093850000,0x0000000093950000)]
  0x000000003d602000 JavaThread "Thread 55" [_thread_blocked, id=2148, stack(0x0000000093750000,0x0000000093850000)]
  0x000000003d5fc000 JavaThread "Thread 54" [_thread_blocked, id=9624, stack(0x0000000093650000,0x0000000093750000)]
  0x000000003d5ff000 JavaThread "Thread 53" [_thread_blocked, id=11108, stack(0x0000000093550000,0x0000000093650000)]
  0x000000003d5fb800 JavaThread "Thread 52" [_thread_blocked, id=14532, stack(0x00000000aa600000,0x00000000aa700000)]
  0x000000003d601800 JavaThread "Thread 51" [_thread_blocked, id=15032, stack(0x00000000aa300000,0x00000000aa400000)]
  0x00000000262fe000 JavaThread "Thread 50" [_thread_blocked, id=13732, stack(0x00000000aa000000,0x00000000aa100000)]
  0x0000000026305000 JavaThread "Thread 49" [_thread_blocked, id=4000, stack(0x00000000a9d00000,0x00000000a9e00000)]
  0x00000000262ff000 JavaThread "Thread 48" [_thread_blocked, id=8072, stack(0x00000000a9a00000,0x00000000a9b00000)]
  0x0000000026301000 JavaThread "Thread 47" [_thread_blocked, id=19164, stack(0x00000000a9700000,0x00000000a9800000)]
  0x00000000262ff800 JavaThread "Thread 46" [_thread_blocked, id=7292, stack(0x00000000a9400000,0x00000000a9500000)]
  0x00000000262f7800 JavaThread "Thread 45" [_thread_blocked, id=11176, stack(0x00000000a8eb0000,0x00000000a8fb0000)]
  0x00000000262f6800 JavaThread "Thread 44" [_thread_blocked, id=5600, stack(0x00000000a8bb0000,0x00000000a8cb0000)]
  0x00000000262f6000 JavaThread "Thread 43" [_thread_blocked, id=1860, stack(0x00000000a88b0000,0x00000000a89b0000)]
  0x00000000262f4800 JavaThread "Thread 42" [_thread_blocked, id=18208, stack(0x00000000a85b0000,0x00000000a86b0000)]
  0x00000000262f3800 JavaThread "Thread 41" [_thread_blocked, id=4216, stack(0x00000000a82b0000,0x00000000a83b0000)]
  0x00000000262ec800 JavaThread "Thread 40" [_thread_blocked, id=17556, stack(0x00000000a7fb0000,0x00000000a80b0000)]
  0x00000000262ea800 JavaThread "Thread 39" [_thread_blocked, id=8388, stack(0x00000000a7cb0000,0x00000000a7db0000)]
  0x00000000262e9800 JavaThread "Thread 38" [_thread_blocked, id=7088, stack(0x00000000a79b0000,0x00000000a7ab0000)]
  0x0000000049825000 JavaThread "Thread 37" [_thread_blocked, id=18032, stack(0x00000000a76b0000,0x00000000a77b0000)]
  0x0000000049824800 JavaThread "Thread 36" [_thread_blocked, id=11816, stack(0x00000000a73b0000,0x00000000a74b0000)]
  0x0000000049827800 JavaThread "Thread 35" [_thread_blocked, id=6476, stack(0x00000000a70b0000,0x00000000a71b0000)]
  0x0000000049829800 JavaThread "Thread 34" [_thread_blocked, id=2520, stack(0x00000000a6db0000,0x00000000a6eb0000)]
  0x0000000049823000 JavaThread "Thread 33" [_thread_blocked, id=13880, stack(0x00000000a6ab0000,0x00000000a6bb0000)]
  0x000000004981c000 JavaThread "Thread 32" [_thread_blocked, id=18440, stack(0x00000000a67b0000,0x00000000a68b0000)]
  0x0000000049821800 JavaThread "Thread 31" [_thread_blocked, id=7332, stack(0x00000000a64b0000,0x00000000a65b0000)]
  0x00000000257c6000 JavaThread "Thread 30" [_thread_blocked, id=16756, stack(0x00000000a61b0000,0x00000000a62b0000)]
  0x00000000257c6800 JavaThread "Thread 29" [_thread_blocked, id=1652, stack(0x00000000a5eb0000,0x00000000a5fb0000)]
  0x00000000257c4800 JavaThread "Thread 28" [_thread_blocked, id=13316, stack(0x00000000a2a80000,0x00000000a2b80000)]
  0x00000000257cb000 JavaThread "Thread 27" [_thread_blocked, id=10540, stack(0x00000000a2780000,0x00000000a2880000)]
  0x00000000257c2000 JavaThread "Thread 26" [_thread_blocked, id=10288, stack(0x00000000a2480000,0x00000000a2580000)]
  0x00000000257c0800 JavaThread "Thread 25" [_thread_blocked, id=19372, stack(0x00000000a0fd0000,0x00000000a10d0000)]
  0x00000000257be800 JavaThread "Thread 24" [_thread_blocked, id=16036, stack(0x00000000a0cd0000,0x00000000a0dd0000)]
  0x0000000046719800 JavaThread "Thread 23" [_thread_blocked, id=18636, stack(0x000000009c7f0000,0x000000009c8f0000)]
  0x0000000024072000 JavaThread "Thread 22" [_thread_blocked, id=18036, stack(0x000000009c1f0000,0x000000009c2f0000)]
  0x000000004650c000 JavaThread "Thread 21" [_thread_blocked, id=14360, stack(0x0000000094f30000,0x0000000095030000)]
  0x000000004650b000 JavaThread "Thread 20" [_thread_blocked, id=11596, stack(0x0000000092080000,0x0000000092180000)]
  0x0000000046509800 JavaThread "ModCore Thread 18" [_thread_blocked, id=12172, stack(0x0000000091f80000,0x0000000092080000)]
  0x000000004650a800 JavaThread "ModCore Thread 19" [_thread_blocked, id=15984, stack(0x0000000091e80000,0x0000000091f80000)]
  0x0000000046509000 JavaThread "ModCore Thread 17" [_thread_blocked, id=14768, stack(0x0000000091d80000,0x0000000091e80000)]
  0x0000000046508000 JavaThread "ModCore Thread 15" [_thread_blocked, id=6376, stack(0x0000000091c80000,0x0000000091d80000)]
  0x0000000046505000 JavaThread "ModCore Thread 16" [_thread_blocked, id=10588, stack(0x00000000867c0000,0x00000000868c0000)]
  0x0000000046502000 JavaThread "ModCore Thread 14" [_thread_blocked, id=18680, stack(0x00000000866c0000,0x00000000867c0000)]
  0x0000000046506000 JavaThread "AutotipScheduler" [_thread_blocked, id=8392, stack(0x00000000862e0000,0x00000000863e0000)]
  0x0000000046503000 JavaThread "pool-8-thread-3" [_thread_in_native, id=17948, stack(0x000000009cdf0000,0x000000009cef0000)]
  0x0000000046501800 JavaThread "pool-8-thread-2" [_thread_blocked, id=14816, stack(0x000000009cbf0000,0x000000009ccf0000)]
  0x0000000046506800 JavaThread "pool-8-thread-1" [_thread_in_native, id=6756, stack(0x000000009caf0000,0x000000009cbf0000)]
  0x0000000027b23000 JavaThread "5zig Netty Client" daemon [_thread_in_native, id=2092, stack(0x000000009c9f0000,0x000000009caf0000)]
  0x000000002406c000 JavaThread "5zig Texture Downloader #0" daemon [_thread_blocked, id=18092, stack(0x000000009c3f0000,0x000000009c4f0000)]
  0x0000000024071000 JavaThread "Thread 13" [_thread_blocked, id=10580, stack(0x000000009c0f0000,0x000000009c1f0000)]
  0x0000000024070800 JavaThread "AutotipScheduler" [_thread_blocked, id=19344, stack(0x000000009bff0000,0x000000009c0f0000)]
  0x0000000024063800 JavaThread "ModCore Thread 12" [_thread_blocked, id=10964, stack(0x000000009bcf0000,0x000000009bdf0000)]
  0x000000002406a800 JavaThread "Netty Client IO #1" daemon [_thread_in_native, id=11020, stack(0x000000009bbf0000,0x000000009bcf0000)]
  0x0000000024065000 JavaThread "Thread 11" daemon [_thread_blocked, id=10712, stack(0x000000009baf0000,0x000000009bbf0000)]
  0x0000000024063000 JavaThread "Thread 10" daemon [_thread_blocked, id=13868, stack(0x000000009b8f0000,0x000000009b9f0000)]
  0x0000000024069800 JavaThread "ModCore Thread 9" daemon [_thread_blocked, id=6644, stack(0x0000000088190000,0x0000000088290000)]
  0x0000000024066800 JavaThread "Netty Client IO #0" daemon [_thread_in_native, id=9840, stack(0x0000000088290000,0x0000000088390000)]
  0x0000000024067800 JavaThread "Thread-95" daemon [_thread_in_native, id=18424, stack(0x0000000084230000,0x0000000084330000)]
  0x000000003dc7c800 JavaThread "TeamSpeak Netty Client" daemon [_thread_in_native, id=3248, stack(0x0000000083e30000,0x0000000083f30000)]
  0x0000000046718800 JavaThread "ModCore Thread 8" [_thread_blocked, id=15284, stack(0x0000000082d50000,0x0000000082e50000)]
  0x000000004671b800 JavaThread "ModCore Thread 7" [_thread_blocked, id=16608, stack(0x0000000082b00000,0x0000000082c00000)]
  0x0000000046718000 JavaThread "Client" daemon [_thread_in_native, id=5900, stack(0x0000000082700000,0x0000000082800000)]
  0x0000000046717000 JavaThread "Thread 6" [_thread_blocked, id=3964, stack(0x0000000039da0000,0x0000000039ea0000)]
  0x0000000027b20000 JavaThread "5zig Netty Client" daemon [_thread_in_native, id=7060, stack(0x0000000037560000,0x0000000037660000)]
  0x0000000027b16000 JavaThread "Database Queue #0" [_thread_blocked, id=3268, stack(0x0000000037460000,0x0000000037560000)]
  0x0000000027b1a000 JavaThread "HSQLDB Timer @c9f52ef" daemon [_thread_blocked, id=4468, stack(0x0000000037360000,0x0000000037460000)]
  0x0000000027b19000 JavaThread "Mojang Status" [_thread_blocked, id=11576, stack(0x0000000083f30000,0x0000000084030000)]
  0x000000004671d000 JavaThread "Thread-92" [_thread_blocked, id=17968, stack(0x0000000051110000,0x0000000051210000)]
  0x000000004671c800 JavaThread "Thread-91" [_thread_blocked, id=7656, stack(0x000000004de70000,0x000000004df70000)]
  0x0000000046710000 JavaThread "Thread 5" [_thread_blocked, id=18864, stack(0x0000000051540000,0x0000000051640000)]
  0x0000000046716800 JavaThread "RelicWaypoints-Save" [_thread_blocked, id=5808, stack(0x0000000083330000,0x0000000083430000)]
  0x000000004670e800 JavaThread "MythologicalTracker-Save" [_thread_blocked, id=4012, stack(0x0000000083230000,0x0000000083330000)]
  0x0000000046715800 JavaThread "KeyShortcuts-Save" [_thread_blocked, id=13680, stack(0x0000000083130000,0x0000000083230000)]
  0x0000000046711800 JavaThread "GlintCustomizer-Save" [_thread_blocked, id=12560, stack(0x0000000083030000,0x0000000083130000)]
  0x0000000046715000 JavaThread "FavoritePets-Save" [_thread_blocked, id=4228, stack(0x0000000082f30000,0x0000000083030000)]
  0x0000000046712800 JavaThread "CommandAliases-Save" [_thread_blocked, id=10236, stack(0x0000000082c50000,0x0000000082d50000)]
  0x0000000046711000 JavaThread "BlockAbility-Save" [_thread_blocked, id=12552, stack(0x0000000082800000,0x0000000082900000)]
  0x0000000046713000 JavaThread "Skytils-Reload-Data" [_thread_blocked, id=12604, stack(0x0000000082600000,0x0000000082700000)]
  0x0000000027b22000 JavaThread "Skytils-FetchAuctionData" [_thread_blocked, id=4912, stack(0x0000000082200000,0x0000000082300000)]
  0x0000000027b21800 JavaThread "ArmorColor-Save" [_thread_blocked, id=1576, stack(0x0000000081f60000,0x0000000082060000)]
  0x0000000027b20800 JavaThread "Timer-12" [_thread_blocked, id=12856, stack(0x0000000081e60000,0x0000000081f60000)]
  0x0000000027b1d800 JavaThread "Thread 4" [_thread_blocked, id=9004, stack(0x0000000081d60000,0x0000000081e60000)]
  0x0000000044eb8800 JavaThread "Thread 3" [_thread_blocked, id=8212, stack(0x0000000081c60000,0x0000000081d60000)]
  0x0000000044ebf800 JavaThread "Timer-11" [_thread_blocked, id=7648, stack(0x0000000081b60000,0x0000000081c60000)]
  0x0000000044eba000 JavaThread "Timer-10" [_thread_blocked, id=18248, stack(0x0000000081860000,0x0000000081960000)]
  0x0000000044ebe800 JavaThread "Timer-9" [_thread_blocked, id=9280, stack(0x0000000081760000,0x0000000081860000)]
  0x0000000044ebe000 JavaThread "Timer-8" [_thread_blocked, id=1952, stack(0x0000000081440000,0x0000000081540000)]
  0x0000000044eb5800 JavaThread "Thread-62" [_thread_blocked, id=10096, stack(0x000000005fdf0000,0x000000005fef0000)]
  0x0000000044eb8000 JavaThread "Thread 2" [_thread_blocked, id=19036, stack(0x000000005fcf0000,0x000000005fdf0000)]
  0x0000000044ebb000 JavaThread "Timer-7" [_thread_blocked, id=11180, stack(0x0000000000b40000,0x0000000000c40000)]
  0x0000000044eb5000 JavaThread "AutotipScheduler" [_thread_blocked, id=6532, stack(0x0000000065880000,0x0000000065980000)]
  0x0000000044eb7000 JavaThread "Chunk Batcher 9" daemon [_thread_blocked, id=12308, stack(0x00000000523d0000,0x00000000524d0000)]
  0x0000000044eb4000 JavaThread "Chunk Batcher 8" daemon [_thread_blocked, id=7096, stack(0x00000000522d0000,0x00000000523d0000)]
  0x0000000044eb3800 JavaThread "Chunk Batcher 7" daemon [_thread_blocked, id=7708, stack(0x00000000521d0000,0x00000000522d0000)]
  0x0000000044eb2000 JavaThread "Chunk Batcher 6" daemon [_thread_blocked, id=672, stack(0x00000000520d0000,0x00000000521d0000)]
  0x0000000044eb1000 JavaThread "Chunk Batcher 5" daemon [_thread_blocked, id=632, stack(0x0000000051fd0000,0x00000000520d0000)]
  0x0000000044eb6800 JavaThread "Chunk Batcher 4" daemon [_thread_blocked, id=3396, stack(0x0000000051ed0000,0x0000000051fd0000)]
  0x0000000044eb2800 JavaThread "Chunk Batcher 3" daemon [_thread_blocked, id=14780, stack(0x0000000051dd0000,0x0000000051ed0000)]
  0x0000000027b1e800 JavaThread "Chunk Batcher 2" daemon [_thread_blocked, id=6736, stack(0x0000000051cd0000,0x0000000051dd0000)]
  0x0000000027b24800 JavaThread "Chunk Batcher 1" daemon [_thread_blocked, id=10916, stack(0x0000000051bd0000,0x0000000051cd0000)]
  0x0000000027b23800 JavaThread "Chunk Batcher 0" daemon [_thread_blocked, id=6384, stack(0x000000004daa0000,0x000000004dba0000)]
  0x0000000027b1c000 JavaThread "GuiManager-Save" [_thread_blocked, id=4544, stack(0x000000004d150000,0x000000004d250000)]
  0x0000000027b1b800 JavaThread "AWT-Windows" daemon [_thread_in_native, id=6612, stack(0x0000000038550000,0x0000000038650000)]
  0x0000000027b15000 JavaThread "pool-9-thread-1" [_thread_blocked, id=10160, stack(0x00000000380c0000,0x00000000381c0000)]
  0x0000000027b17800 JavaThread "Keep-Alive-SocketCleaner" daemon [_thread_blocked, id=4464, stack(0x0000000037fc0000,0x00000000380c0000)]
  0x00000000255c1800 JavaThread "Timer-6" [_thread_blocked, id=12432, stack(0x000000004c020000,0x000000004c120000)]
  0x000000003dc7d000 JavaThread "Timer-5" [_thread_blocked, id=12568, stack(0x000000004bf20000,0x000000004c020000)]
  0x000000003dc7e000 JavaThread "Timer-4" [_thread_blocked, id=5312, stack(0x000000004ba20000,0x000000004bb20000)]
  0x000000003dc7b000 JavaThread "Timer-3" [_thread_blocked, id=12616, stack(0x000000002fcb0000,0x000000002fdb0000)]
  0x000000003dc7f800 JavaThread "Timer-2" [_thread_blocked, id=9956, stack(0x000000002fab0000,0x000000002fbb0000)]
  0x000000003dc7e800 JavaThread "Thread 1" [_thread_blocked, id=13736, stack(0x000000004b720000,0x000000004b820000)]
  0x000000003dc72800 JavaThread "anInnocuousThread" daemon [_thread_in_native, id=9336, stack(0x0000000041760000,0x0000000041860000)]
  0x000000003dc79000 JavaThread "anInnocuousThread" daemon [_thread_in_native, id=8336, stack(0x0000000041660000,0x0000000041760000)]
  0x000000003dc71800 JavaThread "anInnocuousThread" daemon [_thread_in_native, id=19172, stack(0x0000000041560000,0x0000000041660000)]
  0x000000003dc78800 JavaThread "anInnocuousThread" daemon [_thread_in_native, id=9120, stack(0x0000000041460000,0x0000000041560000)]
  0x000000003dc71000 JavaThread "anInnocuousThread" daemon [_thread_in_native, id=12112, stack(0x000000003d330000,0x000000003d430000)]
  0x000000003dc77800 JavaThread "anInnocuousThread" daemon [_thread_in_native, id=6360, stack(0x000000003afb0000,0x000000003b0b0000)]
  0x000000003dc70000 JavaThread "anInnocuousThread" daemon [_thread_in_native, id=11256, stack(0x0000000034de0000,0x0000000034ee0000)]
  0x000000003dc76000 JavaThread "anInnocuousThread" daemon [_thread_in_native, id=11092, stack(0x0000000030960000,0x0000000030a60000)]
  0x000000003dc73000 JavaThread "anInnocuousThread" daemon [_thread_in_native, id=1996, stack(0x0000000030860000,0x0000000030960000)]
  0x000000003dc77000 JavaThread "anInnocuousThread" daemon [_thread_in_native, id=920, stack(0x0000000030760000,0x0000000030860000)]
  0x000000003dc75800 JavaThread "anInnocuousThread" daemon [_thread_in_native, id=18476, stack(0x0000000030660000,0x0000000030760000)]
  0x000000003dc74000 JavaThread "anInnocuousThread" daemon [_thread_in_native, id=15144, stack(0x0000000030560000,0x0000000030660000)]
  0x000000003dc74800 JavaThread "anInnocuousThread" daemon [_thread_in_native, id=7804, stack(0x0000000030460000,0x0000000030560000)]
  0x00000000255c3000 JavaThread "Timer-1" [_thread_blocked, id=13344, stack(0x000000002ff20000,0x0000000030020000)]
  0x00000000255c7000 JavaThread "Timer-0" [_thread_blocked, id=18980, stack(0x000000002fe20000,0x000000002ff20000)]
  0x00000000255c4000 JavaThread "LWJGL Timer" daemon [_thread_blocked, id=11144, stack(0x000000003aeb0000,0x000000003afb0000)]
  0x00000000255c2800 JavaThread "Java2D Disposer" daemon [_thread_blocked, id=10772, stack(0x0000000028100000,0x0000000028200000)]
  0x00000000255c0000 JavaThread "Timer hack thread" daemon [_thread_blocked, id=7276, stack(0x0000000026870000,0x0000000026970000)]
  0x00000000255c5800 JavaThread "Snooper Timer" daemon [_thread_blocked, id=8712, stack(0x0000000026d70000,0x0000000026e70000)]
  0x00000000246de000 JavaThread "Snooper Timer" daemon [_thread_blocked, id=12772, stack(0x00000000296d0000,0x00000000297d0000)]
  0x0000000022d80800 JavaThread "Service Thread" daemon [_thread_blocked, id=11124, stack(0x0000000023130000,0x0000000023230000)]
  0x00000000221ec800 JavaThread "C1 CompilerThread3" daemon [_thread_blocked, id=9508, stack(0x0000000022c30000,0x0000000022d30000)]
  0x00000000221e3800 JavaThread "C2 CompilerThread2" daemon [_thread_blocked, id=9800, stack(0x0000000022b30000,0x0000000022c30000)]
  0x00000000221df000 JavaThread "C2 CompilerThread1" daemon [_thread_blocked, id=1532, stack(0x0000000022a30000,0x0000000022b30000)]
  0x00000000221dc800 JavaThread "C2 CompilerThread0" daemon [_thread_blocked, id=12656, stack(0x0000000022930000,0x0000000022a30000)]
  0x00000000221d8800 JavaThread "Attach Listener" daemon [_thread_blocked, id=288, stack(0x0000000022830000,0x0000000022930000)]
  0x0000000022192000 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=3128, stack(0x0000000022730000,0x0000000022830000)]
  0x0000000022191000 JavaThread "Surrogate Locker Thread (Concurrent GC)" daemon [_thread_blocked, id=3972, stack(0x0000000022630000,0x0000000022730000)]
  0x0000000022177800 JavaThread "Finalizer" daemon [_thread_blocked, id=3132, stack(0x0000000022530000,0x0000000022630000)]
  0x0000000022171000 JavaThread "Reference Handler" daemon [_thread_blocked, id=11808, stack(0x0000000022330000,0x0000000022430000)]
  0x0000000003154000 JavaThread "Client thread" [_thread_in_Java, id=17588, stack(0x0000000003050000,0x0000000003150000)]

Other Threads:
  0x0000000003247800 VMThread [stack: 0x0000000022230000,0x0000000022330000] [id=18656]
  0x0000000022229000 WatcherThread [stack: 0x0000000023230000,0x0000000023330000] [id=15660]

VM state:not at safepoint (normal execution)

VM Mutex/Monitor currently owned by a thread: None

Heap:
 garbage-first heap   total 2195456K, used 1480405K [0x00000006c0000000, 0x00000006c2000218, 0x00000007c0000000)
  region size 32768K, 7 young (229376K), 2 survivors (65536K)
 Metaspace       used 106066K, capacity 108918K, committed 109184K, reserved 1146880K
  class space    used 11322K, capacity 11832K, committed 11904K, reserved 1048576K

Heap Regions: (Y=young(eden), SU=young(survivor), HS=humongous(starts), HC=humongous(continues), CS=collection set, F=free, TS=gc time stamp, PTAMS=previous top-at-mark-start, NTAMS=next top-at-mark-start)
AC   0  O    TS     0 PTAMS 0x00000006c2000000 NTAMS 0x00000006c2000000 space 32768K, 100% used [0x00000006c0000000, 0x00000006c2000000)
AC   0  F    TS     0 PTAMS 0x00000006c2000000 NTAMS 0x00000006c2000000 space 32768K,   0% used [0x00000006c2000000, 0x00000006c4000000)
AC   0  O    TS     0 PTAMS 0x00000006c6000000 NTAMS 0x00000006c6000000 space 32768K, 100% used [0x00000006c4000000, 0x00000006c6000000)
AC   0  O    TS     0 PTAMS 0x00000006c8000000 NTAMS 0x00000006c8000000 space 32768K, 100% used [0x00000006c6000000, 0x00000006c8000000)
AC   0 HS    TS     0 PTAMS 0x00000006c9000010 NTAMS 0x00000006c9000010 space 32768K,  50% used [0x00000006c8000000, 0x00000006ca000000)
AC   0  O    TS     0 PTAMS 0x00000006cc000000 NTAMS 0x00000006cc000000 space 32768K, 100% used [0x00000006ca000000, 0x00000006cc000000)
AC   0  F    TS     0 PTAMS 0x00000006cc000000 NTAMS 0x00000006cc000000 space 32768K,   0% used [0x00000006cc000000, 0x00000006ce000000)
AC   0  O    TS     0 PTAMS 0x00000006d0000000 NTAMS 0x00000006d0000000 space 32768K, 100% used [0x00000006ce000000, 0x00000006d0000000)
AC   0  O    TS     0 PTAMS 0x00000006d2000000 NTAMS 0x00000006d2000000 space 32768K, 100% used [0x00000006d0000000, 0x00000006d2000000)
AC   0  O    TS     0 PTAMS 0x00000006d4000000 NTAMS 0x00000006d4000000 space 32768K, 100% used [0x00000006d2000000, 0x00000006d4000000)
AC   0  O    TS     0 PTAMS 0x00000006d6000000 NTAMS 0x00000006d6000000 space 32768K, 100% used [0x00000006d4000000, 0x00000006d6000000)
AC   0  O    TS     0 PTAMS 0x00000006d8000000 NTAMS 0x00000006d8000000 space 32768K, 100% used [0x00000006d6000000, 0x00000006d8000000)
AC   0  O    TS     0 PTAMS 0x00000006da000000 NTAMS 0x00000006da000000 space 32768K, 100% used [0x00000006d8000000, 0x00000006da000000)
AC   0  O    TS     0 PTAMS 0x00000006dc000000 NTAMS 0x00000006dc000000 space 32768K, 100% used [0x00000006da000000, 0x00000006dc000000)
AC   0  O    TS     0 PTAMS 0x00000006de000000 NTAMS 0x00000006de000000 space 32768K, 100% used [0x00000006dc000000, 0x00000006de000000)
AC   0  O    TS     0 PTAMS 0x00000006e0000000 NTAMS 0x00000006e0000000 space 32768K, 100% used [0x00000006de000000, 0x00000006e0000000)
AC   0  O    TS     0 PTAMS 0x00000006e2000000 NTAMS 0x00000006e2000000 space 32768K, 100% used [0x00000006e0000000, 0x00000006e2000000)
AC   0  O    TS     0 PTAMS 0x00000006e4000000 NTAMS 0x00000006e4000000 space 32768K, 100% used [0x00000006e2000000, 0x00000006e4000000)
AC   0  O    TS     0 PTAMS 0x00000006e6000000 NTAMS 0x00000006e6000000 space 32768K, 100% used [0x00000006e4000000, 0x00000006e6000000)
AC   0  O    TS     0 PTAMS 0x00000006e8000000 NTAMS 0x00000006e8000000 space 32768K, 100% used [0x00000006e6000000, 0x00000006e8000000)
AC   0  O    TS     0 PTAMS 0x00000006ea000000 NTAMS 0x00000006ea000000 space 32768K, 100% used [0x00000006e8000000, 0x00000006ea000000)
AC   0  O    TS     0 PTAMS 0x00000006ec000000 NTAMS 0x00000006ec000000 space 32768K, 100% used [0x00000006ea000000, 0x00000006ec000000)
AC   0  O    TS     0 PTAMS 0x00000006ee000000 NTAMS 0x00000006ee000000 space 32768K, 100% used [0x00000006ec000000, 0x00000006ee000000)
AC   0  O    TS     0 PTAMS 0x00000006f0000000 NTAMS 0x00000006f0000000 space 32768K, 100% used [0x00000006ee000000, 0x00000006f0000000)
AC   0  O    TS     0 PTAMS 0x00000006f2000000 NTAMS 0x00000006f2000000 space 32768K, 100% used [0x00000006f0000000, 0x00000006f2000000)
AC   0  O    TS     0 PTAMS 0x00000006f4000000 NTAMS 0x00000006f4000000 space 32768K, 100% used [0x00000006f2000000, 0x00000006f4000000)
AC   0  O    TS     0 PTAMS 0x00000006f6000000 NTAMS 0x00000006f6000000 space 32768K, 100% used [0x00000006f4000000, 0x00000006f6000000)
AC   0  O    TS     0 PTAMS 0x00000006f8000000 NTAMS 0x00000006f8000000 space 32768K, 100% used [0x00000006f6000000, 0x00000006f8000000)
AC   0  O    TS     0 PTAMS 0x00000006fa000000 NTAMS 0x00000006fa000000 space 32768K, 100% used [0x00000006f8000000, 0x00000006fa000000)
AC   0  F    TS     0 PTAMS 0x00000006fa000000 NTAMS 0x00000006fa000000 space 32768K,   0% used [0x00000006fa000000, 0x00000006fc000000)
AC   0  O    TS     0 PTAMS 0x00000006fe000000 NTAMS 0x00000006fe000000 space 32768K, 100% used [0x00000006fc000000, 0x00000006fe000000)
AC   0  O    TS     0 PTAMS 0x0000000700000000 NTAMS 0x0000000700000000 space 32768K, 100% used [0x00000006fe000000, 0x0000000700000000)
AC   0  O    TS     0 PTAMS 0x0000000702000000 NTAMS 0x0000000702000000 space 32768K, 100% used [0x0000000700000000, 0x0000000702000000)
AC   0  O    TS     0 PTAMS 0x0000000704000000 NTAMS 0x0000000704000000 space 32768K, 100% used [0x0000000702000000, 0x0000000704000000)
AC   0  O    TS     0 PTAMS 0x0000000706000000 NTAMS 0x0000000706000000 space 32768K, 100% used [0x0000000704000000, 0x0000000706000000)
AC   0  O    TS     0 PTAMS 0x0000000708000000 NTAMS 0x0000000708000000 space 32768K, 100% used [0x0000000706000000, 0x0000000708000000)
AC   0  O    TS     0 PTAMS 0x000000070a000000 NTAMS 0x000000070a000000 space 32768K, 100% used [0x0000000708000000, 0x000000070a000000)
AC   0  O    TS     0 PTAMS 0x000000070c000000 NTAMS 0x000000070c000000 space 32768K, 100% used [0x000000070a000000, 0x000000070c000000)
AC   0  O    TS     0 PTAMS 0x000000070e000000 NTAMS 0x000000070e000000 space 32768K, 100% used [0x000000070c000000, 0x000000070e000000)
AC   0  O    TS     0 PTAMS 0x0000000710000000 NTAMS 0x0000000710000000 space 32768K, 100% used [0x000000070e000000, 0x0000000710000000)
AC   0  O    TS     0 PTAMS 0x0000000712000000 NTAMS 0x0000000712000000 space 32768K, 100% used [0x0000000710000000, 0x0000000712000000)
AC   0  O    TS     0 PTAMS 0x0000000714000000 NTAMS 0x0000000714000000 space 32768K, 100% used [0x0000000712000000, 0x0000000714000000)
AC   0  F    TS     0 PTAMS 0x0000000714000000 NTAMS 0x0000000714000000 space 32768K,   0% used [0x0000000714000000, 0x0000000716000000)
AC   0  O    TS     1 PTAMS 0x0000000716ca0800 NTAMS 0x0000000716ca0800 space 32768K,  39% used [0x0000000716000000, 0x0000000718000000)
AC   0  F    TS     0 PTAMS 0x0000000718000000 NTAMS 0x0000000718000000 space 32768K,   0% used [0x0000000718000000, 0x000000071a000000)
AC   0  O    TS     0 PTAMS 0x000000071c000000 NTAMS 0x000000071c000000 space 32768K, 100% used [0x000000071a000000, 0x000000071c000000)
AC   0  F    TS     0 PTAMS 0x000000071c000000 NTAMS 0x000000071c000000 space 32768K,   0% used [0x000000071c000000, 0x000000071e000000)
AC   0  F    TS     0 PTAMS 0x000000071e000000 NTAMS 0x000000071e000000 space 32768K,   0% used [0x000000071e000000, 0x0000000720000000)
AC   0  F    TS     0 PTAMS 0x0000000720000000 NTAMS 0x0000000720000000 space 32768K,   0% used [0x0000000720000000, 0x0000000722000000)
AC   0  F    TS     0 PTAMS 0x0000000722000000 NTAMS 0x0000000722000000 space 32768K,   0% used [0x0000000722000000, 0x0000000724000000)
AC   0  F    TS     0 PTAMS 0x0000000724000000 NTAMS 0x0000000724000000 space 32768K,   0% used [0x0000000724000000, 0x0000000726000000)
AC   0  F    TS     0 PTAMS 0x0000000726000000 NTAMS 0x0000000726000000 space 32768K,   0% used [0x0000000726000000, 0x0000000728000000)
AC   0  S CS TS     1 PTAMS 0x0000000728000000 NTAMS 0x0000000728000000 space 32768K,  28% used [0x0000000728000000, 0x000000072a000000)
AC   0  F    TS     0 PTAMS 0x000000072a000000 NTAMS 0x000000072a000000 space 32768K,   0% used [0x000000072a000000, 0x000000072c000000)
AC   0  S CS TS     1 PTAMS 0x000000072c000000 NTAMS 0x000000072c000000 space 32768K, 100% used [0x000000072c000000, 0x000000072e000000)
AC   0  F    TS     0 PTAMS 0x000000072e000000 NTAMS 0x000000072e000000 space 32768K,   0% used [0x000000072e000000, 0x0000000730000000)
AC   0  F    TS     0 PTAMS 0x0000000730000000 NTAMS 0x0000000730000000 space 32768K,   0% used [0x0000000730000000, 0x0000000732000000)
AC   0  F    TS     0 PTAMS 0x0000000732000000 NTAMS 0x0000000732000000 space 32768K,   0% used [0x0000000732000000, 0x0000000734000000)
AC   0  F    TS     0 PTAMS 0x0000000734000000 NTAMS 0x0000000734000000 space 32768K,   0% used [0x0000000734000000, 0x0000000736000000)
AC   0  F    TS     0 PTAMS 0x0000000736000000 NTAMS 0x0000000736000000 space 32768K,   0% used [0x0000000736000000, 0x0000000738000000)
AC   0  F    TS     0 PTAMS 0x0000000738000000 NTAMS 0x0000000738000000 space 32768K,   0% used [0x0000000738000000, 0x000000073a000000)
AC   0  F    TS     0 PTAMS 0x000000073a000000 NTAMS 0x000000073a000000 space 32768K,   0% used [0x000000073a000000, 0x000000073c000000)
AC   0  E    TS     0 PTAMS 0x000000073c000000 NTAMS 0x000000073c000000 space 32768K,  69% used [0x000000073c000000, 0x000000073e000000)
AC   0  E CS TS     0 PTAMS 0x000000073e000000 NTAMS 0x000000073e000000 space 32768K, 100% used [0x000000073e000000, 0x0000000740000000)
AC   0  E CS TS     0 PTAMS 0x0000000740000000 NTAMS 0x0000000740000000 space 32768K, 100% used [0x0000000740000000, 0x0000000742000000)
AC   0  E CS TS     0 PTAMS 0x0000000742000000 NTAMS 0x0000000742000000 space 32768K, 100% used [0x0000000742000000, 0x0000000744000000)
AC   0  E CS TS     0 PTAMS 0x0000000744000000 NTAMS 0x0000000744000000 space 32768K, 100% used [0x0000000744000000, 0x0000000746000000)

Card table byte_map: [0x0000000014dd0000,0x00000000155d0000] byte_map_base: 0x00000000117d0000

Marking Bits (Prev, Next): (CMBitMap*) 0x00000000031bd748, (CMBitMap*) 0x00000000031bd7a0
 Prev Bits: [0x0000000015dd0000, 0x0000000019dd0000)
 Next Bits: [0x0000000019dd0000, 0x000000001ddd0000)

Polling page: 0x00000000011e0000

CodeCache: size=245760Kb used=122121Kb max_used=122183Kb free=123639Kb
 bounds [0x0000000003250000, 0x000000000aa90000, 0x0000000012250000]
 total_blobs=25303 nmethods=24049 adapters=1162
 compilation: enabled

Compilation events (10 events):
Event: 10047.559 Thread 0x00000000221dc800 40625       4       net.minecraft.client.Minecraft::func_147121_ag (444 bytes)
Event: 10047.682 Thread 0x00000000221dc800 nmethod 40625 0x00000000070d89d0 code [0x00000000070d8ee0, 0x00000000070dbc08]
Event: 10058.865 Thread 0x00000000221ec800 40626   !   3       com.google.common.util.concurrent.Futures$ImmediateFuture::addListener (64 bytes)
Event: 10058.867 Thread 0x00000000221ec800 nmethod 40626 0x0000000008f4b190 code [0x0000000008f4b4c0, 0x0000000008f4ce58]
Event: 10062.590 Thread 0x00000000221df000 40627       4       java.net.InetSocketAddress$InetSocketAddressHolder::<init> (8 bytes)
Event: 10062.594 Thread 0x00000000221df000 nmethod 40627 0x0000000008f4add0 code [0x0000000008f4af00, 0x0000000008f4b138]
Event: 10064.155 Thread 0x00000000221ec800 40628       3       net.minecraft.entity.projectile.EntityArrow::func_70071_h_ (2159 bytes)
Event: 10064.162 Thread 0x00000000221ec800 nmethod 40628 0x000000000aa67710 code [0x000000000aa683e0, 0x000000000aa711a8]
Event: 10065.272 Thread 0x00000000221e3800 40629   !   4       sun.net.www.protocol.https.HttpsClient::New (359 bytes)
Event: 10066.095 Thread 0x00000000221e3800 nmethod 40629 0x000000000aa75f50 code [0x000000000aa76760, 0x000000000aa81158]

GC Heap History (10 events):
Event: 10086.768 GC heap before
{Heap before GC invocations=12046 (full 0):
 garbage-first heap   total 2195456K, used 1765715K [0x00000006c0000000, 0x00000006c2000218, 0x00000007c0000000)
  region size 32768K, 13 young (425984K), 2 survivors (65536K)
 Metaspace       used 106066K, capacity 108918K, committed 109184K, reserved 1146880K
  class space    used 11322K, capacity 11832K, committed 11904K, reserved 1048576K
Event: 10086.781 GC heap after
Heap after GC invocations=12047 (full 0):
 garbage-first heap   total 2195456K, used 1410096K [0x00000006c0000000, 0x00000006c2000218, 0x00000007c0000000)
  region size 32768K, 2 young (65536K), 2 survivors (65536K)
 Metaspace       used 106066K, capacity 108918K, committed 109184K, reserved 1146880K
  class space    used 11322K, capacity 11832K, committed 11904K, reserved 1048576K
}
Event: 10090.169 GC heap before
{Heap before GC invocations=12047 (full 0):
 garbage-first heap   total 2195456K, used 1770544K [0x00000006c0000000, 0x00000006c2000218, 0x00000007c0000000)
  region size 32768K, 13 young (425984K), 2 survivors (65536K)
 Metaspace       used 106066K, capacity 108918K, committed 109184K, reserved 1146880K
  class space    used 11322K, capacity 11832K, committed 11904K, reserved 1048576K
Event: 10090.232 GC heap after
Heap after GC invocations=12048 (full 0):
 garbage-first heap   total 2195456K, used 1358184K [0x00000006c0000000, 0x00000006c2000218, 0x00000007c0000000)
  region size 32768K, 2 young (65536K), 2 survivors (65536K)
 Metaspace       used 106066K, capacity 108918K, committed 109184K, reserved 1146880K
  class space    used 11322K, capacity 11832K, committed 11904K, reserved 1048576K
}
Event: 10093.563 GC heap before
{Heap before GC invocations=12048 (full 0):
 garbage-first heap   total 2195456K, used 1718632K [0x00000006c0000000, 0x00000006c2000218, 0x00000007c0000000)
  region size 32768K, 13 young (425984K), 2 survivors (65536K)
 Metaspace       used 106066K, capacity 108918K, committed 109184K, reserved 1146880K
  class space    used 11322K, capacity 11832K, committed 11904K, reserved 1048576K
Event: 10093.580 GC heap after
Heap after GC invocations=12049 (full 0):
 garbage-first heap   total 2195456K, used 1358522K [0x00000006c0000000, 0x00000006c2000218, 0x00000007c0000000)
  region size 32768K, 2 young (65536K), 2 survivors (65536K)
 Metaspace       used 106066K, capacity 108918K, committed 109184K, reserved 1146880K
  class space    used 11322K, capacity 11832K, committed 11904K, reserved 1048576K
}
Event: 10096.963 GC heap before
{Heap before GC invocations=12049 (full 0):
 garbage-first heap   total 2195456K, used 1718970K [0x00000006c0000000, 0x00000006c2000218, 0x00000007c0000000)
  region size 32768K, 13 young (425984K), 2 survivors (65536K)
 Metaspace       used 106066K, capacity 108918K, committed 109184K, reserved 1146880K
  class space    used 11322K, capacity 11832K, committed 11904K, reserved 1048576K
Event: 10096.977 GC heap after
Heap after GC invocations=12050 (full 0):
 garbage-first heap   total 2195456K, used 1352420K [0x00000006c0000000, 0x00000006c2000218, 0x00000007c0000000)
  region size 32768K, 2 young (65536K), 2 survivors (65536K)
 Metaspace       used 106066K, capacity 108918K, committed 109184K, reserved 1146880K
  class space    used 11322K, capacity 11832K, committed 11904K, reserved 1048576K
}
Event: 10100.495 GC heap before
{Heap before GC invocations=12051 (full 0):
 garbage-first heap   total 2195456K, used 1712868K [0x00000006c0000000, 0x00000006c2000218, 0x00000007c0000000)
  region size 32768K, 13 young (425984K), 2 survivors (65536K)
 Metaspace       used 106066K, capacity 108918K, committed 109184K, reserved 1146880K
  class space    used 11322K, capacity 11832K, committed 11904K, reserved 1048576K
Event: 10100.507 GC heap after
Heap after GC invocations=12052 (full 0):
 garbage-first heap   total 2195456K, used 1349333K [0x00000006c0000000, 0x00000006c2000218, 0x00000007c0000000)
  region size 32768K, 2 young (65536K), 2 survivors (65536K)
 Metaspace       used 106066K, capacity 108918K, committed 109184K, reserved 1146880K
  class space    used 11322K, capacity 11832K, committed 11904K, reserved 1048576K
}

Deoptimization events (10 events):
Event: 9819.171 Thread 0x0000000003154000 Uncommon trap: reason=class_check action=maybe_recompile pc=0x000000000430322c method=java.util.PriorityQueue.siftUpComparable(ILjava/lang/Object;)V @ 1
Event: 9819.174 Thread 0x0000000003154000 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000000005877cac method=java.util.PriorityQueue.siftUpComparable(ILjava/lang/Object;)V @ 1
Event: 9821.531 Thread 0x0000000003154000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000000006c75bcc method=net.minecraft.block.BlockPistonMoving.func_180640_a(Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/util/AxisAlโ€œยดร‘รฏยถ/รƒ@
Event: 9823.429 Thread 0x0000000003154000 Uncommon trap: reason=bimorphic action=maybe_recompile pc=0x00000000040f3524 method=net.minecraft.block.state.BlockState$StateImplementation.func_177229_b(Lnet/minecraft/block/properties/IProperty;)Ljava/lang/Comparable; @ 5
Event: 9883.809 Thread 0x0000000003154000 Uncommon trap: reason=null_check action=maybe_recompile pc=0x0000000005c41044 method=kr.syeyoung.dungeonsguide.features.impl.boss.terminal.FeatureSimonSaysSolver.onInteract(Lnet/minecraftforge/event/entity/player/PlayerInteractEvent;)V @ 44
Event: 9884.007 Thread 0x0000000003154000 Uncommon trap: reason=null_check action=maybe_recompile pc=0x0000000005c41044 method=kr.syeyoung.dungeonsguide.features.impl.boss.terminal.FeatureSimonSaysSolver.onInteract(Lnet/minecraftforge/event/entity/player/PlayerInteractEvent;)V @ 44
Event: 9884.208 Thread 0x0000000003154000 Uncommon trap: reason=null_check action=maybe_recompile pc=0x0000000005c41044 method=kr.syeyoung.dungeonsguide.features.impl.boss.terminal.FeatureSimonSaysSolver.onInteract(Lnet/minecraftforge/event/entity/player/PlayerInteractEvent;)V @ 44
Event: 9884.424 Thread 0x0000000003154000 Uncommon trap: reason=null_check action=maybe_recompile pc=0x0000000005c41044 method=kr.syeyoung.dungeonsguide.features.impl.boss.terminal.FeatureSimonSaysSolver.onInteract(Lnet/minecraftforge/event/entity/player/PlayerInteractEvent;)V @ 44
Event: 10037.243 Thread 0x0000000003154000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x000000000a625464 method=net.minecraft.entity.monster.EntityGuardian.func_175474_cn()Z @ 9
Event: 10062.357 Thread 0x0000000003154000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000000009a9d1e8 method=net.minecraft.entity.projectile.EntityArrow.func_70071_h_()V @ 254

Internal exceptions (10 events):
Event: 10101.379 Thread 0x000000004671c800 Exception <a 'java/lang/InterruptedException': sleep interrupted> (0x000000073f49ea80) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u51\3951\hotspot\src\share\vm\prims\jvm.cpp, line 3211]
Event: 10101.383 Thread 0x000000004671c800 Exception <a 'java/lang/InterruptedException': sleep interrupted> (0x000000073f49ec80) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u51\3951\hotspot\src\share\vm\prims\jvm.cpp, line 3211]
Event: 10101.385 Thread 0x000000004671c800 Exception <a 'java/lang/InterruptedException': sleep interrupted> (0x000000073f49ee80) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u51\3951\hotspot\src\share\vm\prims\jvm.cpp, line 3211]
Event: 10101.387 Thread 0x000000004671c800 Exception <a 'java/lang/InterruptedException': sleep interrupted> (0x000000073f49f080) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u51\3951\hotspot\src\share\vm\prims\jvm.cpp, line 3211]
Event: 10101.390 Thread 0x000000004671c800 Exception <a 'java/lang/InterruptedException': sleep interrupted> (0x000000073f49f280) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u51\3951\hotspot\src\share\vm\prims\jvm.cpp, line 3211]
Event: 10101.394 Thread 0x000000004671c800 Exception <a 'java/lang/InterruptedException': sleep interrupted> (0x000000073f49f480) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u51\3951\hotspot\src\share\vm\prims\jvm.cpp, line 3211]
Event: 10101.397 Thread 0x000000004671c800 Exception <a 'java/lang/InterruptedException': sleep interrupted> (0x000000073f49f680) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u51\3951\hotspot\src\share\vm\prims\jvm.cpp, line 3211]
Event: 10101.399 Thread 0x000000004671c800 Exception <a 'java/lang/InterruptedException': sleep interrupted> (0x000000073f49f880) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u51\3951\hotspot\src\share\vm\prims\jvm.cpp, line 3211]
Event: 10101.401 Thread 0x000000004671c800 Exception <a 'java/lang/InterruptedException': sleep interrupted> (0x000000073f49fa80) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u51\3951\hotspot\src\share\vm\prims\jvm.cpp, line 3211]
Event: 10101.402 Thread 0x000000004671c800 Exception <a 'java/lang/InterruptedException': sleep interrupted> (0x000000073f49fc80) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u51\3951\hotspot\src\share\vm\prims\jvm.cpp, line 3211]

Events (10 events):
Event: 10100.507 Executing VM operation: G1IncCollectionPause done
Event: 10101.056 Thread 0x0000000045afc800 Thread added: 0x0000000045afc800
Event: 10101.056 Thread 0x0000000045afc800 Thread exited: 0x0000000045afc800
Event: 10101.062 Thread 0x0000000045b02800 Thread added: 0x0000000045b02800
Event: 10101.063 Thread 0x0000000045b02800 Thread exited: 0x0000000045b02800
Event: 10101.084 Thread 0x0000000045b02800 Thread added: 0x0000000045b02800
Event: 10101.308 Executing VM operation: RevokeBias
Event: 10101.308 Executing VM operation: RevokeBias done
Event: 10101.308 Executing VM operation: RevokeBias
Event: 10101.309 Executing VM operation: RevokeBias done


Dynamic libraries:
0x00007ff6e1c40000 - 0x00007ff6e1c77000 	C:\Program Files (x86)\Minecraft Launcher\runtime\jre-legacy\windows-x64\jre-legacy\bin\javaw.exe
0x00007ffb5d1b0000 - 0x00007ffb5d3a5000 	C:\WINDOWS\SYSTEM32\ntdll.dll
0x00007ffb5cd20000 - 0x00007ffb5cddd000 	C:\WINDOWS\System32\KERNEL32.DLL
0x00007ffb5ae70000 - 0x00007ffb5b138000 	C:\WINDOWS\System32\KERNELBASE.dll
0x00007ffb54560000 - 0x00007ffb545f0000 	C:\WINDOWS\SYSTEM32\apphelp.dll
0x00007ffb12140000 - 0x00007ffb125d4000 	C:\WINDOWS\SYSTEM32\AcLayers.DLL
0x00007ffb5b240000 - 0x00007ffb5b2de000 	C:\WINDOWS\System32\msvcrt.dll
0x00007ffb5ca50000 - 0x00007ffb5cbf0000 	C:\WINDOWS\System32\USER32.dll
0x00007ffb5aa00000 - 0x00007ffb5aa22000 	C:\WINDOWS\System32\win32u.dll
0x00007ffb5b210000 - 0x00007ffb5b23a000 	C:\WINDOWS\System32\GDI32.dll
0x00007ffb5a8f0000 - 0x00007ffb5a9fb000 	C:\WINDOWS\System32\gdi32full.dll
0x00007ffb5add0000 - 0x00007ffb5ae6d000 	C:\WINDOWS\System32\msvcp_win.dll
0x00007ffb5aca0000 - 0x00007ffb5ada0000 	C:\WINDOWS\System32\ucrtbase.dll
0x00007ffb5b940000 - 0x00007ffb5b995000 	C:\WINDOWS\System32\SHLWAPI.dll
0x00007ffb5c240000 - 0x00007ffb5c2ec000 	C:\WINDOWS\System32\ADVAPI32.dll
0x00007ffb5c1a0000 - 0x00007ffb5c23b000 	C:\WINDOWS\System32\sechost.dll
0x00007ffb5b600000 - 0x00007ffb5b72b000 	C:\WINDOWS\System32\RPCRT4.dll
0x0000000000c70000 - 0x0000000000c73000 	C:\WINDOWS\SYSTEM32\sfc.dll
0x00007ffb41c30000 - 0x00007ffb41cbe000 	C:\WINDOWS\SYSTEM32\WINSPOOL.DRV
0x00007ffb51560000 - 0x00007ffb51572000 	C:\WINDOWS\SYSTEM32\sfc_os.DLL
0x00007ffb52bd0000 - 0x00007ffb52c30000 	C:\WINDOWS\SYSTEM32\AcGenral.DLL
0x00007ffb5cbf0000 - 0x00007ffb5cd1a000 	C:\WINDOWS\System32\ole32.dll
0x00007ffb5ce10000 - 0x00007ffb5d165000 	C:\WINDOWS\System32\combase.dll
0x00007ffb5c300000 - 0x00007ffb5ca42000 	C:\WINDOWS\System32\SHELL32.dll
0x00007ffb5a7b0000 - 0x00007ffb5a7de000 	C:\WINDOWS\SYSTEM32\USERENV.dll
0x00007ffb3a580000 - 0x00007ffb3a59d000 	C:\WINDOWS\SYSTEM32\MPR.dll
0x00007ffb5a7e0000 - 0x00007ffb5a811000 	C:\WINDOWS\SYSTEM32\SspiCli.dll
0x00007ffb5cde0000 - 0x00007ffb5ce10000 	C:\WINDOWS\System32\IMM32.DLL
0x00007ffb46af0000 - 0x00007ffb46d8a000 	C:\WINDOWS\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.19041.844_none_ca00b6081b84eb1d\COMCTL32.dll
0x000000006d8b0000 - 0x000000006d982000 	C:\Program Files (x86)\Minecraft Launcher\runtime\jre-legacy\windows-x64\jre-legacy\bin\msvcr100.dll
0x000000006cb30000 - 0x000000006d3b3000 	C:\Program Files (x86)\Minecraft Launcher\runtime\jre-legacy\windows-x64\jre-legacy\bin\server\jvm.dll
0x00007ffb5b500000 - 0x00007ffb5b508000 	C:\WINDOWS\System32\PSAPI.DLL
0x00007ffb396a0000 - 0x00007ffb396a9000 	C:\WINDOWS\SYSTEM32\WSOCK32.dll
0x00007ffb46ac0000 - 0x00007ffb46ae7000 	C:\WINDOWS\SYSTEM32\WINMM.dll
0x00007ffb4e800000 - 0x00007ffb4e80a000 	C:\WINDOWS\SYSTEM32\VERSION.dll
0x00007ffb5b510000 - 0x00007ffb5b57b000 	C:\WINDOWS\System32\WS2_32.dll
0x000000006d8a0000 - 0x000000006d8af000 	C:\Program Files (x86)\Minecraft Launcher\runtime\jre-legacy\windows-x64\jre-legacy\bin\verify.dll
0x000000006d870000 - 0x000000006d899000 	C:\Program Files (x86)\Minecraft Launcher\runtime\jre-legacy\windows-x64\jre-legacy\bin\java.dll
0x000000006d850000 - 0x000000006d866000 	C:\Program Files (x86)\Minecraft Launcher\runtime\jre-legacy\windows-x64\jre-legacy\bin\zip.dll
0x00007ffb58a40000 - 0x00007ffb591d0000 	C:\WINDOWS\SYSTEM32\windows.storage.dll
0x00007ffb5a360000 - 0x00007ffb5a38c000 	C:\WINDOWS\SYSTEM32\Wldp.dll
0x00007ffb5c0d0000 - 0x00007ffb5c17e000 	C:\WINDOWS\System32\SHCORE.dll
0x00007ffb5a830000 - 0x00007ffb5a84f000 	C:\WINDOWS\SYSTEM32\profapi.dll
0x000000006d840000 - 0x000000006d84d000 	C:\Program Files (x86)\Minecraft Launcher\runtime\jre-legacy\windows-x64\jre-legacy\bin\management.dll
0x000000006d820000 - 0x000000006d83a000 	C:\Program Files (x86)\Minecraft Launcher\runtime\jre-legacy\windows-x64\jre-legacy\bin\net.dll
0x00007ffb5a0d0000 - 0x00007ffb5a13a000 	C:\WINDOWS\system32\mswsock.dll
0x000000006d800000 - 0x000000006d811000 	C:\Program Files (x86)\Minecraft Launcher\runtime\jre-legacy\windows-x64\jre-legacy\bin\nio.dll
0x00007ffb5a2b0000 - 0x00007ffb5a2c8000 	C:\WINDOWS\SYSTEM32\CRYPTSP.dll
0x00007ffb59a00000 - 0x00007ffb59a34000 	C:\WINDOWS\system32\rsaenh.dll
0x00007ffb5ada0000 - 0x00007ffb5adc7000 	C:\WINDOWS\System32\bcrypt.dll
0x00007ffb5b190000 - 0x00007ffb5b210000 	C:\WINDOWS\System32\bcryptprimitives.dll
0x00007ffb5a2a0000 - 0x00007ffb5a2ac000 	C:\WINDOWS\SYSTEM32\CRYPTBASE.dll
0x00007ffb59d70000 - 0x00007ffb59dab000 	C:\WINDOWS\SYSTEM32\IPHLPAPI.DLL
0x00007ffb5b2e0000 - 0x00007ffb5b2e8000 	C:\WINDOWS\System32\NSI.dll
0x00007ffb4f410000 - 0x00007ffb4f427000 	C:\WINDOWS\SYSTEM32\dhcpcsvc6.DLL
0x00007ffb4f3f0000 - 0x00007ffb4f40d000 	C:\WINDOWS\SYSTEM32\dhcpcsvc.DLL
0x00007ffb59dc0000 - 0x00007ffb59e8c000 	C:\WINDOWS\SYSTEM32\DNSAPI.dll
0x00007ffb52b90000 - 0x00007ffb52b9a000 	C:\Users\user\AppData\Local\Temp\jansi-64-6322270521602938297.dll
0x00007ffb38760000 - 0x00007ffb38777000 	C:\WINDOWS\system32\napinsp.dll
0x00007ffb37150000 - 0x00007ffb3716b000 	C:\WINDOWS\system32\pnrpnsp.dll
0x00007ffb51f90000 - 0x00007ffb51fa5000 	C:\WINDOWS\system32\wshbth.dll
0x00007ffb52b00000 - 0x00007ffb52b1d000 	C:\WINDOWS\system32\NLAapi.dll
0x00007ffb34830000 - 0x00007ffb34842000 	C:\WINDOWS\System32\winrnr.dll
0x00007ffb4aaf0000 - 0x00007ffb4aafa000 	C:\Windows\System32\rasadhlp.dll
0x00007ffb4a800000 - 0x00007ffb4a87f000 	C:\WINDOWS\System32\fwpuclnt.dll
0x000000006d7d0000 - 0x000000006d7f4000 	C:\Program Files (x86)\Minecraft Launcher\runtime\jre-legacy\windows-x64\jre-legacy\bin\sunec.dll
0x000000006d7b0000 - 0x000000006d7c7000 	C:\Program Files (x86)\Minecraft Launcher\runtime\jre-legacy\windows-x64\jre-legacy\bin\unpack.dll
0x0000000180000000 - 0x0000000180053000 	C:\Users\user\AppData\Roaming\.minecraft\bin\916e-0825-4d69-4223\lwjgl64.dll
0x00007ffb12010000 - 0x00007ffb12136000 	C:\WINDOWS\SYSTEM32\OPENGL32.dll
0x00007ffb2a290000 - 0x00007ffb2a2bc000 	C:\WINDOWS\SYSTEM32\GLU32.dll
0x000000006d610000 - 0x000000006d7a8000 	C:\Program Files (x86)\Minecraft Launcher\runtime\jre-legacy\windows-x64\jre-legacy\bin\awt.dll
0x00007ffb5b2f0000 - 0x00007ffb5b3bd000 	C:\WINDOWS\System32\OLEAUT32.dll
0x00007ffb51840000 - 0x00007ffb518ee000 	C:\WINDOWS\SYSTEM32\mscms.dll
0x00007ffb51630000 - 0x00007ffb51641000 	C:\WINDOWS\SYSTEM32\ColorAdapterClient.dll
0x00007ffb58840000 - 0x00007ffb58852000 	C:\WINDOWS\SYSTEM32\kernel.appcore.dll
0x00007ffb54950000 - 0x00007ffb549ee000 	C:\WINDOWS\system32\uxtheme.dll
0x00007ffb5b730000 - 0x00007ffb5b845000 	C:\WINDOWS\System32\MSCTF.dll
0x00007ffb36270000 - 0x00007ffb36369000 	C:\WINDOWS\SYSTEM32\textinputframework.dll
0x00007ffb53fd0000 - 0x00007ffb5432e000 	C:\WINDOWS\System32\CoreUIComponents.dll
0x00007ffb54330000 - 0x00007ffb54422000 	C:\WINDOWS\System32\CoreMessaging.dll
0x00007ffb59630000 - 0x00007ffb59663000 	C:\WINDOWS\SYSTEM32\ntmarta.dll
0x00007ffb53900000 - 0x00007ffb53a54000 	C:\WINDOWS\SYSTEM32\wintypes.dll
0x00007ffb5be10000 - 0x00007ffb5beb9000 	C:\WINDOWS\System32\clbcatq.dll
0x00007ffadb430000 - 0x00007ffadde0c000 	C:\WINDOWS\System32\DriverStore\FileRepository\nvhmi.inf_amd64_a15bbc31588a3c38\nvoglv64.dll
0x00007ffb5b9a0000 - 0x00007ffb5be09000 	C:\WINDOWS\System32\SETUPAPI.dll
0x00007ffb5b140000 - 0x00007ffb5b18e000 	C:\WINDOWS\System32\cfgmgr32.dll
0x00007ffb50b30000 - 0x00007ffb50b44000 	C:\WINDOWS\SYSTEM32\WTSAPI32.dll
0x00007ffb5a4e0000 - 0x00007ffb5a4f2000 	C:\WINDOWS\SYSTEM32\msasn1.dll
0x00007ffb4a790000 - 0x00007ffb4a7c1000 	C:\WINDOWS\SYSTEM32\cryptnet.dll
0x00007ffb5ab40000 - 0x00007ffb5ac9f000 	C:\WINDOWS\System32\CRYPT32.dll
0x00007ffb5a6a0000 - 0x00007ffb5a6cc000 	C:\WINDOWS\System32\DEVOBJ.dll
0x00007ffb5aa30000 - 0x00007ffb5aa90000 	C:\WINDOWS\System32\WINTRUST.dll
0x00007ffb45640000 - 0x00007ffb4567b000 	C:\WINDOWS\SYSTEM32\dxcore.dll
0x00007ffb02610000 - 0x00007ffb028ce000 	C:\WINDOWS\system32\nvspcap64.dll
0x00007ffb58660000 - 0x00007ffb5868f000 	C:\WINDOWS\SYSTEM32\dwmapi.dll
0x00007ffb52b40000 - 0x00007ffb52b83000 	C:\WINDOWS\SYSTEM32\icm32.dll
0x00007ffb59ee0000 - 0x00007ffb59f2b000 	C:\WINDOWS\SYSTEM32\powrprof.dll
0x00007ffb59d50000 - 0x00007ffb59d62000 	C:\WINDOWS\SYSTEM32\UMPDC.dll
0x00007ffb596e0000 - 0x00007ffb5973a000 	C:\WINDOWS\SYSTEM32\WINSTA.dll
0x00000000270f0000 - 0x0000000027128000 	C:\Users\user\AppData\Local\Temp\jna\jna7168812470445448514.dll
0x000000006d5d0000 - 0x000000006d601000 	C:\Program Files (x86)\Minecraft Launcher\runtime\jre-legacy\windows-x64\jre-legacy\bin\jpeg.dll
0x000000006d580000 - 0x000000006d5c7000 	C:\Program Files (x86)\Minecraft Launcher\runtime\jre-legacy\windows-x64\jre-legacy\bin\fontmanager.dll
0x00007ffb44a90000 - 0x00007ffb44c5e000 	C:\WINDOWS\system32\d3d9.dll
0x00007ffb451c0000 - 0x00007ffb452c5000 	C:\WINDOWS\System32\DriverStore\FileRepository\nvhmi.inf_amd64_a15bbc31588a3c38\nvldumdx.dll
0x00007ffb5c180000 - 0x00007ffb5c19d000 	C:\WINDOWS\System32\imagehlp.dll
0x00007ffb06ff0000 - 0x00007ffb087a8000 	C:\WINDOWS\System32\DriverStore\FileRepository\nvhmi.inf_amd64_a15bbc31588a3c38\nvd3dumx.dll
0x00007ffb591e0000 - 0x00007ffb59203000 	C:\WINDOWS\SYSTEM32\gpapi.dll
0x000000006d530000 - 0x000000006d572000 	C:\Program Files (x86)\Minecraft Launcher\runtime\jre-legacy\windows-x64\jre-legacy\bin\t2k.dll
0x0000000070a40000 - 0x0000000070adc000 	C:\Users\user\AppData\Roaming\.minecraft\bin\916e-0825-4d69-4223\avutil-ttv-51.dll
0x0000000065980000 - 0x00000000659d6000 	C:\Users\user\AppData\Roaming\.minecraft\bin\916e-0825-4d69-4223\swresample-ttv-0.dll
0x000000006eb80000 - 0x000000006ec50000 	C:\Users\user\AppData\Roaming\.minecraft\bin\916e-0825-4d69-4223\libmp3lame-ttv.dll
0x00007ffb10a30000 - 0x00007ffb11dd4000 	C:\Users\user\AppData\Roaming\.minecraft\bin\916e-0825-4d69-4223\libmfxsw64.dll
0x00007ffb108c0000 - 0x00007ffb10a2d000 	C:\Users\user\AppData\Roaming\.minecraft\bin\916e-0825-4d69-4223\twitchsdk.dll
0x00007ffb38200000 - 0x00007ffb386dd000 	C:\WINDOWS\SYSTEM32\WININET.dll
0x0000000041860000 - 0x00000000418c4000 	C:\Users\user\AppData\Roaming\.minecraft\bin\916e-0825-4d69-4223\OpenAL64.dll
0x00007ffb4cfb0000 - 0x00007ffb4d035000 	C:\WINDOWS\System32\MMDevApi.dll
0x00007ffb1d660000 - 0x00007ffb1d6fc000 	C:\WINDOWS\SYSTEM32\dsound.dll
0x00007ffb386e0000 - 0x00007ffb38706000 	C:\WINDOWS\SYSTEM32\winmmbase.dll
0x00007ffb4d040000 - 0x00007ffb4d1c1000 	C:\WINDOWS\SYSTEM32\AUDIOSES.DLL
0x00007ffb58460000 - 0x00007ffb58474000 	C:\WINDOWS\SYSTEM32\resourcepolicyclient.dll
0x00007ffb35040000 - 0x00007ffb350dc000 	C:\Users\user\AppData\Roaming\.minecraft skyblock\discord-rpc.dll
0x00007ffb10500000 - 0x00007ffb108b8000 	C:\Users\user\AppData\Local\Temp\java-discord_game_sdk.dll11375962977100\discord_game_sdk.dll
0x00007ffb28f20000 - 0x00007ffb28f2b000 	C:\WINDOWS\SYSTEM32\ktmw32.dll
0x00000000387e0000 - 0x000000003880a000 	C:\Users\user\AppData\Local\Temp\java-discord_game_sdk_jni11376015334400\discord_game_sdk_jni.dll
0x000000004bc20000 - 0x000000004bc5b000 	C:\Users\user\AppData\Roaming\.minecraft skyblock\the5zigmod\native\jacob-x64.dll
0x00007ffb357c0000 - 0x00007ffb357d7000 	C:\Users\user\AppData\Roaming\.minecraft skyblock\the5zigmod\native\vcruntime140-x64.dll
0x00007ffb51690000 - 0x00007ffb516a0000 	C:\Users\user\AppData\Roaming\.minecraft skyblock\the5zigmod\native\razer64.dll
0x00007ffb3a560000 - 0x00007ffb3a579000 	C:\WINDOWS\SYSTEM32\VCRUNTIME140.dll

VM Arguments:
jvm_args: -Dos.name=Windows 10 -Dos.version=10.0 -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Djava.library.path=C:\Users\user\AppData\Roaming\.minecraft\bin\916e-0825-4d69-4223 -Dminecraft.launcher.brand=minecraft-launcher -Dminecraft.launcher.version=2.2.2529 -Dminecraft.client.jar=C:\Users\user\AppData\Roaming\.minecraft\versions\1.8.9\1.8.9.jar -Xmx4G -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:G1NewSizePercent=20 -XX:G1ReservePercent=20 -XX:MaxGCPauseMillis=50 -XX:G1HeapRegionSize=32M -Dlog4j.configurationFile=C:\Users\user\AppData\Roaming\.minecraft\assets\log_configs\client-1.7.xml 
java_command: net.minecraft.launchwrapper.Launch --username Throwpo --version 1.8.9-forge1.8.9-11.15.1.2318-1.8.9 --gameDir C:\Users\user\AppData\Roaming\.minecraft skyblock --assetsDir C:\Users\user\AppData\Roaming\.minecraft\assets --assetIndex 1.8 --uuid 53924f1a87e647098e53f1c7d13dc239 --accessToken eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI4NzJkODU1MWM0MTA2ZTQ4NWEyYWY0ODQ1ODJlMjE3NCIsInlnZ3QiOiI3MTdmOGRiNDc1YTA0MGI5ODFiNzE5ZmNlZmRiYmQxOCIsInNwciI6IjUzOTI0ZjFhODdlNjQ3MDk4ZTUzZjFjN2QxM2RjMjM5IiwiaXNzIjoiWWdnZHJhc2lsLUF1dGgiLCJleHAiOjE2MjAyMDYyOTEsImlhdCI6MTYyMDAzMzQ5MX0.k5sl9Tf2NxX3B4-KOFNLVkzR7nfRxlTYyH9X-X1TEvQ --userProperties {
	"preferredLanguage" : 
	[
		"en-us"
	],
	"registrationCountry" : 
	[
		"AU"
	]
} --userType mojang --tweakClass net.minecraftforge.fml.common.launcher.FMLTweaker --width 1920 --height 1080
java_class_path (initial): C:\Users\user\AppData\Roaming\.minecraft\libraries\net\minecraftforge\forge\1.8.9-11.15.1.2318-1.8.9\forge-1.8.9-11.15.1.2318-1.8.9.jar;C:\Users\user\AppData\Roaming\.minecraft\libraries\net\minecraft\launchwrapper\1.12\launchwrapper-1.12.jar;C:\Users\user\AppData\Roaming\.minecraft\libraries\org\ow2\asm\asm-all\5.0.3\asm-all-5.0.3.jar;C:\Users\user\AppData\Roaming\.minecraft\libraries\jline\jline\2.13\jline-2.13.jar;C:\Users\user\AppData\Roaming\.minecraft\libraries\com\typesafe\akka\akka-actor_2.11\2.3.3\akka-actor_2.11-2.3.3.jar;C:\Users\user\AppData\Roaming\.minecraft\libraries\com\typesafe\config\1.2.1\config-1.2.1.jar;C:\Users\user\AppData\Roaming\.minecraft\libraries\org\scala-lang\scala-actors-migration_2.11\1.1.0\scala-actors-migration_2.11-1.1.0.jar;C:\Users\user\AppData\Roaming\.minecraft\libraries\org\scala-lang\scala-compiler\2.11.1\scala-compiler-2.11.1.jar;C:\Users\user\AppData\Roaming\.minecraft\libraries\org\scala-lang\plugins\scala-continuations-library_2.11\1.0.2\scala-continuations-library_2.11-1.0.2.jar;C:\Users\user\AppData\Roaming\.minecraft\libraries\org\scala-lang\plugins\scala-continuations-plugin_2.11.1\1.0.2\scala-continuations-plugin_2.11.1-1.0.2.jar;C:\Users\user\AppData\Roaming\.minecraft\libraries\org\scala-lang\scala-library\2.11.1\scala-library-2.11.1.jar;C:\Users\user\AppData\Roaming\.minecraft\libraries\org\scala-lang\scala-parser-combinators_2.11\1.0.1\scala-parser-combinators_2.11-1.0.1.jar;C:\Users\user\AppData\Roaming\.minecraft\libraries\org\scala-lang\scala-reflect\2.11.1\scala-reflect-2.11.1.jar;C:\Users\user\AppData\Roaming\.minecraft\libraries\org\scala-lang\scala-swing_2.11\1.0.1\scala-swing_2.11-1.0.1.jar;C:\Users\user\AppData\Roaming\.minecraft\libraries\org\scala-lang\scala-xml_2.11\1.0.2\scala-xml_2.11-1.0.2.jar;C:\Users\user\AppData\Roaming\.minecraft\libraries\lzma\lzma\0.0.1\lzma-0.0.1.jar;C:\Users\user\AppData\Roaming\.minecraft\libraries\net\sf\jopt-simple\jopt-simpl
Launcher Type: SUN_STANDARD

Environment Variables:
PATH=C:\Program Files\AdoptOpenJDK\jdk-8.0.252.09-hotspot\bin;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\windows\system32;C:\windows;C:\windows\System32\Wbem;C:\windows\System32\WindowsPowerShell\v1.0\;C:\windows\System32\OpenSSH\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;D:\Documents\ForwardNotifier;C:\Program Files\dotnet\;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files (x86)\dotnet\;C:\Program Files\Git\cmd;C:\Program Files\nodejs\;C:\Users\user\AppData\Local\BCML\bin;C:\Users\user\AppData\Local\Microsoft\WindowsApps;C:\Users\user\AppData\Local\Microsoft\WindowsApps;C:\Users\user\AppData\Local\GitHubDesktop\bin;C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2020.1.3\bin;;C:\Users\user\.dotnet\tools;C:\Users\user\spicetify-cli;C:\Users\user\AppData\Roaming\npm
USERNAME=user
OS=Windows_NT
PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 158 Stepping 10, GenuineIntel



---------------  S Y S T E M  ---------------

OS: Windows 10.0 , 64 bit Build 19041 (10.0.19041.928)

CPU:total 12 (6 cores per cpu, 2 threads per core) family 6 model 158 stepping 10, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, avx, avx2, aes, clmul, erms, 3dnowpref, lzcnt, ht, tsc, tscinvbit, bmi1, bmi2, adx

Memory: 4k page, physical 16651328k(5425344k free), swap 26088512k(3970584k free)

vm_info: Java HotSpot(TM) 64-Bit Server VM (25.51-b03) for windows-amd64 JRE (1.8.0_51-b16), built on Jun  8 2015 18:03:07 by "java_re" with MS VC++ 10.0 (VS2010)

time: Mon May 03 22:06:54 2021
elapsed time: 10101 seconds (0d 2h 48m 21s)

Feature Request / Question

Hi,

Would it be possible to add lobby features or networking? I believe they're documented in the Game SDK documentation and would make life a lot easier. If this would take too much time, please could you point me in the direction of adding them - I have tried to compile the library on my own using the latest Game SDK, to no avail.

Thanks! :)

Invalid permissions response error and networking thing

hi i get this error

[ERROR] ResponseError { code: InvalidPermissions, message: "Not authenticated or invalid scope" }
[ERROR] ResponseError { code: UnknownError, message: "Request has been terminated\nPossible causes: the network is offline, Origin is not allowed by Access-Control-Allow-Origin, the page is being unloaded, etc." }
[ERROR] Failed to configure networking: ResponseError { code: UnknownError, message: "Request has been terminated\nPossible causes: the network is offline, Origin is not allowed by Access-Control-Allow-Origin, the page is being unloaded, etc." }

with this code

ublic class Main {
    static File file = null;
    static String path = "lib/rpc_lib/x86_64/discord_game_sdk.dll";

    public static void main(String[] args) {
        file = new File(path);
        Core.init(file);
        try(CreateParams params = new CreateParams()) {
            params.setClientID(1252977240413700137L);
            params.setFlags(CreateParams.getDefaultFlags());

            // Create the Core
            try (Core core = new Core(params))
            {
                try(Activity activity = new Activity())
                {
                    activity.setDetails("Running an example");
                    activity.setState("and having fun");

                    // Setting a start time causes an "elapsed" field to appear
                    activity.timestamps().setStart(Instant.now());

                    // We are in a party with 10 out of 100 people.
                    activity.party().size().setMaxSize(100);
                    activity.party().size().setCurrentSize(10);

                    // Make a "cool" image show up
                    activity.assets().setLargeImage("test");

                    // Setting a join secret and a party ID causes an "Ask to Join" button to appear
                    activity.party().setID("Party!");
                    activity.secrets().setJoinSecret("Join!");

                    // Finally, update the current activity to our activity
                    core.activityManager().updateActivity(activity);
                }

                while(true)
                {
                    core.runCallbacks();
                    try
                    {
                        // Sleep a bit to save CPU
                        Thread.sleep(16);
                    }
                    catch(InterruptedException e)
                    {
                        e.printStackTrace();
                    }
                }
            }
        }
    }
}

ive configured the discord application on the developer portal and i get a networking error i dont know where it came from please help

Relationship error (java-impl branch)

The user encountered the following error:

023.10.31 16:25:43 [DEV] Received string "{"cmd":"SUBSCRIBE","data":{"evt":"OVERLAY_UPDATE"},"evt":null,"nonce":"1"}" at state CONNECTED
2023.10.31 16:25:43 [DEBUG] Registered event OVERLAY_UPDATE
2023.10.31 16:25:43 [DEV] Received string "{"cmd":"DISPATCH","data":{"enabled":true,"locked":true},"evt":"OVERLAY_UPDATE","nonce":null}" at state CONNECTED
2023.10.31 16:25:43 [DEV] Received string "{"cmd":"SUBSCRIBE","data":{"evt":"VOICE_SETTINGS_UPDATE_2"},"evt":null,"nonce":"2"}" at state CONNECTED
2023.10.31 16:25:43 [DEBUG] Registered event VOICE_SETTINGS_UPDATE_2
2023.10.31 16:25:43 [DEV] Received string "{"cmd":"DISPATCH","data":{"input_mode":{"type":"VOICE_ACTIVITY","shortcut":"[object Undefined]"},"local_mutes":[],"local_volumes":{},"self_mute":false,"self_deaf":false},"evt":"VOICE_SETTINGS_UPDATE_2","nonce":null}" at state CONNECTED
2023.10.31 16:25:44 [DEV] Received string "{"cmd":"SUBSCRIBE","data":{"evt":"RELATIONSHIP_UPDATE"},"evt":null,"nonce":"3"}" at state CONNECTED
2023.10.31 16:25:44 [DEBUG] Registered event RELATIONSHIP_UPDATE
2023.10.31 16:25:44 [DEV] Received string "{"cmd":"GET_RELATIONSHIPS","data":{"code":4006,"message":"Not authenticated or invalid scope"},"evt":"ERROR","nonce":"4"}" at state CONNECTED
2023.10.31 16:25:44 [ERROR] java.lang.NullPointerException: Cannot invoke "java.util.List.iterator()" because the return value of "de.jcm.discordgamesdk.impl.commands.GetRelationships$Response.getRelationships()" is null
        at de.jcm.discordgamesdk.RelationshipManager.lambda$new$5(Unknown Source)
        at de.jcm.discordgamesdk.Core.handleCommand(Unknown Source)
        at de.jcm.discordgamesdk.Core.runCallbacks(Unknown Source)
        at MYCODE.run(Unknown Source)
        at java.base/java.lang.Thread.run(Thread.java:1583)

Failure completly kills application

I have added this library to a project of mine and for a user on Linux Mint he gets this error message (presumably german)

gio: discord:///library/1147927098497957940/launch: Der angegebene Ort wird nicht unterstรผtzt

Is it intentional for the whole application to get killed when this happens, I would assume RPC just would not connect/start/display while the application remains running but this just completly terminates Java

Discord was installed via Flatpack not sure if this makes a difference but adding this for context

Program closing unexpectedly when calling Core constructor

Basically the headline. I can execute Core.init() without any error, create the Params and everything just fine, and then I construct a new Core object. My program then exits, without calling finalize / shutdown hooks. Discord switches to the Games tab (where all your Games are listed). I didn't change any code that would interfere with Discord, I use the same code which has worked for a couple weeks now, but it failed just today. From debugging I found out that it probably crashes somewhere in the create() native method.

the code I use:

	String discordLibraryName;
	if(System.getProperty("os.name").toLowerCase().contains("windows"))
	{
		discordLibraryName = "discord_game_sdk.dll";
	}
	else
	{
		discordLibraryName = "discord_game_sdk.so";
	}
	Core.init(new File("libraries\\de\\jcm\\discordgamesdk\\natives\\" + discordLibraryName));
	
	CreateParams params = new CreateParams();
	params.setClientID(CLIENT_ID);
	params.setFlags(CreateParams.getDefaultFlags());
		
	core = new Core(params); // fails here
	
	Activity activity = new Activity();

	// set activity stuff (I removed this, there's actual code here)

	core.activityManager().updateActivity(activity);
	activity.close();

Activity Example fails with UnsatisfiedLinkError in de.jcm.discordgamesdk.CreateParams.allocate() on Apple Silicon Mac

When running the Activity example on my M1 Mac, the code fails at:

CreateParams params = new CreateParams();

Here is the error message:

Exception in thread "main" java.lang.UnsatisfiedLinkError: 'long de.jcm.discordgamesdk.CreateParams.allocate()'
	at de.jcm.discordgamesdk.CreateParams.allocate(Native Method)
	at de.jcm.discordgamesdk.CreateParams.<init>(CreateParams.java:83)
	at com.yesserstudios.Main.main(Main.java:13)

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':Main.main()'.
> Process 'command '/Library/Java/JavaVirtualMachines/jdk-17.0.1.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1

* Try:
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.
> Get more help at https://help.gradle.org.

* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':Main.main()'.
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.lambda$executeIfValid$1(ExecuteActionsTaskExecuter.java:148)
	at org.gradle.internal.Try$Failure.ifSuccessfulOrElse(Try.java:282)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:146)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:134)
	at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
	at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:51)
	at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
	at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:74)
	at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)
	at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:42)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:331)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:318)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.lambda$execute$0(DefaultTaskExecutionGraph.java:314)
	at org.gradle.internal.operations.CurrentBuildOperationRef.with(CurrentBuildOperationRef.java:80)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:314)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:303)
	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:463)
	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:380)
	at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
	at org.gradle.internal.concurrent.AbstractManagedExecutor$1.run(AbstractManagedExecutor.java:47)
Caused by: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk-17.0.1.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1
	at org.gradle.process.internal.DefaultExecHandle$ExecResultImpl.assertNormalExitValue(DefaultExecHandle.java:431)
	at org.gradle.process.internal.DefaultJavaExecAction.execute(DefaultJavaExecAction.java:52)
	at org.gradle.api.tasks.JavaExec.exec(JavaExec.java:165)
	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 org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:125)
	at org.gradle.api.internal.project.taskfactory.StandardTaskAction.doExecute(StandardTaskAction.java:58)
	at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:51)
	at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:29)
	at org.gradle.api.internal.tasks.execution.TaskExecution$3.run(TaskExecution.java:248)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:47)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:68)
	at org.gradle.api.internal.tasks.execution.TaskExecution.executeAction(TaskExecution.java:233)
	at org.gradle.api.internal.tasks.execution.TaskExecution.executeActions(TaskExecution.java:216)
	at org.gradle.api.internal.tasks.execution.TaskExecution.executeWithPreviousOutputFiles(TaskExecution.java:199)
	at org.gradle.api.internal.tasks.execution.TaskExecution.execute(TaskExecution.java:166)
	at org.gradle.internal.execution.steps.ExecuteStep.executeInternal(ExecuteStep.java:105)
	at org.gradle.internal.execution.steps.ExecuteStep.access$000(ExecuteStep.java:44)
	at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:59)
	at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:56)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73)
	at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:56)
	at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:44)
	at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:67)
	at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:37)
	at org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:41)
	at org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:74)
	at org.gradle.internal.execution.steps.TimeoutStep.execute(TimeoutStep.java:55)
	at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:50)
	at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:28)
	at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.executeDelegateBroadcastingChanges(CaptureStateAfterExecutionStep.java:100)
	at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.execute(CaptureStateAfterExecutionStep.java:72)
	at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.execute(CaptureStateAfterExecutionStep.java:50)
	at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:40)
	at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:29)
	at org.gradle.internal.execution.steps.BuildCacheStep.executeWithoutCache(BuildCacheStep.java:179)
	at org.gradle.internal.execution.steps.BuildCacheStep.lambda$execute$1(BuildCacheStep.java:70)
	at org.gradle.internal.Either$Right.fold(Either.java:175)
	at org.gradle.internal.execution.caching.CachingState.fold(CachingState.java:59)
	at org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:68)
	at org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:46)
	at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:36)
	at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:25)
	at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:36)
	at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:22)
	at org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:91)
	at org.gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$2(SkipUpToDateStep.java:55)
	at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:55)
	at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:37)
	at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:65)
	at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:36)
	at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:37)
	at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:27)
	at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:76)
	at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:37)
	at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:108)
	at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:55)
	at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:71)
	at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:45)
	at org.gradle.internal.execution.steps.SkipEmptyWorkStep.executeWithNonEmptySources(SkipEmptyWorkStep.java:177)
	at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:81)
	at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:53)
	at org.gradle.internal.execution.steps.RemoveUntrackedExecutionStateStep.execute(RemoveUntrackedExecutionStateStep.java:32)
	at org.gradle.internal.execution.steps.RemoveUntrackedExecutionStateStep.execute(RemoveUntrackedExecutionStateStep.java:21)
	at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsStartedStep.execute(MarkSnapshottingInputsStartedStep.java:38)
	at org.gradle.internal.execution.steps.LoadPreviousExecutionStateStep.execute(LoadPreviousExecutionStateStep.java:36)
	at org.gradle.internal.execution.steps.LoadPreviousExecutionStateStep.execute(LoadPreviousExecutionStateStep.java:23)
	at org.gradle.internal.execution.steps.CleanupStaleOutputsStep.execute(CleanupStaleOutputsStep.java:75)
	at org.gradle.internal.execution.steps.CleanupStaleOutputsStep.execute(CleanupStaleOutputsStep.java:41)
	at org.gradle.internal.execution.steps.ExecuteWorkBuildOperationFiringStep.lambda$execute$2(ExecuteWorkBuildOperationFiringStep.java:66)
	at org.gradle.internal.execution.steps.ExecuteWorkBuildOperationFiringStep.execute(ExecuteWorkBuildOperationFiringStep.java:66)
	at org.gradle.internal.execution.steps.ExecuteWorkBuildOperationFiringStep.execute(ExecuteWorkBuildOperationFiringStep.java:38)
	at org.gradle.internal.execution.steps.AssignWorkspaceStep.lambda$execute$0(AssignWorkspaceStep.java:32)
	at org.gradle.api.internal.tasks.execution.TaskExecution$4.withWorkspace(TaskExecution.java:293)
	at org.gradle.internal.execution.steps.AssignWorkspaceStep.execute(AssignWorkspaceStep.java:30)
	at org.gradle.internal.execution.steps.AssignWorkspaceStep.execute(AssignWorkspaceStep.java:21)
	at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:37)
	at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:27)
	at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:47)
	at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:34)
	at org.gradle.internal.execution.impl.DefaultExecutionEngine$1.execute(DefaultExecutionEngine.java:64)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:145)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:134)
	at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
	at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:51)
	at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
	at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:74)
	at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)
	at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:42)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:331)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:318)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.lambda$execute$0(DefaultTaskExecutionGraph.java:314)
	at org.gradle.internal.operations.CurrentBuildOperationRef.with(CurrentBuildOperationRef.java:80)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:314)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:303)
	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:463)
	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:380)
	at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
	at org.gradle.internal.concurrent.AbstractManagedExecutor$1.run(AbstractManagedExecutor.java:47)


BUILD FAILED in 1s
21:13:37: Execution finished ':Main.main() --stacktrace'.

Button Acitivity?

Can a button activity be implemented?
Here is an example
EDIT: I saw last merge commit on other branch(java-impl) but I can't seem to be able to run the activity example. I have correct ClientID the example crashes and goes into debug tab..
Here is my error log
error_log.txt
In it askes me to go to debug mode i say no and in discord i see it for 12 seconds and then it doesn't show anymore, for ppl its split second and then it also exits, the example is still running.. the main branch works but there is no button, also the button doesn't do anything when i click maybe im doing something wrong so its not functional but its there..

image

This button was created using CustomRP tool
image

Activity example

Core initializes successfully, Discord is open, code (just like in the example) executes without problems, but nothing happens in Discord. How can this be debugged in any way?

Discord SDK download returns 403

Hi,
I just started using this but quite quickly ran in to an issue, when I try to download the SDK from the discord servers it returns a 403, So I was wondering if I'm doing something wrong, there is a problem with the libary or there is a problem with discord.

I'm just using the example code for dowloading the SDK.

Starting the API? The read me says it packs the natives with the JAR, but Core.init requires the natives file.

Hello,

I need this API to set up a discord rich presence with my game. However, I can't even get your Activity example working the way I'd like it to.

  1. I managed to get it to download the natives with DownloadNativeLibrary, but it takes a few seconds and I don't want to make the player sit at a loading screen waiting for it to download. It's a single player game, so I don't want to work under the assumption their internet is fast or that the server DownloadNativeLibrary is connected to will be up/running quickly. So...

  2. I tried using the natives included with your release, but get this error when I used the natives I thought was the closest approximation to my machine. This is likely a user error and just me not having the full natives that I need, but here is the error I get:

DRPC: Start true Using Discord Library: windows-amd64-discord_game_sdk_jni.dll Exception in thread "main" java.lang.UnsatisfiedLinkError: D:\Projects\Eclipse Workspace\RobotFarm\RobotFarm\discord_natives\windows-amd64-discord_game_sdk_jni.dll: Can't find dependent libraries at java.base/jdk.internal.loader.NativeLibraries.load(Native Method) at java.base/jdk.internal.loader.NativeLibraries$NativeLibraryImpl.open(NativeLibraries.java:383) at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:227) at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:169) at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2383) at java.base/java.lang.Runtime.load0(Runtime.java:746) at java.base/java.lang.System.load(System.java:1857) at de.jcm.discordgamesdk.Core.init(Core.java:58) at com.nokoriware.robotfarm.util.DiscordRichPresence.start(DiscordRichPresence.java:51) at com.nokoriware.robotfarm.test.DiscordTest.main(DiscordTest.java:13)

  1. Your readme says I shouldnt even need to keep track of the natives anyway since they're packaged with the JAR. However, there's not a version of Core.init() that doesn't require you to pass the files in, and on top of that, letting the API handle it automatically doesn't seem to be documented since all of your examples use download natives anyway.

So basically, I'm going to try and hook up the natives included in the file that DownloadNativeLibrary uses. But my issue comes down to these points:

  1. I think you should maybe update your readme/release to explain a bit better how to hook up the natives locally. It seems that the natives included in the release aren't the ones you actually need. You should include a download link somewhere for the correctones.

  2. Update the readme/examples to show how to load the natives automatically if they are included in the JAR and if this is an option.

I'm using the release version of the API and hooking the JAR up in my build path manually.

I appreciate the examples, but some more detailed documentation on using this for RPC would be helpful.

Thanks!

Branch: `java-impl`, `activity.setType(ActivityType.LISTENING);` not working?

Description

When running my application with the provided code, the Discord Rich Presence displays "Playing a game" instead of "Listening to ___" ๐Ÿ˜ž .

Steps to Reproduce

  1. Run the application with the provided code.
  2. Check the Discord Rich Presence.

Expected Behavior

The Discord Rich Presence should display "Listening to ___".

image

Actual Behavior

The Discord Rich Presence shows "Playing a game" instead of "Listening to ___".

image

Environment

  • Operating System: Windows 11 Pro - Version: 10.0.22621 Build 22621
  • Java Version: Eclipse Temurin version 17.0.6
  • Discord App Version: Stable 215527 (6c9cf7e) Host 1.0.9015 (34898) Windows 10 64-Bit (10.0.22621)

Code

package org.spotify_podcast_rpc;

import de.jcm.discordgamesdk.Core;
import de.jcm.discordgamesdk.CreateParams;
import de.jcm.discordgamesdk.activity.Activity;
import de.jcm.discordgamesdk.activity.ActivityType;

import java.io.IOException;
import java.time.Instant;

public class DiscordSpotifyRPC {

	public static void main(String[] args) throws IOException {
		// Set parameters for the Core
		try (CreateParams params = new CreateParams()) {
			params.setClientID(1134114693468934164L);
			params.setFlags(CreateParams.getDefaultFlags());
			// Create the Core
			try (Core core = new Core(params)) {
				// Create the Activity
				try (Activity activity = new Activity()) {
					activity.setDetails("Listening to Spotify");
					activity.setState("Song/Podcast Name");

					// Set the activity type to "Listening"
					activity.setType(ActivityType.LISTENING);

					// Setting a start time causes an "elapsed" field to appear
					activity.timestamps().setStart(Instant.now());

					// Make a "cool" image show up
					activity.assets().setLargeImage("test");

					// Setting a join secret and a party ID causes an "Ask to Join" button to appear
					activity.party().setID("Party!");
					activity.secrets().setJoinSecret("Join!");

					// Finally, update the current activity to our activity
					core.activityManager().updateActivity(activity);
				}

				// Run callbacks until the application is terminated
				while (!Thread.interrupted()) {
					core.runCallbacks();
				}
			}
		}
	}
}

Support Windows x32 and MacOS

Hey. Is it possible to add support for Windows x32 and macOS?
DiscordGame SDK provides libraries for these systems

Manual unpack .dll/.so

Hey. Can I manual unpack jni .dll/.so library without reflection? I using following code:

		System.load(pathToDiscordSdkLib.toAbsolutePath().toString());
		System.load(pathToLib.toAbsolutePath().toString());
        try {
            Method method = Core.class.getDeclaredMethod("initDiscordNative", String.class);
            method.setAccessible(true);
            method.invoke(null, pathToDiscordSdkLib.toAbsolutePath().toString());
        } catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException e) {
            throw new RuntimeException(e);
        }

My code unpack dll and so to custom location and check checksum. Using Core.init currently not possible.

UnsatisfiedLinkError when using ActivityExample.java

My code

public static void main(String[] args) {
        try(CreateParams params = new CreateParams())
        {
            params.setClientID(1212137405386064023L);
            params.setFlags(CreateParams.getDefaultFlags());
            // Create the Core
            try(Core core = new Core(params))
            {
                // Create the Activity
                try(Activity activity = new Activity())
                {
                    activity.setDetails("Running an example");
                    activity.setState("and having fun");

                    // Setting a start time causes an "elapsed" field to appear
                    activity.timestamps().setStart(Instant.now());

                    // We are in a party with 10 out of 100 people.
                    activity.party().size().setMaxSize(100);
                    activity.party().size().setCurrentSize(10);

                    // Make a "cool" image show up
                    activity.assets().setLargeImage("test");

                    // Setting a join secret and a party ID causes an "Ask to Join" button to appear
                    activity.party().setID("Party!");
                    activity.secrets().setJoinSecret("Join!");

                    // Finally, update the current activity to our activity
                    core.activityManager().updateActivity(activity);
                }

                // Run callbacks forever
                while(true)
                {
                    core.runCallbacks();
                    try
                    {
                        // Sleep a bit to save CPU
                        Thread.sleep(16);
                    }
                    catch(InterruptedException e)
                    {
                        e.printStackTrace();
                    }
                }
            }
        }
    }

Exception

Exception in thread "main" java.lang.UnsatisfiedLinkError: 'long de.jcm.discordgamesdk.CreateParams.allocate()'
	at de.jcm.discordgamesdk.CreateParams.allocate(Native Method)
	at de.jcm.discordgamesdk.CreateParams.<init>(CreateParams.java:83)
	at org.example.Main.main(Main.java:12)

Temp folder does not delete on Exit

When using the Core.initDownload() method, the files downloaded to the temporary directory are not deleted when the application quits, despite the code suggesting that they should be deleted. The relevant code snippet is as follows:

// Create a new temporary directory
// We need to do this, because we may not change the filename on Windows
File tempDir = new File(System.getProperty("java.io.tmpdir"), "java-"+name+System.nanoTime());
if(!tempDir.mkdir())
throw new IOException("Cannot create temporary directory");
tempDir.deleteOnExit();

// Create a temporary file inside our directory (with a "normal" name)
File temp = new File(tempDir, name+suffix);
temp.deleteOnExit();

Ask to join doesn't work

Invitations work, but the "Ask to join" button does not work

Code:

public static void init() {
    File discordLibrary = downloadDiscordLib();

    Core.init(discordLibrary);

    CreateParams params = new CreateParams();
    params.setClientID(Long.parseLong(Global.DISCORD_APP_ID));
    params.setFlags(CreateParams.getDefaultFlags());

    params.registerEventHandler(new DiscordEventAdapter() {
        @Override
        public void onActivityJoinRequest(DiscordUser user) {
            super.onActivityJoinRequest(user);
            System.out.println(user); // Does work
        }
    });

    Activity activity = new Activity();

    activity.setDetails("Hello");
    activity.setState("world");

    activity.timestamps().setStart(Instant.now());

    activity.party().size().setMaxSize(100);
    activity.party().size().setCurrentSize(1);

    activity.assets().setLargeImage("logo");

    activity.party().setID("Party");
    activity.secrets().setJoinSecret("Join");

    Core core = new Core(params);
    core.activityManager().updateActivity(activity);

    while (true) {
        core.runCallbacks();

        try {
            Thread.sleep(16);
        } catch(InterruptedException e) {
            e.printStackTrace();
        }
    }
}

Can't create instance of Core with SDK as resource

So I'm packaging the Discord Game SDK within the resources of a Minecraft mod so that I can have custom rich presence for the game. However, creating an instance of Core requires a File, which is not possible since one cannot be created for a JAR resource. It's fine when testing within the IDE, but not for a built JAR.

It'd be great if this could be changed to accommodate both a file on the file system or a JAR resource if possible please.

The exception I see is (omitting irrelevant lines):

java.lang.IllegalArgumentException: URI scheme is not "file"
	at java.io.File.<init>(File.java:421) ~[?:1.8.0_51]

With code that looks like this:

URL url = this.getClass().getClassLoader().getResource("discord_game_sdk/lib/x86_64/discord_game_sdk.dll");
try {
	Core.init(new File(url.toURI()));
} catch (Exception e) {
	e.printStackTrace();
	return;
}

And the exception would be thrown at the line: Core.init(new File(url.toURI()));.

Not having discord open crashes application

If you kill discord in task manager and proceed to run an application with rich presence the program will crash when calling params.setFlags(CreateParams.getDefaultFlags());. There is no stack trace so I assume this is meant to be this way? I'm mainly worried about people who don't have discord not being able to run my application

Discord occasionally fails to send invite

I don't know what's causing it, I have no clue if it's me or some weird syncing issue, but sometimes the SDK or the RPC server fails to process an invite.

When I try to invite someone in an activity I occasionally get a Unknown or Internal error from both the SDK and the RPC server + a Invalid Activity Action error with code 50039 on the Discord app's console.

Discord console error:

97e6fa2โ€ฆ.js:136 POST https://ptb.discord.com/api/v9/channels/579002871647830026/messages 400
97e6fa2โ€ฆ.js:137 [RPCServer:IPC] Socket Emit: 160 
{cmd: "ACTIVITY_INVITE_USER", data: {โ€ฆ}, evt: "ERROR", nonce: "78"}
cmd: "ACTIVITY_INVITE_USER"
data:
code: 1000
message: "Unknown Error"
__proto__: Object
evt: "ERROR"
nonce: "78"
__proto__: Object
9b2b7f0โ€ฆ.js:348 Uncaught (in promise) 
{ok: false, headers: {โ€ฆ}, body: {โ€ฆ}, text: "{\"message\": \"Invalid Activity Action\", \"code\": 50039}", status: 400}
body: {message: "Invalid Activity Action", code: 50039}
headers:
access-control-allow-credentials: "true"
access-control-allow-headers: "Content-Type, Authorization, X-Audit-Log-Reason, X-Track, X-Super-Properties, X-Context-Properties, X-Failed-Requests, X-Fingerprint, X-RPC-Proxy, X-Debug-Options, x-client-trace-id, If-None-Match, Range, X-RateLimit-Precision"
access-control-allow-methods: "POST, GET, PUT, PATCH, DELETE"
access-control-allow-origin: "https://ptb.discord.com"
alt-svc: "h3=\":443\"; ma=86400, h3-29=\":443\"; ma=86400, h3-28=\":443\"; ma=86400, h3-27=\":443\"; ma=86400"
cf-cache-status: "DYNAMIC"
cf-ray: "69140de86fda0e1a-MXP"
content-length: "53"
content-type: "application/json"
date: "Sun, 19 Sep 2021 16:05:13 GMT"
expect-ct: "max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""
nel: "{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}"
report-to: "{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v3?s=rXwBkjxOpAAeSBdAIPkjXI0TrKYEggqB1dE7KcQ18nru%2Bfgi0LwmECstr%2FCJYQUELAL%2BwGAFdWABgxcW7XINKQW9oxLtNt9i1t6R0J23%2B3JIxb%2F%2B6pqRKbFU4btME5Yabg%3D%3D\"}],\"group\":\"cf-nel\",\"max_age\":604800}"
server: "cloudflare"
strict-transport-security: "max-age=31536000; includeSubDomains; preload"
via: "1.1 google"
x-content-type-options: "nosniff"
x-envoy-upstream-service-time: "39"
__proto__: Object
ok: false
status: 400
text: "{\"message\": \"Invalid Activity Action\", \"code\": 50039}"
__proto__: Object

GameSDK Exception:

[de.jcm.discordgamesdk.Core] [ERROR] ResponseError { code: UnknownError, message: "Unknown Error" }
[STDERR]: de.jcm.discordgamesdk.GameSDKException: Game SDK operation failed: INTERNAL_ERROR
[STDERR]: 	at de.jcm.discordgamesdk.Core.lambda$static$0(Core.java:130)
[STDERR]: 	at de.jcm.discordgamesdk.Core.runCallbacks(Native Method)
[STDERR]: 	at de.jcm.discordgamesdk.Core.lambda$runCallbacks$2(Core.java:330)
[STDERR]: 	at de.jcm.discordgamesdk.Core.lambda$execute$4(Core.java:385)
[STDERR]: 	at de.jcm.discordgamesdk.Core.execute(Core.java:398)
[STDERR]: 	at de.jcm.discordgamesdk.Core.execute(Core.java:383)
[STDERR]: 	at de.jcm.discordgamesdk.Core.runCallbacks(Core.java:330)

Discord Rich Presence Activity Payload:

RichPresence[largeImageID=the_crown, largeImageText=The Crown, smallImageID=verified_icon, smallImageText=, details=Playing on The Crown, state=in the Hub, currentPlayers=1, maxPlayers=500, partyID=testIdk, joinSecret=[there's a numeric ip + port here that I have to censor]-test, spectateSecret=spec:[there's a numeric ip + port here that I have to censor]-test, matchSecret=, inInstance=true]

(the party ID is not the issue, I tried with a UUID before that)

I'm trying to make a Minecraft Discord Integration if more context is needed.

Thanks in advance!

macOS libraries

Soooo, as requested in #19, I finally managed to make a version for Mac OS.

But I don't really have the time to test it throughly, so it would be really nice if someone, who is more familiar with Mac OS and other than me likes to use it, could test it a little (in the best case in combination with their own projects) before I make the release.

You can find the relevant artifacts in this archive:
target.zip

As said, it would be very much appreicated if someone could test this a little and report any issues occuring.

Failed to configure networking: ResponseError { code: TransactionAborted, message: "Transaction was aborted" }

My Discord is running

Logs:

[ERROR] Failed to configure networking: ResponseError { code: TransactionAborted, message: "Transaction was aborted" }
de.jcm.discordgamesdk.GameSDKException: Game SDK operation failed: TRANSACTION_ABORTED
	at de.jcm.discordgamesdk.Core.lambda$static$0(Core.java:386)
	at de.jcm.discordgamesdk.Core.destroy(Native Method)
	at de.jcm.discordgamesdk.Core.close(Core.java:628)
	at xxAROX.PresenceMan.Application.Bootstrap.lambda$main$0(Bootstrap.java:24)
	at java.base/java.lang.Thread.run(Thread.java:833)

My code:

Bootstrap.java

public static void main(String[] args) {
        new App();
        new Thread(() -> {
            try {
                Core.initDownload();
                try (CreateParams params = new CreateParams()) {
                    params.setClientID(AppInfo.discord_application_id);
                    params.setFlags(CreateParams.getDefaultFlags());
                    try (Core core = new Core(params)) {
                        App.setDiscordCreateParams(params);
                        App.setDiscordCore(core);
                        System.out.println("Discord is initialized!");
                        while (true) {
                            if (core.isOpen()) App.getDiscord_core().runCallbacks();
                            try {
                                Thread.sleep(16);
                            } catch (InterruptedException e) {
                                e.printStackTrace();
                            }
                        }
                    } catch (GameSDKException e) {
                        e.printStackTrace();
                    }
                }
            } catch (Throwable e) {
                e.printStackTrace();
            }
        }).start();
    }

App.java:

    public static void setDiscordCore(Core discord_core) {
        App.discord_core = discord_core;
        discord_core.activityManager().updateActivity(APIActivity.none().toDiscord());
        for (Consumer<Core> discord_core_listener : discordInitHandlers) discord_core_listener.accept(discord_core);
    }

    public static void setDiscordCreateParams(CreateParams discord_create_params) {
        App.discord_create_params = discord_create_params;
    }

ApiActivity.java

    public Activity toDiscord() {
        Activity activity = new Activity();
        activity.setType(type.toDiscordType());
        activity.setState(network != null ? network : "");
        activity.setDetails(server != null ? server : "");
        if (start != null) activity.timestamps().setStart(Instant.ofEpochMilli(start));
        if (end != null) activity.timestamps().setEnd(Instant.ofEpochMilli(end));
        if (large_icon_key != null) activity.assets().setLargeImage(large_icon_key);
        if (large_icon_text != null) activity.assets().setLargeText(large_icon_text);
        if (small_icon_key != null) activity.assets().setSmallImage(small_icon_key);
        if (small_icon_text != null) activity.assets().setSmallText(small_icon_text);
        if (party_player_count != null) activity.party().size().setCurrentSize(party_player_count);
        if (party_max_player_count != null) activity.party().size().setMaxSize(party_max_player_count);
        return activity;
    }

    public static APIActivity none() {
        var activity = new APIActivity();
        activity.setState("");
        activity.setDetails("");
        activity.setLarge_icon_key("launcher");
        activity.setStart(Instant.now().toEpochMilli());
        return activity;
    }

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.