Pvp loot value message (#697)
* Sends a game message that tells you the total value of the loot whenever you get a pvp kill Signed-off-by: PKLite <stonewall@pklite.xyz> * forgot chatmessagetype Signed-off-by: PKLite <stonewall@pklite.xyz> * Moves this from pvp tools to Loot Tracker Signed-off-by: PKLite <stonewall@pklite.xyz> * Account for new WorldType Signed-off-by: PKLite <stonewall@pklite.xyz> * Update LootTrackerPlugin.java
This commit is contained in:
@@ -158,5 +158,15 @@ public interface LootTrackerConfig extends Config
|
|||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ConfigItem(
|
||||||
|
keyName = "lootValueMessage",
|
||||||
|
name = "Loot Value Messages",
|
||||||
|
description = "Sends a game message with the total value you of your loot when you get a kill",
|
||||||
|
position = 5
|
||||||
|
)
|
||||||
|
default boolean sendLootValueMessages()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -133,10 +133,6 @@ public class LootTrackerPlugin extends Plugin
|
|||||||
5179, "Brimstone Chest",
|
5179, "Brimstone Chest",
|
||||||
11573, "Crystal Chest"
|
11573, "Crystal Chest"
|
||||||
);
|
);
|
||||||
|
|
||||||
// Player deaths
|
|
||||||
public static HashSet<String> usernameSet = new HashSet<String>(Arrays.stream(new String[]{"All Records"}).collect(Collectors.toList()));
|
|
||||||
|
|
||||||
private static final File LOOT_RECORDS_FILE = new File(RuneLite.RUNELITE_DIR, "lootRecords.json");
|
private static final File LOOT_RECORDS_FILE = new File(RuneLite.RUNELITE_DIR, "lootRecords.json");
|
||||||
private static final Set<Integer> RESPAWN_REGIONS = ImmutableSet.of(
|
private static final Set<Integer> RESPAWN_REGIONS = ImmutableSet.of(
|
||||||
12850, // Lumbridge
|
12850, // Lumbridge
|
||||||
@@ -144,49 +140,38 @@ public class LootTrackerPlugin extends Plugin
|
|||||||
12342, // Edgeville
|
12342, // Edgeville
|
||||||
11062 // Camelot
|
11062 // Camelot
|
||||||
);
|
);
|
||||||
private boolean pvpDeath = false;
|
// Player deaths
|
||||||
|
public static HashSet<String> usernameSet = new HashSet<String>(Arrays.stream(new String[]{"All Records"}).collect(Collectors.toList()));
|
||||||
@Inject
|
|
||||||
private ClientToolbar clientToolbar;
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
private ItemManager itemManager;
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
private ChatMessageManager chatMessageManager;
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
private SpriteManager spriteManager;
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
private LootTrackerConfig config;
|
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public Client client;
|
public Client client;
|
||||||
|
@VisibleForTesting
|
||||||
|
public Collection<LootRecord> lootRecords = new ArrayList<>();
|
||||||
|
private boolean pvpDeath = false;
|
||||||
|
@Inject
|
||||||
|
private ClientToolbar clientToolbar;
|
||||||
|
@Inject
|
||||||
|
private ItemManager itemManager;
|
||||||
|
@Inject
|
||||||
|
private ChatMessageManager chatMessageManager;
|
||||||
|
@Inject
|
||||||
|
private SpriteManager spriteManager;
|
||||||
|
@Inject
|
||||||
|
private LootTrackerConfig config;
|
||||||
@Inject
|
@Inject
|
||||||
private ClientThread clientThread;
|
private ClientThread clientThread;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
private SessionManager sessionManager;
|
private SessionManager sessionManager;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
private ScheduledExecutorService executor;
|
private ScheduledExecutorService executor;
|
||||||
|
|
||||||
private LootTrackerPanel panel;
|
private LootTrackerPanel panel;
|
||||||
private NavigationButton navButton;
|
private NavigationButton navButton;
|
||||||
private String eventType;
|
private String eventType;
|
||||||
|
|
||||||
private List<String> ignoredItems = new ArrayList<>();
|
private List<String> ignoredItems = new ArrayList<>();
|
||||||
|
|
||||||
private Multiset<Integer> inventorySnapshot;
|
private Multiset<Integer> inventorySnapshot;
|
||||||
|
|
||||||
@Getter(AccessLevel.PACKAGE)
|
@Getter(AccessLevel.PACKAGE)
|
||||||
private LootTrackerClient lootTrackerClient;
|
private LootTrackerClient lootTrackerClient;
|
||||||
private BufferedReader bufferedReader;
|
private BufferedReader bufferedReader;
|
||||||
private JsonStreamParser jsonStreamParser;
|
private JsonStreamParser jsonStreamParser;
|
||||||
@VisibleForTesting
|
|
||||||
public Collection<LootRecord> lootRecords = new ArrayList<>();
|
|
||||||
|
|
||||||
private static Collection<ItemStack> stack(Collection<ItemStack> items)
|
private static Collection<ItemStack> stack(Collection<ItemStack> items)
|
||||||
{
|
{
|
||||||
@@ -217,6 +202,13 @@ public class LootTrackerPlugin extends Plugin
|
|||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static Collection<GameItem> toGameItems(Collection<ItemStack> items)
|
||||||
|
{
|
||||||
|
return items.stream()
|
||||||
|
.map(item -> new GameItem(item.getId(), item.getQuantity()))
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
LootTrackerConfig provideConfig(ConfigManager configManager)
|
LootTrackerConfig provideConfig(ConfigManager configManager)
|
||||||
{
|
{
|
||||||
@@ -405,7 +397,6 @@ public class LootTrackerPlugin extends Plugin
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Subscribe
|
@Subscribe
|
||||||
public void onPlayerSpawned(PlayerSpawned event)
|
public void onPlayerSpawned(PlayerSpawned event)
|
||||||
{
|
{
|
||||||
@@ -418,6 +409,18 @@ public class LootTrackerPlugin extends Plugin
|
|||||||
@Subscribe
|
@Subscribe
|
||||||
public void onPlayerLootReceived(final PlayerLootReceived playerLootReceived)
|
public void onPlayerLootReceived(final PlayerLootReceived playerLootReceived)
|
||||||
{
|
{
|
||||||
|
if (config.sendLootValueMessages())
|
||||||
|
{
|
||||||
|
if (WorldType.isDeadmanWorld(client.getWorldType()) || WorldType.isHighRiskWorld(client.getWorldType()) || WorldType.isPvpWorld(client.getWorldType()) || client.getVar(Varbits.IN_WILDERNESS) == 1)
|
||||||
|
{
|
||||||
|
final String totalValue = StackFormatter.quantityToRSStackSize(playerLootReceived.getItems().stream()
|
||||||
|
.mapToInt(itemStack -> itemManager.getItemPrice(itemStack.getId()) * itemStack.getQuantity()).sum());
|
||||||
|
|
||||||
|
chatMessageManager.queue(QueuedMessage.builder().type(ChatMessageType.CONSOLE).runeLiteFormattedMessage(
|
||||||
|
new ChatMessageBuilder().append("The total value of your loot is " + totalValue + " GP.")
|
||||||
|
.build()).build());
|
||||||
|
}
|
||||||
|
}
|
||||||
final Player player = playerLootReceived.getPlayer();
|
final Player player = playerLootReceived.getPlayer();
|
||||||
final Collection<ItemStack> items = playerLootReceived.getItems();
|
final Collection<ItemStack> items = playerLootReceived.getItems();
|
||||||
final String name = player.getName();
|
final String name = player.getName();
|
||||||
@@ -793,13 +796,6 @@ public class LootTrackerPlugin extends Plugin
|
|||||||
.toArray(LootTrackerItem[]::new);
|
.toArray(LootTrackerItem[]::new);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Collection<GameItem> toGameItems(Collection<ItemStack> items)
|
|
||||||
{
|
|
||||||
return items.stream()
|
|
||||||
.map(item -> new GameItem(item.getId(), item.getQuantity()))
|
|
||||||
.collect(Collectors.toList());
|
|
||||||
}
|
|
||||||
|
|
||||||
public Collection<LootTrackerRecord> convertToLootTrackerRecord(final Collection<LootRecord> records)
|
public Collection<LootTrackerRecord> convertToLootTrackerRecord(final Collection<LootRecord> records)
|
||||||
{
|
{
|
||||||
Collection<LootTrackerRecord> trackerRecords = new ArrayList<>();
|
Collection<LootTrackerRecord> trackerRecords = new ArrayList<>();
|
||||||
|
|||||||
@@ -1,10 +1,12 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2019. PKLite - All Rights Reserved
|
* ******************************************************************************
|
||||||
* Unauthorized modification, distribution, or possession of this source file, via any medium is strictly prohibited.
|
* * Copyright (c) 2019 RuneLitePlus
|
||||||
* Proprietary and confidential. Refer to PKLite License file for more information on
|
* * Redistributions and modifications of this software are permitted as long as this notice remains in its original unmodified state at the top of this file.
|
||||||
* full terms of this copyright and to determine what constitutes authorized use.
|
* * If there are any questions comments, or feedback about this software, please direct all inquiries directly to the file authors:
|
||||||
* Written by PKLite(ST0NEWALL, others) <stonewall@thots.cc.usa>, 2019
|
* * ST0NEWALL#9112
|
||||||
*
|
* * RuneLitePlus Discord: https://discord.gg/Q7wFtCe
|
||||||
|
* * RuneLitePlus website: https://runelitepl.us
|
||||||
|
* *****************************************************************************
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package net.runelite.client.plugins.pvptools;
|
package net.runelite.client.plugins.pvptools;
|
||||||
@@ -44,6 +46,7 @@ import net.runelite.api.events.MenuEntryAdded;
|
|||||||
import net.runelite.api.events.MenuOpened;
|
import net.runelite.api.events.MenuOpened;
|
||||||
import net.runelite.api.events.PlayerDespawned;
|
import net.runelite.api.events.PlayerDespawned;
|
||||||
import net.runelite.api.events.PlayerSpawned;
|
import net.runelite.api.events.PlayerSpawned;
|
||||||
|
import net.runelite.client.chat.ChatMessageManager;
|
||||||
import net.runelite.client.config.ConfigManager;
|
import net.runelite.client.config.ConfigManager;
|
||||||
import net.runelite.client.eventbus.Subscribe;
|
import net.runelite.client.eventbus.Subscribe;
|
||||||
import net.runelite.client.game.AsyncBufferedImage;
|
import net.runelite.client.game.AsyncBufferedImage;
|
||||||
@@ -104,6 +107,9 @@ public class PvpToolsPlugin extends Plugin
|
|||||||
@Inject
|
@Inject
|
||||||
private ItemManager itemManager;
|
private ItemManager itemManager;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
private ChatMessageManager chatMessageManager;
|
||||||
|
|
||||||
private PvpToolsPlugin uhPvpToolsPlugin = this;
|
private PvpToolsPlugin uhPvpToolsPlugin = this;
|
||||||
|
|
||||||
private static final String WALK_HERE = "WALK HERE";
|
private static final String WALK_HERE = "WALK HERE";
|
||||||
@@ -510,6 +516,7 @@ public class PvpToolsPlugin extends Plugin
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Enables or disables the fall in helper feature
|
* Enables or disables the fall in helper feature
|
||||||
*/
|
*/
|
||||||
|
|||||||
Reference in New Issue
Block a user