public void handleForceGain(int oid, int skillid, int extraForce) {
        if (!GameConstants.isForceIncrease(skillid) && extraForce <= 0) {
            return;
        }
        int forceGain = 1;
        if (getLevel() >= 30 && getLevel() < 60) {
            forceGain = 2;
        } else if (getLevel() >= 60 && getLevel() < 100) {
            forceGain = 3;
        } else if (getLevel() >= 100) {
            forceGain = 4;
        }
        force++; // counter
        if (GameConstants.isDemonSlayer(getJob())) {
            addMP(extraForce > 0 ? extraForce : forceGain, true);
        }
        getClient().getSession().write(CField.gainForce(oid, force, forceGain));
        if (GameConstants.isDemonSlayer(getJob())) {
            if (stats.mpRecoverProp > 0 && extraForce <= 0) {
                if (Randomizer.nextInt(100) <= stats.mpRecoverProp) {//i think its out of 100, anyway
                    force++; // counter
                    addMP(stats.mpRecover, true);
                    getClient().getSession().write(CField.gainForce(oid, force, stats.mpRecover));
                }
            }
        }
    }