@Override public void run() { // grupo.Sending(); Registry registry = null; // registry = LocateRegistry.getRegistry(1099); try { registry = LocateRegistry.getRegistry(1099); } catch (RemoteException ex) { Logger.getLogger(SendingMessage.class.getName()).log(Level.SEVERE, null, ex); } // A continuación envio el mensaje a los miembros del grupo, menos al emisor for (int i = 0; i < grupo.Members.size(); i++) { // Compruebo que no sea el emisor if (grupo.Members.get(i) != mensaje.emisor) { try { // cliente = (ClientInterface) registry.lookup(grupo.Members.get(i).aliasMiembro); // cliente = (ClientInterface) registry.lookup( grupo.members.get(i).alias); try { Thread.sleep((int) (Math.random() * 30 + 30) * 1000); } catch (InterruptedException ex) { Logger.getLogger(SendingMessage.class.getName()).log(Level.SEVERE, null, ex); } cliente.DepositMessage(mensaje); } catch (RemoteException | NotBoundException ex) { Logger.getLogger(SendingMessage.class.getName()).log(Level.SEVERE, null, ex); } } } grupo.EndSending(mensaje.emisor); }
/** * Load a TilED map * * @param in The input stream from which to load the map * @param tileSetsLocation The location from which we can retrieve tileset images * @throws SlickException Indicates a failure to parse the map or find a tileset */ private void load(InputStream in, String tileSetsLocation) throws SlickException { tilesLocation = tileSetsLocation; try { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); factory.setValidating(false); DocumentBuilder builder = factory.newDocumentBuilder(); builder.setEntityResolver( new EntityResolver() { public InputSource resolveEntity(String publicId, String systemId) throws SAXException, IOException { return new InputSource(new ByteArrayInputStream(new byte[0])); } }); Document doc = builder.parse(in); Element docElement = doc.getDocumentElement(); if (docElement.getAttribute("orientation").equals("orthogonal")) { orientation = ORTHOGONAL; } else { orientation = ISOMETRIC; } width = Integer.parseInt(docElement.getAttribute("width")); height = Integer.parseInt(docElement.getAttribute("height")); tileWidth = Integer.parseInt(docElement.getAttribute("tilewidth")); tileHeight = Integer.parseInt(docElement.getAttribute("tileheight")); // now read the map properties Element propsElement = (Element) docElement.getElementsByTagName("properties").item(0); if (propsElement != null) { NodeList properties = propsElement.getElementsByTagName("property"); if (properties != null) { props = new Properties(); for (int p = 0; p < properties.getLength(); p++) { Element propElement = (Element) properties.item(p); String name = propElement.getAttribute("name"); String value = propElement.getAttribute("value"); props.setProperty(name, value); } } } if (loadTileSets) { TileSet tileSet = null; TileSet lastSet = null; NodeList setNodes = docElement.getElementsByTagName("tileset"); for (int i = 0; i < setNodes.getLength(); i++) { Element current = (Element) setNodes.item(i); tileSet = new TileSet(this, current, !headless); tileSet.index = i; if (lastSet != null) { lastSet.setLimit(tileSet.firstGID - 1); } lastSet = tileSet; tileSets.add(tileSet); } } NodeList layerNodes = docElement.getElementsByTagName("layer"); for (int i = 0; i < layerNodes.getLength(); i++) { Element current = (Element) layerNodes.item(i); Layer layer = new Layer(this, current); layer.index = i; layers.add(layer); } // acquire object-groups NodeList objectGroupNodes = docElement.getElementsByTagName("objectgroup"); for (int i = 0; i < objectGroupNodes.getLength(); i++) { Element current = (Element) objectGroupNodes.item(i); ObjectGroup objectGroup = new ObjectGroup(current, this); objectGroup.index = i; objectGroups.add(objectGroup); } } catch (Exception e) { Log.error(e); throw new SlickException("Failed to parse tilemap", e); } }