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

13.07.2011, 07:58

[F] Familysystem Snippet

Huhu

wollt mal Fragen ob noch jemand das Familysystem Snippet hat.
Über die Google Cache konnte es leider nicht mehr gefunden werden.
Danke schon mal :)

Lg Chris

2

13.07.2011, 08:33

Autor: ???
Quelle: Banana-Coding vor dem Umbau
___________________________________________________________
Schritt 1:

in db "account" folgendes einbauen

MySQL-Abfrage(n)

1
2
3
`familydate` date NOT NULL
  `famcheckdate` date NOT NULL
  `famcheck` tinyint(3) unsigned NOT NULL DEFAULT '0' 


Und in der Tabelle "channelstyles" wird 1 Zelle eingefügt.

MySQL-Abfrage(n)

1
`fam` varchar(11) NOT NULL 


Schritt 2:

Client.java


Unter

Java-Quelltext

1
2
3
...
private int spam;
private long lastAction; 


Wird das noch hinzugefügt

Java-Quelltext

1
2
3
4
5
//Familymitglied
private byte famcheck;
private String famcheckdate;
private String famseit;
//Familymitglied 


Danach ändern wir

Java-Quelltext

1
2
3
4
5
6
7
8
9
10
11
private boolean isVIP() {
    return rank >= 1;
}

public boolean isModerator() {
    return rank >= 2;
}

public boolean isAdministrator() {
    return rank >= 3;
} 


in

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
private boolean isVIP() {
    return rank == 1;
}

public boolean isModerator() {
    return rank == 2;
}

public boolean isAdministrator() {
    return rank == 3;
}

//Familymitglied
public boolean isFam() {
    return rank == 5;
}
public byte isFamcheck() {
    return famcheck;
}
public String getFamseit() {
    return famseit;
}
public String getFamcheckdate() {
    return famcheckdate;
}
//Familymitglied


Danach Sucht ihr

Java-Quelltext

1
2
3
4
String[] registration = rs.getString("registration").split(" ");
            String[] date = registration[0].split("-");
            registrationDate = String.format("%s.%s.%s", date[2], date[1], date[0]);
            registrationTime = registration[1].split("\\.")[0];


Da drunter kommt

Java-Quelltext

1
2
3
4
5
6
7
8
9
//Familymitglied
            String famrech = rs.getString("familydate");
            String[] fdate = famrech.split("-");
            famseit = String.format("%s.%s.%s", fdate[2], fdate[1], fdate[0]);            
            famcheck = rs.getByte("famcheck");
            String dfamcheck = rs.getString("famcheckdate");
            String[] fmdate = dfamcheck.split("-");
            famcheckdate = String.format("%s.%s.%s", fmdate[2], fmdate[1], fmdate[0]);
            //Familymitglied 


Schritt 3:

ChannelStyle.java
So jetzt zu der UserColor ihn der UserList.

Java-Quelltext

1
2
3
4
5
6
7
private String
        foreground,
        background,
        red,
        blue,
        administrator,
        moderator; 


Ändern in
PHP-Code:

Java-Quelltext

1
2
3
4
5
6
7
8
private String
        foreground,
        background,
        red,
        blue,
        administrator,
        moderator,
        fam;

Danach unter

Java-Quelltext

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





Fügen wir das ein

Java-Quelltext

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





Danach Unter

Java-Quelltext

1
2
3
if (client.isModerator()) {
        return moderator;
    } 





Fügen wir das ein

Java-Quelltext

1
2
3
4
5
//Familymitglied
    if (client.isFam()) {
        return fam;
    }
//Familymitglied 




3

13.07.2011, 08:33

Schritt 4:

CommandParser.java
So jetzt Fügen wir den Rank noch ihn die Whois Liste ein.

Unter knuddels(da wo ihn der Whois Liste angezeigt wird Wieviele Knuddels man hat.)Wird Das hier hinzugefügt

Java-Quelltext

1
2
3
4
5
6
7
8
9
10
whois.append("°°##");
        if (target.getRank() == 1){
             whois.append(String.format("°%°Vip seit dem ?."));
        }else if(target.isModerator()){
            whois.append(String.format("°%°Moderator seit dem ?."));
        }else if(target.isFam()){
            whois.append(String.format("°%°Familymitglied seit dem "+client.getFamseit()+"."));
        }else if(target.isAdministrator()){
            whois.append(String.format("°%°Sysadmin seit dem ?."));
        } 


okay haben wir das.

Schritt: 5

JoinChannelHandeler.java
So jetzt wird überpruft ob der Familymitglied schon bescheitbekommen hat ob er Family geworden ist.

Unter

Java-Quelltext

1
2
3
client.joinChannel(channel);
    	client.send(PacketCreator.channelFrame(channel, client.getName()));
    	channel.join(client); 




