/*
* Copyright (C) 2004-2015 L2J Server
*
* This file is part of L2J Server.
*
* L2J Server is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* L2J Server is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
package com.l2jserver.gameserver.network.serverpackets;
import com.l2jserver.gameserver.network.SystemMessageId;
/**
* @author Forsaiken, UnAfraid
*/
public final class SystemMessage extends AbstractMessagePacket
{
private SystemMessage(final SystemMessageId smId)
{
super(smId);
}
public static final SystemMessage sendString(final String text)
{
if (text == null)
{
throw new NullPointerException();
}
final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.S1);
sm.addString(text);
return sm;
}
public static final SystemMessage getSystemMessage(final SystemMessageId smId)
{
SystemMessage sm = smId.getStaticSystemMessage();
if (sm != null)
{
return sm;
}
sm = new SystemMessage(smId);
if (smId.getParamCount() == 0)
{
smId.setStaticSystemMessage(sm);
}
return sm;
}
/**
* Use {@link #getSystemMessage(SystemMessageId)} where possible instead
* @param id
* @return the system message associated to the given Id.
*/
public static SystemMessage getSystemMessage(int id)
{
return getSystemMessage(SystemMessageId.getSystemMessageId(id));
}
/**
* Use SystemMessage.getSystemMessage(SystemMessageId smId) where possible instead
* @param id
* @deprecated
*/
@Deprecated
private SystemMessage(final int id)
{
this(SystemMessageId.getSystemMessageId(id));
}
@Override
protected final void writeImpl()
{
writeC(0x62);
writeMe();
}
}