chat commands: add support for league hiscores
This commit is contained in:
@@ -27,6 +27,7 @@ package net.runelite.client.plugins.chatcommands;
|
|||||||
|
|
||||||
import com.google.inject.Provides;
|
import com.google.inject.Provides;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.util.EnumSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.concurrent.ScheduledExecutorService;
|
import java.util.concurrent.ScheduledExecutorService;
|
||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
@@ -41,8 +42,10 @@ import net.runelite.api.Experience;
|
|||||||
import net.runelite.api.IconID;
|
import net.runelite.api.IconID;
|
||||||
import net.runelite.api.ItemComposition;
|
import net.runelite.api.ItemComposition;
|
||||||
import net.runelite.api.MessageNode;
|
import net.runelite.api.MessageNode;
|
||||||
|
import net.runelite.api.Player;
|
||||||
import net.runelite.api.VarPlayer;
|
import net.runelite.api.VarPlayer;
|
||||||
import net.runelite.api.Varbits;
|
import net.runelite.api.Varbits;
|
||||||
|
import net.runelite.api.WorldType;
|
||||||
import net.runelite.api.events.ChatMessage;
|
import net.runelite.api.events.ChatMessage;
|
||||||
import net.runelite.api.events.GameTick;
|
import net.runelite.api.events.GameTick;
|
||||||
import net.runelite.api.events.VarbitChanged;
|
import net.runelite.api.events.VarbitChanged;
|
||||||
@@ -1126,31 +1129,28 @@ public class ChatCommandsPlugin extends Plugin
|
|||||||
*/
|
*/
|
||||||
private HiscoreLookup getCorrectLookupFor(final ChatMessage chatMessage)
|
private HiscoreLookup getCorrectLookupFor(final ChatMessage chatMessage)
|
||||||
{
|
{
|
||||||
final String player;
|
Player localPlayer = client.getLocalPlayer();
|
||||||
final HiscoreEndpoint ironmanStatus;
|
final String player = sanitize(chatMessage.getName());
|
||||||
|
|
||||||
if (chatMessage.getType().equals(ChatMessageType.PRIVATECHATOUT))
|
// If we are sending the message then just use the local hiscore endpoint for the world
|
||||||
|
if (chatMessage.getType().equals(ChatMessageType.PRIVATECHATOUT)
|
||||||
|
|| player.equals(localPlayer.getName()))
|
||||||
{
|
{
|
||||||
player = client.getLocalPlayer().getName();
|
return new HiscoreLookup(localPlayer.getName(), hiscoreEndpoint);
|
||||||
ironmanStatus = hiscoreEndpoint;
|
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
player = sanitize(chatMessage.getName());
|
|
||||||
|
|
||||||
if (player.equals(client.getLocalPlayer().getName()))
|
// Public chat on a leagues world is always league hiscores, regardless of icon
|
||||||
|
if (chatMessage.getType() == ChatMessageType.PUBLICCHAT || chatMessage.getType() == ChatMessageType.MODCHAT)
|
||||||
|
{
|
||||||
|
if (client.getWorldType().contains(WorldType.LEAGUE))
|
||||||
{
|
{
|
||||||
// Get ironman status from for the local player
|
return new HiscoreLookup(player, HiscoreEndpoint.LEAGUE);
|
||||||
ironmanStatus = hiscoreEndpoint;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// Get ironman status from their icon in chat
|
|
||||||
ironmanStatus = getHiscoreEndpointByName(chatMessage.getName());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return new HiscoreLookup(player, ironmanStatus);
|
// Get ironman status from their icon in chat
|
||||||
|
HiscoreEndpoint endpoint = getHiscoreEndpointByName(chatMessage.getName());
|
||||||
|
return new HiscoreLookup(player, endpoint);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1189,6 +1189,12 @@ public class ChatCommandsPlugin extends Plugin
|
|||||||
*/
|
*/
|
||||||
private HiscoreEndpoint getLocalHiscoreEndpointType()
|
private HiscoreEndpoint getLocalHiscoreEndpointType()
|
||||||
{
|
{
|
||||||
|
EnumSet<WorldType> worldType = client.getWorldType();
|
||||||
|
if (worldType.contains(WorldType.LEAGUE))
|
||||||
|
{
|
||||||
|
return HiscoreEndpoint.LEAGUE;
|
||||||
|
}
|
||||||
|
|
||||||
return toEndPoint(client.getAccountType());
|
return toEndPoint(client.getAccountType());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user