Files
Server/src/engine/devcmd/cmds/PrintEffectsCmd.java
T
MagicBotandClaude Opus 5.5 b2730794a2 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>
2026-10-23 16:27:27 -04:00

96 lines
3.3 KiB
Java

// • ▌ ▄ ·. ▄▄▄· ▄▄ • ▪ ▄▄· ▄▄▄▄· ▄▄▄· ▐▄▄▄ ▄▄▄ .
// ·██ ▐███▪▐█ ▀█ ▐█ ▀ ▪██ ▐█ ▌▪▐█ ▀█▪▐█ ▀█ •█▌ ▐█▐▌·
// ▐█ ▌▐▌▐█·▄█▀▀█ ▄█ ▀█▄▐█·██ ▄▄▐█▀▀█▄▄█▀▀█ ▐█▐ ▐▌▐▀▀▀
// ██ ██▌▐█▌▐█ ▪▐▌▐█▄▪▐█▐█▌▐███▌██▄▪▐█▐█ ▪▐▌██▐ █▌▐█▄▄▌
// ▀▀ █▪▀▀▀ ▀ ▀ ·▀▀▀▀ ▀▀▀·▀▀▀ ·▀▀▀▀ ▀ ▀ ▀▀ █▪ ▀▀▀
// Magicbane Emulator Project © 2013 - 2026
// https://www.magicbane.com
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;
/**
*
*/
public class PrintEffectsCmd extends AbstractDevCmd {
public PrintEffectsCmd() {
super("printeffects");
// super("printstats", MBServerStatics.ACCESS_LEVEL_ADMIN);
}
@Override
protected void _doCmd(PlayerCharacter pc, String[] words,
AbstractGameObject target) {
AbstractCharacter tar;
StringBuilder output;
String newline = "\r\n ";
Effect effect;
EffectsBase effectsBase;
PowersBase power;
if (target == null)
return;
if (target.getObjectType() != GameObjectType.PlayerCharacter && target.getObjectType() != GameObjectType.Mob
&& target.getObjectType() != GameObjectType.NPC)
return;
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 "Lists the target's effects: key, effect id and name, rank, time left and source power";
}
@Override
protected String _getUsageString() {
return "' /printeffects'";
}
}