📄 user.java
字号:
// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://www.kpdus.com/jad.html
// Decompiler options: packimports(3)
// Source File Name: OpenCHAT.java
import java.io.PrintStream;
import java.net.URLDecoder;
import java.util.*;
class User
{
User(String Domain, String type, String Room, String User, String serial, String pass, PrintStream ps,
String lang)
{
lastTime = System.currentTimeMillis();
error = null;
if(serial == null || pass == null || !serial.matches("^[0-9]+$") || !pass.matches("^[0-9]+$"))
{
error = "<h2><OpenCHAT:lang:User_error>: <OpenCHAT:lang:serial_or_pass_cant_be_null>.</h2><br><OpenCHAT:lang:check_your_charset> (" + OpenCHAT.getProperty("CHAT_DEFAULT_CHARSET") + ").<br>";
return;
}
this.Domain = Root.getDomain(Domain);
this.type = type;
this.Room = this.Domain.getRoom(type, Room);
mySerial = serial;
password = pass;
this.ps = ps;
defaultLang = lang;
if(this.Room.Root.containsKey(User))
{
int i = 1;
do
{
if(i <= 0)
break;
if(!this.Room.Root.containsKey(User + (new Integer(i)).toString()))
{
User = User + (new Integer(i)).toString();
break;
}
i++;
} while(true);
}
this.User = Name = User;
if(this.Room.put(this))
{
book.put(serial, this);
keepAlive = new keepAlive(this);
(new Thread(keepAlive, mySerial)).start();
} else
{
OpenCHAT.p(" There was an unknown error while creating User Space!");
error = "<OpenCHAT:lang:Unknown_error>.";
}
}
static String newSerial()
{
return String.valueOf(serial++);
}
static User getUser(String serial, String pass)
{
User retUser;
retUser = null;
if(serial == null || pass == null || !serial.matches("^[0-9]+$") || !pass.matches("^[0-9]+$"))
return null;
int sec = 0;
while(!book.containsKey(serial))
{
if(sec++ > 10)
return null;
try
{
Thread.currentThread();
try {
Thread.sleep(1000L);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
// Misplaced declaration of an exception variable
catch(NullPointerException e) { }
}
retUser = (User)book.get(serial);
if(!retUser.password.equals(pass))
return null;
retUser = null;
return retUser;
}
boolean isAlive()
{
return ps != null;
}
void logout()
{
Room.sendAction(Name, "<OpenCHAT:lang:logged_out_the_room>");
keepAlive.stop();
book.remove(mySerial);
Room.dropUser(Name);
ps.close();
try
{
finalize();
}
catch(Throwable e)
{
OpenCHAT.p(" Java error while finalize() method aplied in User object.");
}
}
boolean send(String from, String action, String to, boolean priv, String msg)
{
String finalStr;
try
{
finalStr = URLDecoder.decode(msg, OpenCHAT.getProperty("CHAT_DEFAULT_CHARSET"));
}
catch(Exception e)
{
finalStr = msg;
}
finalStr = finalStr.replace('<', ' ');
finalStr = finalStr.replace('>', ' ');
String fromStr = "";
if(from.equals(to))
fromStr = "<font color=0000FF>" + from + "</font>";
else
if(from.equals("CHAT"))
fromStr = "<font color=FF0000>" + from + "</font>";
else
fromStr = "<font color=333333>" + from + "</font>";
String toStr = "";
if(Name.equals(to))
toStr = "<font color=0000FF>" + to + "</font>";
else
if(to == null)
toStr = "";
else
if(to.length() == 0)
toStr = "<font color=FF0000><OpenCHAT:lang:All></font>";
else
toStr = "<font color=333333>" + to + "</font>";
String privStr = priv ? " <OpenCHAT:lang:privatly>" : "";
String bgColor = Name.equals(to) ? " bgcolor=EFEFEF" : "";
boolean playSound = Name.equals(to);
Calendar Date = Calendar.getInstance();
String dateStr = (Date.get(11) >= 10 ? "" : "0") + Date.get(11) + ":" + (Date.get(12) >= 10 ? "" : "0") + Date.get(12) + ":" + (Date.get(13) >= 10 ? "" : "0") + Date.get(13);
Hashtable messageHash = new Hashtable();
messageHash.put("fromStr", fromStr);
messageHash.put("dateStr", dateStr);
messageHash.put("privStr", privStr);
messageHash.put("actionStr", action);
messageHash.put("toStr", toStr);
messageHash.put("finalStr", finalStr);
String message = Domain.getTemplate(type, "", "ReaderMessage");
for(Enumeration e = messageHash.keys(); e.hasMoreElements();)
{
String key = (String)e.nextElement();
message = message.replaceAll("<OpenCHAT:" + key + ">", (String)messageHash.get(key));
}
ps.print(apllyLang(message));
OpenCHAT.p(" " + Name + " :: " + from + " (" + action + ") " + (to != null && to.length() != 0 ? to : "ALL") + ": " + msg);
return true;
}
String apllyLang(String text)
{
return Domain.apllyLang(defaultLang, text);
}
static int serial = 1;
static Hashtable book = new Hashtable();
Domain Domain;
String type;
Room Room;
String User;
String Name;
String mySerial;
String password;
keepAlive keepAlive;
long lastTime;
String error;
String defaultLang;
PrintStream ps;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -