home *** CD-ROM | disk | FTP | other *** search
- import java.net.URL;
- import java.util.StringTokenizer;
-
- public class ChatSession extends IRCSession {
- public ParaChat gui;
- String nickName;
- String realName;
- String connectAlg;
- String password;
- private boolean unicode;
- private boolean roomAdmin = false;
- private boolean isSU = false;
- private boolean inError = false;
- private String operator;
-
- public boolean isSU() {
- return this.isSU;
- }
-
- public boolean isRoomAdmin() {
- return this.roomAdmin;
- }
-
- public String getOperator() {
- return this.operator;
- }
-
- private boolean legalAdminCommand(String var1) {
- if (!this.roomAdmin) {
- return false;
- } else {
- return var1.startsWith("/expel") || var1.startsWith("/topic") || var1.startsWith("/room") || var1.startsWith("/pch_display") || var1.startsWith("/pch_meta");
- }
- }
-
- public void userSaid(String var1) {
- if (var1 != null && var1.length() != 0) {
- try {
- var1 = var1.trim();
- if (var1.charAt(0) == '/' && !this.legalAdminCommand(var1) && !this.isSU) {
- this.toUser("Sorry, IRC-style '/' commands are not supported.");
- this.toUser("type '*admin' to get the room admin console (admin privs needed)");
- this.toUser("type '*beep' to control audio cues when people enter and depart the room");
- this.toUser("type '*chat' to set your chat window properties");
- this.toUser("type '*ignore' to ignore messages from any other nickname");
- this.toUser("type '*page' to request a private conversation with an operator");
- this.toUser("type '*priv <nickname>' to set up a private window for that nick");
- this.toUser("type '/help' to get this message");
- } else {
- super.userSaid(var1);
- }
- } catch (Exception var2) {
- }
- }
- }
-
- protected void toUser(String var1) {
- this.gui.toUser(var1);
- }
-
- protected void toUser(String var1, String var2, String var3) {
- this.gui.toUser(var1, var2, var3);
- }
-
- protected void msgYouAreAdmin() {
- this.toUser("**** You have room administration powers *****");
- this.roomAdmin = true;
- }
-
- protected void msgYouAreSuperUser() {
- this.toUser("**** You have SYSTEM administration powers *****");
- this.isSU = true;
- }
-
- protected void msgUserSockAccept() {
- this.toUser(">> The remote machine has accepted the network request ... please wait.");
- }
-
- protected void msgPing() {
- }
-
- protected void msgUserJoin(String var1, String var2) {
- if (this.gui.showJoinLeave) {
- this.toUser(">> " + var1 + " has joined channel " + var2);
- }
-
- this.gui.addUser(var1);
- if (this.gui.entryBeep != null) {
- this.gui.play(this.gui.getCodeBase(), "sounds/" + this.gui.entryBeep);
- }
-
- }
-
- protected void msgUserPart(String var1, String var2) {
- if (this.gui.showJoinLeave) {
- this.toUser(">> " + var1 + " has left channel " + var2);
- }
-
- this.gui.partUser(var1);
- if (this.gui.partBeep != null) {
- this.gui.play(this.gui.getCodeBase(), "sounds/" + this.gui.partBeep);
- }
-
- }
-
- protected void msgPrivMsg(String var1, String var2, String var3) {
- if (!this.gui.toBeIgnored(var1)) {
- this.toUser(var1, var2, var3);
- }
- }
-
- protected void msgPrivMsg(String var1, String var2) {
- if (!this.gui.toBeIgnored(var1)) {
- this.toUser("[" + var1 + "] >>" + var2);
- }
-
- }
-
- protected void miscCmd(int var1, String var2) {
- }
-
- protected void msgUserMotd(String var1) {
- this.toUser(var1);
- }
-
- protected void msgUserWelcome(String var1) {
- this.gui.msgConnect();
- }
-
- protected void msgUserTopic(String var1) {
- this.toUser("The topic is: " + var1);
- }
-
- protected void msgUserNames(String var1) {
- this.gui.setUserNames(var1);
- }
-
- protected void msgUserError(int var1, String var2) {
- if (!this.inError) {
- this.inError = true;
- if (var1 != 421 && var1 != 451) {
- if (var1 == 551) {
- StringTokenizer var3 = new StringTokenizer(var2);
- String var4 = var3.nextToken();
- String var5 = var3.nextToken();
- int var6 = Integer.parseInt(var5);
- this.gui.toUser("ParaChat has detected a request to move your session to a different server.");
- this.gui.toUser("This may be in order to balance load on the servers, or to replace/update a server");
- this.gui.toUser("Please wait while we try and reconnect your session to " + var4 + ":" + var5);
- this.inError = false;
-
- try {
- ((IRCSession)this).connect(this.nickName, this.password, this.realName, var4, var6, -1, this.connectAlg, this.unicode);
- } catch (Exception var8) {
- ((Throwable)var8).printStackTrace();
- this.gui.toUser("Redirection connection to " + var4 + ":" + var6 + " failed: " + var8);
- this.gui.msgDisconnect("Could not connect to redirected server " + var4 + ":" + var6);
- }
- } else {
- if (this.gui != null) {
- this.gui.msgDisconnect(var2);
- }
-
- this.gui = null;
- ((IRCSession)this).disconnect();
- this.inError = false;
- }
- }
- }
- }
-
- protected void msgSwitchChannel(String var1) {
- if (this.gui != null) {
- this.gui.setChannel(var1);
- }
-
- }
-
- protected void msgUserDisplay(String var1) {
- if (this.gui != null) {
- StringTokenizer var2 = new StringTokenizer(var1);
- if (var2.hasMoreTokens()) {
- String var3 = var2.nextToken();
- if (var3.equals("upres")) {
- this.gui.handleSingleDirective("upresdisp", var2, true);
- return;
- }
-
- if (var3.equals("touser")) {
- if (var2.hasMoreTokens()) {
- String var4 = var2.nextToken("\n");
- this.gui.toUser(var4);
- return;
- }
- } else {
- if (var3.equals("cruise")) {
- try {
- this.gui.cruiseTo(new URL(var2.nextToken()));
- return;
- } catch (Exception var5) {
- return;
- }
- }
-
- if (var3.equals("rpl_page")) {
- this.operator = var2.nextToken();
- this.gui.toUser(this.gui.xtab.translate("Starting a private conversation with operator ") + this.operator);
- this.gui.handleSingleDirective("page_operator", var2, true);
- return;
- }
-
- if (var3.equals("exec")) {
- try {
- String var7 = var2.nextToken("\n");
- this.gui.toUser("[executing remote control command \"" + var7 + "\"]\n");
- this.gui.executeLine(var7);
- return;
- } catch (Exception var6) {
- return;
- }
- }
- }
- }
- }
-
- }
-
- public ChatSession() {
- super(System.out, System.out);
- }
-
- public void init(ParaChat var1, String var2, String var3, String var4, String var5, boolean var6) {
- this.gui = var1;
- this.nickName = var2;
- this.realName = var4;
- this.password = var3;
- this.connectAlg = var5;
- this.unicode = var6;
- }
- }
-