Beispiel #1
0
  public void userChat(UserChatEvent e) {
    String msg = e.getMsg().getMessage();

    if (msg.length() < 2) return;
    if (msg.charAt(0) != '!') return;

    String[] split = msg.split(" ");

    switch (split[0].substring(1).toLowerCase()) // command without ! or arguments
    {
      case "shutdown":
        Announcer.SendMessage(e.getGroup(), "Shutting Down");
        System.exit(1);
        break;

      case "roll":
        int max = 10;
        if (split.length > 1) max = Integer.valueOf(split[1]);
        int num = (int) (Math.random() * max) + 1;
        Announcer.SendMessage(e.getGroup(), "Roll (1- " + max + "): " + num);
        break;

      default:
        System.out.println("Unrecognized command: " + split[0].substring(1).toLowerCase());
    }
  }
Beispiel #2
0
 public String announce(Request request) {
   Node response = announcer.announce(request, peerBuilder, peers);
   return response.encode();
 }
Beispiel #3
0
  private Contestant determineWinner() {
    List<Entry<Contestant, Integer>> sorted = Announcer.sortedByValues(scoreMap);

    // return the contestant with highes score determined by sorting
    return sorted.get(0).getKey();
  }
public class XMPPAuction implements Auction {
  private Chat chat;
  public static final String JOIN_COMMAND_FORMAT = "SOLVersion: 1.1; Command: JOIN;";
  public static final String BID_COMMAND_FORMAT = "SOLVersion: 1.1; Command: BID; Price: %d";

  static final String AUCTION_RESOURCE = "Auction";
  private static final String ITEM_ID_AS_LOGIN = "******";
  private static final String AUCTION_ID_FORMAT =
      ITEM_ID_AS_LOGIN + "@%s/" + XMPPAuction.AUCTION_RESOURCE;

  private final Announcer<AuctionEventListener> auctionEventListeners =
      Announcer.to(AuctionEventListener.class);

  public XMPPAuction(XMPPConnection connection, String itemId) {
    AuctionMessageTranslator translator = translatorFor(connection);
    chat = connection.getChatManager().createChat(auctionId(itemId, connection), translator);
    addAuctionEventListener(chatDisconnectorFor(translator));
  }

  public static String auctionId(String itemId, XMPPConnection connection) {
    return String.format(AUCTION_ID_FORMAT, itemId, connection.getServiceName());
  }

  public void bid(int amount) {
    sendMessage(String.format(BID_COMMAND_FORMAT, amount));
  }

  public void join() {
    sendMessage(JOIN_COMMAND_FORMAT);
  }

  private void sendMessage(String message) {
    try {
      chat.sendMessage(message);
    } catch (XMPPException e) {
      e.printStackTrace();
    }
  }

  public void addAuctionEventListener(AuctionEventListener listener) {
    auctionEventListeners.addListener(listener);
  }

  private AuctionMessageTranslator translatorFor(XMPPConnection connection) {
    // TODO: treaba asta cu announce() care returneaza un AuctionEventListener n-o prea pricep
    return new AuctionMessageTranslator(connection.getUser(), auctionEventListeners.announce());
  }

  private AuctionEventListener chatDisconnectorFor(final AuctionMessageTranslator translator) {
    return new AuctionEventListener() {

      @Override
      public void auctionClosed() {}

      @Override
      public void currentPrice(int price, int increment, PriceSource source) {}

      @Override
      public void auctionFailed() {
        chat.removeMessageListener(translator);
      }
    };
  }
}
 private AuctionMessageTranslator translatorFor(XMPPConnection connection) {
   // TODO: treaba asta cu announce() care returneaza un AuctionEventListener n-o prea pricep
   return new AuctionMessageTranslator(connection.getUser(), auctionEventListeners.announce());
 }
 public void addAuctionEventListener(AuctionEventListener listener) {
   auctionEventListeners.addListener(listener);
 }