public void processMonsterUpdate(UpdateMonster um) {
   if (um != null) {
     if (monsters.containsKey(um.id)) {
       Monster monster = monsters.get(um.id);
       if (monster != null) {
         EIError.debugMsg(
             "Setting " + um.id + " to " + um.mapX + ":" + um.mapY + ", Action: " + um.action);
         monster.setPosition(um.mapX, um.mapY);
         if (um.previousGoal != null) {
           monster.ai.setPreviousGoal(um.previousGoal);
         }
         if (um.currentGoal != null) {
           monster.ai.setCurrentGoal(um.currentGoal);
         }
         if (um.action.equals("ApplyDamage")) {
           monster.applyDamage(um.dataInt, um.actor);
         } else if (um.action.equals("ApplyKnockBack")) {
           monster.applyKnockBack(um.dataInt, um.dataInt2);
         } else if (um.action.equals("Die")) {
           monster.setHitPoints(0);
         } else if (um.action.equals("Fear")) {
           monster.applyKnockBack(um.dataInt, um.dataInt2);
           monster.fear(um.dataPoint, um.dataLong);
         }
       }
     } else {
       if (gameController.multiplayerMode == gameController.multiplayerMode.CLIENT
           && registry.getNetworkThread() != null) {
         if (registry.getNetworkThread().readyForUpdates()) {
           EIError.debugMsg("Monster not found - need " + um.id);
           registry.getNetworkThread().sendData("send monster data: " + um.id);
         }
       }
     }
   }
 }