From db58612b03889d5911c99f5b3878b31f9b4f9e92 Mon Sep 17 00:00:00 2001 From: syeyoung Date: Sun, 8 Aug 2021 22:45:20 +0900 Subject: - Field Orders --- .../dungeonsguide/RichPresenceManager.java | 208 +++++++++++++-------- .../gamesdk/jna/datastruct/DiscordActivity.java | 9 + .../jna/datastruct/DiscordActivityAssets.java | 8 + .../jna/datastruct/DiscordActivityParty.java | 8 + .../jna/datastruct/DiscordActivitySecrets.java | 8 + .../jna/datastruct/DiscordActivityTimestamps.java | 8 + .../jna/datastruct/DiscordCreateParams.java | 11 ++ .../gamesdk/jna/datastruct/DiscordEntitlement.java | 8 + .../gamesdk/jna/datastruct/DiscordFileStat.java | 8 + .../jna/datastruct/DiscordImageDimensions.java | 8 + .../gamesdk/jna/datastruct/DiscordImageHandle.java | 8 + .../gamesdk/jna/datastruct/DiscordInputMode.java | 8 + .../gamesdk/jna/datastruct/DiscordLobby.java | 8 + .../gamesdk/jna/datastruct/DiscordOAuth2Token.java | 8 + .../gamesdk/jna/datastruct/DiscordPartySize.java | 8 + .../gamesdk/jna/datastruct/DiscordPresence.java | 8 + .../jna/datastruct/DiscordRelationship.java | 8 + .../gamesdk/jna/datastruct/DiscordSku.java | 8 + .../gamesdk/jna/datastruct/DiscordSkuPrice.java | 8 + .../gamesdk/jna/datastruct/DiscordUser.java | 8 + .../jna/datastruct/DiscordUserAchievement.java | 8 + .../interfacestruct/IDiscordAchievementEvents.java | 5 + .../IDiscordAchievementManager.java | 5 + .../interfacestruct/IDiscordActivityEvents.java | 5 + .../interfacestruct/IDiscordActivityManager.java | 5 + .../IDiscordApplicationManager.java | 5 + .../gamesdk/jna/interfacestruct/IDiscordCore.java | 5 + .../jna/interfacestruct/IDiscordImageManager.java | 5 + .../jna/interfacestruct/IDiscordLobbyEvents.java | 6 + .../jna/interfacestruct/IDiscordLobbyManager.java | 5 + .../IDiscordLobbyMemberTransaction.java | 5 + .../interfacestruct/IDiscordLobbySearchQuery.java | 5 + .../interfacestruct/IDiscordLobbyTransaction.java | 5 + .../jna/interfacestruct/IDiscordNetworkEvents.java | 5 + .../interfacestruct/IDiscordNetworkManager.java | 5 + .../jna/interfacestruct/IDiscordOverlayEvents.java | 5 + .../interfacestruct/IDiscordOverlayManager.java | 5 + .../IDiscordRelationshipEvents.java | 5 + .../IDiscordRelationshipManager.java | 5 + .../interfacestruct/IDiscordStorageManager.java | 6 + .../jna/interfacestruct/IDiscordStoreEvents.java | 6 + .../jna/interfacestruct/IDiscordStoreManager.java | 5 + .../jna/interfacestruct/IDiscordUserEvents.java | 5 + .../jna/interfacestruct/IDiscordUserManager.java | 4 + .../jna/interfacestruct/IDiscordVoiceEvents.java | 6 + .../jna/interfacestruct/IDiscordVoiceManager.java | 6 + 46 files changed, 423 insertions(+), 78 deletions(-) (limited to 'src') 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.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.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 public static class ByReference extends DiscordCreateParams implements Structure.ByReference { public ByReference() {super();} public ByReference(Pointer pointer) {super(pointer);}} public static class ByValue extends DiscordCreateParams implements Structure.ByValue { public ByValue() {super();} public ByValue(Pointer pointer) {super(pointer);}} + + @Override + protected List getFieldOrder() { + return Arrays.asList("client_id", "flags", "events", "event_data", "application_events", "application_version", "user_events", + "user_version", "image_events", "image_version", "activity_events", "activity_version", "lobby_events", "lobby_version", + "network_events", "network_version", "overlay_events", "overlay_version", "storage_events", "storage_version", "store_events", + "store_version", "voice_events", "voice_version", "achievement_events", "achievement_version"); + } } diff --git a/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordEntitlement.java b/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordEntitlement.java index d3d4361e..6e0f29ac 100644 --- a/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordEntitlement.java +++ b/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordEntitlement.java @@ -23,6 +23,9 @@ import com.sun.jna.Structure; import kr.syeyoung.dungeonsguide.gamesdk.jna.enumuration.EDiscordEntitlementType; import kr.syeyoung.dungeonsguide.gamesdk.jna.typedef.DiscordSnowflake; +import java.util.Arrays; +import java.util.List; + public class DiscordEntitlement extends DiscordStruct { public DiscordSnowflake id = new DiscordSnowflake(); public EDiscordEntitlementType type = EDiscordEntitlementType.DiscordEntitlementType_Purchase; @@ -31,4 +34,9 @@ public class DiscordEntitlement extends DiscordStruct { public static class ByReference extends DiscordEntitlement implements Structure.ByReference { public ByReference() {super();} public ByReference(Pointer pointer) {super(pointer);}} public static class ByValue extends DiscordEntitlement implements Structure.ByValue { public ByValue() {super();} public ByValue(Pointer pointer) {super(pointer);}} + + @Override + protected List getFieldOrder() { + return Arrays.asList("id", "type", "sku_id"); + } } diff --git a/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordFileStat.java b/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordFileStat.java index 200ac74a..a7e38b37 100644 --- a/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordFileStat.java +++ b/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordFileStat.java @@ -23,6 +23,9 @@ import com.sun.jna.Structure; import kr.syeyoung.dungeonsguide.gamesdk.jna.typedef.UInt64; +import java.util.Arrays; +import java.util.List; + public class DiscordFileStat extends DiscordStruct { public byte[] filename = new byte[260]; public UInt64 size = new UInt64(); @@ -31,4 +34,9 @@ public class DiscordFileStat extends DiscordStruct { public static class ByReference extends DiscordFileStat implements Structure.ByReference { public ByReference() {super();} public ByReference(Pointer pointer) {super(pointer);}} public static class ByValue extends DiscordFileStat implements Structure.ByValue { public ByValue() {super();} public ByValue(Pointer pointer) {super(pointer);}} + + @Override + protected List getFieldOrder() { + return Arrays.asList("filename", "size", "last_modified"); + } } diff --git a/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordImageDimensions.java b/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordImageDimensions.java index 6d569993..d3247b07 100644 --- a/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordImageDimensions.java +++ b/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordImageDimensions.java @@ -22,6 +22,9 @@ import com.sun.jna.Pointer; import com.sun.jna.Structure; import kr.syeyoung.dungeonsguide.gamesdk.jna.typedef.UInt32; +import java.util.Arrays; +import java.util.List; + public class DiscordImageDimensions extends DiscordStruct { public UInt32 width = new UInt32(); public UInt32 height = new UInt32(); @@ -29,4 +32,9 @@ public class DiscordImageDimensions extends DiscordStruct { public static class ByReference extends DiscordImageDimensions implements Structure.ByReference { public ByReference() {super();} public ByReference(Pointer pointer) { super(pointer);}} public static class ByValue extends DiscordImageDimensions implements Structure.ByValue { public ByValue() {super();} public ByValue(Pointer pointer) { super(pointer);}} + + @Override + protected List getFieldOrder() { + return Arrays.asList("width", "height"); + } } diff --git a/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordImageHandle.java b/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordImageHandle.java index 1eafce70..851ba360 100644 --- a/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordImageHandle.java +++ b/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordImageHandle.java @@ -24,6 +24,9 @@ import kr.syeyoung.dungeonsguide.gamesdk.jna.enumuration.EDiscordImageType; import kr.syeyoung.dungeonsguide.gamesdk.jna.typedef.Int64; import kr.syeyoung.dungeonsguide.gamesdk.jna.typedef.UInt32; +import java.util.Arrays; +import java.util.List; + public class DiscordImageHandle extends DiscordStruct { public EDiscordImageType type = EDiscordImageType.DiscordImageType_User; public Int64 integerType = new Int64(); @@ -32,4 +35,9 @@ public class DiscordImageHandle extends DiscordStruct { public static class ByReference extends DiscordImageHandle implements Structure.ByReference { public ByReference() {super();} public ByReference(Pointer pointer) {super(pointer);}} public static class ByValue extends DiscordImageHandle implements Structure.ByValue { public ByValue() {super();} public ByValue(Pointer pointer) {super(pointer);}} + + @Override + protected List getFieldOrder() { + return Arrays.asList("type", "integerType", "size"); + } } diff --git a/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordInputMode.java b/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordInputMode.java index 45084b56..8a69f53a 100644 --- a/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordInputMode.java +++ b/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordInputMode.java @@ -22,6 +22,9 @@ import com.sun.jna.Pointer; import com.sun.jna.Structure; import kr.syeyoung.dungeonsguide.gamesdk.jna.enumuration.EDiscordInputModeType; +import java.util.Arrays; +import java.util.List; + public class DiscordInputMode extends DiscordStruct { public EDiscordInputModeType type = EDiscordInputModeType.DiscordInputModeType_PushToTalk; @@ -30,4 +33,9 @@ public class DiscordInputMode extends DiscordStruct { public static class ByReference extends DiscordInputMode implements Structure.ByReference { public ByReference() {super();} public ByReference(Pointer pointer) {super(pointer);}} public static class ByValue extends DiscordInputMode implements Structure.ByValue { public ByValue() {super();} public ByValue(Pointer pointer) {super(pointer);}} + + @Override + protected List getFieldOrder() { + return Arrays.asList("type", "shortcut"); + } } diff --git a/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordLobby.java b/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordLobby.java index 514ddadf..18453004 100644 --- a/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordLobby.java +++ b/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordLobby.java @@ -25,6 +25,9 @@ import kr.syeyoung.dungeonsguide.gamesdk.jna.typedef.DiscordSnowflake; import kr.syeyoung.dungeonsguide.gamesdk.jna.typedef.UInt32; +import java.util.Arrays; +import java.util.List; + public class DiscordLobby extends DiscordStruct { public DiscordSnowflake id = new DiscordSnowflake(); public EDiscordLobbyType type = EDiscordLobbyType.DiscordLobbyType_Private; @@ -36,4 +39,9 @@ public class DiscordLobby extends DiscordStruct { public static class ByReference extends DiscordLobby implements Structure.ByReference { public ByReference() {super();} public ByReference(Pointer pointer) {super(pointer);}} public static class ByValue extends DiscordLobby implements Structure.ByValue { public ByValue() {super();} public ByValue(Pointer pointer) {super(pointer);}} + + @Override + protected List getFieldOrder() { + return Arrays.asList("id", "type", "owner_id", "secret", "capacity", "locked"); + } } diff --git a/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordOAuth2Token.java b/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordOAuth2Token.java index f03a0aa3..f870f830 100644 --- a/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordOAuth2Token.java +++ b/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordOAuth2Token.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 DiscordOAuth2Token extends DiscordStruct { public byte[] access_token = new byte[128]; @@ -31,4 +34,9 @@ public class DiscordOAuth2Token extends DiscordStruct { public static class ByReference extends DiscordOAuth2Token implements Structure.ByReference { public ByReference() {super();} public ByReference(Pointer pointer) {super(pointer);}} public static class ByValue extends DiscordOAuth2Token implements Structure.ByValue { public ByValue() {super();} public ByValue(Pointer pointer) {super(pointer);}} + + @Override + protected List getFieldOrder() { + return Arrays.asList("access_token", "scopes", "expires"); + } } diff --git a/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordPartySize.java b/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordPartySize.java index a890d235..43c40723 100644 --- a/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordPartySize.java +++ b/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordPartySize.java @@ -22,6 +22,9 @@ import com.sun.jna.Pointer; import com.sun.jna.Structure; import kr.syeyoung.dungeonsguide.gamesdk.jna.typedef.Int32; +import java.util.Arrays; +import java.util.List; + public class DiscordPartySize extends DiscordStruct{ public Int32 current_size = new Int32(); public Int32 max_size = new Int32(); @@ -29,4 +32,9 @@ public class DiscordPartySize extends DiscordStruct{ public static class ByReference extends DiscordPartySize implements Structure.ByReference { public ByReference() {super();} public ByReference(Pointer pointer) {super(pointer);}} public static class ByValue extends DiscordPartySize implements Structure.ByValue { public ByValue() {super();} public ByValue(Pointer pointer) {super(pointer);}} + + @Override + protected List getFieldOrder() { + return Arrays.asList("current_size", "max_size"); + } } diff --git a/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordPresence.java b/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordPresence.java index 1c17bdac..4e12f175 100644 --- a/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordPresence.java +++ b/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordPresence.java @@ -22,6 +22,9 @@ import com.sun.jna.Pointer; import com.sun.jna.Structure; import kr.syeyoung.dungeonsguide.gamesdk.jna.enumuration.EDiscordStatus; +import java.util.Arrays; +import java.util.List; + public class DiscordPresence extends DiscordStruct { public EDiscordStatus status = EDiscordStatus.DiscordStatus_Offline; public DiscordActivity activity; @@ -29,4 +32,9 @@ public class DiscordPresence extends DiscordStruct { public static class ByReference extends DiscordPresence implements Structure.ByReference { public ByReference() {super();} public ByReference(Pointer pointer) {super(pointer);}} public static class ByValue extends DiscordPresence implements Structure.ByValue { public ByValue() {super();} public ByValue(Pointer pointer) {super(pointer);}} + + @Override + protected List getFieldOrder() { + return Arrays.asList("status", "activity"); + } } diff --git a/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordRelationship.java b/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordRelationship.java index 3b22d0d2..03cbae4a 100644 --- a/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordRelationship.java +++ b/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordRelationship.java @@ -22,6 +22,9 @@ import com.sun.jna.Pointer; import com.sun.jna.Structure; import kr.syeyoung.dungeonsguide.gamesdk.jna.enumuration.EDiscordRelationshipType; +import java.util.Arrays; +import java.util.List; + public class DiscordRelationship extends DiscordStruct { public EDiscordRelationshipType type = EDiscordRelationshipType.DiscordRelationshipType_None; public DiscordUser user; @@ -30,4 +33,9 @@ public class DiscordRelationship extends DiscordStruct { public static class ByReference extends DiscordRelationship implements Structure.ByReference { public ByReference() {super();} public ByReference(Pointer pointer) {super(pointer);}} public static class ByValue extends DiscordRelationship implements Structure.ByValue { public ByValue() {super();} public ByValue(Pointer pointer) {super(pointer);}} + + @Override + protected List getFieldOrder() { + return Arrays.asList("type", "user", "presence"); + } } diff --git a/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordSku.java b/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordSku.java index 51693fa0..2e9aaf1d 100644 --- a/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordSku.java +++ b/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordSku.java @@ -23,6 +23,9 @@ import com.sun.jna.Structure; import kr.syeyoung.dungeonsguide.gamesdk.jna.enumuration.EDiscordSkuType; import kr.syeyoung.dungeonsguide.gamesdk.jna.typedef.DiscordSnowflake; +import java.util.Arrays; +import java.util.List; + public class DiscordSku extends DiscordStruct { public DiscordSnowflake id = new DiscordSnowflake(); @@ -33,4 +36,9 @@ public class DiscordSku extends DiscordStruct { public static class ByReference extends DiscordSku implements Structure.ByReference { public ByReference() {super();} public ByReference(Pointer pointer) {super(pointer);}} public static class ByValue extends DiscordSku implements Structure.ByValue { public ByValue() {super();} public ByValue(Pointer pointer) {super(pointer);}} + + @Override + protected List getFieldOrder() { + return Arrays.asList("id", "type", "name", "discordSkuPrice"); + } } diff --git a/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordSkuPrice.java b/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordSkuPrice.java index 74be946a..6eea0924 100644 --- a/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordSkuPrice.java +++ b/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordSkuPrice.java @@ -23,6 +23,9 @@ import com.sun.jna.Structure; import kr.syeyoung.dungeonsguide.gamesdk.jna.typedef.UInt32; +import java.util.Arrays; +import java.util.List; + public class DiscordSkuPrice extends DiscordStruct { public UInt32 amount = new UInt32(); public byte[] currency = new byte[16]; @@ -30,4 +33,9 @@ public class DiscordSkuPrice extends DiscordStruct { public static class ByReference extends DiscordSkuPrice implements Structure.ByReference { public ByReference() {super();} public ByReference(Pointer pointer) {super(pointer);}} public static class ByValue extends DiscordSkuPrice implements Structure.ByValue { public ByValue() {super();} public ByValue(Pointer pointer) {super(pointer);}} + + @Override + protected List getFieldOrder() { + return Arrays.asList("amount", "currency"); + } } diff --git a/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordUser.java b/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordUser.java index 7abd0c71..b20d18c2 100644 --- a/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordUser.java +++ b/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordUser.java @@ -25,6 +25,9 @@ import kr.syeyoung.dungeonsguide.gamesdk.jna.typedef.DiscordSnowflake; import lombok.Getter; import lombok.Setter; +import java.util.Arrays; +import java.util.List; + public class DiscordUser extends DiscordStruct { public DiscordSnowflake id = new DiscordSnowflake(); public byte[] username = new byte[256]; @@ -35,4 +38,9 @@ public class DiscordUser extends DiscordStruct { public static class ByReference extends DiscordUser implements Structure.ByReference { public ByReference() {super();} public ByReference(Pointer pointer) {super(pointer);}} public static class ByValue extends DiscordUser implements Structure.ByValue { public ByValue() {super();} public ByValue(Pointer pointer) {super(pointer);}} + + @Override + protected List getFieldOrder() { + return Arrays.asList("id", "username", "discriminator", "avatar", "bot"); + } } diff --git a/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordUserAchievement.java b/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordUserAchievement.java index 1f2b4cb8..c12dcf56 100644 --- a/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordUserAchievement.java +++ b/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/datastruct/DiscordUserAchievement.java @@ -24,6 +24,9 @@ import kr.syeyoung.dungeonsguide.gamesdk.jna.typedef.DiscordSnowflake; import kr.syeyoung.dungeonsguide.gamesdk.jna.typedef.UInt32; +import java.util.Arrays; +import java.util.List; + public class DiscordUserAchievement extends DiscordStruct { public DiscordSnowflake user_id = new DiscordSnowflake(); public DiscordSnowflake achievement_id = new DiscordSnowflake(); @@ -33,4 +36,9 @@ public class DiscordUserAchievement extends DiscordStruct { public static class ByReference extends DiscordUserAchievement implements Structure.ByReference { public ByReference() {super();} public ByReference(Pointer pointer) {super(pointer);}} public static class ByValue extends DiscordUserAchievement implements Structure.ByValue { public ByValue() {super();} public ByValue(Pointer pointer) {super(pointer);}} + + @Override + protected List getFieldOrder() { + return Arrays.asList("user_id", "achievement_id", "percent_complete", "unlocked_at"); + } } diff --git a/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/interfacestruct/IDiscordAchievementEvents.java b/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/interfacestruct/IDiscordAchievementEvents.java index 6cfd19cd..e7cf3b38 100644 --- a/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/interfacestruct/IDiscordAchievementEvents.java +++ b/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/interfacestruct/IDiscordAchievementEvents.java @@ -24,6 +24,9 @@ import kr.syeyoung.dungeonsguide.gamesdk.jna.datastruct.DiscordStruct; import com.sun.jna.Pointer; import kr.syeyoung.dungeonsguide.gamesdk.jna.datastruct.DiscordUserAchievement; +import java.util.Arrays; +import java.util.List; + public class IDiscordAchievementEvents extends DiscordStruct { public IDiscordAchievementEvents() {super();} public IDiscordAchievementEvents(Pointer pointer) {super(pointer);} public interface OnUserAchievementUpdateCallback extends GameSDKCallback { void onUserAchievementUpdate(Pointer eventData, DiscordUserAchievement userAchievement); } public OnUserAchievementUpdateCallback OnUserAchievementUpdate; @@ -32,4 +35,6 @@ public class IDiscordAchievementEvents extends DiscordStruct { public IDiscordAc public static class ByReference extends IDiscordAchievementEvents implements Structure.ByReference { public ByReference() {super();} public ByReference(Pointer pointer) {super(pointer);}} public static class ByValue extends IDiscordAchievementEvents implements Structure.ByValue { public ByValue() {super();} public ByValue(Pointer pointer) {super(pointer);}} + + @Override protected List getFieldOrder() { return Arrays.asList("OnUserAchievementUpdate"); } } diff --git a/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/interfacestruct/IDiscordAchievementManager.java b/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/interfacestruct/IDiscordAchievementManager.java index 2103cf67..f83c0195 100644 --- a/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/interfacestruct/IDiscordAchievementManager.java +++ b/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/interfacestruct/IDiscordAchievementManager.java @@ -30,6 +30,9 @@ import kr.syeyoung.dungeonsguide.gamesdk.jna.typedef.UInt8; import kr.syeyoung.dungeonsguide.gamesdk.jna.typedef.DiscordSnowflake; import kr.syeyoung.dungeonsguide.gamesdk.jna.datastruct.DiscordUserAchievement; +import java.util.Arrays; +import java.util.List; + public class IDiscordAchievementManager extends DiscordStruct { public IDiscordAchievementManager() {super();} public IDiscordAchievementManager(Pointer pointer) {super(pointer);} public interface SetUserAchievementCallback extends GameSDKCallback { void setUserAchievement(IDiscordAchievementManager manager, DiscordSnowflake achievementId, UInt8 percentComplete, Pointer callbackData, NativeGameSDK.DiscordCallback callback); } public SetUserAchievementCallback SetUserAchievement; @@ -50,4 +53,6 @@ public class IDiscordAchievementManager extends DiscordStruct { public IDiscordA public static class ByReference extends IDiscordAchievementManager implements Structure.ByReference { public ByReference() {super();} public ByReference(Pointer pointer) {super(pointer);}} public static class ByValue extends IDiscordAchievementManager implements Structure.ByValue { public ByValue() {super();} public ByValue(Pointer pointer) {super(pointer);}} + + @Override protected List getFieldOrder() { return Arrays.asList("SetUserAchievement", "FetchUserAchievements", "CountUserAchievements", "GetUserAchievement", "GetUserAchievementAt"); } } diff --git a/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/interfacestruct/IDiscordActivityEvents.java b/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/interfacestruct/IDiscordActivityEvents.java index 26819edd..d6a6ce48 100644 --- a/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/interfacestruct/IDiscordActivityEvents.java +++ b/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/interfacestruct/IDiscordActivityEvents.java @@ -26,6 +26,9 @@ import kr.syeyoung.dungeonsguide.gamesdk.jna.enumuration.EDiscordActivityActionT import kr.syeyoung.dungeonsguide.gamesdk.jna.datastruct.DiscordActivity; import kr.syeyoung.dungeonsguide.gamesdk.jna.datastruct.DiscordUser; +import java.util.Arrays; +import java.util.List; + public class IDiscordActivityEvents extends DiscordStruct { public IDiscordActivityEvents() {super();} public IDiscordActivityEvents(Pointer pointer) {super(pointer);} public interface OnActivityJoinCallback extends GameSDKCallback { void onActivityJoin(Pointer eventData, String secret); } public OnActivityJoinCallback OnActivityJoin; @@ -43,4 +46,6 @@ public class IDiscordActivityEvents extends DiscordStruct { public IDiscordActiv public static class ByReference extends IDiscordActivityEvents implements Structure.ByReference { public ByReference() {super();} public ByReference(Pointer pointer) {super(pointer);}} public static class ByValue extends IDiscordActivityEvents implements Structure.ByValue { public ByValue() {super();} public ByValue(Pointer pointer) {super(pointer);}} + + @Override protected List getFieldOrder() { return Arrays.asList("OnActivityJoin", "OnActivitySpectate", "OnActivityJoinRequest", "OnActivityInvite"); } } diff --git a/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/interfacestruct/IDiscordActivityManager.java b/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/interfacestruct/IDiscordActivityManager.java index 3c1f3c34..b20e6660 100644 --- a/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/interfacestruct/IDiscordActivityManager.java +++ b/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/interfacestruct/IDiscordActivityManager.java @@ -30,6 +30,9 @@ import kr.syeyoung.dungeonsguide.gamesdk.jna.datastruct.DiscordActivity; import kr.syeyoung.dungeonsguide.gamesdk.jna.typedef.DiscordSnowflake; import kr.syeyoung.dungeonsguide.gamesdk.jna.enumuration.EDiscordActivityJoinRequestReply; +import java.util.Arrays; +import java.util.List; + public class IDiscordActivityManager extends DiscordStruct { public IDiscordActivityManager() {super();} public IDiscordActivityManager(Pointer pointer) {super(pointer);} public interface RegisterCommandCallback extends GameSDKCallback { EDiscordResult registerCommand(IDiscordActivityManager manager, String command); } public RegisterCommandCallback RegisterCommand; @@ -56,4 +59,6 @@ public class IDiscordActivityManager extends DiscordStruct { public IDiscordActi public static class ByReference extends IDiscordActivityManager implements Structure.ByReference { public ByReference() {super();} public ByReference(Pointer pointer) {super(pointer);}} public static class ByValue extends IDiscordActivityManager implements Structure.ByValue { public ByValue() {super();} public ByValue(Pointer pointer) {super(pointer);}} + + @Override protected List getFieldOrder() { return Arrays.asList("RegisterCommand", "RegisterSteam", "UpdateActivity", "ClearActivity", "SendRequestReply", "SendInvite", "AcceptInvite"); } } diff --git a/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/interfacestruct/IDiscordApplicationManager.java b/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/interfacestruct/IDiscordApplicationManager.java index 294c2161..a8165234 100644 --- a/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/interfacestruct/IDiscordApplicationManager.java +++ b/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/interfacestruct/IDiscordApplicationManager.java @@ -26,6 +26,9 @@ import com.sun.jna.Pointer; import kr.syeyoung.dungeonsguide.gamesdk.jna.enumuration.EDiscordResult; import kr.syeyoung.dungeonsguide.gamesdk.jna.datastruct.DiscordOAuth2Token; +import java.util.Arrays; +import java.util.List; + public class IDiscordApplicationManager extends DiscordStruct { public IDiscordApplicationManager() {super();} public IDiscordApplicationManager(Pointer pointer) {super(pointer);} public interface ValidateOrExitCallback extends GameSDKCallback { void validateOrExit(IDiscordApplicationManager manager, Pointer callbackData, NativeGameSDK.DiscordCallback callback); } public ValidateOrExitCallback ValidateOrExit; @@ -53,4 +56,6 @@ public class IDiscordApplicationManager extends DiscordStruct { public IDiscordA public static class ByReference extends IDiscordApplicationManager implements Structure.ByReference { public ByReference() {super();} public ByReference(Pointer pointer) {super(pointer);}} public static class ByValue extends IDiscordApplicationManager implements Structure.ByValue { public ByValue() {super();} public ByValue(Pointer pointer) {super(pointer);}} + + @Override protected List getFieldOrder() { return Arrays.asList("ValidateOrExit", "GetCurrentLocale", "GetCurrentBranch", "GetOauth2Token", "GetTicket"); } } diff --git a/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/interfacestruct/IDiscordCore.java b/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/interfacestruct/IDiscordCore.java index ccc4abdf..7519987e 100644 --- a/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/interfacestruct/IDiscordCore.java +++ b/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/interfacestruct/IDiscordCore.java @@ -27,6 +27,9 @@ import com.sun.jna.Pointer; import kr.syeyoung.dungeonsguide.gamesdk.jna.enumuration.EDiscordLogLevel; import kr.syeyoung.dungeonsguide.gamesdk.jna.enumuration.EDiscordResult; +import java.util.Arrays; +import java.util.List; + public class IDiscordCore extends DiscordStruct { public IDiscordCore() {super();} public IDiscordCore(Pointer pointer) {super(pointer);} public static final TypeMapper TYPE_MAPPER = GameSDKTypeMapper.INSTANCE; @@ -84,4 +87,6 @@ public class IDiscordCore extends DiscordStruct { public IDiscordCore() {super() } public static class ByValue extends IDiscordCore implements Structure.ByValue { public ByValue() {super();} public ByValue(Pointer pointer) {super(pointer);} } + + @Override protected List getFieldOrder() { return Arrays.asList("Destroy", "RunCallbacks", "SetLogHook", "GetApplicationManager", "GetUserManager", "GetImageManager", "GetActivityManager", "GetRelationshipManager", "GetLobbyManager", "GetNetworkManager", "GetOverlayManager", "GetStorageManager", "GetStoreManager", "GetVoiceManager", "GetAchievementManager"); } } diff --git a/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/interfacestruct/IDiscordImageManager.java b/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/interfacestruct/IDiscordImageManager.java index f400724f..5601f41b 100644 --- a/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/interfacestruct/IDiscordImageManager.java +++ b/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/interfacestruct/IDiscordImageManager.java @@ -28,6 +28,9 @@ import kr.syeyoung.dungeonsguide.gamesdk.jna.datastruct.DiscordImageDimensions; import kr.syeyoung.dungeonsguide.gamesdk.jna.typedef.UInt32; import kr.syeyoung.dungeonsguide.gamesdk.jna.datastruct.DiscordImageHandle; +import java.util.Arrays; +import java.util.List; + public class IDiscordImageManager extends DiscordStruct { public IDiscordImageManager() {super();} public IDiscordImageManager(Pointer pointer) {super(pointer);} public interface FetchCallback_Callback extends GameSDKCallback { void callback(Pointer callbackData, EDiscordResult result, DiscordImageHandle.ByValue handleResult); @@ -45,4 +48,6 @@ public class IDiscordImageManager extends DiscordStruct { public IDiscordImageMa public static class ByReference extends IDiscordImageManager implements Structure.ByReference { public ByReference() {super();} public ByReference(Pointer pointer) {super(pointer);}} public static class ByValue extends IDiscordImageManager implements Structure.ByValue { public ByValue() {super();} public ByValue(Pointer pointer) {super(pointer);}} + + @Override protected List getFieldOrder() { return Arrays.asList("Fetch", "GetDimensions", "GetData"); } } diff --git a/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/interfacestruct/IDiscordLobbyEvents.java b/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/interfacestruct/IDiscordLobbyEvents.java index 879f89bc..268fe2f5 100644 --- a/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/interfacestruct/IDiscordLobbyEvents.java +++ b/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/interfacestruct/IDiscordLobbyEvents.java @@ -27,6 +27,9 @@ import kr.syeyoung.dungeonsguide.gamesdk.jna.typedef.UInt8; import kr.syeyoung.dungeonsguide.gamesdk.jna.typedef.UInt32; import kr.syeyoung.dungeonsguide.gamesdk.jna.typedef.Int64; +import java.util.Arrays; +import java.util.List; + public class IDiscordLobbyEvents extends DiscordStruct { public IDiscordLobbyEvents() {super();} public IDiscordLobbyEvents(Pointer pointer) {super(pointer);} public interface OnLobbyUpdateCallback extends GameSDKCallback { void onLobbyUpdate(Pointer eventData, Int64 lobbyId); } public OnLobbyUpdateCallback OnLobbyUpdate; @@ -56,4 +59,7 @@ public class IDiscordLobbyEvents extends DiscordStruct { public IDiscordLobbyEve public static class ByReference extends IDiscordLobbyEvents implements Structure.ByReference { public ByReference() {super();} public ByReference(Pointer pointer) {super(pointer);}} public static class ByValue extends IDiscordLobbyEvents implements Structure.ByValue { public ByValue() {super();} public ByValue(Pointer pointer) {super(pointer);}} + + + @Override protected List getFieldOrder() { return Arrays.asList("OnLobbyUpdate", "OnLobbyDelete", "OnMemberConnect", "OnMemberUpdate", "OnMemberDisconnect", "OnLobbyMessage", "OnSpeaking", "OnNetworkMessage"); } } diff --git a/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/interfacestruct/IDiscordLobbyManager.java b/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/interfacestruct/IDiscordLobbyManager.java index cbaac01b..bfaf3c4a 100644 --- a/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/interfacestruct/IDiscordLobbyManager.java +++ b/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/interfacestruct/IDiscordLobbyManager.java @@ -33,6 +33,9 @@ import kr.syeyoung.dungeonsguide.gamesdk.jna.typedef.UInt32; import kr.syeyoung.dungeonsguide.gamesdk.jna.typedef.DiscordSnowflake; import kr.syeyoung.dungeonsguide.gamesdk.jna.datastruct.DiscordUser; +import java.util.Arrays; +import java.util.List; + public class IDiscordLobbyManager extends DiscordStruct { public IDiscordLobbyManager() {super();} public IDiscordLobbyManager(Pointer pointer) {super(pointer);} public interface GetLobbyCreateTransactionCallback extends GameSDKCallback { EDiscordResult getLobbyCreateTransaction(IDiscordLobbyManager manager, IDiscordLobbyTransaction transaction); } public GetLobbyCreateTransactionCallback GetLobbyCreateTransaction; @@ -141,4 +144,6 @@ public class IDiscordLobbyManager extends DiscordStruct { public IDiscordLobbyMa public static class ByReference extends IDiscordLobbyManager implements Structure.ByReference { public ByReference() {super();} public ByReference(Pointer pointer) {super(pointer);}} public static class ByValue extends IDiscordLobbyManager implements Structure.ByValue { public ByValue() {super();} public ByValue(Pointer pointer) {super(pointer);}} + + @Override protected List getFieldOrder() { return Arrays.asList("GetLobbyCreateTransaction", "GetLobbyUpdateTransaction", "GetMemberUpdateTransaction", "CreateLobby", "UpdateLobby", "DeleteLobby", "ConnectLobby", "ConnectLobbyWithActivitySecret", "DisconnectLobby", "GetLobby", "GetLobbyActivitySecret", "GetLobbyMetadataValue", "GetLobbyMetadataKey", "LobbyMetadataCount", "MemberCount", "GetMemberUserId", "GetMemberUser", "GetMemberMetadataValue", "GetMemberMetadataKey", "MemberMetadataCount", "UpdateMember", "SendLobbyMessage", "GetSearchQuery", "Search", "LobbyCount", "GetLobbyId", "ConnectVoice", "DisconnectVoice", "ConnectNetwork", "DisconnectNetwork", "FlushNetwork", "OpenNetworkChannel", "SendNetworkMessage"); } } diff --git a/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/interfacestruct/IDiscordLobbyMemberTransaction.java b/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/interfacestruct/IDiscordLobbyMemberTransaction.java index 1b79a900..d061d34b 100644 --- a/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/interfacestruct/IDiscordLobbyMemberTransaction.java +++ b/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/interfacestruct/IDiscordLobbyMemberTransaction.java @@ -24,6 +24,9 @@ import com.sun.jna.Structure; import kr.syeyoung.dungeonsguide.gamesdk.jna.datastruct.DiscordStruct; import kr.syeyoung.dungeonsguide.gamesdk.jna.enumuration.EDiscordResult; +import java.util.Arrays; +import java.util.List; + public class IDiscordLobbyMemberTransaction extends DiscordStruct { public IDiscordLobbyMemberTransaction() {super();} public IDiscordLobbyMemberTransaction(Pointer pointer) {super(pointer);} public interface SetMetadataCallback extends GameSDKCallback { EDiscordResult setMetadata(IDiscordLobbyMemberTransaction lobbyMemberTransaction, Pointer key, Pointer value); } // key is 256 bytes, value is 4096 public SetMetadataCallback SetMetadata; @@ -35,4 +38,6 @@ public class IDiscordLobbyMemberTransaction extends DiscordStruct { public IDisc public static class ByReference extends IDiscordLobbyMemberTransaction implements Structure.ByReference { public ByReference() {super();} public ByReference(Pointer pointer) {super(pointer);}} public static class ByValue extends IDiscordLobbyMemberTransaction implements Structure.ByValue { public ByValue() {super();} public ByValue(Pointer pointer) {super(pointer);}} + + @Override protected List getFieldOrder() { return Arrays.asList("SetMetadata", "DeleteMetadata"); } } diff --git a/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/interfacestruct/IDiscordLobbySearchQuery.java b/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/interfacestruct/IDiscordLobbySearchQuery.java index e2061b13..af2bb1ea 100644 --- a/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/interfacestruct/IDiscordLobbySearchQuery.java +++ b/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/interfacestruct/IDiscordLobbySearchQuery.java @@ -28,6 +28,9 @@ import kr.syeyoung.dungeonsguide.gamesdk.jna.enumuration.EDiscordLobbySearchDist import kr.syeyoung.dungeonsguide.gamesdk.jna.typedef.UInt32; import kr.syeyoung.dungeonsguide.gamesdk.jna.enumuration.EDiscordLobbySearchCast; +import java.util.Arrays; +import java.util.List; + public class IDiscordLobbySearchQuery extends DiscordStruct { public IDiscordLobbySearchQuery() {super();} public IDiscordLobbySearchQuery(Pointer pointer) {super(pointer);} public interface FilterCallback extends GameSDKCallback { EDiscordResult filter(IDiscordLobbySearchQuery lobbySearchQuery, Pointer key, EDiscordLobbySearchComparison comparison, EDiscordLobbySearchCast cast, Pointer value); } public FilterCallback Filter; @@ -45,4 +48,6 @@ public class IDiscordLobbySearchQuery extends DiscordStruct { public IDiscordLob public static class ByReference extends IDiscordLobbySearchQuery implements Structure.ByReference { public ByReference() {super();} public ByReference(Pointer pointer) {super(pointer);}} public static class ByValue extends IDiscordLobbySearchQuery implements Structure.ByValue { public ByValue() {super();} public ByValue(Pointer pointer) {super(pointer);}} + + @Override protected List getFieldOrder() { return Arrays.asList("Filter", "Sort", "Limit", "Distance"); } } diff --git a/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/interfacestruct/IDiscordLobbyTransaction.java b/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/interfacestruct/IDiscordLobbyTransaction.java index 2a49e516..354c3b37 100644 --- a/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/interfacestruct/IDiscordLobbyTransaction.java +++ b/src/main/java/kr/syeyoung/dungeonsguide/gamesdk/jna/interfacestruct/IDiscordLobbyTransaction.java @@ -27,6 +27,9 @@ import kr.syeyoung.dungeonsguide.gamesdk.jna.enumuration.EDiscordResult; import kr.syeyoung.dungeonsguide.gamesdk.jna.typedef.UInt32; import kr.syeyoung.dungeonsguide.gamesdk.jna.typedef.DiscordSnowflake; +import java.util.Arrays; +import java.util.List; + public class IDiscordLobbyTransaction extends DiscordStruct { public IDiscordLobbyTransaction() {super();} public IDiscordLobbyTransaction(Pointer pointer) {super(pointer);} public interface SetTypeCallback extends GameSDKCallback { EDiscordResult setType(IDiscordLobbyTransaction lobbyTransaction, EDiscordLobbyType type); } public SetTypeCallback SetType; @@ -50,4 +53,6 @@ public class IDiscordLobbyTransaction extends DiscordStruct { public IDiscordLob public static class ByReference extends IDiscordLobbyTransaction implements Structure.ByReference { public ByReference() {super();} public ByReference(Pointer pointer) {super(pointer);}} public static class ByValue extends IDiscordLobbyTransaction implements Structure.ByValue { public ByValue() {super();} public ByValue(Pointer pointer) {super(pointer);}} + + @Override protected List getFieldOrder() { return Arrays.asList("SetType", "SetOwner", "SetCapacity", "SetMetadata", "Dele