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

Sonntag, 10. Juli 2011, 21:19

Readme-Funktion

Hi,

ich zeige euch, wie ihr Readmes setzen und löschen könnt.

Zunächst ein neues Feld bei Accounts mit:
ALTER TABLE accounts ADD `readme` text

Wert: NULL

Client.java:

Java-Quelltext

1
private String readme;


Java-Quelltext

1
2
3
public String getReadme() {
return readme;
}


Java-Quelltext

1
2
3
public void setReadme(String text) {
this.readme = text;
}


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
public void updateReadme() {

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

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

}
}

pcon.close();
}
}


saveStats() überarbeiten:

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
private void saveStats() {
PoolConnection pcon = ConnectionPool.getConnection();
PreparedStatement ps = null;

try {
Connection con = pcon.connect();
ps = con.prepareStatement("UPDATE `accounts` SET `kisses` = ?, `knuddels` = ?, `onlineTime` = ?, `ipAddress` = ?, `readme` = ? WHERE `name` = ?");
ps.setInt(1, kisses);
ps.setInt(2, knuddels);
ps.setInt(3, getOnlineTime());
ps.setString(4, ipAddress);
ps.setString(5, readme);
ps.setString(6, name);
ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (ps != null) {
try {
ps.close();
} catch (SQLException e) {
}
}

pcon.close();
}
}


loadStats(), einfügen:

Java-Quelltext

1
readme = rs.getString("readme");


CommandParser.java:

New Command:

Java-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
else if (cmd.equals("readme")) {
if (arg.equals("!")) {
client.setReadme(null);
client.updateReadme();

client.sendButlerMessage(channel.getName(), "Dein Readme-Text wurde _gelöscht_.");
return;
} else if(arg.length() > 50) {
arg = arg.substring(0, 50); // alternativ noch angeben, dass Text gekürzt wurde
}

arg = Server.get().parseSmileys(arg);
client.sendButlerMessage(channel.getName(), "Deine Freunde können nun folgenden Text sehen: "" + arg + "\"");
client.setReadme(arg);
client.updateReadme();
}


whois-Bereich:

Java-Quelltext

1
2
3
if (target.getReadme() != null) {
whois.append(String.format("°BB°_Readme_°r°: "%s"##", target.getReadme())); // Darstellung könnt ihr ändern
}


Thx to Flav wegen MySQL-Eintrag. :)

Ich hoffe, dass ich nichts vergessen habe...

MfG

2

Montag, 11. Juli 2011, 00:52

Die Methode updateReadme scheint überflüssig zu sein, dafür gibt es doch saveStats.
Tschüß.

3

Montag, 11. Juli 2011, 00:58

Stimmt, ist mir gar nicht aufgefallen. :P

Wenn der Text der Readme gesetzt wurde vom User, einfach die Methode saveStats() aufrufen.

MfG

4

Montag, 11. Juli 2011, 01:03

Die musst du gar nicht mal aufrufen, die wird aufgerufen wenn der User sich ausloggt.
Tschüß.

5

Montag, 11. Juli 2011, 02:28

Macht aber manchmal Probleme. Wenn jemand übers X rausgeht wird Oft nicht Gespeicher.

6

Montag, 11. Juli 2011, 09:21

Dann ist derjenige vielleicht noch in einem anderen Channel online, oder du hast da was an der Methode verändert wodurch es manchmal zu Problemen kommt.
Tschüß.

7

Montag, 11. Juli 2011, 12:36

Wie muss ich das mit loadStats() machen

ich habe schon das versucht

Java-Quelltext

1
2
private void loadStats()
readme = rs.getString("readme");


Aber das klappt nicht ganz

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Kosi« (11. Juli 2011, 12:49)


8

Dienstag, 12. Juli 2011, 16:07

Hallo,
Gibt aus eine Möglichkeit, _,"°XX°, zu unterbinden?
Allso das diese im Readme nicht wirksam werden?

9

Dienstag, 12. Juli 2011, 16:45

arg = KCodeParser.escape(arg);
Tschüß.