package com.planet_ink.coffee_mud.core.intermud.packets;
import com.planet_ink.coffee_mud.core.intermud.server.*;
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 ChannelPacket extends Packet {
public String channel = null;
public String sender_visible_name = null;
public String message = null;
public String message_target = null;
public String target_visible_name = null;
public ChannelPacket()
{
super();
type = ChannelPacket.CHAN_MESSAGE;
}
public ChannelPacket(Vector v) throws InvalidPacketException {
super(v);
try {
String str = (String)v.elementAt(0);
channel = (String)v.elementAt(6);
channel = Intermud.getLocalChannel(channel);
if( str.equals("channel-e") )
{
type = ChannelPacket.CHAN_EMOTE;
sender_visible_name = (String)v.elementAt(7);
message = (String)v.elementAt(8);
}
else
if( str.equals("channel-t") )
{
type = ChannelPacket.CHAN_TARGET;
target_mud=(String)v.elementAt(7);
target_name=(String)v.elementAt(8);
message=(String)v.elementAt(9);
message_target=(String)v.elementAt(10);
sender_visible_name = (String)v.elementAt(11);
target_visible_name = (String)v.elementAt(12);
}
else
{
type = ChannelPacket.CHAN_MESSAGE;
sender_visible_name = (String)v.elementAt(7);
message = (String)v.elementAt(8);
}
}
catch( ClassCastException e ) {
throw new InvalidPacketException();
}
}
public ChannelPacket(int t, String chan, String who, String vis, String msg) {
super();
type = t;
channel = chan;
sender_visible_name = vis;
sender_name = who;
message = msg;
}
public void send() throws InvalidPacketException {
if( channel == null || sender_visible_name == null ) {
throw new InvalidPacketException();
}
channel = Intermud.getRemoteChannel(channel);
message = convertString(message);
super.send();
}
public String toString() {
String str=null;
if(type==CHAN_TARGET)
str="({\"channel-t\",5,\"" + Server.getMudName() + "\",\"" +
sender_name + "\",0,0,\"" + channel + "\",\"" +
target_mud + "\",\"" + target_name + "\",\"" +
message + "\",\"" + message_target + "\",\"" +
sender_visible_name + "\",\"" + target_visible_name + "\",})";
else
if(type==CHAN_EMOTE)
str="({\"channel-e\",5,\"" + Server.getMudName() + "\",\"" +
sender_name + "\",0,0,\"" + channel + "\",\"" +
sender_visible_name + "\",\"" + message + "\",})";
else
str="({\"channel-m\",5,\"" + Server.getMudName() + "\",\"" +
sender_name + "\",0,0,\"" + channel + "\",\"" +
sender_visible_name + "\",\"" + message + "\",})";
return str;
}
}