actual freya branch
This commit is contained in:
+86
@@ -0,0 +1,86 @@
|
||||
/*
|
||||
* This program 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.
|
||||
*
|
||||
* This program 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package handlers.voicedcommandhandlers;
|
||||
|
||||
import com.l2jserver.Config;
|
||||
import com.l2jserver.gameserver.handler.IVoicedCommandHandler;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
|
||||
/**
|
||||
* This class trades Gold Bars for Adena and vice versa.
|
||||
*
|
||||
* @author Ahmed
|
||||
*/
|
||||
public class Banking implements IVoicedCommandHandler
|
||||
{
|
||||
private static final String[] _voicedCommands =
|
||||
{
|
||||
"bank",
|
||||
"withdraw",
|
||||
"deposit"
|
||||
};
|
||||
|
||||
/**
|
||||
*
|
||||
* @see com.l2jserver.gameserver.handler.IVoicedCommandHandler#useVoicedCommand(java.lang.String, com.l2jserver.gameserver.model.actor.instance.L2PcInstance, java.lang.String)
|
||||
*/
|
||||
public boolean useVoicedCommand(String command, L2PcInstance activeChar, String params)
|
||||
{
|
||||
if (command.equalsIgnoreCase("bank"))
|
||||
{
|
||||
activeChar.sendMessage(".deposit (" + Config.BANKING_SYSTEM_ADENA + " Adena = " + Config.BANKING_SYSTEM_GOLDBARS + " Goldbar) / .withdraw (" + Config.BANKING_SYSTEM_GOLDBARS + " Goldbar = " + Config.BANKING_SYSTEM_ADENA + " Adena)");
|
||||
}
|
||||
else if (command.equalsIgnoreCase("deposit"))
|
||||
{
|
||||
if (activeChar.getInventory().getInventoryItemCount(57, 0) >= Config.BANKING_SYSTEM_ADENA)
|
||||
{
|
||||
if (!activeChar.reduceAdena("Goldbar", Config.BANKING_SYSTEM_ADENA, activeChar, false))
|
||||
return false;
|
||||
activeChar.getInventory().addItem("Goldbar", 3470, Config.BANKING_SYSTEM_GOLDBARS, activeChar, null);
|
||||
activeChar.getInventory().updateDatabase();
|
||||
activeChar.sendMessage("Thank you, you now have " + Config.BANKING_SYSTEM_GOLDBARS + " Goldbar(s), and " + Config.BANKING_SYSTEM_ADENA + " less adena.");
|
||||
}
|
||||
else
|
||||
{
|
||||
activeChar.sendMessage("You do not have enough Adena to convert to Goldbar(s), you need " + Config.BANKING_SYSTEM_ADENA + " Adena.");
|
||||
}
|
||||
}
|
||||
else if (command.equalsIgnoreCase("withdraw"))
|
||||
{
|
||||
if (activeChar.getInventory().getInventoryItemCount(3470, 0) >= Config.BANKING_SYSTEM_GOLDBARS)
|
||||
{
|
||||
if (!activeChar.destroyItemByItemId("Adena", 3470, Config.BANKING_SYSTEM_GOLDBARS, activeChar, false))
|
||||
return false;
|
||||
activeChar.getInventory().addAdena("Adena", Config.BANKING_SYSTEM_ADENA, activeChar, null);
|
||||
activeChar.getInventory().updateDatabase();
|
||||
activeChar.sendMessage("Thank you, you now have " + Config.BANKING_SYSTEM_ADENA + " Adena, and " + Config.BANKING_SYSTEM_GOLDBARS + " less Goldbar(s).");
|
||||
}
|
||||
else
|
||||
{
|
||||
activeChar.sendMessage("You do not have any Goldbars to turn into " + Config.BANKING_SYSTEM_ADENA + " Adena.");
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @see com.l2jserver.gameserver.handler.IVoicedCommandHandler#getVoicedCommandList()
|
||||
*/
|
||||
public String[] getVoicedCommandList()
|
||||
{
|
||||
return _voicedCommands;
|
||||
}
|
||||
}
|
||||
+164
@@ -0,0 +1,164 @@
|
||||
/*
|
||||
* This program 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.
|
||||
*
|
||||
* This program 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package handlers.voicedcommandhandlers;
|
||||
|
||||
import java.util.StringTokenizer;
|
||||
|
||||
import com.l2jserver.gameserver.datatables.AdminCommandAccessRights;
|
||||
import com.l2jserver.gameserver.datatables.CharNameTable;
|
||||
import com.l2jserver.gameserver.handler.IVoicedCommandHandler;
|
||||
import com.l2jserver.gameserver.model.L2World;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
|
||||
public class ChatAdmin implements IVoicedCommandHandler
|
||||
{
|
||||
private static final String[] VOICED_COMMANDS =
|
||||
{
|
||||
"banchat",
|
||||
"unbanchat"
|
||||
};
|
||||
|
||||
/**
|
||||
*
|
||||
* @see com.l2jserver.gameserver.handler.IVoicedCommandHandler#useVoicedCommand(java.lang.String, com.l2jserver.gameserver.model.actor.instance.L2PcInstance, java.lang.String)
|
||||
*/
|
||||
public boolean useVoicedCommand(String command, L2PcInstance activeChar, String params)
|
||||
{
|
||||
if (!AdminCommandAccessRights.getInstance().hasAccess(command, activeChar.getAccessLevel()))
|
||||
return false;
|
||||
|
||||
if (command.equalsIgnoreCase(VOICED_COMMANDS[0])) // banchat
|
||||
{
|
||||
if (params == null)
|
||||
{
|
||||
activeChar.sendMessage("Usage: .banchat name [minutes]");
|
||||
return true;
|
||||
}
|
||||
StringTokenizer st = new StringTokenizer(params);
|
||||
if (st.hasMoreTokens())
|
||||
{
|
||||
String name = st.nextToken();
|
||||
int length = 0;
|
||||
if (st.hasMoreTokens())
|
||||
{
|
||||
try
|
||||
{
|
||||
length = Integer.parseInt(st.nextToken());
|
||||
}
|
||||
catch (NumberFormatException e)
|
||||
{
|
||||
activeChar.sendMessage("Wrong ban length !");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (length < 0)
|
||||
length = 0;
|
||||
|
||||
int objId = CharNameTable.getInstance().getIdByName(name);
|
||||
if (objId > 0)
|
||||
{
|
||||
L2PcInstance player = L2World.getInstance().getPlayer(objId);
|
||||
if (player == null || !player.isOnline())
|
||||
{
|
||||
activeChar.sendMessage("Player not online !");
|
||||
return false;
|
||||
}
|
||||
if (player.getPunishLevel() != L2PcInstance.PunishLevel.NONE)
|
||||
{
|
||||
activeChar.sendMessage("Player is already punished !");
|
||||
return false;
|
||||
}
|
||||
if (player == activeChar)
|
||||
{
|
||||
activeChar.sendMessage("You can't ban yourself !");
|
||||
return false;
|
||||
}
|
||||
if (player.isGM())
|
||||
{
|
||||
activeChar.sendMessage("You can't ban GM !");
|
||||
return false;
|
||||
}
|
||||
if (AdminCommandAccessRights.getInstance().hasAccess(command, player.getAccessLevel()))
|
||||
{
|
||||
activeChar.sendMessage("You can't ban moderator !");
|
||||
return false;
|
||||
}
|
||||
|
||||
player.setPunishLevel(L2PcInstance.PunishLevel.CHAT, length);
|
||||
player.sendMessage("Chat banned by moderator " + activeChar.getName());
|
||||
|
||||
if (length > 0)
|
||||
activeChar.sendMessage("Player " + player.getName() + " chat banned for " + length + " minutes.");
|
||||
else
|
||||
activeChar.sendMessage("Player " + player.getName() + " chat banned forever.");
|
||||
}
|
||||
else
|
||||
{
|
||||
activeChar.sendMessage("Player not found !");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (command.equalsIgnoreCase(VOICED_COMMANDS[1])) //unbanchat
|
||||
{
|
||||
if (params == null)
|
||||
{
|
||||
activeChar.sendMessage("Usage: .unbanchat name");
|
||||
return true;
|
||||
}
|
||||
StringTokenizer st = new StringTokenizer(params);
|
||||
if (st.hasMoreTokens())
|
||||
{
|
||||
String name = st.nextToken();
|
||||
|
||||
int objId = CharNameTable.getInstance().getIdByName(name);
|
||||
if (objId > 0)
|
||||
{
|
||||
L2PcInstance player = L2World.getInstance().getPlayer(objId);
|
||||
if (player == null || !player.isOnline())
|
||||
{
|
||||
activeChar.sendMessage("Player not online !");
|
||||
return false;
|
||||
}
|
||||
if (player.getPunishLevel() != L2PcInstance.PunishLevel.CHAT)
|
||||
{
|
||||
activeChar.sendMessage("Player is not chat banned !");
|
||||
return false;
|
||||
}
|
||||
|
||||
player.setPunishLevel(L2PcInstance.PunishLevel.NONE, 0);
|
||||
|
||||
activeChar.sendMessage("Player " + player.getName() + " chat unbanned.");
|
||||
player.sendMessage("Chat unbanned by moderator " + activeChar.getName());
|
||||
}
|
||||
else
|
||||
{
|
||||
activeChar.sendMessage("Player not found !");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @see com.l2jserver.gameserver.handler.IVoicedCommandHandler#getVoicedCommandList()
|
||||
*/
|
||||
public String[] getVoicedCommandList()
|
||||
{
|
||||
return VOICED_COMMANDS;
|
||||
}
|
||||
}
|
||||
+61
@@ -0,0 +1,61 @@
|
||||
/*
|
||||
* This program 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.
|
||||
*
|
||||
* This program 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package handlers.voicedcommandhandlers;
|
||||
|
||||
import com.l2jserver.gameserver.datatables.AdminCommandAccessRights;
|
||||
import com.l2jserver.gameserver.handler.IVoicedCommandHandler;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
|
||||
public class Debug implements IVoicedCommandHandler
|
||||
{
|
||||
private static final String[] VOICED_COMMANDS =
|
||||
{
|
||||
"debug"
|
||||
};
|
||||
|
||||
/**
|
||||
*
|
||||
* @see com.l2jserver.gameserver.handler.IVoicedCommandHandler#useVoicedCommand(java.lang.String, com.l2jserver.gameserver.model.actor.instance.L2PcInstance, java.lang.String)
|
||||
*/
|
||||
public boolean useVoicedCommand(String command, L2PcInstance activeChar, String params)
|
||||
{
|
||||
if (!AdminCommandAccessRights.getInstance().hasAccess(command, activeChar.getAccessLevel()))
|
||||
return false;
|
||||
|
||||
if (VOICED_COMMANDS[0].equalsIgnoreCase(command))
|
||||
{
|
||||
if (activeChar.isDebug())
|
||||
{
|
||||
activeChar.setDebug(null);
|
||||
activeChar.sendMessage("Debugging disabled");
|
||||
}
|
||||
else
|
||||
{
|
||||
activeChar.setDebug(activeChar);
|
||||
activeChar.sendMessage("Debugging enabled");
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @see com.l2jserver.gameserver.handler.IVoicedCommandHandler#getVoicedCommandList()
|
||||
*/
|
||||
public String[] getVoicedCommandList()
|
||||
{
|
||||
return VOICED_COMMANDS;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,92 @@
|
||||
/*
|
||||
* This program 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.
|
||||
*
|
||||
* This program 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package handlers.voicedcommandhandlers;
|
||||
|
||||
import java.util.StringTokenizer;
|
||||
|
||||
import com.l2jserver.Config;
|
||||
import com.l2jserver.gameserver.handler.IVoicedCommandHandler;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage;
|
||||
import com.l2jserver.util.StringUtil;
|
||||
|
||||
public class Lang implements IVoicedCommandHandler
|
||||
{
|
||||
private static final String[] VOICED_COMMANDS =
|
||||
{
|
||||
"lang"
|
||||
};
|
||||
|
||||
/**
|
||||
*
|
||||
* @see com.l2jserver.gameserver.handler.IVoicedCommandHandler#useVoicedCommand(java.lang.String, com.l2jserver.gameserver.model.actor.instance.L2PcInstance, java.lang.String)
|
||||
*/
|
||||
public boolean useVoicedCommand(String command, L2PcInstance activeChar, String params)
|
||||
{
|
||||
if (!Config.L2JMOD_MULTILANG_ENABLE
|
||||
|| !Config.L2JMOD_MULTILANG_VOICED_ALLOW)
|
||||
return false;
|
||||
|
||||
NpcHtmlMessage msg = new NpcHtmlMessage(1);
|
||||
|
||||
if (params == null)
|
||||
{
|
||||
final StringBuilder html = StringUtil.startAppend(100);
|
||||
for (String lang : Config.L2JMOD_MULTILANG_ALLOWED)
|
||||
{
|
||||
StringUtil.append(html,
|
||||
"<button value=\"",
|
||||
lang.toUpperCase(),
|
||||
"\" action=\"bypass -h voice .lang ",
|
||||
lang,
|
||||
"\" width=60 height=21 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"><br>"
|
||||
);
|
||||
}
|
||||
|
||||
msg.setFile(activeChar.getHtmlPrefix(), "data/html/mods/Lang/LanguageSelect.htm");
|
||||
msg.replace("%list%", html.toString());
|
||||
activeChar.sendPacket(msg);
|
||||
return true;
|
||||
}
|
||||
|
||||
StringTokenizer st = new StringTokenizer(params);
|
||||
if (st.hasMoreTokens())
|
||||
{
|
||||
final String lang = st.nextToken().trim();
|
||||
if (activeChar.setLang(lang))
|
||||
{
|
||||
msg.setFile(activeChar.getHtmlPrefix(), "data/html/mods/Lang/Ok.htm");
|
||||
activeChar.sendPacket(msg);
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
msg.setFile(activeChar.getHtmlPrefix(), "data/html/mods/Lang/Error.htm");
|
||||
activeChar.sendPacket(msg);
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @see com.l2jserver.gameserver.handler.IVoicedCommandHandler#getVoicedCommandList()
|
||||
*/
|
||||
public String[] getVoicedCommandList()
|
||||
{
|
||||
return VOICED_COMMANDS;
|
||||
}
|
||||
}
|
||||
+84
@@ -0,0 +1,84 @@
|
||||
/*
|
||||
* This program 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.
|
||||
*
|
||||
* This program 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package handlers.voicedcommandhandlers;
|
||||
|
||||
import com.l2jserver.Config;
|
||||
import com.l2jserver.gameserver.cache.HtmCache;
|
||||
import com.l2jserver.gameserver.handler.IVoicedCommandHandler;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.model.entity.TvTEvent;
|
||||
import com.l2jserver.gameserver.network.serverpackets.ActionFailed;
|
||||
import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage;
|
||||
|
||||
/**
|
||||
* Tvt info.
|
||||
*
|
||||
* @author denser
|
||||
*/
|
||||
public class TvTVoicedInfo implements IVoicedCommandHandler
|
||||
{
|
||||
private static final String[] _voicedCommands = { "tvt" };
|
||||
|
||||
/**
|
||||
* Set this to false and recompile script if you dont want to use string cache.
|
||||
* This will decrease performance but will be more consistent against possible html editions during runtime
|
||||
* Recompiling the script will get the new html would be enough too [DrHouse]
|
||||
*/
|
||||
private static final boolean USE_STATIC_HTML = true;
|
||||
private static final String HTML = HtmCache.getInstance().getHtm(null, "data/html/mods/TvTEvent/Status.htm");
|
||||
|
||||
public boolean useVoicedCommand(String command, L2PcInstance activeChar, String target)
|
||||
{
|
||||
if (command.equalsIgnoreCase("tvt"))
|
||||
{
|
||||
if (TvTEvent.isStarting() || TvTEvent.isStarted())
|
||||
{
|
||||
String htmContent = (USE_STATIC_HTML && !HTML.isEmpty()) ? HTML :
|
||||
HtmCache.getInstance().getHtm(activeChar.getHtmlPrefix(), "data/html/mods/TvTEvent/Status.htm");
|
||||
|
||||
try
|
||||
{
|
||||
NpcHtmlMessage npcHtmlMessage = new NpcHtmlMessage(5);
|
||||
|
||||
npcHtmlMessage.setHtml(htmContent);
|
||||
// npcHtmlMessage.replace("%objectId%",
|
||||
// String.valueOf(getObjectId()));
|
||||
npcHtmlMessage.replace("%team1name%", Config.TVT_EVENT_TEAM_1_NAME);
|
||||
npcHtmlMessage.replace("%team1playercount%", String.valueOf(TvTEvent.getTeamsPlayerCounts()[0]));
|
||||
npcHtmlMessage.replace("%team1points%", String.valueOf(TvTEvent.getTeamsPoints()[0]));
|
||||
npcHtmlMessage.replace("%team2name%", Config.TVT_EVENT_TEAM_2_NAME);
|
||||
npcHtmlMessage.replace("%team2playercount%", String.valueOf(TvTEvent.getTeamsPlayerCounts()[1]));
|
||||
npcHtmlMessage.replace("%team2points%", String.valueOf(TvTEvent.getTeamsPoints()[1]));
|
||||
activeChar.sendPacket(npcHtmlMessage);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
_log.warning("wrong TvT voiced: " + e);
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
activeChar.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public String[] getVoicedCommandList()
|
||||
{
|
||||
return _voicedCommands;
|
||||
}
|
||||
}
|
||||
+479
@@ -0,0 +1,479 @@
|
||||
/*
|
||||
* This program 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.
|
||||
*
|
||||
* This program 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package handlers.voicedcommandhandlers;
|
||||
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import com.l2jserver.Config;
|
||||
import com.l2jserver.L2DatabaseFactory;
|
||||
import com.l2jserver.gameserver.GameTimeController;
|
||||
import com.l2jserver.gameserver.SevenSigns;
|
||||
import com.l2jserver.gameserver.ThreadPoolManager;
|
||||
import com.l2jserver.gameserver.ai.CtrlIntention;
|
||||
import com.l2jserver.gameserver.datatables.SkillTable;
|
||||
import com.l2jserver.gameserver.handler.IVoicedCommandHandler;
|
||||
import com.l2jserver.gameserver.instancemanager.CoupleManager;
|
||||
import com.l2jserver.gameserver.instancemanager.GrandBossManager;
|
||||
import com.l2jserver.gameserver.instancemanager.SiegeManager;
|
||||
import com.l2jserver.gameserver.model.L2Skill;
|
||||
import com.l2jserver.gameserver.model.L2World;
|
||||
import com.l2jserver.gameserver.model.actor.L2Character;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.model.entity.TvTEvent;
|
||||
import com.l2jserver.gameserver.network.SystemMessageId;
|
||||
import com.l2jserver.gameserver.network.serverpackets.ActionFailed;
|
||||
import com.l2jserver.gameserver.network.serverpackets.ConfirmDlg;
|
||||
import com.l2jserver.gameserver.network.serverpackets.MagicSkillUse;
|
||||
import com.l2jserver.gameserver.network.serverpackets.SetupGauge;
|
||||
import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
|
||||
import com.l2jserver.gameserver.skills.AbnormalEffect;
|
||||
import com.l2jserver.gameserver.util.Broadcast;
|
||||
|
||||
/**
|
||||
* @author evill33t
|
||||
*/
|
||||
public class Wedding implements IVoicedCommandHandler
|
||||
{
|
||||
static final Logger _log = Logger.getLogger(Wedding.class.getName());
|
||||
private static final String[] _voicedCommands =
|
||||
{
|
||||
"divorce",
|
||||
"engage",
|
||||
"gotolove"
|
||||
};
|
||||
|
||||
/**
|
||||
* @see com.l2jserver.gameserver.handler.IVoicedCommandHandler#useVoicedCommand(java.lang.String, com.l2jserver.gameserver.model.actor.instance.L2PcInstance, java.lang.String)
|
||||
*/
|
||||
public boolean useVoicedCommand(String command, L2PcInstance activeChar, String params)
|
||||
{
|
||||
if (activeChar == null)
|
||||
return false;
|
||||
if (command.startsWith("engage"))
|
||||
return engage(activeChar);
|
||||
else if (command.startsWith("divorce"))
|
||||
return divorce(activeChar);
|
||||
else if (command.startsWith("gotolove"))
|
||||
return goToLove(activeChar);
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean divorce(L2PcInstance activeChar)
|
||||
{
|
||||
if (activeChar.getPartnerId() == 0)
|
||||
return false;
|
||||
|
||||
int _partnerId = activeChar.getPartnerId();
|
||||
int _coupleId = activeChar.getCoupleId();
|
||||
long AdenaAmount = 0;
|
||||
|
||||
if (activeChar.isMarried())
|
||||
{
|
||||
activeChar.sendMessage("You are now divorced.");
|
||||
|
||||
AdenaAmount = (activeChar.getAdena() / 100) * Config.L2JMOD_WEDDING_DIVORCE_COSTS;
|
||||
activeChar.getInventory().reduceAdena("Wedding", AdenaAmount, activeChar, null);
|
||||
|
||||
}
|
||||
else
|
||||
activeChar.sendMessage("You have broken up as a couple.");
|
||||
|
||||
final L2PcInstance partner = L2World.getInstance().getPlayer(_partnerId);
|
||||
if (partner != null)
|
||||
{
|
||||
partner.setPartnerId(0);
|
||||
if (partner.isMarried())
|
||||
partner.sendMessage("Your spouse has decided to divorce you.");
|
||||
else
|
||||
partner.sendMessage("Your fiance has decided to break the engagement with you.");
|
||||
|
||||
// give adena
|
||||
if (AdenaAmount > 0)
|
||||
partner.addAdena("WEDDING", AdenaAmount, null, false);
|
||||
}
|
||||
CoupleManager.getInstance().deleteCouple(_coupleId);
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean engage(L2PcInstance activeChar)
|
||||
{
|
||||
if (activeChar.getTarget() == null)
|
||||
{
|
||||
activeChar.sendMessage("You have no one targeted.");
|
||||
return false;
|
||||
}
|
||||
else if (!(activeChar.getTarget() instanceof L2PcInstance))
|
||||
{
|
||||
activeChar.sendMessage("You can only ask another player to engage you.");
|
||||
return false;
|
||||
}
|
||||
else if (activeChar.getPartnerId() != 0)
|
||||
{
|
||||
activeChar.sendMessage("You are already engaged.");
|
||||
if (Config.L2JMOD_WEDDING_PUNISH_INFIDELITY)
|
||||
{
|
||||
activeChar.startAbnormalEffect(AbnormalEffect.BIG_HEAD); // give player a Big Head
|
||||
// lets recycle the sevensigns debuffs
|
||||
int skillId;
|
||||
|
||||
int skillLevel = 1;
|
||||
|
||||
if (activeChar.getLevel() > 40)
|
||||
skillLevel = 2;
|
||||
|
||||
if (activeChar.isMageClass())
|
||||
skillId = 4362;
|
||||
else
|
||||
skillId = 4361;
|
||||
|
||||
final L2Skill skill = SkillTable.getInstance().getInfo(skillId, skillLevel);
|
||||
if (activeChar.getFirstEffect(skill) == null)
|
||||
{
|
||||
skill.getEffects(activeChar, activeChar);
|
||||
final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.YOU_FEEL_S1_EFFECT);
|
||||
sm.addSkillName(skill);
|
||||
activeChar.sendPacket(sm);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
final L2PcInstance ptarget = (L2PcInstance) activeChar.getTarget();
|
||||
// check if player target himself
|
||||
if (ptarget.getObjectId() == activeChar.getObjectId())
|
||||
{
|
||||
activeChar.sendMessage("Is there something wrong with you, are you trying to go out with youself?");
|
||||
return false;
|
||||
}
|
||||
else if (ptarget.isMarried())
|
||||
{
|
||||
activeChar.sendMessage("Player already married.");
|
||||
return false;
|
||||
}
|
||||
else if (ptarget.isEngageRequest())
|
||||
{
|
||||
activeChar.sendMessage("Player already asked by someone else.");
|
||||
return false;
|
||||
}
|
||||
else if (ptarget.getPartnerId() != 0)
|
||||
{
|
||||
activeChar.sendMessage("Player already engaged with someone else.");
|
||||
return false;
|
||||
}
|
||||
else if (ptarget.getAppearance().getSex() == activeChar.getAppearance().getSex() && !Config.L2JMOD_WEDDING_SAMESEX)
|
||||
{
|
||||
activeChar.sendMessage("Gay marriage is not allowed on this server!");
|
||||
return false;
|
||||
}
|
||||
|
||||
// check if target has player on friendlist
|
||||
boolean FoundOnFriendList = false;
|
||||
int objectId;
|
||||
java.sql.Connection con = null;
|
||||
try
|
||||
{
|
||||
con = L2DatabaseFactory.getInstance().getConnection();
|
||||
PreparedStatement statement;
|
||||
statement = con.prepareStatement("SELECT friendId FROM character_friends WHERE charId=?");
|
||||
statement.setInt(1, ptarget.getObjectId());
|
||||
ResultSet rset = statement.executeQuery();
|
||||
|
||||
while (rset.next())
|
||||
{
|
||||
objectId = rset.getInt("friendId");
|
||||
if (objectId == activeChar.getObjectId())
|
||||
FoundOnFriendList = true;
|
||||
}
|
||||
statement.close();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
_log.warning("could not read friend data:" + e);
|
||||
}
|
||||
finally
|
||||
{
|
||||
L2DatabaseFactory.close(con);
|
||||
}
|
||||
|
||||
if (!FoundOnFriendList)
|
||||
{
|
||||
activeChar.sendMessage("The player you want to ask is not on your friends list, you must first be on each others friends list before you choose to engage.");
|
||||
return false;
|
||||
}
|
||||
|
||||
ptarget.setEngageRequest(true, activeChar.getObjectId());
|
||||
// $s1
|
||||
ConfirmDlg dlg = new ConfirmDlg(SystemMessageId.S1.getId()).addString(activeChar.getName() + " is asking to engage you. Do you want to start a new relationship?");
|
||||
ptarget.sendPacket(dlg);
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean goToLove(L2PcInstance activeChar)
|
||||
{
|
||||
if (!activeChar.isMarried())
|
||||
{
|
||||
activeChar.sendMessage("You're not married.");
|
||||
return false;
|
||||
}
|
||||
else if (activeChar.getPartnerId() == 0)
|
||||
{
|
||||
activeChar.sendMessage("Couldn't find your fiance in the Database - Inform a Gamemaster.");
|
||||
_log.severe("Married but couldn't find parter for " + activeChar.getName());
|
||||
return false;
|
||||
}
|
||||
else if (GrandBossManager.getInstance().getZone(activeChar) != null)
|
||||
{
|
||||
activeChar.sendMessage("You are inside a Boss Zone.");
|
||||
return false;
|
||||
}
|
||||
else if (activeChar.isCombatFlagEquipped())
|
||||
{
|
||||
activeChar.sendMessage("While you are holding a Combat Flag or Territory Ward you can't go to your love!");
|
||||
return false;
|
||||
}
|
||||
else if (activeChar.isCursedWeaponEquipped())
|
||||
{
|
||||
activeChar.sendMessage("While you are holding a Cursed Weapon you can't go to your love!");
|
||||
return false;
|
||||
}
|
||||
else if (GrandBossManager.getInstance().getZone(activeChar) != null)
|
||||
{
|
||||
activeChar.sendMessage("You are inside a Boss Zone.");
|
||||
return false;
|
||||
}
|
||||
else if (activeChar.isInJail())
|
||||
{
|
||||
activeChar.sendMessage("You are in Jail!");
|
||||
return false;
|
||||
}
|
||||
else if (activeChar.isInOlympiadMode())
|
||||
{
|
||||
activeChar.sendMessage("You are in the Olympiad now.");
|
||||
return false;
|
||||
}
|
||||
else if (activeChar.atEvent)
|
||||
{
|
||||
activeChar.sendMessage("You are in an event.");
|
||||
return false;
|
||||
}
|
||||
else if (activeChar.isInDuel())
|
||||
{
|
||||
activeChar.sendMessage("You are in a duel!");
|
||||
return false;
|
||||
}
|
||||
else if (activeChar.inObserverMode())
|
||||
{
|
||||
activeChar.sendMessage("You are in the observation.");
|
||||
return false;
|
||||
}
|
||||
else if (SiegeManager.getInstance().getSiege(activeChar) != null && SiegeManager.getInstance().getSiege(activeChar).getIsInProgress())
|
||||
{
|
||||
activeChar.sendMessage("You are in a siege, you cannot go to your partner.");
|
||||
return false;
|
||||
}
|
||||
else if (activeChar.isFestivalParticipant())
|
||||
{
|
||||
activeChar.sendMessage("You are in a festival.");
|
||||
return false;
|
||||
}
|
||||
else if (activeChar.isInParty() && activeChar.getParty().isInDimensionalRift())
|
||||
{
|
||||
activeChar.sendMessage("You are in the dimensional rift.");
|
||||
return false;
|
||||
}
|
||||
// Thanks nbd
|
||||
else if (!TvTEvent.onEscapeUse(activeChar.getObjectId()))
|
||||
{
|
||||
activeChar.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return false;
|
||||
}
|
||||
else if (activeChar.isInsideZone(L2Character.ZONE_NOSUMMONFRIEND))
|
||||
{
|
||||
activeChar.sendMessage("You are in area which blocks summoning.");
|
||||
return false;
|
||||
}
|
||||
|
||||
final L2PcInstance partner = L2World.getInstance().getPlayer(activeChar.getPartnerId());
|
||||
if ((partner == null) || !partner.isOnline())
|
||||
{
|
||||
activeChar.sendMessage("Your partner is not online.");
|
||||
return false;
|
||||
}
|
||||
else if (activeChar.getInstanceId() != partner.getInstanceId())
|
||||
{
|
||||
activeChar.sendMessage("Your partner is in another World!");
|
||||
return false;
|
||||
}
|
||||
else if (partner.isInJail())
|
||||
{
|
||||
activeChar.sendMessage("Your partner is in Jail.");
|
||||
return false;
|
||||
}
|
||||
else if (partner.isCursedWeaponEquipped())
|
||||
{
|
||||
activeChar.sendMessage("Your partner is holding a Cursed Weapon and you can't go to your love!");
|
||||
return false;
|
||||
}
|
||||
else if (GrandBossManager.getInstance().getZone(partner) != null)
|
||||
{
|
||||
activeChar.sendMessage("Your partner is inside a Boss Zone.");
|
||||
return false;
|
||||
}
|
||||
else if (partner.isInOlympiadMode())
|
||||
{
|
||||
activeChar.sendMessage("Your partner is in the Olympiad now.");
|
||||
return false;
|
||||
}
|
||||
else if (partner.atEvent)
|
||||
{
|
||||
activeChar.sendMessage("Your partner is in an event.");
|
||||
return false;
|
||||
}
|
||||
else if (partner.isInDuel())
|
||||
{
|
||||
activeChar.sendMessage("Your partner is in a duel.");
|
||||
return false;
|
||||
}
|
||||
else if (partner.isFestivalParticipant())
|
||||
{
|
||||
activeChar.sendMessage("Your partner is in a festival.");
|
||||
return false;
|
||||
}
|
||||
else if (partner.isInParty() && partner.getParty().isInDimensionalRift())
|
||||
{
|
||||
activeChar.sendMessage("Your partner is in dimensional rift.");
|
||||
return false;
|
||||
}
|
||||
else if (partner.inObserverMode())
|
||||
{
|
||||
activeChar.sendMessage("Your partner is in the observation.");
|
||||
return false;
|
||||
}
|
||||
else if (SiegeManager.getInstance().getSiege(partner) != null && SiegeManager.getInstance().getSiege(partner).getIsInProgress())
|
||||
{
|
||||
activeChar.sendMessage("Your partner is in a siege, you cannot go to your partner.");
|
||||
return false;
|
||||
}
|
||||
else if (partner.isIn7sDungeon() && !activeChar.isIn7sDungeon())
|
||||
{
|
||||
final int playerCabal = SevenSigns.getInstance().getPlayerCabal(activeChar.getObjectId());
|
||||
final boolean isSealValidationPeriod = SevenSigns.getInstance().isSealValidationPeriod();
|
||||
final int compWinner = SevenSigns.getInstance().getCabalHighestScore();
|
||||
|
||||
if (isSealValidationPeriod)
|
||||
{
|
||||
if (playerCabal != compWinner)
|
||||
{
|
||||
activeChar.sendMessage("Your Partner is in a Seven Signs Dungeon and you are not in the winner Cabal!");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (playerCabal == SevenSigns.CABAL_NULL)
|
||||
{
|
||||
activeChar.sendMessage("Your Partner is in a Seven Signs Dungeon and you are not registered!");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (!TvTEvent.onEscapeUse(partner.getObjectId()))
|
||||
{
|
||||
activeChar.sendMessage("Your partner is in an event.");
|
||||
return false;
|
||||
}
|
||||
else if (partner.isInsideZone(L2Character.ZONE_NOSUMMONFRIEND))
|
||||
{
|
||||
activeChar.sendMessage("Your partner is in area which blocks summoning.");
|
||||
return false;
|
||||
}
|
||||
|
||||
final int teleportTimer = Config.L2JMOD_WEDDING_TELEPORT_DURATION * 1000;
|
||||
activeChar.sendMessage("After " + teleportTimer / 60000 + " min. you will be teleported to your partner.");
|
||||
activeChar.getInventory().reduceAdena("Wedding", Config.L2JMOD_WEDDING_TELEPORT_PRICE, activeChar, null);
|
||||
|
||||
activeChar.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
||||
//SoE Animation section
|
||||
activeChar.setTarget(activeChar);
|
||||
activeChar.disableAllSkills();
|
||||
|
||||
final MagicSkillUse msk = new MagicSkillUse(activeChar, 1050, 1, teleportTimer, 0);
|
||||
Broadcast.toSelfAndKnownPlayersInRadius(activeChar, msk, 810000/*900*/);
|
||||
final SetupGauge sg = new SetupGauge(0, teleportTimer);
|
||||
activeChar.sendPacket(sg);
|
||||
//End SoE Animation section
|
||||
|
||||
final EscapeFinalizer ef = new EscapeFinalizer(activeChar, partner.getX(), partner.getY(), partner.getZ(), partner.isIn7sDungeon());
|
||||
// continue execution later
|
||||
activeChar.setSkillCast(ThreadPoolManager.getInstance().scheduleGeneral(ef, teleportTimer));
|
||||
activeChar.forceIsCasting(GameTimeController.getGameTicks() + teleportTimer / GameTimeController.MILLIS_IN_TICK);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
static class EscapeFinalizer implements Runnable
|
||||
{
|
||||
private final L2PcInstance _activeChar;
|
||||
private final int _partnerx;
|
||||
private final int _partnery;
|
||||
private final int _partnerz;
|
||||
private final boolean _to7sDungeon;
|
||||
|
||||
EscapeFinalizer(L2PcInstance activeChar, int x, int y, int z, boolean to7sDungeon)
|
||||
{
|
||||
_activeChar = activeChar;
|
||||
_partnerx = x;
|
||||
_partnery = y;
|
||||
_partnerz = z;
|
||||
_to7sDungeon = to7sDungeon;
|
||||
}
|
||||
|
||||
public void run()
|
||||
{
|
||||
if (_activeChar.isDead())
|
||||
return;
|
||||
|
||||
if(SiegeManager.getInstance().getSiege(_partnerx, _partnery, _partnerz) != null && SiegeManager.getInstance().getSiege(_partnerx, _partnery, _partnerz).getIsInProgress())
|
||||
{
|
||||
_activeChar.sendMessage("Your partner is in siege, you can't go to your partner.");
|
||||
return;
|
||||
}
|
||||
|
||||
_activeChar.setIsIn7sDungeon(_to7sDungeon);
|
||||
_activeChar.enableAllSkills();
|
||||
_activeChar.setIsCastingNow(false);
|
||||
|
||||
try
|
||||
{
|
||||
_activeChar.teleToLocation(_partnerx, _partnery, _partnerz);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
_log.log(Level.SEVERE, "", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @see com.l2jserver.gameserver.handler.IVoicedCommandHandler#getVoicedCommandList()
|
||||
*/
|
||||
public String[] getVoicedCommandList()
|
||||
{
|
||||
return _voicedCommands;
|
||||
}
|
||||
}
|
||||
+84
@@ -0,0 +1,84 @@
|
||||
/*
|
||||
* This program 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.
|
||||
*
|
||||
* This program 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package handlers.voicedcommandhandlers;
|
||||
|
||||
import com.l2jserver.gameserver.handler.IVoicedCommandHandler;
|
||||
import com.l2jserver.gameserver.instancemanager.CastleManager;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2DoorInstance;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.model.entity.Castle;
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
*/
|
||||
public class castle implements IVoicedCommandHandler
|
||||
{
|
||||
private static final String[] VOICED_COMMANDS =
|
||||
{
|
||||
"open doors",
|
||||
"close doors",
|
||||
"ride wyvern"
|
||||
};
|
||||
|
||||
/**
|
||||
*
|
||||
* @see com.l2jserver.gameserver.handler.IVoicedCommandHandler#useVoicedCommand(java.lang.String, com.l2jserver.gameserver.model.actor.instance.L2PcInstance, java.lang.String)
|
||||
*/
|
||||
public boolean useVoicedCommand(String command, L2PcInstance activeChar, String params)
|
||||
{
|
||||
if (command.startsWith("open doors") && params.equals("castle") && (activeChar.isClanLeader()))
|
||||
{
|
||||
L2DoorInstance door = (L2DoorInstance) activeChar.getTarget();
|
||||
Castle castle = CastleManager.getInstance().getCastleById(activeChar.getClan().getHasCastle());
|
||||
if (door == null || castle == null)
|
||||
return false;
|
||||
if (castle.checkIfInZone(door.getX(), door.getY(), door.getZ()))
|
||||
{
|
||||
door.openMe();
|
||||
}
|
||||
|
||||
}
|
||||
else if (command.startsWith("close doors") && params.equals("castle") && (activeChar.isClanLeader()))
|
||||
{
|
||||
L2DoorInstance door = (L2DoorInstance) activeChar.getTarget();
|
||||
Castle castle = CastleManager.getInstance().getCastleById(activeChar.getClan().getHasCastle());
|
||||
if (door == null || castle == null)
|
||||
return false;
|
||||
if (castle.checkIfInZone(door.getX(), door.getY(), door.getZ()))
|
||||
{
|
||||
door.closeMe();
|
||||
}
|
||||
|
||||
}
|
||||
else if (command.startsWith("ride wyvern") && params.equals("castle"))
|
||||
{
|
||||
if (activeChar.getClan().getHasCastle() > 0 && activeChar.isClanLeader())
|
||||
{
|
||||
activeChar.mount(12621, 0, true);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @see com.l2jserver.gameserver.handler.IVoicedCommandHandler#getVoicedCommandList()
|
||||
*/
|
||||
public String[] getVoicedCommandList()
|
||||
{
|
||||
return VOICED_COMMANDS;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,66 @@
|
||||
/*
|
||||
* This program 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.
|
||||
*
|
||||
* This program 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package handlers.voicedcommandhandlers;
|
||||
|
||||
import com.l2jserver.gameserver.handler.IVoicedCommandHandler;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
*/
|
||||
public class set implements IVoicedCommandHandler
|
||||
{
|
||||
private static final String[] VOICED_COMMANDS =
|
||||
{
|
||||
"set name",
|
||||
"set home",
|
||||
"set group"
|
||||
};
|
||||
|
||||
/**
|
||||
*
|
||||
* @see com.l2jserver.gameserver.handler.IVoicedCommandHandler#useVoicedCommand(java.lang.String, com.l2jserver.gameserver.model.actor.instance.L2PcInstance, java.lang.String)
|
||||
*/
|
||||
public boolean useVoicedCommand(String command, L2PcInstance activeChar, String params)
|
||||
{
|
||||
if (command.startsWith("set privileges"))
|
||||
{
|
||||
int n = Integer.parseInt(command.substring(15));
|
||||
L2PcInstance pc = (L2PcInstance) activeChar.getTarget();
|
||||
if (pc != null)
|
||||
{
|
||||
if (activeChar.getClan().getClanId() == pc.getClan().getClanId() && (activeChar.getClanPrivileges() > n) || activeChar.isClanLeader())
|
||||
{
|
||||
pc.setClanPrivileges(n);
|
||||
activeChar.sendMessage("Your clan privileges have been set to " + n + " by " + activeChar.getName());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @see com.l2jserver.gameserver.handler.IVoicedCommandHandler#getVoicedCommandList()
|
||||
*/
|
||||
public String[] getVoicedCommandList()
|
||||
{
|
||||
return VOICED_COMMANDS;
|
||||
}
|
||||
}
|
||||
+90
@@ -0,0 +1,90 @@
|
||||
/*
|
||||
* This program 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.
|
||||
*
|
||||
* This program 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package handlers.voicedcommandhandlers;
|
||||
|
||||
import java.util.Iterator;
|
||||
|
||||
import com.l2jserver.gameserver.handler.IVoicedCommandHandler;
|
||||
import com.l2jserver.gameserver.model.L2World;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage;
|
||||
import com.l2jserver.util.StringUtil;
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
*/
|
||||
public class stats implements IVoicedCommandHandler
|
||||
{
|
||||
private static final String[] VOICED_COMMANDS =
|
||||
{
|
||||
"stats"
|
||||
};
|
||||
|
||||
/**
|
||||
*
|
||||
* @see com.l2jserver.gameserver.handler.IVoicedCommandHandler#useVoicedCommand(java.lang.String, com.l2jserver.gameserver.model.actor.instance.L2PcInstance, java.lang.String)
|
||||
*/
|
||||
public boolean useVoicedCommand(String command, L2PcInstance activeChar, String params)
|
||||
{
|
||||
if (command.equalsIgnoreCase("stats"))
|
||||
{
|
||||
L2PcInstance pc = L2World.getInstance().getPlayer(params);
|
||||
if (pc != null)
|
||||
{
|
||||
NpcHtmlMessage adminReply = new NpcHtmlMessage(5);
|
||||
final StringBuilder replyMSG = StringUtil.startAppend(
|
||||
300 + pc.kills.size() * 50,
|
||||
"<html><body>" +
|
||||
"<center><font color=\"LEVEL\">[ L2J EVENT ENGINE ]</font></center><br>" +
|
||||
"<br>Statistics for player <font color=\"LEVEL\">",
|
||||
pc.getName(),
|
||||
"</font><br>" +
|
||||
"Total kills <font color=\"FF0000\">",
|
||||
String.valueOf(pc.kills.size()),
|
||||
"</font><br>" +
|
||||
"<br>Detailed list: <br>"
|
||||
);
|
||||
|
||||
Iterator<String> it = pc.kills.iterator();
|
||||
|
||||
while (it.hasNext()) {
|
||||
StringUtil.append(replyMSG,
|
||||
"<font color=\"FF0000\">",
|
||||
it.next(),
|
||||
"</font><br>");
|
||||
}
|
||||
|
||||
replyMSG.append("</body></html>");
|
||||
|
||||
adminReply.setHtml(replyMSG.toString());
|
||||
activeChar.sendPacket(adminReply);
|
||||
}
|
||||
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @see com.l2jserver.gameserver.handler.IVoicedCommandHandler#getVoicedCommandList()
|
||||
*/
|
||||
public String[] getVoicedCommandList()
|
||||
{
|
||||
return VOICED_COMMANDS;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user