Elaztek Developer Hub
Blamite Game Engine - blam!  00423.10.27.24.0533.blamite
The core library for the Blamite Game Engine.
discord_rpc_tester.hpp
Go to the documentation of this file.
1 #pragma once
2 
4 
5 #include <time.h>
6 
10 #include "version_data.h"
11 
22 {
23 public:
24  char state[127] = "Forge World";
25  char details[127] = "Using the Forge";
26  char large_img_key[31] = "infinity_icon_for_discord_rpc";
27  char small_img_key[31] = "blam_icon3";
28  char large_img_tooltip[127] = "sample tooltip for infinity icon";
30  char party_id[127] = "derp";
31  char join_secret[127] = "4b2fdce12f639de8bfa7e3591b71a0d679d7c93f";
32  char match_secret[127] = "4b2fdce12f639de8bfa7e3591b71a0d679d7c93f";
33  char spectate_secret[127] = "e7eb30d2ee025ed05c71ea495f770b76454ee4e0";
34  int player_count = 1;
35  int max_players = 8;
36  int instance = 1;
37  int64_t time_start = time(0);
38  int time_end = 60;
39  bool use_start_time = true;
40  bool use_end_time = false;
41  bool private_party = false;
42 
43  void Draw()
44  {
45  if (!show)
46  {
47  return;
48  }
49 
50  ImGui::Begin("Discord Rich Presence Tester", &show, ImGuiWindowFlags_AlwaysAutoResize);
51 
52  ImGui::Text("This tool is used to manually update Discord Rich Presence for testing purposes.\n");
53 
64  ImGui::Checkbox("Private Party", &private_party);
65  ImGui::InputInt("Player Count", &player_count);
66  ImGui::InputInt("Max Players", &max_players);
67  ImGui::Checkbox("Use Start Time", &use_start_time);
68  ImGui::Checkbox("Use End Time", &use_end_time);
69  ImGui::InputInt("End Time (seconds)", &time_end);
70  ImGui::InputInt("Instance", &instance);
71 
73 
74  if (ImGui::Button("Update", ImVec2(120, 0)))
75  {
77  {
78  activity.SetState(state);
79  activity.SetDetails(details);
84  activity.GetParty().SetId(party_id);
85  activity.GetSecrets().SetJoin(join_secret);
88  activity.GetParty().GetSize().SetMaxSize(max_players);
89 
90  if (use_start_time)
91  {
92  activity.GetTimestamps().SetStart(time(0));
93  }
94 
95  if (use_end_time)
96  {
97  activity.GetTimestamps().SetEnd(time(0) + time_end);
98  }
99 
100  if (private_party)
101  {
103  }
104  else
105  {
107  }
108  }
109 
111  }
112 
114 
115  if (ImGui::Button("DiscordReady", ImVec2(120, 0)))
116  {
117  //Blam::DiscordRPC::DummyEvent(1);
118  Blam::Logger::LogEvent("not yet implemented");
119  }
120 
121  ImGui::SameLine();
122 
123  if (ImGui::Button("DiscordError", ImVec2(120, 0)))
124  {
125  //Blam::DiscordRPC::DummyEvent(2);
126  Blam::Logger::LogEvent("not yet implemented");
127  }
128 
129  ImGui::SameLine();
130 
131  if (ImGui::Button("DiscordDisconnected", ImVec2(120, 0)))
132  {
133  //Blam::DiscordRPC::DummyEvent(3);
134  Blam::Logger::LogEvent("not yet implemented");
135  }
136 
137  if (ImGui::Button("DiscordJoinGame", ImVec2(120, 0)))
138  {
139  //Blam::DiscordRPC::DummyEvent(4);
140  Blam::Logger::LogEvent("not yet implemented");
141  }
142 
143  ImGui::SameLine();
144 
145  if (ImGui::Button("DiscordSpectateGame", ImVec2(120, 0)))
146  {
147  //Blam::DiscordRPC::DummyEvent(5);
148  Blam::Logger::LogEvent("not yet implemented");
149  }
150 
151  ImGui::SameLine();
152 
153  if (ImGui::Button("DiscordJoinRequest", ImVec2(120, 0)))
154  {
155  //Blam::DiscordRPC::DummyEvent(6);
156  Blam::Logger::LogEvent("not yet implemented");
157  }
158 
159  ImGui::End();
160  }
161 };
discord::ActivityParty::SetPrivacy
void SetPrivacy(ActivityPartyPrivacy privacy)
Definition: types.cpp:252
Blam::Logger::LogEvent
BLAM void LogEvent(std::string message)
Logs a message to the log and/or console.
Definition: aliases.cpp:130
BlamImGuiWindow_DiscordRPCTester::large_img_tooltip
char large_img_tooltip[127]
Definition: discord_rpc_tester.hpp:28
discord::Activity::GetAssets
ActivityAssets & GetAssets()
Definition: types.cpp:358
ImGui::Checkbox
IMGUI_API bool Checkbox(const char *label, bool *v)
Definition: imgui_widgets.cpp:974
logger.h
BlamImGuiWindow::show
bool show
Controls whether or not the group should be shown. May not be used in all groups.
Definition: imgui.h:34
BlamImGuiWindow_DiscordRPCTester
Class for the Discord Rich Presence test dialog.
Definition: discord_rpc_tester.hpp:21
discord::ActivityPartyPrivacy::Private
@ Private
version_data.h
discord::PartySize::SetCurrentSize
void SetCurrentSize(std::int32_t currentSize)
Definition: types.cpp:211
ImGui::InputText
IMGUI_API bool InputText(const char *label, char *buf, size_t buf_size, ImGuiInputTextFlags flags=0, ImGuiInputTextCallback callback=NULL, void *user_data=NULL)
Definition: imgui_widgets.cpp:3068
discord.h
discord::ActivityTimestamps::SetEnd
void SetEnd(Timestamp end)
Definition: types.cpp:157
discord::ActivitySecrets::SetSpectate
void SetSpectate(char const *spectate)
Definition: types.cpp:284
BlamImGuiWindow_DiscordRPCTester::instance
int instance
Definition: discord_rpc_tester.hpp:36
ImGui::End
IMGUI_API void End()
Definition: imgui.cpp:6016
BlamImGuiWindow_DiscordRPCTester::Draw
void Draw()
Draws the contents of the group.
Definition: discord_rpc_tester.hpp:43
BlamImGuiWindow_DiscordRPCTester::small_img_key
char small_img_key[31]
Definition: discord_rpc_tester.hpp:27
ImGui::SameLine
IMGUI_API void SameLine(float offset_from_start_x=0.0f, float spacing=-1.0f)
Definition: imgui.cpp:7147
BlamImGuiWindow_DiscordRPCTester::join_secret
char join_secret[127]
Definition: discord_rpc_tester.hpp:31
discord::Core::ActivityManager
discord::ActivityManager & ActivityManager()
Definition: core.cpp:101
discord::ActivityAssets::SetLargeImage
void SetLargeImage(char const *largeImage)
Definition: types.cpp:167
BlamImGuiWindow
Class representing an ImGUI window.
Definition: imgui.h:31
ImVec2
Definition: imgui.h:179
discord::ActivityTimestamps::SetStart
void SetStart(Timestamp start)
Definition: types.cpp:147
Blam::Networking::Discord::GetDiscord
BLAM discord::Core * GetDiscord()
Retrieves the Discord core instance.
Definition: discord.cpp:83
BlamImGuiWindow_DiscordRPCTester::use_start_time
bool use_start_time
Definition: discord_rpc_tester.hpp:39
BlamImGuiWindow_DiscordRPCTester::time_end
int time_end
Definition: discord_rpc_tester.hpp:38
discord::Activity::SetState
void SetState(char const *state)
Definition: types.cpp:326
ImGui::Begin
IMGUI_API bool Begin(const char *name, bool *p_open=NULL, ImGuiWindowFlags flags=0)
Definition: imgui.cpp:5397
discord::ActivityParty::SetId
void SetId(char const *id)
Definition: types.cpp:231
discord::ActivityParty::GetSize
PartySize & GetSize()
Definition: types.cpp:242
ENGINE_VERSION
#define ENGINE_VERSION
Definition: version_data.h:32
discord::ActivityAssets::SetSmallImage
void SetSmallImage(char const *smallImage)
Definition: types.cpp:189
discord::ActivityManager::UpdateActivity
void UpdateActivity(Activity const &activity, std::function< void(Result)> callback)
Definition: activity_manager.cpp:85
ImGui::Text
IMGUI_API void Text(const char *fmt,...) IM_FMTARGS(1)
Definition: imgui_widgets.cpp:238
BlamImGuiWindow_DiscordRPCTester::time_start
int64_t time_start
Definition: discord_rpc_tester.hpp:37
BlamImGuiWindow_DiscordRPCTester::details
char details[127]
Definition: discord_rpc_tester.hpp:25
BlamImGuiWindow_DiscordRPCTester::match_secret
char match_secret[127]
Definition: discord_rpc_tester.hpp:32
int64_t
long long int64_t
Definition: stdint.h:14
discord::ActivitySecrets::SetJoin
void SetJoin(char const *join)
Definition: types.cpp:273
discord::Activity
Definition: types.h:340
BlamImGuiWindow_DiscordRPCTester::player_count
int player_count
Definition: discord_rpc_tester.hpp:34
IM_ARRAYSIZE
#define IM_ARRAYSIZE(_ARR)
Definition: imgui.h:75
engine_definitions.h
BlamImGuiWindow_DiscordRPCTester::party_id
char party_id[127]
Definition: discord_rpc_tester.hpp:30
BlamImGuiWindow_DiscordRPCTester::spectate_secret
char spectate_secret[127]
Definition: discord_rpc_tester.hpp:33
discord::Activity::SetDetails
void SetDetails(char const *details)
Definition: types.cpp:337
ImGuiWindowFlags_AlwaysAutoResize
@ ImGuiWindowFlags_AlwaysAutoResize
Definition: imgui.h:720
discord::Activity::GetParty
ActivityParty & GetParty()
Definition: types.cpp:368
BlamImGuiWindow_DiscordRPCTester::max_players
int max_players
Definition: discord_rpc_tester.hpp:35
BlamImGuiWindow_DiscordRPCTester::state
char state[127]
Definition: discord_rpc_tester.hpp:24
BlamImGuiWindow_DiscordRPCTester::large_img_key
char large_img_key[31]
Definition: discord_rpc_tester.hpp:26
discord::ActivityAssets::SetLargeText
void SetLargeText(char const *largeText)
Definition: types.cpp:178
imgui.h
discord::ActivityPartyPrivacy::Public
@ Public
ImGui::Separator
IMGUI_API void Separator()
Definition: imgui_widgets.cpp:1284
BlamImGuiWindow_DiscordRPCTester::small_img_tooltip
char small_img_tooltip[127]
Definition: discord_rpc_tester.hpp:29
discord::Activity::GetTimestamps
ActivityTimestamps & GetTimestamps()
Definition: types.cpp:348
discord::PartySize::SetMaxSize
void SetMaxSize(std::int32_t maxSize)
Definition: types.cpp:221
BlamImGuiWindow_DiscordRPCTester::use_end_time
bool use_end_time
Definition: discord_rpc_tester.hpp:40
BlamImGuiWindow_DiscordRPCTester::private_party
bool private_party
Definition: discord_rpc_tester.hpp:41
discord::Activity::GetSecrets
ActivitySecrets & GetSecrets()
Definition: types.cpp:378
ImGui::Button
IMGUI_API bool Button(const char *label, const ImVec2 &size=ImVec2(0, 0))
Definition: imgui_widgets.cpp:644
ImGui::InputInt
IMGUI_API bool InputInt(const char *label, int *v, int step=1, int step_fast=100, ImGuiInputTextFlags flags=0)
Definition: imgui_widgets.cpp:3031