Du bist nicht angemeldet.

1

Donnerstag, 27. Oktober 2011, 00:03

Funktionen /showcareer und /career existieren nicht

Huhu,

ich bräuchte mal kurz eure Hilfe.

Ich wollte mir, nachdem die Career-Funktion hier veröffentlicht worden ist, diese auch einbauen.

Ich hab alles gemacht wie es in der Anleitung steht, aber wie ihr seht,
existieren
die Funktionen /showcareer und /career nicht ..



Ihr könnt aber auf dem Screen sehen, dass der Button funktioniert und ich Career-Einträge über die Datenbank eintragen kann.

Code:
[spoiler]

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
 Popup popup = new Popup(title, title, whois.toString(), 460, 350);
Panel panel = new Panel();
panel.addComponent(new Button(" OK "));

if (target.getRank() > 0) {
Button buttonMessage = new Button("Career");
buttonMessage.setCommand(String.format("/showcareer %s", nickname));
buttonMessage.disableClose();
panel.addComponent(buttonMessage);
}

if (target != client) {
Button buttonMessage = new Button("Nachricht");
buttonMessage.setCommand(String.format("/serverpp %s", nickname));
buttonMessage.disableClose();
panel.addComponent(buttonMessage);
}

popup.addPanel(panel);
popup.setOpcode(ReceiveOpcode.WHOIS.getValue(), nickname);
client.send(popup.toString());
} else {
client.sendButlerMessage(channel.getName(), String.format("Die Funktion /%s gibt's hier leider nicht.", command));
}
if (cmd.equals("showcareer")) {
String nickname = KCodeParser.escape(arg);

if(nickname.isEmpty()) {
nickname = client.getName();
}

Client target = Server.get().getClient(nickname);

if (target == null) {
target = new Client(null);
target.loadStats(nickname);

if (target.getName() == null) {
client.sendButlerMessage(channel.getName(), String.format("Wer ist %s?", nickname));
return;
}
}

StringBuilder career = new StringBuilder();
String title = String.format("Laufbahn von %s", target.getName());
career.append("#°%04°").append(target == Server.get().getButler() ? "21.05.1935" : target.getRegistrationDate()).append("°%34°Registration°%00°");

PoolConnection pcon = ConnectionPool.getConnection();
PreparedStatement ps = null;

try {
Connection con = pcon.connect();
ps = con.prepareStatement("SELECT `datum`, `text` FROM `career` WHERE `name` = ? ORDER BY `id`");
ps.setString(1, target.getName());
ResultSet rs = ps.executeQuery();

while(rs.next()) {
career.append("#°%04°").append(rs.getString("datum").isEmpty() ? "?" : rs.getString("datum")).append("°%34°").append(rs.getString("text")).append("°%00°");
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (ps != null) {
try {
ps.close();
} catch (SQLException e) {
}
}

pcon.close();
}

client.send(Popup.create(title, title, career.toString(), 400, 250));
}

}
}

[/spoiler]

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Ice.Net« (27. Oktober 2011, 00:08)


2

Donnerstag, 27. Oktober 2011, 05:49

Java-Quelltext

1
if (cmd.equals("showcareer")) { String nickname = KCodeParser.escape(arg);  if(nickname.isEmpty()) { nickname = client.getName(); }  Client target = Server.get().getClient(nickname);  if (target == null) { target = new Client(null); target.loadStats(nickname);  if (target.getName() == null) { client.sendButlerMessage(channel.getName(), String.format("Wer ist %s?", nickname)); return; } }  StringBuilder career = new StringBuilder(); String title = String.format("Laufbahn von %s", target.getName()); career.append("#°°").append(target == Server.get().getButler() ? "21.05.1935" : target.getRegistrationDate()).append("°4°Registration°°");  PoolConnection pcon = ConnectionPool.getConnection(); PreparedStatement ps = null;  try { Connection con = pcon.connect(); ps = con.prepareStatement("SELECT `datum`, `text` FROM `career` WHERE `name` = ? ORDER BY `id`"); ps.setString(1, target.getName()); ResultSet rs = ps.executeQuery();  while(rs.next()) { career.append("#°°").append(rs.getString("datum").isEmpty() ? "?" : rs.getString("datum")).append("°4°").append(rs.getString("text")).append("°°"); } } catch (SQLException e) { e.printStackTrace(); } finally { if (ps != null) { try { ps.close(); } catch (SQLException e) { } }  pcon.close(); }  client.send(Popup.create(title, title, career.toString(), 400, 250)); }  }

Das darf nicht ans Ende. Es muss irgendwo in der Mitte sein.
Ich hab das ein wenig sortiert.

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
} else if (cmd.equals("shutdown") && client.isAdministrator()) {
        	for (Object target : Server.get().getClients().toArray()) {
            	((Client) target).disconnect();
        	}

        	System.exit(0);
    	} else if (cmd.equals("showcareer")) {
        	String nickname = KCodeParser.escape(arg);

        	if (nickname.isEmpty()) {
            	nickname = client.getName();
        	}

        	Client target = Server.get().getClient(nickname);

        	if (target == null) {
            	target = new Client(null);
            	target.loadStats(nickname);

            	if (target.getName() == null) {
                	client.sendButlerMessage(channel.getName(), String.format("Wer ist %s?", nickname));
                	return;
            	}
        	}

        	StringBuilder career = new StringBuilder();
        	String title = String.format("Laufbahn von %s", target.getName());
        	career.append("#°%04°").append(target == Server.get().getButler() ? "21.05.1935" : target.getRegistrationDate()).append("°%34°Registration°%00°");

        	PoolConnection pcon = ConnectionPool.getConnection();
        	PreparedStatement ps = null;

        	try {
            	Connection con = pcon.connect();
            	ps = con.prepareStatement("SELECT `datum`, `text` FROM `career` WHERE `name` = ? ORDER BY `id`");
            	ps.setString(1, target.getName());
            	ResultSet rs = ps.executeQuery();

            	while (rs.next()) {
                	career.append("#°%04°").append(rs.getString("datum").isEmpty() ? "26.10.2011" : rs.getString("datum")).append("°%34°").append(rs.getString("text")).append("°%00°");

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

            	pcon.close();
        	}

        	client.send(Popup.create(title, title, career.toString(), 400, 250));
    	} else if (cmd.equals("time")) {
        	DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.MEDIUM, Locale.GERMANY);
        	client.sendButlerMessage(channel.getName(), String.format("Heute ist %s.", dateFormat.format(new Date())));
    	} else if (cmd.equals("top")) {

So als kleines Beispiel. Auf keinen Fall nach der geschlossenen If-Abfrage nochmal auf diese zugreifen wollen.
Fehler schenke ich euch um diese Uhrzeit. :)

3

Donnerstag, 27. Oktober 2011, 07:41

Jop hat funktioniert.

Danke euch Mardcore & Knuddelz

Ist zwar immernoch das Problem mit /career, aber ich denke mal das bekomm ich allein auf die Reihe.