public boolean tick(Tickable ticking, int tickID) { if (!(affected instanceof MOB)) return false; if (invoker == null) return false; MOB mob = (MOB) affected; if (clan2Set == null) { if (clan2 == null) return super.tick(ticking, tickID); Vector<Pair<Clan, Integer>> V = new Vector<Pair<Clan, Integer>>(); V.add(new Pair<Clan, Integer>(clan2, Integer.valueOf(clan2.getGovernment().getAcceptPos()))); clan2Set = V; } List<String> channels = CMLib.channels().getFlaggedChannelNames(ChannelsLibrary.ChannelFlag.CLANINFO); for (int i = 0; i < channels.size(); i++) CMLib.commands() .postChannel( channels.get(i), clan2Set, mob.name() + " located in '" + mob.location().displayText(mob) + "' is performing a peace ritual on behalf of " + clan1.name() + ".", false); return super.tick(ticking, tickID); }
public boolean execute(MOB mob, Vector commands, int metaFlags) throws java.io.IOException { String memberStr = (commands.size() > 1) ? (String) commands.get(commands.size() - 1) : ""; String clanName = (commands.size() > 2) ? CMParms.combine(commands, 1, commands.size() - 1) : ""; Clan C = null; boolean skipChecks = mob.getClanRole(mob.Name()) != null; if (skipChecks) C = mob.getClanRole(mob.Name()).first; if (C == null) for (Pair<Clan, Integer> c : mob.clans()) if ((clanName.length() == 0) || (CMLib.english().containsString(c.first.getName(), clanName)) && (c.first.getAuthority(c.second.intValue(), Clan.Function.EXILE) != Authority.CAN_NOT_DO)) { C = c.first; break; } commands.clear(); commands.addElement(getAccessWords()[0]); commands.addElement(memberStr); StringBuffer msg = new StringBuffer(""); boolean found = false; if (memberStr.length() > 0) { if (C == null) { mob.tell( "You aren't allowed to exile anyone from " + ((clanName.length() == 0) ? "anything" : clanName) + "."); return false; } if (skipChecks || CMLib.clans().goForward(mob, C, commands, Clan.Function.EXILE, false)) { List<MemberRecord> apps = C.getMemberList(); if (apps.size() < 1) { mob.tell("There are no members in your " + C.getGovernmentName() + "."); return false; } for (MemberRecord member : apps) { if (member.name.equalsIgnoreCase(memberStr)) { found = true; } } if (found) { MOB M = CMLib.players().getLoadPlayer(memberStr); if (M == null) { mob.tell( memberStr + " was not found. Could not exile from " + C.getGovernmentName() + "."); return false; } if (skipChecks || CMLib.clans().goForward(mob, C, commands, Clan.Function.EXILE, true)) { if (C.getGovernment().getExitScript().trim().length() > 0) { Pair<Clan, Integer> curClanRole = M.getClanRole(C.clanID()); if (curClanRole != null) M.setClan(C.clanID(), curClanRole.second.intValue()); ScriptingEngine S = (ScriptingEngine) CMClass.getCommon("DefaultScriptingEngine"); S.setSavable(false); S.setVarScope("*"); S.setScript(C.getGovernment().getExitScript()); CMMsg msg2 = CMClass.getMsg(M, M, null, CMMsg.MSG_OK_VISUAL, null, null, "CLANEXIT"); S.executeMsg(M, msg2); S.dequeResponses(); S.tick(M, Tickable.TICKID_MOB); } CMLib.clans() .clanAnnounce( mob, "Member exiled from " + C.getGovernmentName() + " " + C.name() + ": " + M.Name()); mob.tell( M.Name() + " has been exiled from " + C.getGovernmentName() + " '" + C.clanID() + "'."); if ((M.session() != null) && (M.session().mob() == M)) M.tell( "You have been exiled from " + C.getGovernmentName() + " '" + C.clanID() + "'."); C.delMember(M); return false; } } else { msg.append(memberStr + " isn't a member of your " + C.getGovernmentName() + "."); } } else { msg.append( "You aren't in the right position to exile anyone from your " + C.getGovernmentName() + "."); } } else { msg.append("You haven't specified which member you are exiling."); } mob.tell(msg.toString()); return false; }
public static String getBasic(MOB M, int i) { StringBuffer str = new StringBuffer(""); switch (i) { case 0: str.append(M.Name() + ", "); break; case 1: str.append(M.description() + ", "); break; case 2: if (M.playerStats() != null) str.append(CMLib.time().date2String(M.playerStats().lastDateTime()) + ", "); break; case 3: if (M.playerStats() != null) str.append(M.playerStats().getEmail() + ", "); break; case 4: str.append(M.baseCharStats().getMyRace().name() + ", "); break; case 5: str.append( M.baseCharStats().getCurrentClass().name(M.baseCharStats().getCurrentClassLevel()) + ", "); break; case 6: str.append(M.baseEnvStats().level() + ", "); break; case 7: str.append(M.baseCharStats().displayClassLevel(M, true) + ", "); break; case 8: str.append(M.baseCharStats().getClassLevel(M.baseCharStats().getCurrentClass()) + ", "); break; case 9: { for (int c = M.charStats().numClasses() - 1; c >= 0; c--) { CharClass C = M.charStats().getMyClass(c); str.append( C.name(M.baseCharStats().getCurrentClassLevel()) + " (" + M.charStats().getClassLevel(C) + ") "); } str.append(", "); break; } case 10: if (M.maxCarry() > (Integer.MAX_VALUE / 3)) str.append("NA, "); else str.append(M.maxCarry() + ", "); break; case 11: str.append(CMStrings.capitalizeAndLower(CMLib.combat().fightingProwessStr(M)) + ", "); break; case 12: str.append(CMStrings.capitalizeAndLower(CMLib.combat().armorStr(M)) + ", "); break; case 13: str.append(CMLib.combat().adjustedDamage(M, null, null) + ", "); break; case 14: str.append(Math.round(CMath.div(M.getAgeHours(), 60.0)) + ", "); break; case 15: str.append(M.getPractices() + ", "); break; case 16: str.append(M.getExperience() + ", "); break; case 17: if (M.getExpNeededLevel() == Integer.MAX_VALUE) str.append("N/A, "); else str.append(M.getExpNextLevel() + ", "); break; case 18: str.append(M.getTrains() + ", "); break; case 19: str.append(CMLib.beanCounter().getMoney(M) + ", "); break; case 20: str.append(M.getWorshipCharID() + ", "); break; case 21: str.append(M.getLiegeID() + ", "); break; case 22: str.append(M.getClanID() + ", "); break; case 23: if (M.getClanID().length() > 0) { Clan C = CMLib.clans().getClan(M.getClanID()); if (C != null) str.append( CMLib.clans().getRoleName(C.getGovernment(), M.getClanRole(), true, false) + ", "); } break; case 24: str.append(M.fetchFaction(CMLib.factions().AlignID()) + ", "); break; case 25: { Faction.FactionRange FR = CMLib.factions() .getRange(CMLib.factions().AlignID(), M.fetchFaction(CMLib.factions().AlignID())); if (FR != null) str.append(FR.name() + ", "); else str.append(M.fetchFaction(CMLib.factions().AlignID())); break; } case 26: str.append(M.getWimpHitPoint() + ", "); break; case 27: if (M.getStartRoom() != null) str.append(M.getStartRoom().displayText() + ", "); break; case 28: if (M.location() != null) str.append(M.location().displayText() + ", "); break; case 29: if (M.getStartRoom() != null) str.append(M.getStartRoom().roomID() + ", "); break; case 30: if (M.location() != null) str.append(M.location().roomID() + ", "); break; case 31: { for (int inv = 0; inv < M.inventorySize(); inv++) { Item I = M.fetchInventory(inv); if ((I != null) && (I.container() == null)) str.append(I.name() + ", "); } break; } case 32: str.append(M.baseEnvStats().weight() + ", "); break; case 33: str.append(M.envStats().weight() + ", "); break; case 34: str.append(CMStrings.capitalizeAndLower(M.baseCharStats().genderName()) + ", "); break; case 35: if (M.playerStats() != null) str.append(M.playerStats().lastDateTime() + ", "); break; case 36: str.append(M.curState().getHitPoints() + ", "); break; case 37: str.append(M.curState().getMana() + ", "); break; case 38: str.append(M.curState().getMovement() + ", "); break; case 39: if (M.riding() != null) str.append(M.riding().name() + ", "); break; case 40: str.append(M.baseEnvStats().height() + ", "); break; case 41: if (!M.isMonster()) str.append(M.session().getAddress() + ", "); else if (M.playerStats() != null) str.append(M.playerStats().lastIP() + ", "); break; case 42: str.append(M.getQuestPoint() + ", "); break; case 43: str.append(M.maxState().getHitPoints() + ", "); break; case 44: str.append(M.maxState().getMana() + ", "); break; case 45: str.append(M.maxState().getMovement() + ", "); break; case 46: str.append(M.rawImage() + ", "); break; case 47: str.append(M.maxItems() + ", "); break; case 48: { String[] paths = CMProps.mxpImagePath(M.image()); if (paths[0].length() > 0) str.append(paths[0] + paths[1] + ", "); break; } case 49: if (CMProps.mxpImagePath(M.image())[0].length() > 0) str.append("true, "); else str.append("false, "); break; case 50: if (M.playerStats() != null) str.append(M.playerStats().notes() + ", "); break; case 51: if (M.playerStats() != null) { long lastDateTime = -1; for (int level = 0; level <= M.envStats().level(); level++) { long dateTime = M.playerStats().leveledDateTime(level); if ((dateTime > 1529122205) && (dateTime != lastDateTime)) { str.append("<TR>"); if (level == 0) str.append("<TD><FONT COLOR=WHITE>Created</FONT></TD>"); else str.append("<TD><FONT COLOR=WHITE>" + level + "</FONT></TD>"); str.append( "<TD><FONT COLOR=WHITE>" + CMLib.time().date2String(dateTime) + "</FONT></TD></TR>"); } } str.append(", "); } break; case 52: str.append(M.baseEnvStats().attackAdjustment() + ", "); break; case 53: str.append(M.baseEnvStats().damage() + ", "); break; case 54: str.append(M.baseEnvStats().armor() + ", "); break; case 55: str.append(M.envStats().speed() + ", "); break; case 56: str.append(M.baseEnvStats().speed() + ", "); break; case 57: { for (int e = 0; e < M.numExpertises(); e++) { String E = M.fetchExpertise(e); ExpertiseLibrary.ExpertiseDefinition X = CMLib.expertises().getDefinition(E); if (X == null) str.append(E + ", "); else str.append(X.name + ", "); } break; } case 58: { for (int t = 0; t < M.numTattoos(); t++) { String E = M.fetchTattoo(t); str.append(E + ", "); } break; } case 59: { if (M.playerStats() != null) for (int b = 0; b < M.playerStats().getSecurityGroups().size(); b++) { String B = (String) M.playerStats().getSecurityGroups().elementAt(b); if (B != null) str.append(B + ", "); } break; } case 60: { if (M.playerStats() != null) for (int b = 0; b < M.playerStats().getTitles().size(); b++) { String B = (String) M.playerStats().getTitles().elementAt(b); if (B != null) str.append(B + ", "); } break; } case 61: { for (Enumeration e = M.fetchFactions(); e.hasMoreElements(); ) { String FID = (String) e.nextElement(); Faction F = CMLib.factions().getFaction(FID); int value = M.fetchFaction(FID); if (F != null) str.append(F.name() + " (" + value + "), "); } break; } case 62: str.append(CMProps.getBoolVar(CMProps.SYSTEMB_ACCOUNTEXPIRATION) ? "true" : "false"); break; case 63: if (M.playerStats() != null) str.append(CMLib.time().date2String(M.playerStats().getAccountExpiration())); break; case 64: { for (int f = 0; f < M.numFollowers(); f++) str.append(M.fetchFollower(f).name()).append(", "); // Vector V=CMLib.database().DBScanFollowers(M); // for(int v=0;v<V.size();v++) // str.append(((MOB)V.elementAt(v)).name()).append(", "); break; } case 65: if ((M.playerStats() != null) && (M.playerStats().getAccount() != null)) str.append(M.playerStats().getAccount().accountName()); break; } return str.toString(); }