Du bist nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: Banana-Coding.com - Java Knuddels Emulator. Falls dies dein erster Besuch auf dieser Seite ist, lies bitte die Hilfe durch. Dort wird dir die Bedienung dieser Seite näher erläutert. Darüber hinaus solltest du dich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutze das Registrierungsformular, um dich zu registrieren oder informiere dich ausführlich über den Registrierungsvorgang. Falls du dich bereits zu einem früheren Zeitpunkt registriert hast, kannst du dich hier anmelden.

1

Donnerstag, 28. Juli 2011, 22:09

[F] /m System

Hallo,

Wie könnte ich das /m System erstellen?

jemand ein gedankenanstoß für mich?

2

Donnerstag, 28. Juli 2011, 22:57

wie wäre es mit der idee: es über die datenbank laufen zu lassen :) also die nachrichten

3

Freitag, 29. Juli 2011, 12:31

Zitat

wie wäre es mit der idee: es über die datenbank laufen zu lassen :) also die nachrichten
Soweit war ich auch schon :D klar über die Datenbank

wie überprüfst du die Datenbank auf neue Nachrichten? jede 2 sec mit nem Timer? oder?

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »uncopyable« (29. Juli 2011, 12:37)


4

Freitag, 29. Juli 2011, 12:35

weiß jemand wie ich alle Nicks die die gerade online sind bekomme ?

5

Freitag, 29. Juli 2011, 12:49

Zitat

wie wäre es mit der idee: es über die datenbank laufen zu lassen :) also die nachrichten
Soweit war ich auch schon :D klar über die Datenbank

wie überprüfst du die Datenbank auf neue Nachrichten? jede 2 sec mit nem Timer? oder?

Beim ChannelJoin prüfen und bei /m.
Für die Nachricht von James muss du dir dann eine Funktion bauen, welche überprüft ob der Nick on ist und dann ggf. eine Meldung an den Empfänger sendet.

6

Freitag, 29. Juli 2011, 16:31

Hab jetzt den /m popup erstellt nur,

wie bekomm ich den eingegebenen text aus dem TextField

