how do I add a command line when to remove the member VIP also remove a weapon that the inventory?
see the code...
package com.l2j.gameserver.handler.admincommandhandlers;
import java.sql.Connection;
import java.sql.PreparedStatement;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.l2j.L2DatabaseFactory;
import com.l2j.gameserver.Announcements;
import com.l2j.gameserver.datatables.GmListTable;
import com.l2j.gameserver.handler.IAdminCommandHandler;
import com.l2j.gameserver.model.L2Object;
import com.l2j.gameserver.model.actor.instance.L2PcInstance;
import com.l2j.gameserver.network.serverpackets.SocialAction;
public class AdminVip implements IAdminCommandHandler
{
private static String[] ADMIN_COMMANDS =
{ "admin_setvip" };
private final static Log _log = LogFactory.getLog(AdminVip.class.getName());
public boolean useAdminCommand(String command, L2PcInstance activeChar)
{
if (activeChar == null)
return false;
if (command.startsWith("admin_setvip"))
{
L2Object target = activeChar.getTarget();
if (target instanceof L2PcInstance)
{
L2PcInstance targetPlayer = (L2PcInstance) target;
boolean newVip = !targetPlayer.isCharViP();
if (newVip)
{
targetPlayer.setCharViP(true);
targetPlayer.updateNameTitleColor();
updateDatabase(activeChar, true);
sendMessages(true, targetPlayer, activeChar, true, true);
targetPlayer.broadcastPacket(new SocialAction(targetPlayer.getObjectId(), 16));
targetPlayer.broadcastUserInfo();
}
else
{
targetPlayer.setCharViP(false);
targetPlayer.updateNameTitleColor();
updateDatabase(activeChar, false);
sendMessages(false, targetPlayer, activeChar, true, true);
targetPlayer.broadcastUserInfo();
}
}
else
{
activeChar.sendMessage("Impossible to set a non Player Target as VIP.");
_log.info("GM: " + activeChar.getName() + " is trying to set a non Player Target as VIP.");
return false;
}
}
return true;
}
private void sendMessages(boolean fornewVip, L2PcInstance player, L2PcInstance gm, boolean announce, boolean notifyGmList)
{
if (fornewVip)
{
player.sendMessage(gm.getName() + " has granted VIP Status for you!");
gm.sendMessage("You've granted VIP Status for " + player.getName());
if (announce)
Announcements.getInstance().announceToAll(player.getName() + " has received VIP Status!");
if (notifyGmList)
GmListTable.broadcastMessageToGMs("Warn: " + gm.getName() + " has Set " + player.getName() + " as VIP !");
}
else
{
player.sendMessage(gm.getName() + " has revoked VIP Status from you!");
gm.sendMessage("You've revoked VIP Status from " + player.getName());
if (announce)
Announcements.getInstance().announceToAll(player.getName() + " has lost VIP Status!");
if (notifyGmList)
GmListTable.broadcastMessageToGMs("Warn: " + gm.getName() + " has removed VIP Status of player" + player.getName());
}
}
/**
*
* @param activeChar
* @param newDonator
*/
private void updateDatabase(L2PcInstance player, boolean newVIP)
{
Connection con = null;
try
{
// prevents any NPE.
// ----------------
if (player == null)
return;
// Database Connection
//--------------------------------
con = L2DatabaseFactory.getInstance().getConnection();
PreparedStatement stmt = con.prepareStatement(newVIP ? INSERT_DATA : DEL_DATA);
// if it is a new donator insert proper data
// --------------------------------------------
if (newVIP)
{
stmt.setInt(1, player.getObjectId());
stmt.setString(2, player.getName());
stmt.setInt(3, player.isHero() ? 1 : 0);
stmt.setInt(4, player.isNoble() ? 1 : 0);
stmt.setInt(5, player.isDonator() ? 1 : 0);
stmt.setInt(6, 1);
stmt.execute();
stmt.close();
}
else
// deletes from database
{
stmt.setInt(1, player.getObjectId());
stmt.execute();
stmt.close();
}
}
catch (Exception e)
{
_log.error("Error: could not update database: ", e);
}
finally
{
try
{
con.close();
}
catch (Exception e)
{
_log.error("Error: could not update database: ", e);
}
}
}
// Updates That Will be Executed by MySQL
// ----------------------------------------
String INSERT_DATA = "REPLACE INTO characters_custom_data (obj_Id, char_name, hero, noble, donator, vip) VALUES (?,?,?,?,?,?)";
String DEL_DATA = "UPDATE characters_custom_data SET vip = 0 WHERE obj_Id=?";
/**
* @return
*/
public String[] getAdminCommandList()
{
return ADMIN_COMMANDS;
}
}
thxx