thread::spawn(move || {
let drpc = DRPC_CLIENT.lock().map_err(|e| e.to_string());
if let Ok(mut drpc) = drpc {
if let Some(ref mut client) = *drpc {
let mut activity_builder = activity::Activity::new();
if !state.is_empty() {
activity_builder = activity_builder.state(&state);
}
if !details.is_empty() {
activity_builder = activity_builder.details(&details);
}
let mut assets = activity::Assets::new()
.large_image(&large_image)
.large_text(&large_text);
if !small_image.is_empty() {
assets = assets
.small_image(&small_image)
.small_text(&small_text);
}
// this button is not shown idk why
if let (Some(label), Some(url)) = (button_label.as_ref(), button_url.as_ref()) {
if !label.is_empty() && !url.is_empty() {
let button = activity::Button::new(label.as_str(), url.as_str());
activity_builder = activity_builder.buttons(vec![button]);
}
}
activity_builder = activity_builder
.assets(assets)
.activity_type(activity::ActivityType::Playing);
match client.set_activity(activity_builder) {
Ok(_) => (),
Err(e) => eprintln!("Failed to set activity: {}", e), // Changed panic to eprintln
}
}
}
});
Ok(())
}
#Discord button
5 messages · Page 1 of 1 (latest)
but no nutton
interface DiscordActivity {
activity_type: string;
state: string;
details: string;
largeImage: string;
largeText: string;
smallImage: string;
smallText: string;
buttonlabel?: string;
buttonurl?: string;
}
const defaultActivity: DiscordActivity = {
activity_type: "Playing",
state: "",
details: "idle",
largeImage: "discord",
largeText: "eSports App",
smallImage: "",
smallText: "",
buttonlabel: "eSports App",
buttonurl: "https://esportsapp.gg/"
};
async function updateDiscordActivity(activity: DiscordActivity = defaultActivity) {
try {
await invoke("update_activity", { ...activity });
console.log("Activity updated!");
console.log(activity);
} catch (error) {
console.error("Failed to update Discord RPC", error);
}
}
my button do not show up and i dont know why
Seems like you've fixed it.