@Override
 public void call(MessageRunner runner) {
   if (OrbSpawnableMobs.classList.remove(
       EntityList.stringToClassMapping.get(runner.getString("id"))))
     MessageLogger.logOk("Removed 1 mob from the list.");
   else MessageLogger.logFail("The mob was not present in the list.");
 }
        @Override
        public void call(MessageRunner runner) {
          ItemPattern pattern = runner.<ItemPattern>getValue("pattern");

          WeightedItemList list = OrbAcquirableItems.idList;
          int size = list.size(), damageRemoved = 0;

          for (Iterator<WeightedItem> iter = list.iterator(); iter.hasNext(); ) {
            Pair<Integer, Boolean> info = iter.next().runBlacklistPattern(pattern);

            if (info.getRight()) iter.remove();
            damageRemoved += info.getLeft();
          }

          size = size - list.size();

          if (size == 0 && damageRemoved == 0)
            MessageLogger.logWarn("Did not find any items to remove.");
          else if (size == 0)
            MessageLogger.logOk("Removed $0 damage value(s) from items.", damageRemoved);
          else
            MessageLogger.logOk(
                "Removed $0 item(s) and $1 damage value(s) in total.", size, damageRemoved);

          if (list.size() == 0)
            MessageLogger.logWarn("No items left in the list, falling back to generic chest loot.");
        }
        @Override
        public void call(MessageRunner runner) {
          Class<?> cls = (Class<?>) EntityList.stringToClassMapping.get(runner.getString("id"));

          if (IBossDisplayData.class.isAssignableFrom(cls))
            MessageLogger.logFail("Cannot add boss mobs to the list.");
          else if (OrbSpawnableMobs.classList.add(cls))
            MessageLogger.logOk("Added 1 mob to the list.");
          else MessageLogger.logFail("The mob was already in the list.");
        }