/*
* 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 2, 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, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*
* http://www.gnu.org/copyleft/gpl.html
*/
package net.sf.l2j.gameserver.handler.admincommandhandlers;
import java.util.StringTokenizer;
import net.sf.l2j.Config;
import net.sf.l2j.gameserver.communitybbs.Manager.RegionBBSManager;
import net.sf.l2j.gameserver.handler.IAdminCommandHandler;
import net.sf.l2j.gameserver.model.L2World;
import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
import net.sf.l2j.gameserver.network.L2GameClient;
import net.sf.l2j.gameserver.serverpackets.LeaveWorld;
public class AdminKick implements IAdminCommandHandler
{
private static final String[] ADMIN_COMMANDS = {"admin_kick" ,"admin_kick_non_gm"};
private static final int REQUIRED_LEVEL = Config.GM_KICK;
public boolean useAdminCommand(String command, L2PcInstance activeChar)
{
if (!Config.ALT_PRIVILEGES_ADMIN)
if (!(checkLevel(activeChar.getAccessLevel()) && activeChar.isGM()))
return false;
if (command.startsWith("admin_kick"))
{
StringTokenizer st = new StringTokenizer(command);
if (st.countTokens() > 1)
{
st.nextToken();
String plyr = st.nextToken();
L2PcInstance player = L2World.getInstance().getPlayer(plyr);
if (player != null)
{
kickPlayer (player);
RegionBBSManager.getInstance().changeCommunityBoard();
activeChar.sendMessage("You kicked " + player.getName() + " from the game.");
}
}
}
if (command.startsWith("admin_kick_non_gm"))
{
int counter = 0;
for (L2PcInstance player : L2World.getInstance().getAllPlayers())
{
if(!player.isGM())
{
counter++;
kickPlayer (player);
}
}
activeChar.sendMessage("Kicked "+counter+" players");
}
return true;
}
private void kickPlayer (L2PcInstance player)
{
try
{
L2GameClient.saveCharToDisk(player);
player.sendPacket(new LeaveWorld());
player.deleteMe();
player.logout();
}
catch (Throwable t)
{}
try
{
player.closeNetConnection();
}
catch (Throwable t)
{}
}
public String[] getAdminCommandList()
{
return ADMIN_COMMANDS;
}
private boolean checkLevel(int level)
{
return (level >= REQUIRED_LEVEL);
}
}
admin ban source code
/*
* 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 2, 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, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*
* http://www.gnu.org/copyleft/gpl.html
*/
package net.sf.l2j.gameserver.handler.admincommandhandlers;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.NoSuchElementException;
import java.util.StringTokenizer;
import net.sf.l2j.Config;
import net.sf.l2j.L2DatabaseFactory;
import net.sf.l2j.gameserver.LoginServerThread;
import net.sf.l2j.gameserver.communitybbs.Manager.RegionBBSManager;
import net.sf.l2j.gameserver.handler.IAdminCommandHandler;
import net.sf.l2j.gameserver.model.L2Object;
import net.sf.l2j.gameserver.model.L2World;
import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
import net.sf.l2j.gameserver.network.SystemMessageId;
import net.sf.l2j.gameserver.serverpackets.SystemMessage;
/**
* This class handles following admin commands:
* - ban account_name = changes account access level to -100 and logs him off. If no account is specified, target's account is used.
* - unban account_name = changes account access level to 0.
* - jail charname [penalty_time] = jails character. Time specified in minutes. For ever if no time is specified.
* - unjail charname = Unjails player, teleport him to Floran.
*
* @version $Revision: 1.1.6.3 $ $Date: 2005/04/11 10:06:06 $
*/
public class AdminBan implements IAdminCommandHandler
{
private static final String[] ADMIN_COMMANDS = {"admin_ban", "admin_unban","admin_jail","admin_unjail"};
private static final int REQUIRED_LEVEL = Config.GM_BAN;
public boolean useAdminCommand(String command, L2PcInstance activeChar)
{
if (!Config.ALT_PRIVILEGES_ADMIN)
if (!(checkLevel(activeChar.getAccessLevel())))
return false;
StringTokenizer st = new StringTokenizer(command);
st.nextToken();
String account_name = "";
String player = "";
L2PcInstance plyr = null;
if (command.startsWith("admin_ban"))
{
try
{
player = st.nextToken();
plyr = L2World.getInstance().getPlayer(player);
}
catch(Exception e)
{
L2Object target = activeChar.getTarget();
if (target!=null && target instanceof L2PcInstance)
plyr = (L2PcInstance)target;
else
activeChar.sendMessage("Usage: //ban [account_name] (if none, target char's account gets banned)");
}
if (plyr != null && plyr.equals(activeChar))
{
plyr.sendPacket(new SystemMessage(SystemMessageId.CANNOT_USE_ON_YOURSELF));
}
else if (plyr == null)
{
account_name=player;
LoginServerThread.getInstance().sendAccessLevel(account_name, -100);
activeChar.sendMessage("Ban request sent for account "+account_name+". If you need a playername based commmand, see //ban_menu");
}
else
{
plyr.setAccountAccesslevel(-100);
account_name = plyr.getAccountName();
RegionBBSManager.getInstance().changeCommunityBoard();
plyr.logout();
activeChar.sendMessage("Account "+account_name+" banned.");
}
}
else if (command.startsWith("admin_unban"))
{
try
{
account_name = st.nextToken();
LoginServerThread.getInstance().sendAccessLevel(account_name, 0);
activeChar.sendMessage("Unban request sent for account "+account_name+". If you need a playername based commmand, see //unban_menu");
}
catch(Exception e)
{
activeChar.sendMessage("Usage: //unban <account_name>");
}
}
else if (command.startsWith("admin_jail"))
{
try
{
player = st.nextToken();
int delay = 0;
try
{
delay = Integer.parseInt(st.nextToken());
}
catch (NumberFormatException nfe)
{
activeChar.sendMessage("Usage: //jail <charname> [penalty_minutes]");
}
catch (NoSuchElementException nsee) {}
L2PcInstance playerObj = L2World.getInstance().getPlayer(player);
if (playerObj != null)
{
playerObj.setInJail(true, delay);
activeChar.sendMessage("Character "+player+" jailed for "+(delay>0 ? delay+" minutes." : "ever!"));
}
else
jailOfflinePlayer(activeChar, player, delay);
}
catch (NoSuchElementException nsee)
{
activeChar.sendMessage("Usage: //jail <charname> [penalty_minutes]");
}
catch(Exception e)
{
e.printStackTrace();
}
}
else if (command.startsWith("admin_unjail"))
{
try
{
player = st.nextToken();
L2PcInstance playerObj = L2World.getInstance().getPlayer(player);
if (playerObj != null)
{
playerObj.setInJail(false, 0);
activeChar.sendMessage("Character "+player+" removed from jail");
}
else
unjailOfflinePlayer(activeChar, player);
}
catch (NoSuchElementException nsee)
{
activeChar.sendMessage("Specify a character name.");
}
catch(Exception e)
{
e.printStackTrace();
}
}
return true;
}
private void jailOfflinePlayer(L2PcInstance activeChar, String name, int delay)
{
Connection con = null;
try
{
con = L2DatabaseFactory.getInstance().getConnection(con);
PreparedStatement statement = con.prepareStatement("UPDATE characters SET x=?, y=?, z=?, in_jail=?, jail_timer=? WHERE char_name=?");
statement.setInt(1, -114356);
statement.setInt(2, -249645);
statement.setInt(3, -2984);
statement.setInt(4, 1);
statement.setLong(5, delay * 60000L);
statement.setString(6, name);
statement.execute();
int count = statement.getUpdateCount();
statement.close();
if (count == 0)
activeChar.sendMessage("Character not found!");
else
activeChar.sendMessage("Character "+name+" jailed for "+(delay>0 ? delay+" minutes." : "ever!"));
}
catch (SQLException se)
{
activeChar.sendMessage("SQLException while jailing player");
se.printStackTrace();
}
finally
{
try { con.close(); } catch (Exception e)
{
e.printStackTrace();
}
}
}
private void unjailOfflinePlayer(L2PcInstance activeChar, String name)
{
Connection con = null;
try
{
con = L2DatabaseFactory.getInstance().getConnection(con);
PreparedStatement statement = con.prepareStatement("UPDATE characters SET x=?, y=?, z=?, in_jail=?, jail_timer=? WHERE char_name=?");
statement.setInt(1, 17836);
statement.setInt(2, 170178);
statement.setInt(3, -3507);
statement.setInt(4, 0);
statement.setLong(5, 0);
statement.setString(6, name);
statement.execute();
int count = statement.getUpdateCount();
statement.close();
if (count == 0)
activeChar.sendMessage("Character not found!");
else
activeChar.sendMessage("Character "+name+" removed from jail");
}
catch (SQLException se)
{
activeChar.sendMessage("SQLException while jailing player");
se.printStackTrace();
}
finally
{
try
{
con.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
public String[] getAdminCommandList()
{
return ADMIN_COMMANDS;
}
private boolean checkLevel(int level)
{
return (level >= REQUIRED_LEVEL);
}
}
Interlude x25 — Free D/C/B Gear for Newbies!
New adventurers joining the world of Lineage2Dex.com can now start strong with FREE D/C/B grade gear! Get ready to conquer the battlefield — faster leveling, smoother progress, and more fun from the start.
New numbers are available for GMAIL — category GMAIL 1.
There’s a large quantity, and this is just the beginning.
The higher the percentage of successful activations, the more numbers become available.
Why it matters: when users successfully receive codes from these numbers, we see that they work reliably and can add more to the system.
This means more choices for everyone and fewer problems when registering on services.
📲 Keep an eye on updates and pick the best options
🌐 Website: https://vibe-sms.net/
📱 Telegram channel: https://t.me/vibe_sms
Question
sτrίkε-
admin kick source code
admin ban source code
can some1 fix these?
L2J Free IL Version 2741
5 answers to this question
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now