kommt das hier rein

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
if (client.isFamcheck() == 0){

    	}else if (client.isFamcheck() == 1){
         	Popup popup = new Popup("Herzlichen Glückwunsch",  "Herzlichen Glückwunsch", String.format("°>CENTER<°  °>sm/sm_jubi_fireworks1.gif<° _Familymitglied_  °>sm/sm_jubi_fireworks1.gif<° ### Du Wurdest in die  _Familymitgliedschaft_ aufgenommen ist das nicht  °>sm/sm_11.gif<°.Du hast jetzt noch mehr Befehle und kannst jetzt  auch dein °>fullheart.gif<° einmal im Monat Vergeben und  Vielleicht wirst du im Nächsten Monat auch noch StammChatter.#Also Viel  Glück °>sm/smll_mau_w.gif<°.   ### Mit freundlichen Grüßen # Sven  °>sm/sm_abo_11.gif<° "), 400, 300);
            	popup.addPanel(null);
            	//popup.addComponent(new Button("   OK   "));
            	client.send(popup.toString());
            	try {
        	String gdate = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
        	Connection con = pcon.connect();
         	ps = con.prepareStatement("UPDATE `accounts` SET `rank` = ?,  `familydate` = ?, `famcheck` = ?, `famcheckdate` = ? WHERE `name` =  ?");
        	ps.setString(1, "5");
        	ps.setString(2, gdate);
        	ps.setString(3, "2");
        	ps.setString(4, gdate);
        	ps.setString(5, client.getName());
        	ps.executeUpdate();
    	} catch (SQLException e) {
        	e.printStackTrace();
    	} finally {
        	if (ps != null) {
            	try {
                	ps.close();
            	} catch (SQLException e) {
            	}
        	}

        	pcon.close();
    	}
    	} 


Okay haben wird das auch.

WICHTIG

Als Import:

import java.text.SimpleDateFormat;
import java.util.Date;

Schritt 6 (letzter Schritt):

LeavChannelHandler.java
So jetzt zu dem Wichtigsten teil das Zufallsprinzip.

Unter

Java-Quelltext

1
2
3
if (channel == null || !channel.getClients().contains(client)) {
        	return;
    	} 




Das hier einfügen

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
//Fam
    	String date = new SimpleDateFormat("dd.MM.yyyy").format(new Date());
    	if (date.equals(client.getFamcheckdate())){
    	}else{

    	if (client.getRank() == 0){
        	if (client.getOnlineTime() >= 45000 || client.getOnlineTime() == 45000){
        	if (client.isFamcheck() == 0){
        	//double zahl = Math.abs(Math.random()*100+1);
        	Random rnd = new Random();
        	int zahl = rnd.nextInt(10);
        	if (zahl == 10 || zahl == 1){
    	PoolConnection pcon = ConnectionPool.getConnection();
    	PreparedStatement ps = null;

             	//Popup popup = new Popup("Herzlichen Glückwunsch",  "Herzlichen Glückwunsch", String.format("°>CENTER<°  °>sm/sm_jubi_fireworks1.gif<° _Familymitglied_  °>sm/sm_jubi_fireworks1.gif<° ### Du Wurdes in die  _Familymitgliedschaft_ aufgenommen ist das nicht °>sm/sm_11.gif<°.  Du hast jetzt noch mehr Befehle und kannst jetzt auch dein  °>fullheart.gif<° einmal im Monat Vergeben. Und Vielleicht wirst  du im Nächsten Monat auch noch Stammchatter. Also Viel Glück  °>sm/smll_mau_w.gif<°.   ### Mit freundlichen Grüßen # Sven  °>sm/sm_abo_11.gif<° "+zahl), 400, 300);
            	//popup.addComponent(new Button("   OK   "));
            	//client.send(popup.toString());

    	try {
        	Connection con = pcon.connect();
         	ps = con.prepareStatement("UPDATE `accounts` SET `rank` = ?,  `familydate` = ?, `famcheck` = ?, `famcheckdate` = ?, `monatstime` = ?  WHERE `name` = ?");
        	ps.setString(1, "5");
        	ps.setString(2, new SimpleDateFormat("yyyy-MM-dd").format(new Date()));
        	ps.setString(3, "1");
        	ps.setString(4, new SimpleDateFormat("yyyy-MM-dd").format(new Date()));
        	ps.setInt(5, client.getOnlineTime());
        	ps.setString(6, client.getName());
        	ps.executeUpdate();
    	} catch (SQLException e) {
        	e.printStackTrace();
    	} finally {
        	if (ps != null) {
            	try {
                	ps.close();
            	} catch (SQLException e) {
            	}
        	}

        	pcon.close();
    	}
        	}else {
            	
            	PoolConnection pcon = ConnectionPool.getConnection();
            	PreparedStatement ps = null;

             	//Popup popup = new Popup("Herzlichen Glückwunsch",  "Herzlichen Glückwunsch", String.format("°>CENTER<°  °>sm/sm_jubi_fireworks1.gif<° _Familymitglied_  °>sm/sm_jubi_fireworks1.gif<° ### Du Wurdes in die  _Familymitgliedschaft_ aufgenommen ist das nicht °>sm/sm_11.gif<°.  Du hast jetzt noch mehr Befehle und kannst jetzt auch dein  °>fullheart.gif<° einmal im Monat Vergeben. Und Vielleicht wirst  du im Nächsten Monat auch noch Stammchatter. Also Viel Glück  °>sm/smll_mau_w.gif<°.   ### Mit freundlichen Grüßen # Sven  °>sm/sm_abo_11.gif<° "+zahl), 400, 300);
            	//popup.addComponent(new Button("   OK   "));
            	//client.send(popup.toString());

    	try {
        	Connection con = pcon.connect();
        	String gdate = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
         	ps = con.prepareStatement("UPDATE `accounts` SET `rank` = ?,  `familydate` = ?, `famcheck` = ?, `famcheckdate` = ? WHERE `name` =  ?");
        	ps.setString(1, "0");
        	ps.setString(2, gdate);
        	ps.setString(3, "2");
        	ps.setString(4, gdate);
        	ps.setString(5, client.getName());
        	ps.executeUpdate();
    	} catch (SQLException e) {
        	e.printStackTrace();
    	} finally {
        	if (ps != null) {
            	try {
                	ps.close();
            	} catch (SQLException e) {
            	}
        	}

        	pcon.close();
    	}
    	
        	}
        	}else if(client.isFamcheck() == 1 || client.isFamcheck() == 2) {
                	
        	}
    	}
    	}

	}
    	//Fam end 




