D
DangerGround
Gast
Code:
package wonet;
import java.applet.Applet;
import java.net.Socket;
import java.io.IOException;
import java.io.InputStream;
import java.io.BufferedReader;
import java.io.PrintWriter;
import java.io.InputStreamReader;
import java.lang.String;
import java.util.Calendar;
import java.util.Date;
import java.util.StringTokenizer;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;
import java.awt.event.ItemEvent;
import java.awt.*;
public class Chat extends Applet {
private boolean isStandalone = false;
Panel wContainer = new Panel();
TextField wEingabe = new TextField();
static Button wSendButton = new Button();
static java.awt.Checkbox wAutoscroll = new java.awt.Checkbox();
static TextArea wShowContainer = new TextArea();
static TextField wUserName = new TextField();
static Button wConnectionButton = new Button();
static TextArea wUserList = new TextArea();
static java.awt.Checkbox wUseTime = new java.awt.Checkbox();
String Startraum_Text = "Allgemein";
String AutoScroll_Text = "AutoScroll";
String SendButton_Text = "Senden";
String StartMsg_Text = "Willkommen im:\nBonet Netzwerk\n\nUm die Hilfe aufzurufen einfach '/Hilfe' eingeben\n-----------------------------------------------------------------------";
static String ConnectionButton_Off_Text= "Verbinden";
String ConnectionButton_On_Text = "Trennen";
String Username = "Gast" + ((int)(Math.random() * 899) + 100);
String Uname = getParameter("dbdeuser");
static String NickName;
static long delay;
static String room = "#!DB";
static String str;
static String time;
static String uname;
Thread t1;
static Socket client;
static PrintWriter out;
BufferedReader in;
static boolean go = false;
static int a;
//Get a parameter value
public String getParameter(String key, String def) {
return isStandalone ? System.getProperty(key, def) :
(getParameter(key) != null ? getParameter(key) : def);
}
//Construct the applet
public Chat() {
if (getParameter("dbdeuser").length() > 0) wUserName.setText(getParameter("dbdeuser"));
wUserList.setText("");
GoOffline("");
}
//Initialize the applet
public void init() {
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}
//Component initialization
private void jbInit() throws Exception {
this.setLayout(null);
this.setBackground(Color.lightGray);
this.setSize(700, 400);
wContainer.setBackground(Color.lightGray);
wContainer.setBounds(new Rectangle(-1, 371, 700, 29));
wContainer.setLayout(null);
wUserList.setBounds(new Rectangle(523, 29, 173, 344));
wUserList.setBackground(Color.white);
wEingabe.setBounds(new Rectangle(3, 5, 596, 21));
wEingabe.addKeyListener(new Chat_wEingabe_keyAdapter(this));
wSendButton.setBounds(new Rectangle(601, 5, 96, 21));
wSendButton.setEnabled(false);
wSendButton.setLabel(SendButton_Text);
wSendButton.addActionListener(new Chat_wSendButton_actionAdapter(this));
wAutoscroll.setBackground(Color.lightGray);
wAutoscroll.setState(true);
wAutoscroll.setLabel("AutoScroll (B)");
wAutoscroll.setBounds(new Rectangle(598, 4, 87, 23));
wAutoscroll.addItemListener(new Chat_wAutoscroll_itemAdapter(this));
wShowContainer.setBounds(new Rectangle(2, 29, 518, 344));
wShowContainer.setBackground(Color.white);
wShowContainer.setColumns(70);
wShowContainer.setEditable(false);
wShowContainer.setLocale(new java.util.Locale("de", "DE", "EURO"));
wShowContainer.setSelectionEnd(70);
wShowContainer.setText(StartMsg_Text);
wShowContainer.setVisible(true);
wShowContainer.setBackground(Color.white);
wConnectionButton.setActionCommand("Verbinden");
wConnectionButton.setBackground(Color.lightGray);
wConnectionButton.setLabel(ConnectionButton_Off_Text);
wConnectionButton.setBounds(new Rectangle(114, 6, 103, 21));
wConnectionButton.addActionListener(new Chat_wConnectionButton_actionAdapter(this));
wUserName.setText(Username);
wUserName.setBounds(new Rectangle(2, 6, 105, 21));
wUserList.setEditable(false);
wUseTime.setBackground(Color.lightGray);
wUseTime.setLabel("Zeit (B)");
wUseTime.setBounds(new Rectangle(529, 4, 61, 23));
wContainer.add(wEingabe, null);
wContainer.add(wSendButton, null);
this.add(wShowContainer, null);
this.add(wUserList, null);
this.add(wAutoscroll, null);
this.add(wUseTime, null);
this.add(wUserName, null);
this.add(wConnectionButton, null);
this.add(wContainer, null);
}
//Get Applet information
public String getAppletInfo() {
return "Wonet ChatSystem Based on Bonet";
}
//Get parameter info
public String[][] getParameterInfo() {
return null;
}
public static void GoOffline(String Grund){
wConnectionButton.setLabel(ConnectionButton_Off_Text);
wUserName.setEnabled(true);
wSendButton.setEnabled(false);
if(Grund == "user") place(">Chat Beendet, bis zum nächsten mal !");
if(Grund == "error") place(">Server nicht erreichbar, Versuche es Bitte später noch einmal !");
if(Grund == "input") place(">Keine Rückmeldung von Server !");
if(Grund == "kick") place(">Du wurdest entfernt, werde dir über deine Handlungen bewusst und versuche später gesittet erneute Kontaktaufnahme.");
try{
send("LEAVE" + (char)9 + NickName + (char)9 + room + (char)9 + "-");
client.close();
go = false;
}catch(IOException oe){
}catch(NullPointerException ne){
}
}
public void GoOnline() {
if (NickName.length() <= 20) {
if (Uname.length() > 0)
Username = getParameter("dbdeuser");
uname = getParameter("Uname");
NickName = wUserName.getText() + "@Web";
if (NickName.length() > 7) {
wConnectionButton.setLabel(ConnectionButton_On_Text);
wUserName.setEnabled(false);
wSendButton.setEnabled(true);
try {
client = new Socket("localhost", 1999);
out = new PrintWriter(client.getOutputStream());
t1 = new Thread(new gettheshit(client.getInputStream()));
t1.start();
send("NAME" + (char) 9 + NickName + (char) 9 + "-" + (char) 9 +
"w0.5.1");
}
catch (IOException e) {
GoOffline("error");
}
catch (NullPointerException ne) {
}
}
else {
place(">Name muss mehr als 3 Buchstaben aufweisen!");
}
}
else {
place(">Zeichen darf maximal 20 Zeichen besitzen !");
}
}
public static void send(String msg) {
out.write(msg + (char) 13 + (char) 10);
out.flush();
}
public static void place(String txt) {
if (wAutoscroll.getState())
wShowContainer.append("\n" + txt);
else
wShowContainer.setText(wShowContainer.getText() + "\n" + txt);
}
public static void use(String msg) {
String part;
String roh[];
roh = split(msg, "" + (char) 13 + (char) 10 + "");
//place("" + roh.length);
for (a = 0; a < roh.length; a++) {
part = roh[a];
if (go) {
if (part.startsWith("CHAT")) {
if (split(part, "" + (char) 9 + "")[3].equalsIgnoreCase(room)) {
String message = split(part, "" + (char) 9)[2];
if (message.startsWith("M2[")) {
message = "> " + message.substring(3) +
"Willkommen im Bonet Netzwerk";
}
else if (message.startsWith("M1[")) {
message = "> " + message.substring(3) + " Verlässt den Raum";
send("USERLIST" + (char) 9 + room + (char) 9 + "-" + (char) 9 +
"-");
}
else if (message.startsWith("M3[")) {
message = "> " + message.substring(3) + " kommt in den raum";
send("USERLIST" + (char) 9 + room + (char) 9 + "-" + (char) 9 +
"-");
}
else if (message.startsWith("M4[")) {
message = "> " + message.substring(3) + " ist jetzt abwesend";
send("USERLIST" + (char) 9 + room + (char) 9 + "-" + (char) 9 +
"-");
}
else if (message.startsWith("M5[")) {
message = "> " + message.substring(3) + " ist wieder anwesend";
send("USERLIST" + (char) 9 + room + (char) 9 + "-" + (char) 9 +
"-");
}
else if (message.toLowerCase().startsWith("gelb")) {
message = message.substring(7);
}
else if (message.toLowerCase().startsWith("blau")) {
message = message.substring(7);
}
else if (message.toLowerCase().startsWith("grau")) {
message = message.substring(7);
}
else if (message.toLowerCase().startsWith("grün")) {
message = message.substring(7);
}
else if (message.toLowerCase().startsWith("lila")) {
message = message.substring(7);
}
else if (message.toLowerCase().startsWith("weiß")) {
message = message.substring(7);
}
else if (message.toLowerCase().startsWith("vampir")) {
message = message.substring(9);
}
else if (message.toLowerCase().startsWith("rot")) {
message = message.substring(6);
}
else if (message.toLowerCase().startsWith("extra")) {
message = message.substring(8);
}
// Wegen der beschissenen M$ VM nun
message = replaceAll(message, "°F", "");
message = replaceAll(message, "°G", "");
message = replaceAll(message, "°C", "");
message = replaceAll(message, "°I", "");
for (int a = 0; a < 16; a++)
message = replaceAll(message, "°Ü" + a, "");
if (wUseTime.getState()) {
message = "[" + Calendar.getInstance().get(Calendar.HOUR) +
":" +
Calendar.getInstance().get(Calendar.MINUTE) + "] " +
message;
}
place(message);
}
}
else if (part.startsWith("REFRESH")) {
send("USERLIST" + (char) 9 + room + (char) 9 + "-" + (char) 9 + "-");
}
else if (part.startsWith("USER")) {
wUserList.setText(replaceAll(split(part, "" + (char) 9)[3], "|",
"\n "));
}
else if (part.startsWith("KICK")) {
GoOffline("kick");
}
else if (part.startsWith("STOP")) {
GoOffline("server");
}
}
else if (part.startsWith("GO")) {
go = true;
send("ENTER" + (char) 9 + room + (char) 9 + "-" + (char) 9 + "-");
send("USERLIST" + (char) 9 + room + (char) 9 + "-" + (char) 9 + "-");
}
}
}
public static String replaceAll(String text, String substitute, String replacement) {
int i;
while ( (i = text.indexOf(substitute)) != -1) {
text = text.substring(0, i) + replacement +
text.substring(i + substitute.length());
}
return text;
}
public static String[] split(String s, String spacer){
StringTokenizer st = new StringTokenizer(s, spacer);
int len = st.countTokens();
int index=0;
String[] sp = new String[len];
while(st.hasMoreTokens()){
sp[index++] = (String)st.nextToken();
}
return sp;
}
void wSendButton_actionPerformed(ActionEvent e) {
makesend();
}
void makesend(){
if (new Date().getTime() - delay > 1000) {
delay = new Date().getTime();
if (wEingabe.getText() != "" && wEingabe.getText().length() > 0) {
if (wEingabe.getText().startsWith("/")) {
if (wEingabe.getText().toLowerCase().startsWith("/hilfe")) {
place("\r\n------------------------------------------------------------------------\r\nBefehlsübersicht:\r\n=====================\r\n/Hilfe\t\t- Ruft diese Seite auf\r\n/away\t\t- Versetzt in den Abswesenheitsmodus\r\n/back\t\t- Versetzt wieder in den Aktivmodus\r\n/me\t\t- schreibstil der Selbstdarstellung\r\n\r\nBei Problemen oder Sonstigen, wendet euch an DangerGround !\r\n------------------------------------------------------------------------\r\n");
}
else if (wEingabe.getText().toLowerCase().startsWith("/me")) {
send("CHAT" + (char) 9 + "0" + (char) 9 + "°I" + NickName + " " +
wEingabe.getText().substring(4) + "°I" + (char) 9 + room);
}
else if (wEingabe.getText().toLowerCase().startsWith("/away")) {
send("AWAY" + (char) 9 + NickName + (char) 9 + room + (char) 9 +
"-");
}
else if (wEingabe.getText().toLowerCase().startsWith("/back")) {
send("BACK" + (char) 9 + NickName + (char) 9 + room + (char) 9 +
"-");
}
}
else {
send("CHAT" + (char) 9 + "0" + (char) 9 + "gelb" + "›š›" + NickName +
": " + wEingabe.getText() + (char) 9 + room);
}
wEingabe.setText("");
}
}
}
void wConnectionButton_actionPerformed(ActionEvent e) {
if(wConnectionButton.getLabel().equalsIgnoreCase(ConnectionButton_Off_Text)){
GoOnline();
}else{
GoOffline("user");
}
}
void wEingabe_keyTyped(KeyEvent e) {
if(e.getKeyChar() == 10) makesend();
}
void wAutoscroll_itemStateChanged(ItemEvent e) {
}
}
class Chat_wSendButton_actionAdapter implements java.awt.event.ActionListener {
Chat adaptee;
Chat_wSendButton_actionAdapter(Chat adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.wSendButton_actionPerformed(e);
}
}
class Chat_wConnectionButton_actionAdapter implements java.awt.event.ActionListener {
Chat adaptee;
Chat_wConnectionButton_actionAdapter(Chat adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.wConnectionButton_actionPerformed(e);
}
}
class gettheshit implements Runnable {
private InputStream i;
String buffer;
String zeit;
public gettheshit(InputStream i){
this.i = i;
}
public void run() {
BufferedReader in;
try {
in = new BufferedReader(new InputStreamReader(i));
while ((buffer = in.readLine()) != null) {
wonet.Chat.use(buffer);
//wonet.Chat.place(buffer);
}
}
catch (IOException e){
wonet.Chat.GoOffline("input");
}
}
}
class Chat_wEingabe_keyAdapter extends java.awt.event.KeyAdapter {
Chat adaptee;
Chat_wEingabe_keyAdapter(Chat adaptee) {
this.adaptee = adaptee;
}
public void keyTyped(KeyEvent e) {
adaptee.wEingabe_keyTyped(e);
}
}
class Chat_wAutoscroll_itemAdapter implements java.awt.event.ItemListener {
Chat adaptee;
Chat_wAutoscroll_itemAdapter(Chat adaptee) {
this.adaptee = adaptee;
}
public void itemStateChanged(ItemEvent e) {
adaptee.wAutoscroll_itemStateChanged(e);
}
}
Benutze JBuilder8, habs auch schon probiert direkt mit javac zu compilieren, dort klappt es ohne probleme, allerdings funktioniert das applet dann nicht. Habs mit 1.4 probiert und mit 1.1.8, das ganze muss mit 1.1.8 laufen wegen der kompatabilität(?!) mit der MS VM.
Bin für jede Brauchbare Hilfe dankbar !