chat commands: refactor skill abbreviation to a switch

This commit is contained in:
Adam
2022-04-06 10:50:40 -04:00
parent bdf556f4bd
commit d46a661651
2 changed files with 74 additions and 93 deletions

View File

@@ -2167,9 +2167,82 @@ public class ChatCommandsPlugin extends Plugin
}
}
private static String longSkillName(String skill)
{
switch (skill.toUpperCase())
{
case "ATK":
case "ATT":
return net.runelite.api.Skill.ATTACK.getName();
case "DEF":
return net.runelite.api.Skill.DEFENCE.getName();
case "STR":
return net.runelite.api.Skill.STRENGTH.getName();
case "HEALTH":
case "HIT":
case "HITPOINT":
case "HP":
return net.runelite.api.Skill.HITPOINTS.getName();
case "RANGE":
case "RANGING":
case "RNG":
return net.runelite.api.Skill.RANGED.getName();
case "PRAY":
return net.runelite.api.Skill.PRAYER.getName();
case "MAG":
case "MAGE":
return net.runelite.api.Skill.MAGIC.getName();
case "COOK":
return net.runelite.api.Skill.COOKING.getName();
case "WC":
case "WOOD":
case "WOODCUT":
return net.runelite.api.Skill.WOODCUTTING.getName();
case "FLETCH":
return net.runelite.api.Skill.FLETCHING.getName();
case "FISH":
return net.runelite.api.Skill.FISHING.getName();
case "FM":
case "FIRE":
return net.runelite.api.Skill.FIREMAKING.getName();
case "CRAFT":
return net.runelite.api.Skill.CRAFTING.getName();
case "SMITH":
return net.runelite.api.Skill.SMITHING.getName();
case "MINE":
return net.runelite.api.Skill.MINING.getName();
case "HL":
case "HERB":
return net.runelite.api.Skill.HERBLORE.getName();
case "AGI":
case "AGIL":
return net.runelite.api.Skill.AGILITY.getName();
case "THIEF":
return net.runelite.api.Skill.THIEVING.getName();
case "SLAY":
return net.runelite.api.Skill.SLAYER.getName();
case "FARM":
return net.runelite.api.Skill.FARMING.getName();
case "RC":
case "RUNE":
case "RUNECRAFTING":
return net.runelite.api.Skill.RUNECRAFT.getName();
case "HUNT":
return net.runelite.api.Skill.HUNTER.getName();
case "CON":
case "CONSTRUCT":
return net.runelite.api.Skill.CONSTRUCTION.getName();
case "ALL":
case "TOTAL":
return net.runelite.api.Skill.OVERALL.getName();
default:
return skill;
}
}
private static HiscoreSkill findHiscoreSkill(String search)
{
String s = SkillAbbreviations.getFullName(search);
String s = longSkillName(search);
if (s == search)
{
s = longBossName(search);

View File

@@ -1,92 +0,0 @@
/*
* Copyright (c) 2017, Adam <Adam@sigterm.info>
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this
* list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package net.runelite.client.plugins.chatcommands;
import com.google.common.collect.ImmutableMap;
import java.util.Map;
import net.runelite.api.Skill;
class SkillAbbreviations
{
private static final Map<String, String> MAP;
static
{
ImmutableMap.Builder<String, String> builder = new ImmutableMap.Builder<>();
builder.put("ATK", Skill.ATTACK.getName());
builder.put("ATT", Skill.ATTACK.getName());
builder.put("DEF", Skill.DEFENCE.getName());
builder.put("STR", Skill.STRENGTH.getName());
builder.put("HEALTH", Skill.HITPOINTS.getName());
builder.put("HIT", Skill.HITPOINTS.getName());
builder.put("HITPOINT", Skill.HITPOINTS.getName());
builder.put("HP", Skill.HITPOINTS.getName());
builder.put("RANGE", Skill.RANGED.getName());
builder.put("RANGING", Skill.RANGED.getName());
builder.put("RNG", Skill.RANGED.getName());
builder.put("PRAY", Skill.PRAYER.getName());
builder.put("MAG", Skill.MAGIC.getName());
builder.put("MAGE", Skill.MAGIC.getName());
builder.put("COOK", Skill.COOKING.getName());
builder.put("WC", Skill.WOODCUTTING.getName());
builder.put("WOOD", Skill.WOODCUTTING.getName());
builder.put("WOODCUT", Skill.WOODCUTTING.getName());
builder.put("FLETCH", Skill.FLETCHING.getName());
builder.put("FISH", Skill.FISHING.getName());
builder.put("FM", Skill.FIREMAKING.getName());
builder.put("FIRE", Skill.FIREMAKING.getName());
builder.put("CRAFT", Skill.CRAFTING.getName());
builder.put("SMITH", Skill.SMITHING.getName());
builder.put("MINE", Skill.MINING.getName());
builder.put("HL", Skill.HERBLORE.getName());
builder.put("HERB", Skill.HERBLORE.getName());
builder.put("AGI", Skill.AGILITY.getName());
builder.put("AGIL", Skill.AGILITY.getName());
builder.put("THIEF", Skill.THIEVING.getName());
builder.put("SLAY", Skill.SLAYER.getName());
builder.put("FARM", Skill.FARMING.getName());
builder.put("RC", Skill.RUNECRAFT.getName());
builder.put("RUNE", Skill.RUNECRAFT.getName());
builder.put("RUNECRAFTING", Skill.RUNECRAFT.getName());
builder.put("HUNT", Skill.HUNTER.getName());
builder.put("CON", Skill.CONSTRUCTION.getName());
builder.put("CONSTRUCT", Skill.CONSTRUCTION.getName());
builder.put("ALL", Skill.OVERALL.getName());
builder.put("TOTAL", Skill.OVERALL.getName());
MAP = builder.build();
}
/**
* Takes a string representing the name of a skill, and if abbreviated,
* expands it into its full canonical name. Case-insensitive.
*
* @param abbrev Skill name that may be abbreviated.
* @return Full skill name if recognized, else the original string.
*/
static String getFullName(String abbrev)
{
return MAP.getOrDefault(abbrev.toUpperCase(), abbrev);
}
}