WICHTIG

Java-Quelltext

1
2
3
4
5
import java.sql.*;
import java.text.SimpleDateFormat;
import java.util.*;
import tools.database.ConnectionPool;
import tools.database.PoolConnection;

4

16.07.2011, 19:33

Hallo hat soweit alles geklapt nur der zeigt mir das nicht im profil an habe schon andere sachen ausprobiert das woanders hinzushcieben nur hat nicht geklapt

5

16.07.2011, 19:52

Hab das jetzt nur mal überflogen, aber scheint mir sehr unsauber programmiert zu sein. Wenn man das 1-zu-1 übernimmt dürften Moderator-Funktionen für Administratoren nicht mehr funktionieren.
Tschüß.

6

16.07.2011, 19:55

Also ich habe auch shcon andre rang versucht und so bei 1 kommt mod und so und shceint ergentwien icht so zu funkt.

7

16.07.2011, 19:58

Ich kann gerne hilfe anbieten :)

Das Snippet ist aber älter (Vor dem "neuen" Forum) und der Autor mir leider unbekannt >.<

Ich benutze zwar das gleiche Familysystem, jedoch auch mit anderen Rängen wie Stammi etc. (rosenversand bin ich gerade bei *.*), deshalb ist es bei mir nicht wichtig ob der Admin das gleiche kann wie der Mod.

8

16.07.2011, 20:01

Das wäre nett sein möcht nämlich das es Funkt.

9

16.07.2011, 20:05

Also ich habe auch shcon andre rang versucht und so bei 1 kommt mod und so und shceint ergentwien icht so zu funkt.
Poste mal aus der Client.java die Zeilen in der, der User als Family-Mitglied "abgestempelt" wird :)

Bei mir sieht das momentan so aus:

Java-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
	public byte getRank() {
    	return rank;
	}
	
	public boolean isFamily() {
    	return rank == 1;
	}

	public boolean isStammuser() {
    	return rank == 2;
	}

 [...]

	public boolean isAdministrator() {
    	return rank >= 6;
	}


Die Punkte symbolisieren hier natürlich einen Teil der fehlt :D

-------------------------------

P.s. Moderatoren werden immernoch als Rank = 1 definiert. Family´s sind 5. Fiel mir gerade wieder ein :pinch:

10

16.07.2011, 20:09

Also bei mir isehts so aus habe bishcen mehr jetzt kopiert

Zitat

//Familymitglied


public Client(Socket socket) {
channels = new ArrayList<Channel>();
this.socket = socket;

if (socket == null) {
return;
}

try {
out = socket.getOutputStream();
} catch (IOException e) {
}
}

public List<Pair<String, Integer>> getIcons() {
return icons;
}

private void addIcon(String icon, int size) {
Pair<String, Integer> pair = new Pair<String, Integer>(icon, size);
icons.add(pair);

for (Channel channel : getChannels()) {
String add = PacketCreator.addIcon(channel.getName(), name, pair);

for (Client target : channel.getClients()) {
target.send(add);
}
}
}

private void removeIcon(String icon) {
for (Pair<String, Integer> pair : icons) {
if (pair.getLeft().equals(icon)) {
icons.remove(pair);
break;
}
}

for (Channel channel : getChannels()) {
String remove = PacketCreator.removeIcon(channel.getName(), name, icon);

for (Client target : channel.getClients()) {
target.send(remove);
}
}
}

public String getName() {
return name;
}


public byte getRank() {
return rank;
}

private boolean isVIP() {
return rank == 1;
}

public boolean isModerator() {
return rank == 2;
}

public boolean isAdministrator() {
return rank == 3;
}

//Familymitglied
public boolean isFam() {
return rank == 5;
}
public byte isFamcheck() {
return famcheck;
}
public String getFamseit() {
return famseit;
}
public String getFamcheckdate() {
return famcheckdate;
}
//Familymitglied