Show effect details in /printeffects

Each line now has the effects map key (effect UUID or stack type such as
PetBuff), the effect id and name, rank, time left or static, and the
power that applied it. Help and usage strings no longer describe
/printstats.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
MagicBotandClaude Opus 5.5 committed 2026-10-23 16:27:27 -04:00
1 parent c8653626a2
commit b2730794a2
1 file changed
+48 -10
+48 -10
View File
@@ -10,9 +10,15 @@
package engine.devcmd.cmds;
import engine.devcmd.AbstractDevCmd;
import engine.mbEnums.GameObjectType;
import engine.objects.AbstractCharacter;
import engine.objects.AbstractGameObject;
import engine.objects.Effect;
import engine.objects.PlayerCharacter;
import engine.powers.EffectsBase;
import engine.powers.PowersBase;
import java.util.Map;
/**
*
@@ -30,28 +36,60 @@ public class PrintEffectsCmd extends AbstractDevCmd {
AbstractGameObject target) {
AbstractCharacter tar;
StringBuilder output;
String newline = "\r\n ";
Effect effect;
EffectsBase effectsBase;
PowersBase power;
if (target != null && target instanceof AbstractCharacter) {
tar = (AbstractCharacter) target;
if (target == null)
return;
String newline = "\r\n ";
String output = "Effects For Character: " + tar.getName() + newline;
if (target.getObjectType() != GameObjectType.PlayerCharacter && target.getObjectType() != GameObjectType.Mob
&& target.getObjectType() != GameObjectType.NPC)
return;
for (String effect : tar.effects.keySet()) {
output += effect + newline;
}
throwbackInfo(pc, output);
tar = (AbstractCharacter) target;
output = new StringBuilder("Effects for " + tar.getName() + " (" + tar.effects.size() + "):" + newline);
// Keys are the effect UUID for mobbase/rune effects, or the stack type (e.g. PetBuff) for power effects
for (Map.Entry<String, Effect> entry : tar.effects.entrySet()) {
effect = entry.getValue();
effectsBase = effect.getEffectsBase();
power = effect.getPower();
output.append(entry.getKey()).append(": ");
if (effectsBase != null)
output.append(effectsBase.getIDString()).append(" '").append(effectsBase.getName()).append("'");
else
output.append("no EffectsBase");
output.append(" rank ").append(effect.getTrains());
if (effect.isStatic())
output.append(", static");
else
output.append(", ").append((int) effect.getDuration()).append("s left");
if (power != null)
output.append(", from ").append(power.getIDString()).append(" '").append(power.getName()).append("'");
output.append(newline);
}
throwbackInfo(pc, output.toString());
}
@Override
protected String _getHelpString() {
return "Returns the player's current stats";
return "Lists the target's effects: key, effect id and name, rank, time left and source power";
}
@Override
protected String _getUsageString() {
return "' /printstats'";
return "' /printeffects'";
}
}