package net.sourceforge.pain.tinylib.logic.affect;
import net.sourceforge.pain.*;
import net.sourceforge.pain.data.*;
import net.sourceforge.pain.logic.*;
import net.sourceforge.pain.tinylib.data.affect.*;
import net.sourceforge.pain.tinylib.data.type.*;
import net.sourceforge.pain.tinylib.logic.fn.*;
/**
* Player with a frozen account is not able to login
* <p/>
* Codebase require from all affect controllers (Affect subclasses) to have constructor with (AffectData d) param.
* this constructor is used for automatically affect controller instantiation and initialization with
* persistent image
*/
public class FrozenAccountAffect extends Affect {
/**
* this constructor is required by codebase
*/
public FrozenAccountAffect(AffectData ad) {
super(ad);
}
public static void applyToObject(String adminName, Player victim, String reason) throws Exception {
if (adminName == null) {
throw new NullPointerException("adminName should not be NULL!");
}
new FrozenAccountAffectData(Codebase.getDB(), adminName, victim, reason, FrozenAccountAffect.class, AffectType.AFFECT_FROZEN_ACCOUNT);
MessageOutFn.outln(victim, "Your account has been frozen");//just an example
}
/**
* user is allowed to cancel affect manualy
*/
public static void cancelAffect(Player p) {
AffectData ad = p.getAffectData(AffectType.AFFECT_FROZEN_ACCOUNT);
ad.delete();
}
}