/** * method to add a new room * * @param roomList : rooms are added to the list * @return: It will return the name of the room that is added */ protected static String addRoom(ArrayList<Room> roomList) { try { System.out.println("Add a room:"); String name = getRoomName().toLowerCase(); if (Pattern.matches("[a-zA-Z]+", name)) { int count = 0; if (count == 0) { if (roomList.size() > 0) { for (Room room : roomList) { if (room.getName().contains(name)) { System.out.println("Room already exists"); break; } else { count = 1; } } } } if (count == 1 || roomList.size() == 0) { // to check whether the room name is empty or not if (name != null && !name.isEmpty()) { System.out.println("Room capacity?"); int capacity = keyboard.nextInt(); System.out.println("Building?"); String building = keyboard.next(); if (Pattern.matches("[a-zA-Z\\s]+", building)) { if (building != null && !building.isEmpty()) { System.out.println("Location?"); String location = keyboard.next(); if (Pattern.matches("[a-zA-Z]+", location)) { Room newRoom = new Room(name, capacity, building, location); roomList.add(newRoom); // add room to the // list return "Room '" + newRoom.getName() + "' added successfully!"; } else { System.out.println("Please enter only alphabets"); } } } else { System.out.println("Please enter only alphabets"); } } else { System.out.println("Name should not be empty"); } } } else { System.out.println("Please enter only alphabets"); } } catch (InputMismatchException e) { logger.info("Please enter only numeric values"); } return ""; }
public void kick(Player p, String name) { for (Room r : clanRooms) { if (r.getName().equalsIgnoreCase(p.clanRoom)) { r.kick(p, name); } } }
public static void main(String[] args) { ArrayList<String> nextRoom = new ArrayList<String>(); nextRoom.add("Room 2"); Room myRoom = new Room( "Name", "This is a test room", nextRoom, "Room 3", 50, "Monster 1", "This Test Room appears to be empty."); System.out.println("Room Name: " + myRoom.getName()); System.out.println("Room Description: " + myRoom.getDescription()); for (int i = 0; i < myRoom.getNextRoom().size(); i++) { System.out.println("The next room: " + myRoom.getNextRoom().get((i))); } System.out.println("The previous room: " + myRoom.getPreviousRoom()); System.out.println("Encounter chance: " + myRoom.getEncounterChance()); System.out.println("Local monster: " + myRoom.getLocalMonster()); System.out.println("Empty room Description: " + myRoom.getEmptyRoom()); }
public void setRank(Player p, String name, int rank) { for (Room r : clanRooms) { if (r.getName().equalsIgnoreCase(p.clanRoom)) { r.setRank(p, name, rank); } } }
/** Method to export data like rooms, capacity and meetings array in json format into a file */ protected static String exportData(ArrayList<Room> roomList) { JSONObject json = new JSONObject(); for (Room room : roomList) { json.put("RoomName", room.getName()); json.put("Capacity", room.getCapacity()); JSONArray meetings = new JSONArray(); for (Meeting m : room.getMeetings()) { meetings.add(m.toString()); } json.put("Meetings", meetings); // write data to a file File fileName = new File("src/File/result.json"); try (PrintWriter file = new PrintWriter(new BufferedWriter(new FileWriter(fileName, true)))) { file.write(json.toJSONString()); file.write("\n"); file.flush(); file.close(); } catch (IOException e) { logger.error("Exception in export method:", e); } logger.info("Data exported successfully"); } return ""; }
public Room findRoomByName(String name) { for (Room room : getRooms()) { if (room.getName().equals(name)) { return room; } } return null; }
public void leave(Player p) { for (Room r : clanRooms) { if (r.getName().equalsIgnoreCase(p.clanRoom)) { r.leave(p); clear(p); } } }
/** Outputs the current state of the world, and everything it contains to a PrintStream as XML. */ public void saveStateToXML(PrintStream ps) { ps.println("<world>"); ps.println(" <welcome-message>" + welcomeMessage + "</welcome-message>"); ps.println(" <goodbye-message>" + goodbyeMessage + "</goodbye-message>"); for (Room room : getRooms()) { if (!room.getName().startsWith("DELETE")) room.saveStateToXML(ps); } ps.println("</world>"); }
public void join(Player p, String name) { if (createRoom(p, name)) { for (Room r : clanRooms) { if (r.getName().equalsIgnoreCase(name)) { r.join(p); } } } }
public boolean createRoom(Player p, String name) { for (Room r : clanRooms) { if (r.getName().equalsIgnoreCase(name)) { return true; } } clanRooms.add(new Room(name, p.username)); return false; }
public Form setValues(Room $object) { id = $object.getId(); timekey = $object.getTimekey(); name = $object.getName(); number = $object.getNumber(); building = $object.refBuilding(); return this; }
/** to find the indexes for list of rooms */ protected static int findRoomIndex(ArrayList<Room> roomList, String roomName) { int roomIndex = 0; for (Room room : roomList) { if (room.getName().compareTo(roomName) == 0) { break; } roomIndex++; } return roomIndex; }
@Override public void removeRoom(Room room) { if (room == null) throw new IllegalStateException(); EstimoteManager.getRoomMap().remove(room.getBeaconId()); persist(); Log.d(LOG_TAG, "Removed room " + room.getName()); }
public boolean findTarget(List<Room> roomList) { boolean foundIt = false; for (Room room : roomList) { if (room.getName().equals(targetName)) { foundIt = true; this.target = room; } } if (!foundIt) return false; else return true; }
public void joinPlayer(Player p, String name) { if (Misc.player(name) != null) { Player o = Misc.player(name); if (o.clanRoom.length() > 0) { for (Room r : clanRooms) { if (r.getName().equalsIgnoreCase(o.clanRoom)) { r.join(p); } } } } }
public void logout(Player p) { if (p != null) { if (p.clanRoom.length() > 0) { for (Room r : clanRooms) { if (r.getName().equalsIgnoreCase(p.clanRoom)) { r.leave(p); r.updateRoom(); } } } } }
@Override public void updateRoom(Room room) { if (room == null) throw new IllegalStateException(); Room room1 = EstimoteManager.getRoomMap().get(room.getBeaconId()); if (room1 == null) throw new IllegalStateException(); room1.setDesiredTemperature(room.getDesiredTemperature()); persist(); Log.d(LOG_TAG, "Updated room " + room.getName()); }
public void sendMessage(Player p, String message) { for (Room r : clanRooms) { if (r.getName().equalsIgnoreCase(p.clanRoom)) { if (message.startsWith("kick ")) { r.kick(p, message.replace("kick ", "")); } else if (message.startsWith("ban")) { r.ban(p, message.replace("ban ", "")); } else if (message.startsWith("unban")) { r.unban(p, message.replace("unban ", "")); } else { r.sendMessage(p, message); } } } }
public String playerNavigate(String direction, Player player) throws MapControlException { Game game = PemberleyGame.getCurrentGame(); Room currentRoom = player.getLocation(); Room nextRoom; switch (direction) { case "E": case "EAST": nextRoom = currentRoom.getEast(); break; case "S": case "SOUTH": nextRoom = currentRoom.getSouth(); break; case "N": case "NORTH": nextRoom = currentRoom.getNorth(); break; case "W": case "WEST": nextRoom = currentRoom.getWest(); break; default: return "Not sure where you are going."; } if (nextRoom == null) { throw new MapControlException("You can't go that direction"); } else { player.setLocation(nextRoom); currentRoom = player.getLocation(); String[] roomArray = currentRoom.getRoomDrawing(); if (roomArray == null) { String[] roomDrawing = this.renderRoom(nextRoom); nextRoom.setRoomDrawing(roomDrawing); String mapDrawing = this.renderMap(nextRoom); Map currentMap = nextRoom.getMap(); currentMap.setMapDrawing(mapDrawing); } GameControl gameControl = new GameControl(); gameControl.updateGame(); String playerMessage = nextRoom.getName() + "\n" + this.lookAtRoom(); return playerMessage; } }
/** method to display the rooms along with its capacity */ protected static String listRooms(ArrayList<Room> roomList) { String returnMsg = ""; try { System.out.println("Room Name - Capacity"); System.out.println("---------------------"); // retrieve room and capacity from the list for (Room room : roomList) { System.out.println(room.getName() + " - " + room.getCapacity()); } System.out.println("---------------------"); returnMsg = roomList.size() + " Room(s)"; } catch (Exception e) { logger.log(null, "Error", e); } return returnMsg; }
/** * this method is used to check the availability of rooms based on start date and time * * @param roomList : Contains the details of room * @param avDate : contains the start date * @return */ protected static String availableRooms(ArrayList<Room> roomList, String avDate) { System.out.println("--Available Rooms--"); for (Room room : roomList) { ArrayList<Meeting> sDate = room.getMeetings(); String listString = ""; for (Meeting s : sDate) { listString += s + "\t"; } String[] spDate = listString.split(";"); if (spDate[0] == "" || spDate[0] == avDate) { System.out.println(room.getName()); } } return ""; }
public void paintComponent(Graphics g) { resize(); g.setColor(Color.WHITE); g.fillRect(0, 0, this.getWidth() - 1, this.getHeight() - 1); g.setColor(Color.BLACK); Graphics2D g2d = (Graphics2D) g; g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); g2d.setFont(new Font("Sans", Font.BOLD, 14)); ListIterator<Room> itr = graphwar.getGlobalClient().getRooms().listIterator(); int i = 0; while (itr.hasNext()) { Room room = itr.next(); if (roomFocused) { if (focusedRoomNum == i) { g2d.setColor(focusColor); g2d.fillRect(0, entryHeight * i, width, entryHeight); } } g2d.setColor(Color.BLACK); g2d.drawString(" " + room.getName(), 0, entryHeight * (i + 1) - 4); String mode = "y"; if (room.getGameMode() == 1) { mode = "y'"; } else if (room.getGameMode() == 2) { mode = "y''"; } g2d.drawString(mode, width - 40, entryHeight * (i + 1) - 7); g2d.drawString(room.getNumPlayers() + "/10", width - 110, entryHeight * (i + 1) - 6); g2d.drawRect(0, entryHeight * i, width, entryHeight); i++; } }
@Test public void testSetName() throws Exception { Room r1 = new Room("testBefore"); r1.setName("testAfter"); assertTrue("testAfter".equals(r1.getName())); }
@Test public void testGetName() throws Exception { Room r1 = new Room("test"); assertTrue("test".equals(r1.getName())); }
public static boolean gameIsLost() { Level level = getCurrentLevel(); Room room = level.getCurrentRoom(); return room.getName().equals("trap") || hero.isDead(); }
public static boolean gameIsWon() { Level level = getCurrentLevel(); Room room = level.getCurrentRoom(); return room.getName().equals("exit"); }
@Override public void run() { while (true) { try { is = new BufferedReader(new InputStreamReader(player.getSocket().getInputStream())); line = is.readLine(); if (line != null) { int type = Message.getMessageType(line); System.out.println("Message type : " + type); List<String> message = Message.getMessage(line); switch (type) { // USER CONNECT WITH USERNAME case 0: { player.setNickName(message.get(1)); System.out.println("Player set name " + message.get(1)); player.sendMessage("user," + player.getId()); // Client State --> Room Screen, Server Send List Room String roomList = ""; for (Room r : Server.rooms) { roomList += "," + r.getId() + "," + r.getName() + "," + r.getClients().size() + ", true"; } player.sendMessage("roomlist" + roomList); break; } // USER MOVE case 1: { List<Player> clients = player.getRoom().getClients(); Room room = player.getRoom(); int row = Integer.parseInt(message.get(1)); int col = Integer.parseInt(message.get(2)); room.Board[row][col] = player.getId(); List<int[]> res = room.checkWin(row, col, player.getId()); // This user win String converted = ""; if (!res.isEmpty()) { for (int[] cell : res) { converted += "," + cell[0] + "," + cell[1]; } // room.broadcastMessageWithEx(player, "win," + player.getNickName()+converted // ); player.sendMessage("youwin" + converted); player .getRoom() .broadcastMessageWithEx(player, "win," + player.getNickName() + converted); System.out.println("Hasil :" + converted); } Player turn = clients.get((clients.indexOf(player) + 1) % clients.size()); room.broadcastMessageToAll( "move," + message.get(1) + "," + message.get(2) + "," + player.getId() + "," + turn.getId() + "," + turn.getNickName()); System.out.println( player.getNickName() + " Move to ROW : " + row + " COL : " + col); break; } // USER JOIN ROOM case 2: { Room theRoom = Server.getRoomById(Integer.parseInt(message.get(1))); player.setRoom(theRoom); player.sendMessage("user," + player.getId()); theRoom.broadcastMessageWithEx( player, "message,Server," + player.getNickName() + " joins this room "); if (theRoom.isStart()) { theRoom.getCreator().sendMessage("canstart"); } System.out.println( "USer " + player.getNickName() + " join room, room : " + theRoom.getName()); break; } // USER CREATE ROOM case 3: { String roomName = message.get(1); player.createRoom(roomName); player.sendMessage("user," + player.getId()); System.out.println(player.getNickName() + " create room, room name " + roomName); String roomList = ""; for (Room r : Server.rooms) { roomList += "," + r.getId() + "," + r.getName() + "," + r.getClients().size() + ", true"; } Server.broadcastMessage("roomlist" + roomList); Room theRoom = player.getRoom(); if (theRoom.isStart()) { theRoom.getCreator().sendMessage("canstart"); } break; } // PLAYER DISCONNECT case 4: { Room room = player.getRoom(); try { room.deleteClient(player); room.broadcastMessageToAll("disconnect," + player.getNickName()); Server.deleteClient(this); if (room.getClients().isEmpty()) { Server.deletRoom(room); System.out.println("Current Rooms on Server :" + Server.rooms); } else if (message.get(1).equals("ingame")) { List<Player> clients = room.getClients(); Player turn = clients.get((clients.indexOf(player) + 1) % clients.size()); room.broadcastMessageToAll("turn," + turn.getId() + "," + turn.getNickName()); } else if (room.isCreator(player)) { // Change the creator Player newCreator = room.getClients().get(room.getClients().indexOf(player) + 1); room.setCreator(newCreator); newCreator.sendMessage("newcreator"); } else { // Check the number to start still sufficient if (room.isStart()) { room.getCreator().sendMessage("canstart"); } else { room.getCreator().sendMessage("cantstart"); } } } catch (NullPointerException ex) { System.out.println(player.getNickName() + " has Disconnected"); } System.out.println(player.getNickName() + " Has DISCONNECTED"); break; } // GET START SIGNAL FROM CREATOR case 5: { System.out.println("Get Start Game Signal"); Room room = player.getRoom(); room.broadcastMessageToAll("start," + player.getId() + "," + player.getNickName()); break; } // JOIN ROOM TO SPECTATE case 6: { Room theRoom = Server.getRoomById(Integer.parseInt(message.get(1))); player.setRoomAsSpectator(theRoom); player.sendMessage("spectate," + player.getId()); theRoom.broadcastMessageToSpectatorsWithEx( player, "message,Server," + player.getNickName() + " Spectates This Room "); System.out.println( "Uuer " + player.getNickName() + " spectate room, room : " + theRoom.getName()); break; } // Spectator Disconnect case 7: { Room room = player.getRoom(); try { room.deleteSpectator(player); room.broadcastMessageToSpectators("disconnect," + player.getNickName()); Server.deleteClient(this); } catch (NullPointerException ex) { System.out.println(player.getNickName() + " has Disconnected"); } System.out.println(player.getNickName() + " Has DISCONNECTED"); break; } // CHAT WITH OTHER SPECTATORS case 8: { Room room = player.getRoom(); room.broadcastMessageToSpectators( "message," + player.getNickName() + "," + message.get(1)); System.out.println("BroadCast Message SPECTATOR " + message.get(1)); break; } case -1: { Room room = player.getRoom(); room.broadcastMessageToPlayers( "message," + player.getNickName() + "," + message.get(0)); System.out.println("BroadCast Message " + message.get(0)); break; } } // Stop thread if (type == 4 || type == 7) { break; } } } catch (IOException ex) { ex.printStackTrace(); System.out.println("I/O fail"); System.exit(-1); } } }
public String getRoomName(Context context) { return mRoom.getName(context); }
/** * Takes a loaded XML document and creates a new World out of it. At the moment loads NPCs but not * Player Characters. * * @param XMLFilePrefix * @param latestDate * @param df * @return */ public void restoreStateFromXML(Document doc) { Game.setWorld(new World()); NodeList wmessageList = doc.getElementsByTagName("welcome-message"); Element wmessageElement = (Element) wmessageList.item(0); NodeList wmessageChildList = wmessageElement.getChildNodes(); if (((Node) wmessageChildList.item(0)) != null) welcomeMessage = ((Node) wmessageChildList.item(0)).getNodeValue().trim(); NodeList gmessageList = doc.getElementsByTagName("goodbye-message"); Element gmessageElement = (Element) gmessageList.item(0); NodeList gmessageChildList = gmessageElement.getChildNodes(); if (((Node) gmessageChildList.item(0)) != null) goodbyeMessage = ((Node) gmessageChildList.item(0)).getNodeValue().trim(); // ------ LOAD ROOMS ------- // NodeList listOfRooms = doc.getElementsByTagName("room"); int totalRooms = listOfRooms.getLength(); if (Game.isDebug()) Game.logMessage("Number of rooms read: " + totalRooms); for (int s = 0; s < listOfRooms.getLength(); s++) { Node firstRoomNode = listOfRooms.item(s); if (firstRoomNode.getNodeType() == Node.ELEMENT_NODE) { Element firstRoomElement = (Element) firstRoomNode; // ------- NodeList nameList = firstRoomElement.getElementsByTagName("name"); Element nameElement = (Element) nameList.item(0); NodeList textNameList = nameElement.getChildNodes(); if (Game.isDebug()) Game.logMessage("Name : " + ((Node) textNameList.item(0)).getNodeValue().trim()); String thisName = ((Node) textNameList.item(0)).getNodeValue().trim(); // ------- NodeList descriptionList = firstRoomElement.getElementsByTagName("description"); Element descriptionElement = (Element) descriptionList.item(0); NodeList textDescList = descriptionElement.getChildNodes(); if (Game.isDebug()) Game.logMessage("Description : " + ((Node) textDescList.item(0)).getNodeValue().trim()); String thisDesc = ((Node) textDescList.item(0)).getNodeValue().trim(); Game.getWorld().getRooms().add(new Room(thisName, thisDesc)); // ------ LOAD DOORS ------- // List<Door> newDoors = Door.loadStateFromXML(firstRoomElement); // ------ LOAD STANDARD ITEMS ------- // List<Item> newItems = Item.loadStateFromXML(firstRoomElement); // ----- LOAD GCS -------------// List<GameCharacter> newGCs = GameCharacter.loadStateFromXML(firstRoomElement); // ----- LOAD NPCS -------------// // List<NPCharacter> newNPCs = NPCharacter.loadStateFromXML(firstRoomElement); // ------ LOAD MAP ITEMS ------- // List<Item> newMapItems = MapItem.loadStateFromXML(firstRoomElement); for (int k = 0; k < newDoors.size(); k++) Game.getWorld() .getRooms() .get(Game.getWorld().getRooms().size() - 1) .objectEntered(newDoors.get(k)); for (int k = 0; k < newItems.size(); k++) newItems .get(k) .moveTo(Game.getWorld().getRooms().get(Game.getWorld().getRooms().size() - 1)); for (int k = 0; k < newMapItems.size(); k++) newMapItems .get(k) .moveTo(Game.getWorld().getRooms().get(Game.getWorld().getRooms().size() - 1)); for (int k = 0; k < newGCs.size(); k++) newGCs.get(k).moveTo(Game.getWorld().getRooms().get(0)); } } for (Room room : Game.getWorld().getRooms()) { for (Door door : room.getDoors()) { if (!door.findTarget(Game.getWorld().getRooms())) { Game.logError( "Warning: Failed at door " + door.getName() + " in room " + room.getName() + " due to bad target name " + door.getTargetName(), null); // return null; } } } for (Room room : Game.getWorld().getRooms()) for (GameCharacter gc : room.getGameCharacters()) gc.lastRoomFromID(); /* // Bert as yet not in any save file List<Dialogue> convo2x = new ArrayList<Dialogue>(); convo2x.add(new Dialogue(1,"\"I will heal you.\"","heal 10 actor")); convo2x.add(new Dialogue(2,"\"You said Verb\"","shout dance!")); List<Dialogue> convo1x = new ArrayList<Dialogue>(); convo1x.add(new Dialogue(1,"\"You said Cheese\"")); convo1x.add(new Dialogue(2,"\"You said Apples\"")); List<Dialogue> convox = new ArrayList<Dialogue>(); convox.add(new Dialogue(1,"\"I am Bert, an NPC in this world.\"\n1 Cheese\n2 Apples", convo1x)); convox.add(new Dialogue(2,"\"What do you need?\"\n1 Healing, please.\n2 A verb, please.", convo2x)); newWorld.getRooms().get(1).objectEntered(new NPCharacter("Bert","A small green man.","\"Hi there!\"\n1 Tell me about yourself.\n2 Help me!","Farewell then!",convox)); */ }
public String[] renderRoom(Room room) { String roomName = room.getName(); int i = 0; // break the room down into pieces by space so each row of the room drawing can have part of a // name. Makes for a narrow room. String[] splitRoomName = roomName.split(" "); // add spaces to each name in the array to make them uniformly long for (int n = 0; n < splitRoomName.length; n++) { int spacesNeeded = 11 - splitRoomName[n].length(); for (int x = 0; x < spacesNeeded; x++) { splitRoomName[n] = splitRoomName[n] + " "; } } String[] roomDraw; String buildLine = ""; ArrayList<String> roomDrawList = new ArrayList<>(); if (room.getNorth() != null) { roomDrawList.add(Wall.vertPassage.getWall()); } else { roomDrawList.add(Wall.empty.getWall()); } roomDrawList.add(Wall.xWall.getWall()); if (splitRoomName.length == 3) { roomDrawList.add(Wall.leftWall.getWall() + splitRoomName[i] + Wall.rightWall.getWall()); i++; } else { roomDrawList.add(Wall.emptyWall.getWall()); } if (room.getWest() != null) { buildLine = Wall.west.getWall() + splitRoomName[i]; } else { buildLine = Wall.leftWall.getWall() + splitRoomName[i]; } i++; if (room.getEast() != null) { buildLine = buildLine + Wall.east.getWall(); } else { buildLine = buildLine + Wall.rightWall.getWall(); } roomDrawList.add(buildLine); if (splitRoomName.length == 2) { roomDrawList.add(Wall.leftWall.getWall() + splitRoomName[i] + Wall.rightWall.getWall()); } else { roomDrawList.add(Wall.emptyWall.getWall()); } roomDrawList.add(Wall.xWall.getWall()); if (room.getSouth() != null) { roomDrawList.add(Wall.vertPassage.getWall()); } else { roomDrawList.add(Wall.empty.getWall()); } String[] roomDrawListArray = roomDrawList.toArray(new String[roomDrawList.size()]); return roomDrawListArray; }