From: Miguel A. B. L. <ari...@us...> - 2005-10-22 17:45:22
|
Update of /cvsroot/arianne/stendhal/src/games/stendhal/client/gui In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3978/src/games/stendhal/client/gui Modified Files: j2DClient.java Log Message: Fixed some bugs and implemented some requested features. Index: j2DClient.java =================================================================== RCS file: /cvsroot/arianne/stendhal/src/games/stendhal/client/gui/j2DClient.java,v retrieving revision 1.55 retrieving revision 1.56 diff -C2 -d -r1.55 -r1.56 *** j2DClient.java 20 Oct 2005 13:49:03 -0000 1.55 --- j2DClient.java 22 Oct 2005 17:45:13 -0000 1.56 *************** *** 37,165 **** private static final Logger logger = Log4J.getLogger(j2DClient.class); - class StendhalChatLineListener implements ActionListener, KeyListener - { - LinkedList<String> lines; - int actual; - - public StendhalChatLineListener() - { - super(); - lines=new LinkedList<String>(); - actual=0; - } - - public void keyPressed(KeyEvent e) - { - if(e.isShiftDown()) - { - switch(e.getKeyCode()) - { - case KeyEvent.VK_UP: - { - if(actual>0) - { - playerChatText.setText(lines.get(actual-1)); - actual--; - } - break; - } - case KeyEvent.VK_DOWN: - { - if(actual<lines.size()) - { - playerChatText.setText(lines.get(actual)); - actual++; - } - break; - } - } - } - } - - public void keyReleased(KeyEvent e) - { - } - - public void keyTyped(KeyEvent e) - { - } - - public void actionPerformed(ActionEvent e) - { - String text = playerChatText.getText(); - text.trim(); - - if(text.startsWith("/tell ") ||text.startsWith("/msg ")) // Tell command - { - String[] command = parseString(text, 3); - if(command != null) - { - RPAction tell = new RPAction(); - tell.put("type","tell"); - tell.put("target", command[1]); - tell.put("text", command[2]); - client.send(tell); - } - } - else if(text.startsWith("/where ")) // Tell command - { - String[] command = parseString(text, 2); - if(command != null) - { - RPAction tell = new RPAction(); - tell.put("type","where"); - tell.put("target", command[1]); - client.send(tell); - } - } - else if(text.equals("/who")) // Who command - { - RPAction who = new RPAction(); - who.put("type","who"); - client.send(who); - } - else if(text.startsWith("/add ")) // Add a new buddy to buddy list - { - String[] command = parseString(text, 2); - if(command != null) - { - RPAction tell = new RPAction(); - tell.put("type","addbuddy"); - tell.put("target", command[1]); - client.send(tell); - } - } - else if(text.startsWith("/remove ")) // Removes a existing buddy from buddy list - { - String[] command = parseString(text, 2); - if(command != null) - { - RPAction tell = new RPAction(); - tell.put("type","removebuddy"); - tell.put("target", command[1]); - client.send(tell); - } - } - else // Chat command - { - RPAction chat=new RPAction(); - chat.put("type","chat"); - chat.put("text",playerChatText.getText()); - client.send(chat); - } - - lines.add(playerChatText.getText()); - actual=lines.size(); - - if(lines.size()>50) - { - lines.remove(0); - actual--; - } - - playerChatText.setText(""); - } - } - private GameScreen screen; private InGameGUI inGameGUI; --- 37,40 ---- *************** *** 176,251 **** private JTextField playerChatText; - private static String[] nextString(String from) { - char[] cFrom = from.toCharArray(); - String[] res = new String[2]; - res[0] = ""; - res[1] = ""; - int quote = 0; - char sep = ' '; - int i=0; - if(cFrom[0] == '\'') { - quote = 1; - } - if(cFrom[0] == '"') { - quote = 2; - } - if(quote != 0) { - i++; - sep = cFrom[0]; - } - for(;i<cFrom.length;i++) { - switch(quote) { - case 0: - case 1: - if(cFrom[i] == sep) { - res[0] = from.substring(i+1); - return res; - } - res[1] += cFrom[i]; - break; - case 2: - if(cFrom[i]=='"') - { - res[0] = from.substring(i+1); - return res; - } - else - { - i++; - if(i==cFrom.length) - { - return null; - } - - res[1] += cFrom[i]; - } - break; - } - } - if(quote == 0) { - return res; - } - return null; - } - - private static String[] parseString(String s, int nbPart) - { - String[] res = new String[nbPart]; - String [] t; - int i; - s = s.trim(); - for(i=0;i<nbPart - 1;i++) - { - t = nextString(s); - if(t == null) { - return null; - } - res[i] = t[1]; - s = t[0].trim(); - } - res[i] = s; - return res; - } - public j2DClient(StendhalClient sc) { --- 51,54 ---- *************** *** 274,278 **** playerChatText.setBounds(0,460,640,20); ! StendhalChatLineListener chatListener=new StendhalChatLineListener(); playerChatText.addActionListener(chatListener); playerChatText.addKeyListener(chatListener); --- 77,81 ---- playerChatText.setBounds(0,460,640,20); ! StendhalChatLineListener chatListener=new StendhalChatLineListener(client,playerChatText); playerChatText.addActionListener(chatListener); playerChatText.addKeyListener(chatListener); *************** *** 281,285 **** this.setLocation(new Point(100, 100)); - this.setIconImage(new ImageIcon("data/StendhalIcon.png").getImage()); // finally make the window visible --- 84,87 ---- |