diff --git a/src/main/java/universalDiscord/DeathThumbnail.java b/src/main/java/universalDiscord/DeathThumbnail.java new file mode 100644 index 0000000..8d10372 --- /dev/null +++ b/src/main/java/universalDiscord/DeathThumbnail.java @@ -0,0 +1,15 @@ +package universalDiscord; + +public enum DeathThumbnail { + NONE(null), + DEATH("https://oldschool.runescape.wiki/images/Death.png"), + GRAVE("https://oldschool.runescape.wiki/images/Grave.png"), + BONES("https://oldschool.runescape.wiki/images/Bones_detail.png"), + ANGEL_GRAVE("https://oldschool.runescape.wiki/images/Grave_%28Angel%29.png"); + + public final String thumbnailUrl; + + DeathThumbnail(String thumbnailUrl) { + this.thumbnailUrl = thumbnailUrl; + } +} diff --git a/src/main/java/universalDiscord/UniversalDiscordConfig.java b/src/main/java/universalDiscord/UniversalDiscordConfig.java index 81e8d8e..2ab528d 100644 --- a/src/main/java/universalDiscord/UniversalDiscordConfig.java +++ b/src/main/java/universalDiscord/UniversalDiscordConfig.java @@ -260,11 +260,22 @@ default boolean deathSendImage() { return false; } + @ConfigItem( + keyName = "deathThumbnail", + name = "Thumbnail to use", + description = "Send a thumbnail with the notification", + position = 3, + section = deathSection + ) + default DeathThumbnail deathThumbnail() { + return DeathThumbnail.DEATH; + } + @ConfigItem( keyName = "deathNotifMessage", name = "Notification Message", description = "The message to be sent through the webhook. Use %USERNAME% to insert your username", - position = 3, + position = 4, section = deathSection ) default String deathNotifyMessage() { diff --git a/src/main/java/universalDiscord/notifiers/DeathNotifier.java b/src/main/java/universalDiscord/notifiers/DeathNotifier.java index 1f27b8b..5333e77 100644 --- a/src/main/java/universalDiscord/notifiers/DeathNotifier.java +++ b/src/main/java/universalDiscord/notifiers/DeathNotifier.java @@ -1,9 +1,12 @@ package universalDiscord.notifiers; +import net.runelite.api.Player; import net.runelite.api.events.ActorDeath; +import universalDiscord.DeathThumbnail; import universalDiscord.UniversalDiscordPlugin; import universalDiscord.Utils; import universalDiscord.message.MessageBuilder; +import universalDiscord.message.discord.Image; import javax.inject.Inject; import java.util.Objects; @@ -21,6 +24,10 @@ public void handleNotify() { String notifyMessage = Utils.replaceCommonPlaceholders(plugin.config.deathNotifyMessage()); MessageBuilder messageBuilder = MessageBuilder.textAsEmbed(notifyMessage, plugin.config.deathSendImage()); + String thumbnailUrl = deathThumbNail().thumbnailUrl; + if (thumbnailUrl != null) { + messageBuilder.webhookBody.getEmbeds().stream().findFirst().ifPresent((embed -> embed.setThumbnail(new Image(thumbnailUrl)))); + } plugin.messageHandler.sendMessage(messageBuilder); reset(); @@ -29,8 +36,19 @@ public void handleNotify() { @Override public boolean shouldNotify() { return isEnabled() - && lastActorDeath != null - && Objects.equals(lastActorDeath.getActor().getName(), Utils.getPlayerName()); + && lastActorDeathIsLocalPlayer(); + } + + public boolean lastActorDeathIsLocalPlayer() { + if (lastActorDeath != null) { + return Objects.equals(lastActorDeath.getActor(), plugin.client.getLocalPlayer()); + } + + return false; + } + + public DeathThumbnail deathThumbNail() { + return plugin.config.deathThumbnail(); } @Override