public boolean okMessage(Environmental myHost, CMMsg msg) { if (!super.okMessage(myHost, msg)) return false; if (msg.targetMinor() == CMMsg.TYP_ENTER) { if (msg.target() == this) { MOB mob = msg.source(); if ((mob.location() != null) && (mob.location().roomID().length() > 0)) { int direction = -1; for (int d = Directions.NUM_DIRECTIONS() - 1; d >= 0; d--) { if (mob.location().getRoomInDir(d) == this) direction = d; } if (direction < 0) { mob.tell("Some great evil is preventing your movement that way."); return false; } msg.modify( msg.source(), getAltRoomFrom(mob.location(), direction), msg.tool(), msg.sourceCode(), msg.sourceMessage(), msg.targetCode(), msg.targetMessage(), msg.othersCode(), msg.othersMessage()); } } } return true; }
public void executeMsg(Environmental myHost, CMMsg msg) { super.executeMsg(myHost, msg); if ((affected instanceof Item) && (((Item) affected).owner() instanceof Room) && (((Room) ((Item) affected).owner()).isContent((Item) affected)) && (msg.sourceMinor() == CMMsg.TYP_SPEAK) && (invoker != null) && (invoker.location() != ((Room) ((Item) affected).owner())) && (msg.othersMessage() != null)) invoker.executeMsg(invoker, msg); }
@Override public void executeMsg(Environmental host, CMMsg msg) { super.executeMsg(host, msg); if ((affected instanceof MOB) && (msg.amISource((MOB) affected))) { if (!DATA.containsKey(msg.source())) DATA.put(msg.source(), new int[DATA_TOTAL]); final int[] data = DATA.get(msg.source()); if (data == null) return; if (msg.tool() instanceof Social) { if (nonIPnonMonsterWithMe(msg.source())) data[DATA_GOODSOCIAL]++; if ((msg.target() instanceof MOB) && (!((MOB) msg.target()).isMonster())) data[DATA_DIRSOCIAL]++; data[DATA_ANYSOCIAL]++; } else switch (msg.sourceMinor()) { case CMMsg.TYP_SPEAK: if ((msg.othersMessage() != null) && (msg.sourceMessage() != null) && (msg.othersMinor() == msg.sourceMinor()) && (msg.source().location() != null) && (msg.source().session() != null)) { if (msg.sourceMessage().indexOf("order(s)") > 0) { if ((msg.target() instanceof MOB) && (((MOB) msg.target()).session() != null) && (((MOB) msg.target()) .session() .getAddress() .equals(msg.source().session().getAddress()))) data[DATA_ORDER]++; } else { if (nonIPnonMonsterWithMe(msg.source())) data[DATA_GOODSPEECH]++; if ((msg.target() instanceof MOB) && (!((MOB) msg.target()).isMonster())) data[DATA_DIRSPEECH]++; data[DATA_ANYSPEECH]++; } } break; } } }
public static boolean robberyCheck(LandTitle A, CMMsg msg) { if (((msg.targetMinor() == CMMsg.TYP_GET) && (!msg.isTarget(CMMsg.MASK_INTERMSG))) || (msg.targetMinor() == CMMsg.TYP_PUSH) || (msg.targetMinor() == CMMsg.TYP_PULL)) { if ((msg.target() instanceof Item) && (((Item) msg.target()).owner() == msg.source().location()) && ((!(msg.tool() instanceof Item)) || (msg.source().isMine(msg.tool()))) && (!msg.sourceMajor(CMMsg.MASK_ALWAYS)) && (A.getOwnerName().length() > 0) && (msg.source().location() != null) && (msg.othersMessage() != null) && (msg.othersMessage().length() > 0) && (!shopkeeperMobPresent(msg.source().location())) && (!CMLib.law().doesHavePriviledgesHere(msg.source(), msg.source().location()))) { final Room R = msg.source().location(); final LegalBehavior B = CMLib.law().getLegalBehavior(R); if (B != null) { for (int m = 0; m < R.numInhabitants(); m++) { final MOB M = R.fetchInhabitant(m); if (CMLib.law().doesHavePriviledgesHere(M, R)) return true; } MOB D = null; final Clan C = CMLib.clans().getClan(A.getOwnerName()); if (C != null) D = C.getResponsibleMember(); else D = CMLib.players().getLoadPlayer(A.getOwnerName()); if (D == null) return true; B.accuse( CMLib.law().getLegalObject(R), msg.source(), D, new String[] {"PROPERTYROB", "THIEF_ROBBERY"}); } } return true; } return false; }