【发布时间】:2016-12-16 04:04:22
【问题描述】:
我正在为 Discord 服务器编写一个机器人,它允许人们从电子表格中查找有关视频游戏的信息,包括角色可能拥有的技能。角色按基础攻击力排序,简称BP。
我允许按角色类别进行过滤,并且括号放在不具有该技能但可以通过项目获得它的角色周围(这就是为什么在某些时候它会寻找等于 (skill + "*") 的东西。我的代码是如下:
private String getSkillUsers(String skill, String class) {
String bp90 = "";
String bp80 = "";
String bp70 = "";
String bp60 = "";
String bp50 = "";
String bp40 = "";
String bp30 = "";
//lfChars is a ListFeed from a Google Spreadsheet containing the chart I am referencing
for (ListEntry le : Main.lfChars.getEntries())
{
CustomElementCollection cec = le.getCustomElements();
if (type.equals(""))
{
if (cec.getValue("skill").equalsIgnoreCase(skill))
{
switch (Integer.valueOf(cec.getValue("bp")))
{
case 30: bp30 += cec.getValue("name") + ", "; break;
case 40: bp40 += cec.getValue("name") + ", "; break;
case 50: bp50 += cec.getValue("name") + ", "; break;
case 60: bp60 += cec.getValue("name") + ", "; break;
case 70: bp70 += cec.getValue("name") + ", "; break;
case 80: bp80 += cec.getValue("name") + ", "; break;
case 90: bp90 += cec.getValue("name") + ", "; break;
}
}
else if (cec.getValue("skill").equalsIgnoreCase(skill + "*"))
{
switch (Integer.valueOf(cec.getValue("bp")))
{
case 30: bp30 += "(" + cec.getValue("name") + "), "; break;
case 40: bp40 += "(" + cec.getValue("name") + "), "; break;
case 50: bp50 += "(" + cec.getValue("name") + "), "; break;
case 60: bp60 += "(" + cec.getValue("name") + "), "; break;
case 70: bp70 += "(" + cec.getValue("name") + "), "; break;
case 80: bp80 += "(" + cec.getValue("name") + "), "; break;
case 90: bp90 += "(" + cec.getValue("name") + "), "; break;
}
}
}
else
{
if (cec.getValue("skill").equalsIgnoreCase(skill) && cec.getValue("type").equalsIgnoreCase(type))
{
switch (Integer.valueOf(cec.getValue("bp")))
{
case 30: bp30 += cec.getValue("name") + ", "; break;
case 40: bp40 += cec.getValue("name") + ", "; break;
case 50: bp50 += cec.getValue("name") + ", "; break;
case 60: bp60 += cec.getValue("name") + ", "; break;
case 70: bp70 += cec.getValue("name") + ", "; break;
case 80: bp80 += cec.getValue("name") + ", "; break;
case 90: bp90 += cec.getValue("name") + ", "; break;
}
}
else if (cec.getValue("skill").equalsIgnoreCase(skill + "*") && cec.getValue("type").equalsIgnoreCase(type))
{
switch (Integer.valueOf(cec.getValue("bp")))
{
case 30: bp30 += "(" + cec.getValue("name") + "), "; break;
case 40: bp40 += "(" + cec.getValue("name") + "), "; break;
case 50: bp50 += "(" + cec.getValue("name") + "), "; break;
case 60: bp60 += "(" + cec.getValue("name") + "), "; break;
case 70: bp70 += "(" + cec.getValue("name") + "), "; break;
case 80: bp80 += "(" + cec.getValue("name") + "), "; break;
case 90: bp90 += "(" + cec.getValue("name") + "), "; break;
}
}
}
}
String skillUsers = "";
if (!bp90.equals(""))
{
skillUsers += "90: " + bp90.substring(0, bp90.length() - 2) + Main.LS;
}
if (!bp80.equals(""))
{
skillUsers += "80: " + bp80.substring(0, bp80.length() - 2) + Main.LS;
}
if (!bp70.equals(""))
{
skillUsers += "70: " + bp70.substring(0, bp70.length() - 2) + Main.LS;
}
if (!bp60.equals(""))
{
skillUsers += "60: " + bp60.substring(0, bp60.length() - 2) + Main.LS;
}
if (!bp50.equals(""))
{
skillUsers += "50: " + bp50.substring(0, bp50.length() - 2) + Main.LS;
}
if (!bp40.equals(""))
{
skillUsers += "40: " + bp40.substring(0, bp40.length() - 2) + Main.LS;
}
if (!bp30.equals(""))
{
skillUsers += "30: " + bp30.substring(0, bp30.length() - 2) + Main.LS;
}
return skillUsers;
每当我想更改某些内容时,这都很难编辑。有什么办法可以让这个更短吗?如果需要,我可以添加额外的方法。
【问题讨论】: