私は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;
は、これは私が何かを変更したい時はいつでも編集することが非常に困難である私は、これは短くすることができますどのような方法があり、必要であれば、私は、余分なメソッドを追加することができます
私はそれを正しく理解していないかもしれませんが、 'bp30'や他のリストにはこのシステムを使って複数の文字がリストされているようには見えません。編集:ああ、私は今それを得る。 – user4313659
しかし、私はまだif文を凝縮するためにこれをどのように使うのかはまだ分かりません。 – user4313659
baseAttackPowers.get(something).substring(その他) – learner0000