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()); } }
public String announce(Request request) { Node response = announcer.announce(request, peerBuilder, peers); return response.encode(); }
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); }