public void setStat(String code, String val) { if (CMLib.coffeeMaker().getGenItemCodeNum(code) >= 0) CMLib.coffeeMaker().setGenItemStat(this, code, val); else switch (getCodeNum(code)) { case 0: setLidsNLocks(hasALid(), isOpen(), CMath.s_bool(val), false); break; case 1: setLidsNLocks(CMath.s_bool(val), isOpen(), hasALock(), false); break; case 2: setCapacity(CMath.s_parseIntExpression(val)); break; case 3: setContainTypes(CMath.s_parseBitLongExpression(Container.CONTAIN_DESCS, val)); break; case 4: { int x = CMath.s_parseListIntExpression(RawMaterial.CODES.NAMES(), val); x = ((x >= 0) && (x < RawMaterial.RESOURCE_MASK)) ? RawMaterial.CODES.GET(x) : x; setFuelType(x); break; } case 5: setPowerCapacity(CMath.s_parseLongExpression(val)); break; default: CMProps.setStatCodeExtensionValue(getStatCodes(), xtraValues, code, val); break; } }
@Override public void setStat(String code, String val) { if (code == null) return; if (code.equalsIgnoreCase("DAMAGE")) this.damageToTake = CMath.s_int(val); else if (code.equalsIgnoreCase("REVERSED")) this.setProficiency(CMath.s_bool(val) ? 100 : 0); else if (code.equalsIgnoreCase("NORMAL")) this.setProficiency(CMath.s_bool(val) ? 0 : 100); else super.setStat(code, val); }
@Override public void setStat(String code, String val) { if (CMLib.coffeeMaker().getGenItemCodeNum(code) >= 0) CMLib.coffeeMaker().setGenItemStat(this, code, val); else switch (getCodeNum(code)) { case 0: setDoorsNLocks( hasADoor(), isOpen(), defaultsClosed(), CMath.s_bool(val), false, CMath.s_bool(val) && defaultsLocked()); break; case 1: setDoorsNLocks( CMath.s_bool(val), isOpen(), CMath.s_bool(val) && defaultsClosed(), hasALock(), false, defaultsLocked()); break; case 2: setCapacity(CMath.s_parseIntExpression(val)); break; case 3: setContainTypes(CMath.s_parseBitLongExpression(Container.CONTAIN_DESCS, val)); break; case 4: setOpenDelayTicks(CMath.s_parseIntExpression(val)); break; case 5: setClothingLayer((short) CMath.s_parseIntExpression(val)); break; case 6: setLayerAttributes((short) CMath.s_parseListLongExpression(Armor.LAYERMASK_DESCS, val)); break; case 7: setDoorsNLocks( hasADoor(), isOpen(), CMath.s_bool(val), hasALock(), isLocked(), defaultsLocked()); break; case 8: setDoorsNLocks( hasADoor(), isOpen(), defaultsClosed(), hasALock(), isLocked(), CMath.s_bool(val)); break; default: CMProps.setStatCodeExtensionValue(getStatCodes(), xtraValues, code, val); break; } }
@Override public void setStat(String code, String val) { if (CMLib.coffeeMaker().getGenItemCodeNum(code) >= 0) CMLib.coffeeMaker().setGenItemStat(this, code, val); else switch (getCodeNum(code)) { case 0: setDoorsNLocks( hasADoor(), isOpen(), defaultsClosed(), CMath.s_bool(val), false, CMath.s_bool(val) && defaultsLocked()); break; case 1: setDoorsNLocks( CMath.s_bool(val), isOpen(), CMath.s_bool(val) && defaultsClosed(), hasALock(), isLocked(), defaultsLocked()); break; case 2: setCapacity(CMath.s_parseIntExpression(val)); break; case 3: setContainTypes(CMath.s_parseBitLongExpression(Container.CONTAIN_DESCS, val)); break; case 4: setOpenDelayTicks(CMath.s_parseIntExpression(val)); break; case 5: setPowerCapacity(CMath.s_parseLongExpression(val)); break; case 6: { final List<String> mats = CMParms.parseCommas(val, true); final int[] newMats = new int[mats.size()]; for (int x = 0; x < mats.size(); x++) { final int rsccode = RawMaterial.CODES.FIND_CaseSensitive(mats.get(x).trim()); if (rsccode > 0) newMats[x] = rsccode; } super.setConsumedFuelType(newMats); break; } case 7: setPowerCapacity(CMath.s_parseLongExpression(val)); break; case 8: setGeneratedAmountPerTick(CMath.s_parseIntExpression(val)); break; case 9: activate(CMath.s_bool(val)); break; case 10: setManufacturerName(val); break; case 11: setInstalledFactor(CMath.s_float(val)); break; case 12: setDoorsNLocks( hasADoor(), isOpen(), CMath.s_bool(val), hasALock(), isLocked(), defaultsLocked()); break; case 13: setDoorsNLocks( hasADoor(), isOpen(), defaultsClosed(), hasALock(), isLocked(), CMath.s_bool(val)); break; default: CMProps.setStatCodeExtensionValue(getStatCodes(), xtraValues, code, val); break; } }
public void setStat(String code, String val) { int num = 0; int numDex = code.length(); while ((numDex > 0) && (Character.isDigit(code.charAt(numDex - 1)))) numDex--; if (numDex < code.length()) { num = CMath.s_int(code.substring(numDex)); code = code.substring(0, numDex); } final GOVT_STAT_CODES stat = getStatIndex(code); if (stat == null) { return; } switch (stat) { case NAME: name = val; break; case AUTOROLE: { ClanPosition P = getPosition(val); if (P != null) autoRole = P.getRoleID(); break; } case ACCEPTPOS: { ClanPosition P = getPosition(val); if (P != null) acceptPos = P.getRoleID(); break; } case SHORTDESC: shortDesc = val; break; case LONGDESC: longDesc = val; break; case XPLEVELFORMULA: setXpCalculationFormulaStr(val); break; case REQUIREDMASK: requiredMaskStr = val; break; case ISPUBLIC: isPublic = CMath.s_bool(val); break; case ISFAMILYONLY: isFamilyOnly = CMath.s_bool(val); break; case OVERRIDEMINMEMBERS: { if (val.length() == 0) overrideMinMembers = null; else overrideMinMembers = Integer.valueOf(CMath.s_int(val)); break; } case CONQUESTENABLED: conquestEnabled = CMath.s_bool(val); break; case CONQUESTITEMLOYALTY: conquestItemLoyalty = CMath.s_bool(val); break; case CONQUESTDEITYBASIS: conquestByWorship = CMath.s_bool(val); break; case MAXVOTEDAYS: maxVoteDays = CMath.s_int(val); break; case VOTEQUORUMPCT: voteQuorumPct = CMath.s_int(val); break; case AUTOPROMOTEBY: { Clan.AutoPromoteFlag flag = (Clan.AutoPromoteFlag) CMath.s_valueOf(Clan.AutoPromoteFlag.values(), val); if (flag != null) autoPromoteBy = flag; break; } case VOTEFUNCS: { final Vector<String> funcs = CMParms.parseCommas(val.toUpperCase().trim(), true); for (ClanPosition pos : positions) { for (int a = 0; a < Function.values().length; a++) if (pos.getFunctionChart()[a] == Authority.MUST_VOTE_ON) pos.getFunctionChart()[a] = Authority.CAN_NOT_DO; for (final String funcName : funcs) { Authority auth = (Authority) CMath.s_valueOf(Function.values(), funcName); if (auth != null) pos.getFunctionChart()[auth.ordinal()] = Authority.MUST_VOTE_ON; } } break; } case NUMRABLE: clanAbilityMap = null; if (CMath.s_int(val) == 0) { clanAbilityNames = null; clanAbilityProficiencies = null; clanAbilityQuals = null; clanAbilityLevels = null; } else { clanAbilityNames = new String[CMath.s_int(val)]; clanAbilityProficiencies = new int[CMath.s_int(val)]; clanAbilityQuals = new boolean[CMath.s_int(val)]; clanAbilityLevels = new int[CMath.s_int(val)]; } break; case GETRABLE: { if (clanAbilityNames == null) clanAbilityNames = new String[num + 1]; clanAbilityNames[num] = val; break; } case GETRABLEPROF: { if (clanAbilityProficiencies == null) clanAbilityProficiencies = new int[num + 1]; clanAbilityProficiencies[num] = CMath.s_parseIntExpression(val); break; } case GETRABLEQUAL: { if (clanAbilityQuals == null) clanAbilityQuals = new boolean[num + 1]; clanAbilityQuals[num] = CMath.s_bool(val); break; } case GETRABLELVL: { if (clanAbilityLevels == null) clanAbilityLevels = new int[num + 1]; clanAbilityLevels[num] = CMath.s_parseIntExpression(val); break; } case NUMREFF: clanEffectMap = null; if (CMath.s_int(val) == 0) { clanEffectNames = null; clanEffectParms = null; clanEffectLevels = null; } else { clanEffectNames = new String[CMath.s_int(val)]; clanEffectParms = new String[CMath.s_int(val)]; clanEffectLevels = new int[CMath.s_int(val)]; } break; case GETREFF: { if (clanEffectNames == null) clanEffectNames = new String[num + 1]; clanEffectNames[num] = val; break; } case GETREFFPARM: { if (clanEffectParms == null) clanEffectParms = new String[num + 1]; clanEffectParms[num] = val; break; } case GETREFFLVL: { if (clanEffectLevels == null) clanEffectLevels = new int[num + 1]; clanEffectLevels[num] = CMath.s_int(val); break; } default: Log.errOut("Clan", "setStat:Unhandled:" + stat.toString()); break; } }
@Override public String runMacro(HTTPRequest httpReq, String parm) { final java.util.Map<String, String> parms = parseParms(parm); final String last = httpReq.getUrlParameter("JOURNAL"); if (last == null) return " @break@"; boolean securityOverride = false; if ((Thread.currentThread() instanceof CWThread) && CMath.s_bool(((CWThread) Thread.currentThread()).getConfig().getMiscProp("ADMIN")) && parms.containsKey("ALLFORUMJOURNALS")) securityOverride = true; final MOB M = Authenticate.getAuthenticatedMob(httpReq); if ((!securityOverride) && (CMLib.journals().isArchonJournalName(last)) && ((M == null) || (!CMSecurity.isASysOp(M)))) return " @break@"; final Clan setClan = CMLib.clans().getClan(httpReq.getUrlParameter("CLAN")); final JournalsLibrary.ForumJournal journal = CMLib.journals().getForumJournal(last, setClan); if (journal == null) return " @break@"; final StringBuffer str = new StringBuffer(""); if (parms.containsKey("ISSMTPFORWARD")) { @SuppressWarnings("unchecked") final TreeMap<String, JournalsLibrary.SMTPJournal> set = (TreeMap<String, JournalsLibrary.SMTPJournal>) Resources.getResource("SYSTEM_SMTP_JOURNALS"); final JournalsLibrary.SMTPJournal entry = (set != null) ? set.get(last.toUpperCase().trim()) : null; final String email = ((M != null) && (M.playerStats() != null) && (M.playerStats().getEmail() != null)) ? M.playerStats().getEmail() : ""; str.append( ((entry != null) && (email.length() > 0)) ? Boolean.toString(entry.forward) : "false") .append(", "); } if (parms.containsKey("ISSMTPSUBSCRIBER")) { final Map<String, List<String>> lists = Resources.getCachedMultiLists("mailinglists.txt", true); final List<String> mylist = lists.get(last); str.append( ((mylist != null) && (M != null)) ? Boolean.toString(mylist.contains(M.Name())) : "false") .append(", "); } if (parms.containsKey("SMTPADDRESS")) { @SuppressWarnings("unchecked") final TreeMap<String, JournalsLibrary.SMTPJournal> set = (TreeMap<String, JournalsLibrary.SMTPJournal>) Resources.getResource("SYSTEM_SMTP_JOURNALS"); final JournalsLibrary.SMTPJournal entry = (set != null) ? set.get(last.toUpperCase().trim()) : null; if ((entry != null) && (entry.forward)) { str.append(entry.name.replace(' ', '_') + "@" + CMProps.getVar(CMProps.Str.MUDDOMAIN)) .append(", "); } } if (parms.containsKey("CANADMIN") || parms.containsKey("ISADMIN")) str.append("" + journal.authorizationCheck(M, ForumJournalFlags.ADMIN)).append(", "); if (parms.containsKey("CANPOST")) str.append("" + journal.authorizationCheck(M, ForumJournalFlags.POST)).append(", "); if (parms.containsKey("CANREAD")) str.append("" + journal.authorizationCheck(M, ForumJournalFlags.READ)).append(", "); if (parms.containsKey("CANREPLY")) str.append("" + journal.authorizationCheck(M, ForumJournalFlags.REPLY)).append(", "); if (parms.containsKey("ADMINMASK")) str.append("" + journal.adminMask()).append(", "); if (parms.containsKey("READMASK")) str.append("" + journal.readMask()).append(", "); if (parms.containsKey("POSTMASK")) str.append("" + journal.postMask()).append(", "); if (parms.containsKey("REPLYMASK")) str.append("" + journal.replyMask()).append(", "); if (parms.containsKey("ID")) str.append("" + journal.NAME()).append(", "); if (parms.containsKey("NAME")) str.append("" + journal.NAME()).append(", "); if (parms.containsKey("EXPIRE")) str.append("").append(", "); final JournalsLibrary.JournalSummaryStats stats = CMLib.journals().getJournalStats(journal); if (stats == null) return " @break@"; if (parms.containsKey("POSTS")) str.append("" + stats.posts).append(", "); if (parms.containsKey("THREADS")) str.append("" + stats.threads).append(", "); if (parms.containsKey("SHORTDESC")) str.append("" + stats.shortIntro).append(", "); if (parms.containsKey("LONGDESC")) str.append("" + stats.longIntro).append(", "); if (parms.containsKey("IMAGEPATH")) { if ((stats.imagePath == null) || (stats.imagePath.trim().length() == 0)) str.append(L("images/lilcm.jpg")).append(", "); else str.append("" + stats.threads).append(", "); } String strstr = str.toString(); if (strstr.endsWith(", ")) strstr = strstr.substring(0, strstr.length() - 2); return clearWebMacros(strstr); }