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>
96 lines
3.3 KiB
Java
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'";
|
|
}
|
|
|
|
}
|