package com.planet_ink.coffee_mud.core.intermud.packets;
import com.planet_ink.coffee_mud.core.intermud.imc2.*;
import com.planet_ink.coffee_mud.core.intermud.packets.*;
import com.planet_ink.coffee_mud.core.intermud.persist.*;
import com.planet_ink.coffee_mud.core.intermud.server.*;
import com.planet_ink.coffee_mud.core.intermud.net.*;
import com.planet_ink.coffee_mud.core.intermud.*;
import com.planet_ink.coffee_mud.core.interfaces.*;
import com.planet_ink.coffee_mud.core.*;
import com.planet_ink.coffee_mud.Abilities.interfaces.*;
import com.planet_ink.coffee_mud.Areas.interfaces.*;
import com.planet_ink.coffee_mud.Behaviors.interfaces.*;
import com.planet_ink.coffee_mud.CharClasses.interfaces.*;
import com.planet_ink.coffee_mud.Commands.interfaces.*;
import com.planet_ink.coffee_mud.Common.interfaces.*;
import com.planet_ink.coffee_mud.Exits.interfaces.*;
import com.planet_ink.coffee_mud.Items.interfaces.*;
import com.planet_ink.coffee_mud.Locales.interfaces.*;
import com.planet_ink.coffee_mud.MOBS.interfaces.*;
import com.planet_ink.coffee_mud.Races.interfaces.*;
import java.util.Vector;
/**
* Copyright (c) 1996 George Reese
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
public class Packet {
/*
Transmissions are LPC arrays with a predefined set of six initial elements:
({ type, ttl, originator mudname, originator username, target mudname, target username, ... }).
*/
final static public int CHAN_MESSAGE = 1;
final static public int CHAN_EMOTE = 2;
final static public int CHAN_TARGET = 3;
final static public int WHO_REQUEST = 4;
final static public int WHO_REPLY = 5;
final static public int TELL = 6;
final static public int LOCATE_QUERY = 7;
final static public int LOCATE_REPLY = 8;
final static public int CHAN_WHO_REQ = 9;
final static public int CHAN_WHO_REP = 10;
final static public int CHAN_ADD = 11;
final static public int CHAN_REMOVE = 12;
final static public int CHAN_LISTEN = 13;
public String sender_mud = null;
public String sender_name = null;
public String target_mud = null;
public String target_name = null;
public int type = 0;
public Packet() {
super();
sender_mud = Server.getMudName();
}
public Packet(Vector v) {
super();
{
Object ob;
ob = v.elementAt(2);
if( ob instanceof String ) {
sender_mud = (String)ob;
}
ob = v.elementAt(3);
if( ob instanceof String ) {
sender_name = (String)ob;
}
ob = v.elementAt(4);
if( ob instanceof String ) {
target_mud = (String)ob;
}
ob = v.elementAt(5);
if( ob instanceof String ) {
target_name = (String)ob;
}
}
}
public String convertString(String str) {
StringBuffer b = new StringBuffer(str);
int i = 0;
while( i < b.length() ) {
char c = b.charAt(i);
if( c != '\\' && c != '"' ) {
i++;
}
else {
b.insert(i, '\\');
i += 2;
}
}
return new String(b);
}
public void send() throws InvalidPacketException {
if( type == 0 ) {
throw new InvalidPacketException();
}
Intermud.sendPacket(this);
}
}