aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/kr
diff options
context:
space:
mode:
authorsyeyoung <cyong06@naver.com>2021-08-08 22:45:20 +0900
committersyeyoung <cyong06@naver.com>2021-08-08 22:45:20 +0900
commitdb58612b03889d5911c99f5b3878b31f9b4f9e92 (patch)
treedc11f6af1fa070baba7eb6351052d4f8d95e76ea /src/main/java/kr
parenteaaac61857654f7f629fa9ada669f40301009e31 (diff)
downloadSkyblock-Dungeons-Guide-db58612b03889d5911c99f5b3878b31f9b4f9e92.tar.gz
Skyblock-Dungeons-Guide-db58612b03889d5911c99f5b3878b31f9b4f9e92.tar.bz2
Skyblock-Dungeons-Guide-db58612b03889d5911c99f5b3878b31f9b4f9e92.zip
- Field Orders
Diffstat (limited to 'src/main/java/kr')
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/RichPresenceManager.java208
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordActivity.java9
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordActivityAssets.java8
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordActivityParty.java8
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordActivitySecrets.java8
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordActivityTimestamps.java8
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordCreateParams.java11
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordEntitlement.java8
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordFileStat.java8
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordImageDimensions.java8
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordImageHandle.java8
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordInputMode.java8
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordLobby.java8
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordOAuth2Token.java8
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordPartySize.java8
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordPresence.java8
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordRelationship.java8
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordSku.java8
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordSkuPrice.java8
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordUser.java8
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordUserAchievement.java8
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/interfacestruct/IDiscordAchievementEvents.java5
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/interfacestruct/IDiscordAchievementManager.java5
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/interfacestruct/IDiscordActivityEvents.java5
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/interfacestruct/IDiscordActivityManager.java5
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/interfacestruct/IDiscordApplicationManager.java5
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/interfacestruct/IDiscordCore.java5
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/interfacestruct/IDiscordImageManager.java5
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/interfacestruct/IDiscordLobbyEvents.java6
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/interfacestruct/IDiscordLobbyManager.java5
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/interfacestruct/IDiscordLobbyMemberTransaction.java5
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/interfacestruct/IDiscordLobbySearchQuery.java5
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/interfacestruct/IDiscordLobbyTransaction.java5
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/interfacestruct/IDiscordNetworkEvents.java5
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/interfacestruct/IDiscordNetworkManager.java5
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/interfacestruct/IDiscordOverlayEvents.java5
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/interfacestruct/IDiscordOverlayManager.java5
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/interfacestruct/IDiscordRelationshipEvents.java5
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/interfacestruct/IDiscordRelationshipManager.java5
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/interfacestruct/IDiscordStorageManager.java6
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/interfacestruct/IDiscordStoreEvents.java6
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/interfacestruct/IDiscordStoreManager.java5
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/interfacestruct/IDiscordUserEvents.java5
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/interfacestruct/IDiscordUserManager.java4
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/interfacestruct/IDiscordVoiceEvents.java6
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/interfacestruct/IDiscordVoiceManager.java6
46 files changed, 423 insertions, 78 deletions
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/RichPresenceManager.java b/src/main/java/kr/syeyoung/dungeonsguide/RichPresenceManager.java
index abecd8a7..08d5a898 100644
--- a/src/main/java/kr/syeyoung/dungeonsguide/RichPresenceManager.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/RichPresenceManager.java
@@ -18,15 +18,31 @@
package kr.syeyoung.dungeonsguide;
+import com.sun.jna.Pointer;
+import com.sun.jna.ptr.PointerByReference;
import kr.syeyoung.dungeonsguide.dungeon.DungeonContext;
import kr.syeyoung.dungeonsguide.events.SkyblockJoinedEvent;
import kr.syeyoung.dungeonsguide.events.SkyblockLeftEvent;
import kr.syeyoung.dungeonsguide.features.FeatureRegistry;
+import kr.syeyoung.dungeonsguide.gamesdk.GameSDK;
+import kr.syeyoung.dungeonsguide.gamesdk.jna.NativeGameSDK;
+import kr.syeyoung.dungeonsguide.gamesdk.jna.datastruct.*;
+import kr.syeyoung.dungeonsguide.gamesdk.jna.enumuration.EDiscordActivityActionType;
+import kr.syeyoung.dungeonsguide.gamesdk.jna.enumuration.EDiscordLogLevel;
+import kr.syeyoung.dungeonsguide.gamesdk.jna.enumuration.EDiscordResult;
+import kr.syeyoung.dungeonsguide.gamesdk.jna.interfacestruct.IDiscordActivityEvents;
+import kr.syeyoung.dungeonsguide.gamesdk.jna.interfacestruct.IDiscordActivityManager;
+import kr.syeyoung.dungeonsguide.gamesdk.jna.interfacestruct.IDiscordCore;
+import kr.syeyoung.dungeonsguide.gamesdk.jna.typedef.DiscordClientID;
+import kr.syeyoung.dungeonsguide.gamesdk.jna.typedef.DiscordTimestamp;
+import kr.syeyoung.dungeonsguide.gamesdk.jna.typedef.DiscordVersion;
+import kr.syeyoung.dungeonsguide.gamesdk.jna.typedef.Int32;
import kr.syeyoung.dungeonsguide.party.PartyInviteViewer;
import kr.syeyoung.dungeonsguide.party.PartyJoinRequest;
import kr.syeyoung.dungeonsguide.party.PartyManager;
import kr.syeyoung.dungeonsguide.stomp.StompHeader;
import kr.syeyoung.dungeonsguide.stomp.StompPayload;
+import lombok.Getter;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.fml.common.gameevent.TickEvent;
import org.json.JSONObject;
@@ -35,99 +51,135 @@ public class RichPresenceManager implements Runnable {
public static RichPresenceManager INSTANCE = new RichPresenceManager();
private Thread t = new Thread(this);
-
public RichPresenceManager() {
t.start();
-// Runtime.getRuntime().addShutdownHook(new Thread(DiscordRPC::discordShutdown));
}
- public void setup() {
-// DiscordRPC.discordInitialize("816298079732498473", new DiscordEventHandlers.Builder()
-// .setReadyEventHandler(new ReadyCallback() {
-// @Override
-// public void apply(DiscordUser user) {
-// updatePresence();
-// }
-// }).setJoinRequestEventHandler(request -> {
-// PartyJoinRequest partyJoinRequest = new PartyJoinRequest();
-// partyJoinRequest.setDiscordUser(request);
-// partyJoinRequest.setExpire(System.currentTimeMillis() + 30000);
-//
-// PartyInviteViewer.INSTANCE.joinRequests.add(partyJoinRequest);
-// }).setJoinGameEventHandler(joinSecret -> {
-// DungeonsGuide.getDungeonsGuide().getStompConnection().send(new StompPayload().method(StompHeader.SEND)
-// .header("destination", "/app/party.askedtojoin")
-// .payload(new JSONObject().put("token", joinSecret).toString()));
-// }).setErroredEventHandler((errorCode, message) -> {
-// System.out.println("ERROR! "+errorCode+ " - "+message);
-// t.interrupt();
-// (t = new Thread(this)).start();
-// }).setDisconnectedEventHandler((errorCode, message) -> {
-// System.out.println("ERROR! "+errorCode+ " - "+message);
-// t.interrupt();
-// (t = new Thread(this)).start();
-// }).build(), true);
+ @Getter
+ private NativeGameSDK nativeGameSDK;
+ @Getter
+ private IDiscordCore iDiscordCore;
+ private IDiscordActivityManager activityManager;
+ private IDiscordActivityEvents.ByReference callbacks;
+
+ @Getter
+ private boolean setupSuccessful = false;
+ public boolean setup() {
+ nativeGameSDK = GameSDK.getNativeGameSDK();
+ if (nativeGameSDK == null) return false;
+ DiscordCreateParams discordCreateParams = new DiscordCreateParams();
+ discordCreateParams.client_id = new DiscordClientID(816298079732498473L);
+
+ callbacks = new IDiscordActivityEvents.ByReference();
+ callbacks.OnActivityInvite = (eventData, type, user, activity) -> {
+
+ };
+ callbacks.OnActivityJoin = (eventData, secret) -> DungeonsGuide.getDungeonsGuide().getStompConnection().send(new StompPayload().method(StompHeader.SEND)
+ .header("destination", "/app/party.askedtojoin")
+ .payload(new JSONObject().put("token", secret).toString()));
+ callbacks.OnActivityJoinRequest = (eventData, user) -> {
+ PartyJoinRequest partyJoinRequest = new PartyJoinRequest();
+ partyJoinRequest.setDiscordUser(user);
+ partyJoinRequest.setExpire(System.currentTimeMillis() + 30000);
+
+ PartyInviteViewer.INSTANCE.joinRequests.add(partyJoinRequest);
+ };
+ callbacks.OnActivitySpectate = (eventData, secret) -> {
+
+ };
+ callbacks.write();
+ discordCreateParams.activity_events = callbacks;
+
+ PointerByReference pointerByReference = new PointerByReference();
+ nativeGameSDK.DiscordCreate(new DiscordVersion(NativeGameSDK.DISCORD_VERSION), discordCreateParams, pointerByReference);
+ if (pointerByReference.getValue() == Pointer.NULL) return false;
+ iDiscordCore = new IDiscordCore(pointerByReference.getValue());
+
+ iDiscordCore.SetLogHook.setLogHook(iDiscordCore, EDiscordLogLevel.DiscordLogLevel_Debug, Pointer.NULL, new IDiscordCore.LogHook() {
+ @Override
+ public void hook(Pointer hookData, EDiscordLogLevel level, String message) {
+ System.out.println(message+" - "+level+" - "+hookData);
+ }
+ });
+
+ activityManager = iDiscordCore.GetActivityManager.getActivityManager(iDiscordCore);
+ latestDiscordActivity = new DiscordActivity();
+ latestDiscordActivity.assets = new DiscordActivityAssets();
+ GameSDK.writeString(latestDiscordActivity.assets.large_image, "mort");
+ GameSDK.writeString(latestDiscordActivity.assets.large_text, "mort");
+ return true;
}
private final SkyblockStatus skyblockStatus = DungeonsGuide.getDungeonsGuide().getSkyblockStatus();
+ private DiscordActivity latestDiscordActivity;
public void updatePresence() {
-// if (!skyblockStatus.isOnHypixel() || !FeatureRegistry.ADVANCED_RICHPRESENCE.isEnabled() || (!skyblockStatus.isOnSkyblock() && FeatureRegistry.ADVANCED_RICHPRESENCE.<Boolean>getParameter("disablenotskyblock").getValue())) {
-// DiscordRPC.discordClearPresence();
-// } else {
-// String name = skyblockStatus.getDungeonName();
-// if (name.trim().equals("Your Island")) name = "Private Island";
-// DiscordRichPresence.Builder richPresenceBuilder = new DiscordRichPresence.Builder(name);
-// richPresenceBuilder.setBigImage("mort", "mort")
-// .setParty(PartyManager.INSTANCE.getPartyID(), PartyManager.INSTANCE.getMemberCount(), PartyManager.INSTANCE.getMaxParty());
-//
-// if (skyblockStatus.getContext() != null) {
-// DungeonContext dungeonContext = skyblockStatus.getContext();
-// long init = dungeonContext.getInit();
-// richPresenceBuilder.setStartTimestamps(init);
-//
-// if (dungeonContext.getBossfightProcessor() != null) {
-// richPresenceBuilder.setDetails("Fighting "+dungeonContext.getBossfightProcessor().getBossName()+": "+dungeonContext.getBossfightProcessor().getCurrentPhase());
-// } else {
-// richPresenceBuilder.setDetails("Clearing rooms");
-// }
-// }
-// if (PartyManager.INSTANCE.isAllowAskToJoin())
-// richPresenceBuilder.setSecrets(PartyManager.INSTANCE.getAskToJoinSecret(), null);
-// richPresenceBuilder.setDetails("Dungeons Guide");
-// DiscordRPC.discordUpdatePresence(richPresenceBuilder.build());
-// }
- }
+ if (!skyblockStatus.isOnHypixel() || !FeatureRegistry.ADVANCED_RICHPRESENCE.isEnabled() || (!skyblockStatus.isOnSkyblock() && FeatureRegistry.ADVANCED_RICHPRESENCE.<Boolean>getParameter("disablenotskyblock").getValue())) {
+ activityManager.ClearActivity.clearActivity(activityManager, Pointer.NULL, new NativeGameSDK.DiscordCallback() {
+ @Override
+ public void callback(Pointer callbackData, EDiscordResult result) {
+ System.out.println("Discord Returned "+result+" For Clearing RPC");
+ }
+ });
+ } else {
+ String name = skyblockStatus.getDungeonName();
+ if (name.trim().equals("Your Island")) name = "Private Island";
+ GameSDK.writeString(latestDiscordActivity.state, name);
- @SubscribeEvent
- public void joinSkyblock(SkyblockJoinedEvent skyblockJoinedEvent) {
- updatePresence();
- }
- @SubscribeEvent
- public void leaveSkyblock(SkyblockLeftEvent skyblockLeftEvent) {
- updatePresence();
- }
- private String lastLoc = "";
+ if (PartyManager.INSTANCE.getPartyID() != null) {
+ if (latestDiscordActivity.party == null) latestDiscordActivity.party = new DiscordActivityParty();
+ GameSDK.writeString(latestDiscordActivity.party.id, PartyManager.INSTANCE.getPartyID());
+ if (latestDiscordActivity.party.discordActivityParty == null) latestDiscordActivity.party.discordActivityParty = new DiscordPartySize();
+ latestDiscordActivity.party.discordActivityParty.current_size = new Int32(PartyManager.INSTANCE.getMemberCount());
+ latestDiscordActivity.party.discordActivityParty.max_size = new Int32(PartyManager.INSTANCE.getMaxParty());
+ } else {
+ latestDiscordActivity.party = null;
+ }
+ GameSDK.writeString(latestDiscordActivity.state, name);
+ if (skyblockStatus.getContext() != null) {
+ DungeonContext dungeonContext = skyblockStatus.getContext();
+ long init = dungeonContext.getInit();
+ if (latestDiscordActivity.timestamps == null)
+ latestDiscordActivity.timestamps = new DiscordActivityTimestamps();
+ latestDiscordActivity.timestamps.start = new DiscordTimestamp(init);
- @SubscribeEvent
- public void tick(TickEvent.ClientTickEvent clientTickEvent) {
+ if (dungeonContext.getBossfightProcessor() != null) {
+ GameSDK.writeString(latestDiscordActivity.details, "Fighting "+dungeonContext.getBossfightProcessor().getBossName()+": "+dungeonContext.getBossfightProcessor().getCurrentPhase());
+ } else {
+ GameSDK.writeString(latestDiscordActivity.details, "Clearing Rooms");
+ }
+ } else {
+ latestDiscordActivity.timestamps = null;
+ GameSDK.writeString(latestDiscordActivity.details, "Dungeons Guide");
+ }
+ if (PartyManager.INSTANCE.isAllowAskToJoin()) {
+ if (latestDiscordActivity.secrets == null)
+ latestDiscordActivity.secrets = new DiscordActivitySecrets();
+ GameSDK.writeString(latestDiscordActivity.secrets.join, PartyManager.INSTANCE.getAskToJoinSecret());
+ } else {
+ latestDiscordActivity.secrets = null;
+ }
+ activityManager.UpdateActivity.updateActivity(activityManager, latestDiscordActivity, Pointer.NULL, new NativeGameSDK.DiscordCallback() {
+ @Override
+ public void callback(Pointer callbackData, EDiscordResult result) {
+ System.out.println("Discord Returned "+result+" For Setting new RPC");
+ }
+ });
+ }
}
+
@Override
public void run() {
-
-// try {
-// Thread.sleep(300L);
-// setup();
-// while(!Thread.interrupted()) {
-// DiscordRPC.discordRunCallbacks();
-// if (skyblockStatus.isOnSkyblock() && !lastLoc.equalsIgnoreCase(skyblockStatus.getDungeonName())) {
-// lastLoc = skyblockStatus.getDungeonName()+"";
-// }
-// updatePresence();
-// Thread.sleep(300L);
-// }
-// } catch (Exception e) {e.printStackTrace();}
+ setupSuccessful = setup();
+ if (!setupSuccessful) return;
+ while(!Thread.interrupted()) {
+ iDiscordCore.RunCallbacks.runCallbacks(iDiscordCore);
+ updatePresence();
+ try {
+ Thread.sleep(300L);
+ } catch (Exception e) {e.printStackTrace();}
+ }
}
}
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordActivity.java b/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordActivity.java
index 3b6951a2..d257b414 100644
--- a/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordActivity.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordActivity.java
@@ -23,6 +23,10 @@ import com.sun.jna.Structure;
import kr.syeyoung.dungeonsguide.gamesdk.jna.enumuration.EDiscordActivityType;
import kr.syeyoung.dungeonsguide.gamesdk.jna.typedef.Int64;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
public class DiscordActivity extends DiscordStruct {
public EDiscordActivityType activityType = EDiscordActivityType.DiscordActivityType_Playing;
@@ -39,4 +43,9 @@ public class DiscordActivity extends DiscordStruct {
public static class ByReference extends DiscordActivity implements Structure.ByReference { public ByReference() {super();} public ByReference(Pointer pointer) {super(pointer);}}
public static class ByValue extends DiscordActivity implements Structure.ByValue { public ByValue() {super();} public ByValue(Pointer pointer) {super(pointer);}}
+
+ @Override
+ protected List getFieldOrder() {
+ return Arrays.asList("activityType", "applicationId", "name", "state", "details", "timestamps", "assets", "party", "secrets", "instance");
+ }
}
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordActivityAssets.java b/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordActivityAssets.java
index 5908fb1d..03b64f46 100644
--- a/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordActivityAssets.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordActivityAssets.java
@@ -21,6 +21,9 @@ package kr.syeyoung.dungeonsguide.gamesdk.jna.datastruct;
import com.sun.jna.Pointer;
import com.sun.jna.Structure;
+import java.util.Arrays;
+import java.util.List;
+
public class DiscordActivityAssets extends DiscordStruct{
public byte[] large_image = new byte[128];
@@ -31,4 +34,9 @@ public class DiscordActivityAssets extends DiscordStruct{
public static class ByReference extends DiscordActivityAssets implements Structure.ByReference { public ByReference() {super();} public ByReference(Pointer pointer) {super(pointer);}}
public static class ByValue extends DiscordActivityAssets implements Structure.ByValue { public ByValue() {super();} public ByValue(Pointer pointer) {super(pointer);}}
+
+ @Override
+ protected List getFieldOrder() {
+ return Arrays.asList("large_image", "large_text", "small_image", "small_text");
+ }
}
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordActivityParty.java b/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordActivityParty.java
index 697cb6b8..b9a20db3 100644
--- a/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordActivityParty.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordActivityParty.java
@@ -21,6 +21,9 @@ package kr.syeyoung.dungeonsguide.gamesdk.jna.datastruct;
import com.sun.jna.Pointer;
import com.sun.jna.Structure;
+import java.util.Arrays;
+import java.util.List;
+
public class DiscordActivityParty extends DiscordStruct {
public byte[] id = new byte[128];
@@ -29,4 +32,9 @@ public class DiscordActivityParty extends DiscordStruct {
public static class ByReference extends DiscordActivityParty implements Structure.ByReference { public ByReference() {super();} public ByReference(Pointer pointer) {super(pointer);}}
public static class ByValue extends DiscordActivityParty implements Structure.ByValue { public ByValue() {super();} public ByValue(Pointer pointer) {super(pointer);}}
+
+ @Override
+ protected List getFieldOrder() {
+ return Arrays.asList("id", "discordActivityParty");
+ }
}
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordActivitySecrets.java b/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordActivitySecrets.java
index db8f42e9..2975f97f 100644
--- a/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordActivitySecrets.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordActivitySecrets.java
@@ -21,6 +21,9 @@ package kr.syeyoung.dungeonsguide.gamesdk.jna.datastruct;
import com.sun.jna.Pointer;
import com.sun.jna.Structure;
+import java.util.Arrays;
+import java.util.List;
+
public class DiscordActivitySecrets extends DiscordStruct {
public byte[] match = new byte[128];
@@ -30,4 +33,9 @@ public class DiscordActivitySecrets extends DiscordStruct {
public static class ByReference extends DiscordActivitySecrets implements Structure.ByReference { public ByReference() {super();} public ByReference(Pointer pointer) {super(pointer);}}
public static class ByValue extends DiscordActivitySecrets implements Structure.ByValue { public ByValue() {super();} public ByValue(Pointer pointer) {super(pointer);}}
+
+ @Override
+ protected List getFieldOrder() {
+ return Arrays.asList("match", "join", "spectate");
+ }
}
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordActivityTimestamps.java b/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordActivityTimestamps.java
index 6f0c5f04..4765ffb9 100644
--- a/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordActivityTimestamps.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordActivityTimestamps.java
@@ -22,6 +22,9 @@ import com.sun.jna.Pointer;
import com.sun.jna.Structure;
import kr.syeyoung.dungeonsguide.gamesdk.jna.typedef.DiscordTimestamp;
+import java.util.Arrays;
+import java.util.List;
+
public class DiscordActivityTimestamps extends DiscordStruct {
public DiscordTimestamp start = new DiscordTimestamp();
public DiscordTimestamp end = new DiscordTimestamp();
@@ -29,4 +32,9 @@ public class DiscordActivityTimestamps extends DiscordStruct {
public static class ByReference extends DiscordActivityTimestamps implements Structure.ByReference { public ByReference() {super();} public ByReference(Pointer pointer) {super(pointer);}}
public static class ByValue extends DiscordActivityTimestamps implements Structure.ByValue { public ByValue() {super();} public ByValue(Pointer pointer) {super(pointer);}}
+
+ @Override
+ protected List getFieldOrder() {
+ return Arrays.asList("start", "end");
+ }
}
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordCreateParams.java b/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordCreateParams.java
index edb29844..8e230b73 100644
--- a/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordCreateParams.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordCreateParams.java
@@ -25,6 +25,9 @@ import kr.syeyoung.dungeonsguide.gamesdk.jna.typedef.DiscordClientID;
import kr.syeyoung.dungeonsguide.gamesdk.jna.typedef.DiscordVersion;
import kr.syeyoung.dungeonsguide.gamesdk.jna.typedef.UInt64;
+import java.util.Arrays;
+import java.util.List;
+
public class DiscordCreateParams extends DiscordStruct { public DiscordCreateParams() {super();} public DiscordCreateParams(Pointer pointer) {super(pointer);}
public DiscordClientID client_id = new DiscordClientID();
public UInt64 flags = new UInt64();
@@ -57,4 +60,12 @@ public class DiscordCreateParams extends DiscordStruct { public DiscordCreatePar