chat commands: store kill counts in config

This will be used later.
This commit is contained in:
Adam
2018-07-01 11:08:39 -04:00
parent 00e58d101f
commit 2bc38a124c

View File

@@ -31,6 +31,8 @@ import java.io.IOException;
import java.util.List;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ScheduledExecutorService;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.inject.Inject;
import lombok.extern.slf4j.Slf4j;
import net.runelite.api.ChatMessageType;
@@ -38,6 +40,7 @@ import net.runelite.api.Client;
import net.runelite.api.GameState;
import net.runelite.api.ItemComposition;
import net.runelite.api.MessageNode;
import net.runelite.api.events.ChatMessage;
import net.runelite.api.events.SetMessage;
import net.runelite.api.vars.AccountType;
import net.runelite.client.chat.ChatColorType;
@@ -66,6 +69,8 @@ import net.runelite.http.api.item.SearchResult;
public class ChatCommandsPlugin extends Plugin
{
private static final float HIGH_ALCHEMY_CONSTANT = 0.6f;
private static final Pattern KILLCOUNT_PATERN = Pattern.compile("Your ([a-zA-Z ]+) kill count is: <col=ff0000>(\\d+)</col>.");
private static final Pattern WINTERTODT_PATERN = Pattern.compile("Your subdued Wintertodt count is: <col=ff0000>(\\d+)</col>.");
private final HiscoreClient hiscoreClient = new HiscoreClient();
@@ -75,6 +80,9 @@ public class ChatCommandsPlugin extends Plugin
@Inject
private ChatCommandsConfig config;
@Inject
private ConfigManager configManager;
@Inject
private ItemManager itemManager;
@@ -108,6 +116,19 @@ public class ChatCommandsPlugin extends Plugin
return configManager.getConfig(ChatCommandsConfig.class);
}
private void setKc(String boss, int killcount)
{
configManager.setConfiguration("killcount." + client.getUsername().toLowerCase(),
boss.toLowerCase(), killcount);
}
private int getKc(String boss)
{
Integer killCount = configManager.getConfiguration("killcount." + client.getUsername().toLowerCase(),
boss.toLowerCase(), int.class);
return killCount == null ? 0 : killCount;
}
/**
* Checks if the chat message is a command.
*
@@ -170,7 +191,33 @@ public class ChatCommandsPlugin extends Plugin
log.debug("Running clue lookup for {}", search);
executor.submit(() -> playerClueLookup(setMessage.getType(), setMessage, search));
}
}
@Subscribe
public void onChatMessage(ChatMessage chatMessage)
{
if (chatMessage.getType() != ChatMessageType.SERVER && chatMessage.getType() != ChatMessageType.FILTERED)
{
return;
}
String message = chatMessage.getMessage();
Matcher matcher = KILLCOUNT_PATERN.matcher(message);
if (matcher.find())
{
String boss = matcher.group(1);
int kc = Integer.parseInt(matcher.group(2));
setKc(boss, kc);
}
matcher = WINTERTODT_PATERN.matcher(message);
if (matcher.find())
{
int kc = Integer.parseInt(matcher.group(1));
setKc("Wintertodt", kc);
}
}
/**