Du bist nicht angemeldet.

1

Samstag, 2. Juni 2012, 19:59

KDice - Dicen um Knuddels

Ermöglicht das Dicen um Knuddels

Autor: KoRn
Datum: 2. May 2011

Client.java
Suche:

Java-Quelltext

1
public Client(Socket socket) { 
Darüber:

Java-Quelltext

1
2
3
4
private Client kdice_user;
private int kdice_id;
private int kdice_count;
private String kdice_dice;

Suche:

Java-Quelltext

1
public boolean checkSpam(String channel) { 
Darüber:

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
 public int getDiceID() {
return kdice_id;
}

public String getDice() {
return kdice_dice;
}

public Client getDiceUser() {
return kdice_user;
}

public int getDiceCount() {
return kdice_count;
}

public void setDiceUser(Client user, int count, String dice) {
kdice_user = user;
kdice_id = IntegerUtil.rand(100000, 999999);
kdice_count = count;
kdice_dice = dice;
}

public void increaseKnuddels(int num) {
knuddels += num;
}

public void decreaseKnuddels(int num) {
knuddels -= num;
} 

CommandParser.java
if-Condition erweitern:

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
else if(cmd.equals("kdice") || cmd.equals("kd")) {
try{
String[] pieces = arg.split(":");
if(arg.equals("") || pieces.length != 3){
client.sendButlerMessage(channel.getName(), "Bitte die Funktion folgendermaßen benutzen:#/kdice [USER]:[ANZAHL]w[AUGENZAHL]:[KNUDDEL]");
return;
}

String userName = pieces[0];
String dice = pieces[1];
int kAnz = Integer.parseInt(pieces[2]);

if(kAnz <= 0) {
client.sendButlerMessage(channel.getName(), "Anzahl muss positiv sein!");
return;
}

if(client.getKnuddels() < kAnz) {
client.sendButlerMessage(channel.getName(), "Du besitzt leider im Moment nicht genügend Knuddels!");
return;
}

Client c = Server.get().getClient(userName);

if (c == null) {
client.sendButlerMessage(channel.getName(), arg + " ist mir unbekannt.");
} else {
if(c.getName().equals(client.getName())) {
client.sendButlerMessage(channel.getName(), "Du kannst nicht mit dir selbst spielen!");
return;
}
if(c.getChannel() != client.getChannel()) {
client.sendButlerMessage(channel.getName(), "Dein Partner befindet sich in einem anderen Channel!");
return;
}
if(c.getKnuddels() < kAnz) {
client.sendButlerMessage(channel.getName(), "Dein Partner besitzt leider im Moment nicht genügend Knuddels!");
return;
}

c.setDiceUser(client, kAnz, dice);
client.sendButlerMessage(channel.getName(), "°>_h" + c.getName() + "|/serverpp "|/w "<° wurde benachrichtigt!");
c.sendButlerMessage(channel.getName(),
"°>_h" + client.getName() +
"|/serverpp "|/w "<° möchte mit dir um " +
kAnz +
" Knuddels mit " +
dice +
" würfeln!#Wenn du damit einverstanden bist, klicke auf " +
"°>{button} Ok ||call|/ok " +
c.getDiceID() +
"<°"
);
}

}catch(Exception ex){
client.sendButlerMessage(channel.getName(), "Bitte die Funktion folgendermaßen benutzen:#/kdice [USER]:[ANZAHL]w[AUGENZAHL]:[KNUDDEL]");
}
} else if(cmd.equals("ok")) {
try {
int id = Integer.parseInt(arg);
if(client.getDiceID() == id) {

if(client.getDiceUser() == null) {
client.sendButlerMessage(channel.getName(), "Dein KDice-Partner befindet sich mitlerweile offline!");
return;
}

String dice1 = IntegerUtil.dice(client.getDice());
String dice2 = IntegerUtil.dice(client.getDice());

int ges1 = Integer.parseInt(dice1.substring(dice1.indexOf('=') + 1).trim());
int ges2 = Integer.parseInt(dice2.substring(dice2.indexOf('=') + 1).trim());

Client winner = ges1 > ges2 ? client : client.getDiceUser();
Client loser = ges1 > ges2 ? client.getDiceUser() : client;

String msg1 = PacketCreator.action(">", channel.getName(), String.format("°>_h%s|/serverpp "|/w "<° rollt einen Würfel...#%s", client.getName(), dice1));
String msg2 = PacketCreator.action(">", channel.getName(), String.format("°>_h%s|/serverpp "|/w "<° rollt einen Würfel...#%s", client.getDiceUser().getName(), dice2));

String msg3 = "";
if(ges1 != ges2) {
msg3 = PacketCreator.action(">", channel.getName(),
String.format(
"°>_h%s|/serverpp "|/w "<° gewinnt die KDice-Runde und bekommt %s Knuddels von °>_h%s|/serverpp "|/w "<°!",
winner.getName(),
client.getDiceCount(),
loser.getName()
)
);

winner.increaseKnuddels(client.getDiceCount());
loser.decreaseKnuddels(client.getDiceCount());
} else {
msg3 = PacketCreator.action(">", channel.getName(),
String.format(
"Die KDice-Runde zwischen °>_h%s|/serverpp "|/w "<° und °>_h%s|/serverpp "|/w "<° geht Remis aus und jeder behält seinen Einsatz von _%s Knuddels_",
winner.getName(),
loser.getName(),
client.getDiceCount()
)
);
}
client.setDiceUser(client, 0, "");

for (Client cl : channel.getClients()) {
cl.send(msg1);
cl.send(msg2);
cl.send(msg3);
}
}
} catch (NumberFormatException nfe) {
} catch (Exception ex) { }
} 


Außerdem die Klasse IntergerUtil.java downloaden und in das Paket "tools" kopieren.

IntegerUtil.java (1,07 kB, 32 Downloads)
application/octet-stream