Added NPC kill counts with message display (#644)

* Added kill counts with message display

* Fixed barrows chest count

* Preserve insertion order of NPC IDs for Constants

* Added KC command and interfaces

* Added more robustness to KC command

* Added alias and documentation to new commands

* Added more aliases for new commands

* Merged slayer KC interface names

* Preserve slayerkc nameToKills insertion order and formatting fix

* Updated comment

* Added missing boss NPC id

* Moved giant mole up in set

* Emptied out quest interface properly for kc

* Fixed whitespace

* Fixed formatting

* Hide boss KC messages by default
This commit is contained in:
ipkpjersi
2024-09-20 21:40:58 -04:00
committed by GitHub
parent fd731242dd
commit e404eadb3b
7 changed files with 318 additions and 5 deletions
@@ -5,6 +5,7 @@ import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Base64;
import java.util.Map;
import com.rs2.util.Misc;
@@ -439,6 +440,15 @@ public class PlayerSave {
case "discord-user-id":
player.discordCode = token2;
break;
case "display-boss-kc-messages":
player.displayBossKcMessages = Boolean.parseBoolean(token2);
break;
case "display-slayer-kc-messages":
player.displaySlayerKcMessages = Boolean.parseBoolean(token2);
break;
case "display-regular-kc-messages":
player.displayRegularKcMessages = Boolean.parseBoolean(token2);
break;
}
break;
case 3:
@@ -480,6 +490,16 @@ public class PlayerSave {
if (token.equals("character-ignore")) {
player.ignores[Integer.parseInt(token3[0])] = Long.parseLong(token3[1]);
}
case 10:
if (token.startsWith("npcid-")) {
try {
int npcId = Integer.parseInt(token.substring(6));
int killCount = Integer.parseInt(token2);
player.incrementNpcKillCount(npcId, killCount);
} catch (NumberFormatException e) {
System.out.println("Error parsing NPC kill count for " + token);
}
}
break;
}
} else {
@@ -511,6 +531,9 @@ public class PlayerSave {
case "[IGNORES]":
ReadMode = 9;
break;
case "[NPC-KILLS]":
ReadMode = 10;
break;
case "[EOF]":
try {
characterfile.close();
@@ -833,6 +856,12 @@ public class PlayerSave {
characterfile.newLine();
characterfile.write("discord-user-id = " + player.discordCode);
characterfile.newLine();
characterfile.write("display-boss-kc-messages = " + player.displayBossKcMessages);
characterfile.newLine();
characterfile.write("display-slayer-kc-messages = " + player.displaySlayerKcMessages);
characterfile.newLine();
characterfile.write("display-regular-kc-messages = " + player.displayRegularKcMessages);
characterfile.newLine();
characterfile.newLine();
/* EQUIPMENT */
@@ -905,6 +934,14 @@ public class PlayerSave {
}
characterfile.newLine();
characterfile.write("[NPC-KILLS]");
characterfile.newLine();
for (Map.Entry<Integer, Integer> entry : player.getNpcKillCounts().entrySet()) {
characterfile.write("npcid-" + entry.getKey() + " = " + entry.getValue());
characterfile.newLine();
}
characterfile.newLine();
/* EOF */
characterfile.write("[EOF]");
characterfile.newLine();