textField.getText() hab ich schon versucht bleibt ist aber immer leer ?(

7

Samstag, 30. Juli 2011, 01:49

Schau dir das Beispiel (Umfrage) an.

Grob:
-> popup.setOpcode
-> ReceiveOpcode, dein Opcode hinzufügen für /m
-> SessionHandler (else if (opcode.equals(ReceiveOpcode.NAME.getValue())) { })
-> eigene Klasse (MailHandler o.Ä.)
-> dort sind Parameter (String[] tokens, Client client)
-> Auswerten

MfG

8

Donnerstag, 4. August 2011, 17:25

Mein bisheriges /m System

Hallo,

ich poste hier mal mein bisheriges /m Sytem.
Es geht eig alles bis auf das man nur eine Nachricht erhalten kann, bei einer neuen wird die alte überschrieben :(

MessageHandler.java

Java-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
package handler;   
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import knuddels.Client;
import knuddels.Server;
import tools.KCodeParser;
import tools.database.ConnectionPool;
import tools.database.PoolConnection;
import tools.popup.Popup;
     
    /**
     *
     * @author uncopyable
     */
    public class MessageHandler {
        public static void handle(String[] tokens, Client client) {

               if (tokens[1].equals("msent")) { 
                   
                String empfänger = tokens[3];
                String sender = client.getName();
                String betreff = tokens[4];
                String message = tokens[5];
                String wert;
              
                message = KCodeParser.parse(message,client.isModerator(), 5, 10, 20);
                message = Server.get().parseSmileys(message); 
               
                wert = sender + " " + betreff + " " + message + " ";
              
                
                
                
                
                PoolConnection pcon = ConnectionPool.getConnection();
                PreparedStatement ps = null;

                try {
                Connection con = pcon.connect();
                ps = con.prepareStatement("UPDATE `accounts` SET `message` = ? WHERE `name` = ?");
                ps.setString(1, wert);
                ps.setString(2, empfänger);
                ps.executeUpdate();
                } catch (SQLException e) {
                             e.printStackTrace();
                }
                finally {
                    if (ps != null) {
                try {
                   ps.close();
                } catch (SQLException e) {

                   }
                }

               pcon.close();
               }
                
             client.sendButlerMessage(client.getChannel().getName(), String.format("Ich werde es nicht vergessen und _°>_h%s|/serverpp "<r°_ schnellstmöglich ausrichten.", empfänger));   
      
         
            String recipient = empfänger;
            String[] recipients = recipient.split(",");
            List<Client> targets = new ArrayList<Client>();
            Client target;
            for (String rcp : recipients) {
                rcp = KCodeParser.escape(rcp);

                if (rcp.isEmpty()) {
                    continue;
                }

              target   = Server.get().getClient(rcp);
                
                if (target == null) {
                } else if (!targets.contains(target)) {
                    targets.add(target);
                }
            }

            if (targets.isEmpty()) {
                return;
            }
         
            Server.get().getButler().sendPrivateMessage(targets, String.format("_°>_h%s|/serverpp "<r°_ hat dir gerade Post geschrieben. Du kannst sie mit _°BB>finger.b.gif<>/m|/m<r°_ abholen.", sender), Server.get().getClient(empfänger).getChannel(), false);
              
     }
            
        }
  
            }


CommandParser.java

Java-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
 } else if (cmd.equals("m")) {
            
            if (arg.equals("")) {
                client.wait = false; 
         
                PoolConnection pcon = ConnectionPool.getConnection();
        PreparedStatement ps = null;
      

        try {
            Connection con = pcon.connect(); 
      
            ps = con.prepareStatement("SELECT * FROM `accounts` WHERE `name` = ?");
            ps.setString(1, client.getName());
            ResultSet rs = ps.executeQuery();
			
            if (rs.next()) {
                String wert = rs.getString("message");  
                
                if (wert.isEmpty()){
                
                    client.sendButlerMessage(client.getChannel().getName(), "Es liegen leider keine Nachrichten für dich vor.");   
      
                } else {
                    

                    
                String temp[];
                temp = wert.split(" "); 
                String sender = temp[0];
                String betreff =temp[1];
                String messag = temp[2];
                

                
                
               
                StringBuilder whois = new StringBuilder();
                
                messag = KCodeParser.parse(messag,client.isModerator(), 5, 10, 20);
                messag = Server.get().parseSmileys(messag); 
                
                whois.append("Eine Nachricht wurde für dich hinterlegt:##");
                whois.append(String.format("_Von_:°%%25°°>_h%s|/serverpp "<r°°%%00#°", sender));
                whois.append(String.format("_Gesendet_:°%%25°%s°%%00°#", "01.08.2011")); // datum 
                whois.append(String.format("_Betreff_:°%%25°%s°%%00°##", betreff));
                whois.append(messag);
               
               // hier noch antworten, antworten mit zitat weiterleiten usw..
                
                String popup = Popup.create("Dein Briefkasten", "Dein Briefkasten", whois.toString(), 550, 400);
                client.send(popup);
                
                 PoolConnection pcon1 = ConnectionPool.getConnection();
                PreparedStatement ps1 = null;

                try {
                Connection con1 = pcon1.connect();
                ps1 = con.prepareStatement("UPDATE `accounts` SET `message` = ? WHERE `name` = ?");
                ps1.setString(1, "");
                ps1.setString(2, client.getName());
                ps1.executeUpdate();
                } catch (SQLException e) {
                             e.printStackTrace();
                }
                finally {
                    if (ps != null) {
                try {
                   ps.close();
                } catch (SQLException e) {

                   }
                }

               pcon.close();
               }
                
                
               } 
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            if (ps != null) {
                try {
                    ps.close();
                } catch (SQLException e) {
                }
            }

            pcon.close();
        }
                      
                  
     
                
                
                 }
            if (!arg.isEmpty()) {
            Popup popup = new Popup("Eine /m schreiben", "Eine /m schreiben", "", 430, 16);
            Panel panel1 = new Panel();
            TextField textField = new TextField(53,arg);
            TextArea textArea = new TextArea(15,65,"");
            TextField textField1 = new TextField(53,"Re");

            panel1.addComponent(new Label("An (Nick):"));
            panel1.addComponent(textField);
            popup.addPanel(panel1);
            
            Panel panel2 = new Panel();
            panel2.addComponent(new Label("Betreff:    "));
            panel2.addComponent(textField1);
            popup.addPanel(panel2);
            
            Panel panel3 = new Panel();
            panel3.addComponent(new Label("Nachricht:                                                                                                    "));
            popup.addPanel(panel3);
            
            Panel panel4 = new Panel();
            panel4.addComponent(textArea);
            popup.addPanel(panel4);

            Panel panel5 = new Panel();
            Button button = new Button("Senden");
            button.enableAction();
            panel5.addComponent(button);
            panel5.addComponent(new Button("Schließen"));
            popup.addPanel(panel5);
            popup.setOpcode(ReceiveOpcode.MMessage.getValue(), "msent");
            client.send(popup.toString()); 
            
            }





mein frag nun wie mach ich es das ich mehrer Nachrichten senden/empfangen kann ?(
danke schonmal :)

9

Donnerstag, 4. August 2011, 17:34


mein frag nun wie mach ich es das ich mehrer Nachrichten senden/empfangen kann ?(

Mit einer Tabelle für die Nachrichten?

10

Donnerstag, 4. August 2011, 18:04

ein extra tabelle?

hab es ja jetzt in der accounts drine?