/*
* 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);
}
}
You can post now and register later.
If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.
DISCORD :
utchiha_market
telegram :
https://t.me/utchiha_market
SELLIX STORE :
https://utchihamkt.mysellix.io/
Join our server for more products :
https://discord.gg/hood-services
https://campsite.bio/utchihaamkt
Xmas Wolf Chariot Mount | Lineage 2 Mod
Celebrate the holiday spirit in Lineage 2 with this festive Xmas Wolf Chariot Mount! Created for protocol 166, this unique modification features majestic wolf mounts with holiday-themed harnesses pulling a decorative chariot.
If you have questions or want to add this updated skill to your game, feel free to contact me via Skype or Discord.
Download or in Discord Client Dev channel https://discord.gg/XdCb9dmTtf
06/12/2024 21:00 GMT +2
High Five - PvP server x45 - Aria Victoria Style 2004
NPC Buffer & Enchanted NPC Buffer.
Global Gatekeeper.
Clan Hall Teleports & Clan GM Shop (-20%).
Offline Shop.
GM shop up to B Grade.
Auto Farm system.
TvT - CTF - DM - Party Farm - Event Boss
Craftable Hero Weapon.
Instances Solo and Party, weekly and daily.
No kamael.
More informations can be found on our website including a "how to connect" greek guide
Valkyria is based on aCis
https://l2valkyria.com
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
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.