Package net.cloudcodex.server.data.Data

Examples of net.cloudcodex.server.data.Data.Message


    if(scene == null) {
      return false;
    }

    // FIXME should iterate to deal with concurrent updates of scene
    final Message message = new Message(scene);
    message.setAuthor(character);
    message.setContent(text);
    message.setType(MessageType.ACTION.getCode());
    message.setAction(MessageAction.SPEECH.getCode());
    createMessage(context, scene, message);
    return true;
  }
View Full Code Here


      context.addError(Errors.OUTOFDATE);
      return false;
    }
   
    // FIXME should iterate to deal with concurrent updates of scene
    final Message message = new Message(scene);
    message.setAuthor(character);
    message.setContent(content);
    message.setType(MessageType.ACTION.getCode());
    message.setAction(action.getCode());
    createMessage(context, scene, message);
    return true;
  }
View Full Code Here

        dicesRolled.add(dice + "/" + sides);
      }
    }
   
    // FIXME should iterate to deal with concurrent updates of scene
    final Message message = new Message(scene);
    message.setAuthor(character);
    message.setContent(content);
    message.setType(MessageType.DICEROLL.getCode());
    message.setAction(null);
    message.setDices(dicesRolled);
    createMessage(context, scene, message);
    return true;
  }
View Full Code Here

    final Key lastMessageKey = scene.getLastMessage();
    message.setPrevious(lastMessageKey);

    long index = getNewMessageIndex(null);

    Message lastMessage = null;
    if(lastMessageKey != null) {
      lastMessage = dao.readMessage(context, lastMessageKey);
      if(lastMessage != null) {
        if(lastMessage.getIndex() != null) {
          index = getNewMessageIndex(lastMessage.getIndex());
        }
        lastMessage.setNext(message.getKey());
      }
    }

    message.setIndex(index);
    dao.save(context, message);
View Full Code Here

   
    if(scene == null) {
      return false;
    }

    final Message message = new Message(scene);
    message.setAuthor(authorKey);
    if(toKey != null) {
      message.getNonNullTo().add(toKey);
    }
    message.setContent(text);
    message.setType(MessageType.OFF.getCode());
    createMessage(context, scene, message);
   
    return true;
  }
View Full Code Here

      return;
    }
   
    final Iterator<Message> imessages = messages.iterator();
    while(imessages.hasNext()) {
      final Message message = imessages.next();
      if(message != null) {
        if(!keepDeleted && Boolean.TRUE.equals(message.getDeleted())) {
          imessages.remove();
        } else if(MessageType.ACTION.getCode().equals(message.getType())) {
          // all actions of everyone are always seen
        } else if (MessageType.OFF.getCode().equals(message.getType())) {
          // player cans see OFF of GM (to him or public) and its own
          if(!(characterKey.equals(message.getAuthor())
              || isPublicGMOFF(message)
              || message.getNonNullTo().contains(characterKey))) {
            imessages.remove();
          }
        } else if (MessageType.DICEROLL.getCode().equals(message.getType())) {
          // character can see its own dices, that's all.
          if(!characterKey.equals(message.getAuthor())) {
            imessages.remove();
          }
        }
      } else {
        imessages.remove();
View Full Code Here

      context.addError(Errors.OUTOFDATE);
      return false;
    }
   
    // FIXME should iterate to deal with concurrent updates of scene
    final Message message = new Message(scene);
    message.setAuthor(character);
    message.setContent(content);
    message.setType(MessageType.OFF.getCode());
    message.setAction(null);
    createMessage(context, scene, message);
    return true;
  }
View Full Code Here

      return null;
    }
   
    final Map<Key, Message> map = Data.map(messages);
    final List<Message> ordered = new ArrayList<Message>();
    Message previous = map.get(firstKey);
    while(previous != null) {
      ordered.add(previous);
      previous = map.get(previous.getNext());
    }
   
    return ordered.isEmpty() ? null : ordered;
  }
View Full Code Here

          + " cannot delete " + messageKey);
      context.addError(Errors.USER_USURPATION_GM);
      return false;
    }
   
    final Message message = dao.readMessage(context, messageKey);
    if(message == null) {
      logger.severe("Message not found " + messageKey);
      context.addError(Errors.NOT_FOUND_MESSAGE, messageKey);
      return false;
    }
   
    if(Boolean.TRUE.equals(message.getDeleted())) {
      logger.warning("Message already deleted " + messageKey);
      return true;
    }
   
    message.setDeleted(Boolean.TRUE);
    dao.save(context, message);
    logger.info("message " + messageKey + " deleted");
   
    return true;
  }
View Full Code Here

    final int max = (messages.size() + 2) * 50;

    final List<Message> messages2 = new ArrayList<Message>(messages);
   
    for(int n = 0; n < number; n++) {
      final Message message = messages2.get(random.nextInt(messages2.size()));

      // Random a none used index
      long index = random.nextInt(max);
      boolean ok = false;
      rerandom: while(!ok) {
        ok = true;
        for(Message m : messages) {
          if(m.getIndex() == index) {
            ok = false;
            index = random.nextInt(max);
            continue rerandom;
          }
        }
      }
     
      logger.info("reindex " + message.getKey() + " from " + message.getIndex() + " to " + index);
      message.setIndex(index);
      dao.save(context, message);
     
      messages2.remove(message);
    }
   
View Full Code Here

TOP

Related Classes of net.cloudcodex.server.data.Data.Message

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.