[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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
|
} else if(cmd.startsWith("comment")) {
// Start der Funktion
System.out.println(" CMD");
if(client.isAdministrator()) {
// Wir splitten nun nach ":"
String[] parameter = arg.split(":");
System.out.println("COUNT " + parameter.length);
if(parameter.length != 2) {
client.sendButlerMessage(channel.getName(), "Bitte die Funktion folgendermaßen benutzen:#/comment NICK:TEXT#(Fügt einen Adminkommentar bei NICK hinzu.)");
} else {
String nickname = parameter[0];
String comment = parameter[1];
// Schritt 1: Nickname überprüfen:
PoolConnection pcon = ConnectionPool.getConnection();
PreparedStatement ps = null;
String temp_nick = null;
try {
Connection con = pcon.connect();
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT `name` FROM `accounts` WHERE `name`='" + nickname + "' LIMIT 10");
while(rs.next()) {
temp_nick = rs.getString("name");
break;
}
} catch(SQLException e) {
if(ps != null) {
try {
ps.close();
} catch (SQLException ex) {
/* Do Nothing */
}
}
pcon.close();
}
if(temp_nick == null) {
client.sendButlerMessage(channel.getName(), "Der angegebene Nickname existiert nicht.");
} else {
// Schritt 2: Comment eintragen wenn Comment-text valide
// Hier könnten noch weitere Überprüfungen stattfinden(?)
if(comment.length() <= 5) {
client.sendButlerMessage(channel.getName(), "Bitte Kommentar eingeben (Mindestens 5 Zeichen)!");
} else {
SimpleDateFormat date_format = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss"); // Müsstest du ggf. noch anpassen
String time = date_format.format(new Date());
pcon = ConnectionPool.getConnection();
ps = null;
try {
Connection con = pcon.connect();
// Warum nutzen wir hier "temp_nickname" anstatt "nickname"?
// Da "nickname" Æ’¼ber der DB geprÆ’¼ft wird und die richtige schreibweise bei "temp_nickname"
// ausgegeben wird... So kann ein Nickname auch im Command nur klein geschrieben werden
// Mom muss mal nach CONCAT() suchen / googeln
ps = con.prepareStatement("UPDATE `accounts` SET `comment`=CONCAT(?, `comment`) WHERE `name`=? LIMIT 10");
ps.setString(1, "#_°>" + client.getName() + "|/w "<°_: " + comment + " (" + time + ").");
ps.setString(2, temp_nick);
ps.executeUpdate();
//ps.executeQuery();
client.sendButlerMessage(channel.getName(), "Dein Kommentar wurde erfolgreich bei °>"+ temp_nick + "|/w "<° eingetragen.");
} catch(SQLException e2) {
e2.printStackTrace();
} finally {
if(ps != null) {
try {
ps.close();
} catch(SQLException e3) {
/* Do Nothing */
}
}
pcon.close();
}
}
}
}
} else {
// Wenn keine Adminrechte, dann info an den Nutzer
client.sendButlerMessage(channel.getName(), "Du hast nicht genügend Rechte um diesen Befehl zu benutzen.");
System.out.println("Comment ERROR: Access denied");
}
// ende
|
[/spoiler]
[spoiler]
|
Java-Quelltext
|
1
2
3
4
5
6
7
8
9
|
private String comment;
public String getComment() {
return comment;
}
public void setComment(String comment){
this.comment = comment;
}
|
[/spoiler]
Das is alles was ich bis jetzt eingefügt habe.
Den Import hab ich nu ma weggelassen