chat commands: store kill counts in config
This will be used later.
This commit is contained in:
@@ -31,6 +31,8 @@ import java.io.IOException;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.concurrent.ExecutionException;
|
import java.util.concurrent.ExecutionException;
|
||||||
import java.util.concurrent.ScheduledExecutorService;
|
import java.util.concurrent.ScheduledExecutorService;
|
||||||
|
import java.util.regex.Matcher;
|
||||||
|
import java.util.regex.Pattern;
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.runelite.api.ChatMessageType;
|
import net.runelite.api.ChatMessageType;
|
||||||
@@ -38,6 +40,7 @@ import net.runelite.api.Client;
|
|||||||
import net.runelite.api.GameState;
|
import net.runelite.api.GameState;
|
||||||
import net.runelite.api.ItemComposition;
|
import net.runelite.api.ItemComposition;
|
||||||
import net.runelite.api.MessageNode;
|
import net.runelite.api.MessageNode;
|
||||||
|
import net.runelite.api.events.ChatMessage;
|
||||||
import net.runelite.api.events.SetMessage;
|
import net.runelite.api.events.SetMessage;
|
||||||
import net.runelite.api.vars.AccountType;
|
import net.runelite.api.vars.AccountType;
|
||||||
import net.runelite.client.chat.ChatColorType;
|
import net.runelite.client.chat.ChatColorType;
|
||||||
@@ -66,6 +69,8 @@ import net.runelite.http.api.item.SearchResult;
|
|||||||
public class ChatCommandsPlugin extends Plugin
|
public class ChatCommandsPlugin extends Plugin
|
||||||
{
|
{
|
||||||
private static final float HIGH_ALCHEMY_CONSTANT = 0.6f;
|
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();
|
private final HiscoreClient hiscoreClient = new HiscoreClient();
|
||||||
|
|
||||||
@@ -75,6 +80,9 @@ public class ChatCommandsPlugin extends Plugin
|
|||||||
@Inject
|
@Inject
|
||||||
private ChatCommandsConfig config;
|
private ChatCommandsConfig config;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
private ConfigManager configManager;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
private ItemManager itemManager;
|
private ItemManager itemManager;
|
||||||
|
|
||||||
@@ -108,6 +116,19 @@ public class ChatCommandsPlugin extends Plugin
|
|||||||
return configManager.getConfig(ChatCommandsConfig.class);
|
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.
|
* Checks if the chat message is a command.
|
||||||
*
|
*
|
||||||
@@ -170,7 +191,33 @@ public class ChatCommandsPlugin extends Plugin
|
|||||||
log.debug("Running clue lookup for {}", search);
|
log.debug("Running clue lookup for {}", search);
|
||||||
executor.submit(() -> playerClueLookup(setMessage.getType(), setMessage, 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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user