/**
* Copyright (C) 2013 Alexander Szczuczko
*
* This file may be modified and distributed under the terms
* of the MIT license. See the LICENSE file for details.
*/
package ca.szc.keratin.core.event.message.recieve;
import java.util.Arrays;
import java.util.List;
import ca.szc.keratin.core.event.message.MessageReceive;
import ca.szc.keratin.core.net.io.OutputQueue;
import ca.szc.keratin.core.net.message.IrcMessage;
public class ReceiveMode
extends MessageReceive
{
public static final String COMMAND = "MODE";
// private final String sender;
private final List<String> flagParams;
private final String flags;
private final String target;
public ReceiveMode( OutputQueue replyQueue, IrcMessage message )
{
super( replyQueue, message );
String[] params = message.getParams();
// sender = message.getPrefix().substring( 0, message.getPrefix().indexOf( '!' ) );
target = params[0];
flags = params[1];
// Channel mode or user mode?
if ( params.length > 2 )
{
// Channel mode
flagParams = Arrays.asList( Arrays.copyOfRange( params, 2, params.length ) );
String firstFlagParam = flagParams.get( 0 );
if ( firstFlagParam.startsWith( ":" ) )
flagParams.set( 0, firstFlagParam.substring( 1 ) );
}
else
{
// User mode
flagParams = null;
}
}
// public String getSender()
// {
// return sender;
// }
public List<String> getFlagParams()
{
return flagParams;
}
public String getFlags()
{
return flags;
}
public String getTarget()
{
return target;
}
}