diff --git a/runelite-client/src/main/java/net/runelite/client/discord/DiscordService.java b/runelite-client/src/main/java/net/runelite/client/discord/DiscordService.java index 7147c1821d..e89d11f4dd 100644 --- a/runelite-client/src/main/java/net/runelite/client/discord/DiscordService.java +++ b/runelite-client/src/main/java/net/runelite/client/discord/DiscordService.java @@ -129,7 +129,7 @@ public class DiscordService implements AutoCloseable discordRichPresence.largeImageText = discordPresence.getLargeImageText(); discordRichPresence.smallImageKey = Strings.isNullOrEmpty(discordPresence.getSmallImageKey()) ? "default" - : discordPresence.getLargeImageKey(); + : discordPresence.getSmallImageKey(); discordRichPresence.smallImageText = discordPresence.getSmallImageText(); discordRichPresence.partyId = discordPresence.getPartyId(); discordRichPresence.partySize = discordPresence.getPartySize(); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/discord/DiscordGameEventType.java b/runelite-client/src/main/java/net/runelite/client/plugins/discord/DiscordGameEventType.java index 7b221346b2..d5b2d936bb 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/discord/DiscordGameEventType.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/discord/DiscordGameEventType.java @@ -24,7 +24,7 @@ */ package net.runelite.client.plugins.discord; -import com.google.common.collect.Sets; +import com.google.common.collect.ImmutableSet; import java.util.Set; import java.util.function.Function; import lombok.AllArgsConstructor; @@ -62,32 +62,34 @@ public enum DiscordGameEventType { IN_GAME("In Game", false), IN_MENU("In Menu", false), - TRAINING_ATTACK(training(ATTACK), DiscordGameEventType::combatSkillChanged), - TRAINING_DEFENCE(training(DEFENCE), DiscordGameEventType::combatSkillChanged), - TRAINING_STRENGTH(training(STRENGTH), DiscordGameEventType::combatSkillChanged), - TRAINING_HITPOINTS(training(HITPOINTS), DiscordGameEventType::combatSkillChanged), - TRAINING_SLAYER(training(SLAYER), 1, DiscordGameEventType::combatSkillChanged), - TRAINING_RANGED(training(RANGED), DiscordGameEventType::combatSkillChanged), - TRAINING_MAGIC(training(MAGIC), DiscordGameEventType::combatSkillChanged), - TRAINING_PRAYER(training(PRAYER)), - TRAINING_COOKING(training(COOKING)), - TRAINING_WOODCUTTING(training(WOODCUTTING)), - TRAINING_FLETCHING(training(FLETCHING)), - TRAINING_FISHING(training(FISHING)), - TRAINING_FIREMAKING(training(FIREMAKING)), - TRAINING_CRAFTING(training(CRAFTING)), - TRAINING_SMITHING(training(SMITHING)), - TRAINING_MINING(training(MINING)), - TRAINING_HERBLORE(training(HERBLORE)), - TRAINING_AGILITY(training(AGILITY)), - TRAINING_THIEVING(training(THIEVING)), - TRAINING_FARMING(training(FARMING)), - TRAINING_RUNECRAFT(training(RUNECRAFT)), - TRAINING_HUNTER(training(HUNTER)), - TRAINING_CONSTRUCTION(training(CONSTRUCTION)); + TRAINING_ATTACK(ATTACK, DiscordGameEventType::combatSkillChanged), + TRAINING_DEFENCE(DEFENCE, DiscordGameEventType::combatSkillChanged), + TRAINING_STRENGTH(STRENGTH, DiscordGameEventType::combatSkillChanged), + TRAINING_HITPOINTS(HITPOINTS, DiscordGameEventType::combatSkillChanged), + TRAINING_SLAYER(SLAYER, 1, DiscordGameEventType::combatSkillChanged), + TRAINING_RANGED(RANGED, DiscordGameEventType::combatSkillChanged), + TRAINING_MAGIC(MAGIC, DiscordGameEventType::combatSkillChanged), + TRAINING_PRAYER(PRAYER), + TRAINING_COOKING(COOKING), + TRAINING_WOODCUTTING(WOODCUTTING), + TRAINING_FLETCHING(FLETCHING), + TRAINING_FISHING(FISHING), + TRAINING_FIREMAKING(FIREMAKING), + TRAINING_CRAFTING(CRAFTING), + TRAINING_SMITHING(SMITHING), + TRAINING_MINING(MINING), + TRAINING_HERBLORE(HERBLORE), + TRAINING_AGILITY(AGILITY), + TRAINING_THIEVING(THIEVING), + TRAINING_FARMING(FARMING), + TRAINING_RUNECRAFT(RUNECRAFT), + TRAINING_HUNTER(HUNTER), + TRAINING_CONSTRUCTION(CONSTRUCTION); + + private static final Set COMBAT_SKILLS = ImmutableSet.of(ATTACK, STRENGTH, DEFENCE, HITPOINTS, SLAYER, RANGED, MAGIC); - private static final Set COMBAT_SKILLS = Sets.newHashSet(ATTACK, STRENGTH, DEFENCE, HITPOINTS, SLAYER, RANGED, MAGIC); private final String state; + private final String imageKey; private String details; private boolean considerDelay = true; private Function isChanged = (l) -> true; @@ -96,22 +98,31 @@ public enum DiscordGameEventType DiscordGameEventType(String state, boolean considerDelay) { this.state = state; + this.imageKey = "default"; this.considerDelay = considerDelay; } - DiscordGameEventType(String state, int priority, Function isChanged) + DiscordGameEventType(Skill skill, int priority, Function isChanged) { - this.state = state; + this.state = training(skill); + this.imageKey = imageKeyOf(skill); this.priority = priority; this.isChanged = isChanged; } - DiscordGameEventType(String state, Function isChanged) + DiscordGameEventType(Skill skill, Function isChanged) { - this.state = state; + this.state = training(skill); + this.imageKey = imageKeyOf(skill); this.isChanged = isChanged; } + DiscordGameEventType(Skill skill) + { + this.state = training(skill); + this.imageKey = imageKeyOf(skill); + } + private static String training(final Skill skill) { return training(skill.getName()); @@ -122,7 +133,17 @@ public enum DiscordGameEventType return "Training: " + what; } - static boolean combatSkillChanged(final DiscordGameEventType l) + private static String imageKeyOf(final Skill skill) + { + return imageKeyOf(skill.getName().toLowerCase()); + } + + private static String imageKeyOf(final String what) + { + return "icon_" + what; + } + + private static boolean combatSkillChanged(final DiscordGameEventType l) { for (Skill skill : Skill.values()) { @@ -161,8 +182,7 @@ public enum DiscordGameEventType case RUNECRAFT: return TRAINING_RUNECRAFT; case HUNTER: return TRAINING_HUNTER; case CONSTRUCTION: return TRAINING_CONSTRUCTION; + default: return null; } - - return null; } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/discord/DiscordState.java b/runelite-client/src/main/java/net/runelite/client/plugins/discord/DiscordState.java index a6365bed66..6573b633d3 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/discord/DiscordState.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/discord/DiscordState.java @@ -111,6 +111,7 @@ public class DiscordState .state(lastEvent.getState()) .details(lastEvent.getDetails()) .startTimestamp(startOfAction) + .smallImageKey(newEvent.getImageKey()) .build(); needsFlush = true; @@ -126,11 +127,6 @@ public class DiscordState final Duration actionTimeout = Duration.ofMinutes(timeout); - if (Instant.now().compareTo(lastAction.plus(actionTimeout)) >= 0) - { - return true; - } - - return false; + return Instant.now().isAfter(lastAction.plus(actionTimeout)); } }