📄 domain.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.File;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.util.*;
class Domain
{
static Properties loadDefaultDomainProps()
{
Properties defaultProps = new Properties();
defaultProps.put("preOpened/Index", "<HTML>\n<!-- OpenCHAT (www.Sistemica.info) -->\n<HEAD><TITLE>OpenCHAT</TITLE></HEAD>\n<BODY>\n<center><br><br>\n<form method=get action=/Login>\n<table border=0 cellpadding=5 cellspacing=2 width=300>\n<tr bgcolor=5B7DA7><td align=center><font color=ffffff size=2 face=arial><b>Welcome to OpenCHAT</b></font></td></tr>\n<tr><td bgcolor=cccccc>\n<font face=arial size=2>\n<OpenCHAT:lang:Nick_name>:<br><input name=u size=12><br><br>\n<OpenCHAT:lang:Room>:<br><select name=room><OpenCHAT:selectRoomOptions></select><br><br>\n<input type=submit value=Login>\n<input type=hidden name=type value=\"preOpened\">\n</td></tr>\n<tr><td align=center><a href=\"http://sistemica.info\"><img src=\"http://sistemica.info/img/logo_sis_cool.png\" border=0></a></td></tr>\n</table>\n</form>\n</BODY>\n</HTML>\n");
defaultProps.put("preOpened/Login", "<HTML>\n<!-- OpenCHAT (www.Sistemica.info) -->\n<HEAD>\n<TITLE>OpenCHAT</TITLE>\n<FRAMESET rows=\"27,*,70\">\n<FRAME name=TOP src=\"<OpenCHAT:topFrameURL>\">\n<FRAME name=READER src=\"<OpenCHAT:readerFrameURL>\">\n<FRAME name=WRITER src=\"<OpenCHAT:writerFrameURL>\">\n</FRAMESET>\n<NOFRAMES><h2>Your browser does not support frames!</h2></NOFRAMES>\n</HEAD>\n</HTML>\n");
defaultProps.put("preOpened/Top", "<HEAD><TILE>OpenCHAT</TITLE></HEAD><BODY leftmargin=0 topmargin=0 margineidth=0 marginheight=0 bgcolor=000000><FONT FACE=Arial SIZE=4 color=ffffff><b><i>OpenCHAT</b> <font color=777777>Sistemica.info</font></BODY>\n");
defaultProps.put("preOpened/Reader", "<HTML>\n<!-- OpenCHAT (www.sistemica.info) -->\n<HEAD><TITLE>OpenCHAT</TITLE></HEAD>\n<BODY bgcolor=FFFFFF>\n");
defaultProps.put("preOpened/Writer", "<HTML>\n<!-- OpenCHAT (www.Sistemica.info) -->\n<HEAD><TITLE>OpenCHAT</TITLE></HEAD>\n<BODY BGCOLOR=#F7DBC6><font face=arial><b>\n<form method=get name=writer>\n<OpenCHAT:hiddenFormInputs><select name=action><option value=\"<OpenCHAT:lang:talks_to>\"><OpenCHAT:lang:Talk></option></select> \n<input name=msg size=35> \n <OpenCHAT:lang:to> <select name=to><OpenCHAT:selectUserOptions></select> \n<input type=checkbox name=privado value=true <OpenCHAT:checkboxPrivateChecked>> <font size=2><OpenCHAT:lang:private></font> \n<input type=submit value=send>\n</form></BODY></HTML>\n<SCRIPT NAME=\"JavaScript\">document.writer.msg.focus();</SCRIPT>\n");
return defaultProps;
}
Domain(String DomainString, String confString)
{
Root = new Hashtable();
defaultRoom = new Hashtable();
props = loadDefaultDomainProps();
lang = OpenCHAT.lang;
defaultLang = OpenCHAT.getProperty("CHAT_DEFAULT_LANGUAGE");
OpenCHAT.p(" -> Loading Domain " + DomainString + ".");
DomainString = DomainString.toUpperCase();
OpenCHAT.p(" Loading preOpened CHAT rooms for this Domain.");
Root.put("preOpened", new Hashtable());
String dirs[] = {
OpenCHAT.getProperty("CHAT_ROOT_DIR"), "."
};
Properties RoomsProps = new Properties();
boolean confRead = false;
confRead = OpenCHAT.readConfFile(RoomsProps, dirs, "OpenCHAT.rooms");
confRead = OpenCHAT.readConfFile(RoomsProps, dirs, DomainString + ".rooms");
for(Enumeration e = RoomsProps.keys(); e.hasMoreElements();)
{
String name;
try
{
name = URLDecoder.decode((String)e.nextElement(), OpenCHAT.getProperty("CHAT_DEFAULT_CHARSET"));
}
catch(UnsupportedEncodingException ee)
{
name = URLDecoder.decode((String)e.nextElement());
}
if(name.equals("_DEFAULT_"))
{
try
{
defaultRoom.put("preOpened", URLDecoder.decode((String)RoomsProps.get(name), OpenCHAT.getProperty("CHAT_DEFAULT_CHARSET")));
}
catch(UnsupportedEncodingException ee)
{
defaultRoom.put("preOpened", URLDecoder.decode((String)RoomsProps.get(name)));
}
} else
{
if(!getType("preOpened").containsKey(name))
OpenCHAT.p(" -> Loading room: " + name + ".");
getType("preOpened").put(name, new Room(name, "preOpened"));
}
}
if(!confRead)
OpenCHAT.p(" No domain config file could be read at " + OpenCHAT.getProperty("CHAT_ROOT_DIR") + File.separator + DomainString + ".rooms or in the working directory!");
if(getType("preOpened").isEmpty())
{
OpenCHAT.p(" -> Loading _DEFAULT_ room.");
getType("preOpened").put("_DEFAULT_", new Room("_DEFAULT_", "preOpened"));
}
if(!defaultRoom.containsKey("preOpened") || !getType("preOpened").containsKey((String)defaultRoom.get("preOpened")))
{
OpenCHAT.p(" -> No _DEFAULT_ room explicitly set or defaultRoom not found.");
defaultRoom.put("preOpened", (String)getType("preOpened").keys().nextElement());
}
OpenCHAT.p(" -> Default Room set to " + (String)defaultRoom.get("preOpened") + ".");
OpenCHAT.readMLConfFile(props, dirs, "OpenCHAT.tpls");
OpenCHAT.readMLConfFile(props, dirs, "OpenCHAT.tpls", DomainString);
OpenCHAT.readMLConfFile(props, dirs, DomainString + ".tpls");
OpenCHAT.readLangConf(lang, dirs, DomainString + ".lang");
OpenCHAT.readConfString(props, confString);
if(props.containsKey("defaultLang"))
defaultLang = (String)props.get("defaultLang");
Domain = Name = DomainString;
}
String getTemplate(String roomType, String room, String type)
{
String Template;
if(props.containsKey(roomType + "/" + room + "/" + type))
Template = (String)props.get(roomType + "/" + room + "/" + type);
else
if(props.containsKey(roomType + "/" + type))
Template = (String)props.get(roomType + "/" + type);
else
Template = (String)loadDefaultDomainProps().get(roomType + "/" + type);
return Template;
}
Hashtable get()
{
return Root;
}
Hashtable getType(String type)
{
Hashtable retHash;
try
{
retHash = (Hashtable)Root.get(type);
}
catch(NullPointerException e)
{
retHash = null;
}
return retHash;
}
Room getRoom(String type, String Room)
{
Room retRoom;
try
{
if(getType(type).containsKey(Room))
{
retRoom = (Room)getType(type).get(Room);
} else
{
OpenCHAT.p("User requested Room \"" + Room + "\" of type " + type + " doesn't exist.");
retRoom = (Room)getType(type).get(defaultRoom.get(type));
}
}
catch(NullPointerException e)
{
retRoom = null;
}
return retRoom;
}
User getUser(String type, String Room, String User)
{
User retUser;
try
{
retUser = getRoom(type, Room).getUser(User);
}
catch(NullPointerException e)
{
retUser = null;
}
return retUser;
}
String apllyLang(String text)
{
return apllyLang(defaultLang, text);
}
String apllyLang(String lang, String text)
{
if(lang == null || !this.lang.containsKey(lang))
lang = OpenCHAT.getProperty("CHAT_DEFAULT_LANGUAGE");
for(Enumeration e = ((Properties)this.lang.get(lang)).keys(); e.hasMoreElements();)
{
String key = (String)e.nextElement();
text = text.replaceAll("<OpenCHAT:lang:" + key + ">", (String)((Properties)this.lang.get(lang)).get(key));
}
return text;
}
public Hashtable Root;
public Hashtable defaultRoom;
public Properties props;
public Properties lang;
public String Domain;
public String Name;
public String defaultLang;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -